
void source(char *src)

{
  long lVar1;
  int iVar2;
  char *pcVar3;
  RFile *f;
  time_t start;
  byte *pbVar4;
  char *pcVar5;
  DirHandle *dir;
  char *src_00;
  time_t tVar6;
  long lVar7;
  int length;
  byte *pbVar8;
  byte *pbVar9;
  long in_FS_OFFSET;
  bool bVar10;
  bool bVar11;
  bool bVar12;
  byte bVar13;
  uint64 x;
  uint64 uVar14;
  char *local_10a0;
  uint64 local_1098;
  long local_1088;
  ulong mtime;
  ulong atime;
  long permissions;
  uint64 size;
  char sizestr [40];
  
  bVar13 = 0;
  lVar1 = *(long *)(in_FS_OFFSET + 0x28);
  iVar2 = file_type(src);
  if ((iVar2 == 0) || (iVar2 == 3)) {
    pcVar3 = "Not a";
    if (iVar2 != 3) {
      pcVar3 = "No such";
    }
    run_err("%s: %s file or directory",src,pcVar3);
    goto LAB_00114299;
  }
  if (iVar2 == 2) {
    if (recursive == 0) {
      run_err("%s: not a regular file",src);
      goto LAB_00114299;
    }
    pcVar3 = strrchr(src,0x2f);
    pcVar5 = pcVar3;
    if (pcVar3 == (char *)0x0) {
      pcVar5 = strrchr(src,0x5c);
      bVar10 = false;
      bVar12 = pcVar5 == (char *)0x0;
      pbVar4 = (byte *)src;
      if (!bVar12) goto LAB_001142e8;
    }
    else {
LAB_001142e8:
      bVar10 = (char *)0xfffffffffffffffe < pcVar5;
      bVar12 = (byte *)(pcVar5 + 1) == (byte *)0x0;
      pbVar4 = (byte *)(pcVar5 + 1);
    }
    lVar7 = 2;
    pbVar8 = pbVar4;
    pbVar9 = (byte *)0x15eb4d;
    do {
      if (lVar7 == 0) break;
      lVar7 = lVar7 + -1;
      bVar10 = *pbVar8 < *pbVar9;
      bVar12 = *pbVar8 == *pbVar9;
      pbVar8 = pbVar8 + (ulong)bVar13 * -2 + 1;
      pbVar9 = pbVar9 + (ulong)bVar13 * -2 + 1;
    } while (bVar12);
    bVar11 = false;
    bVar10 = (!bVar10 && !bVar12) == bVar10;
    if (bVar10) goto LAB_00114299;
    lVar7 = 3;
    pbVar8 = (byte *)0x15eb4c;
    do {
      if (lVar7 == 0) break;
      lVar7 = lVar7 + -1;
      bVar11 = *pbVar4 < *pbVar8;
      bVar10 = *pbVar4 == *pbVar8;
      pbVar4 = pbVar4 + (ulong)bVar13 * -2 + 1;
      pbVar8 = pbVar8 + (ulong)bVar13 * -2 + 1;
    } while (bVar10);
    if ((!bVar11 && !bVar10) == bVar11) goto LAB_00114299;
    if (pcVar3 == (char *)0x0) {
      pcVar5 = strrchr(src,0x5c);
      pcVar3 = src;
      if (pcVar5 != (char *)0x0) goto LAB_00114344;
LAB_0011468d:
      pcVar5 = strchr(src,0x3a);
      if (pcVar5 != (char *)0x0) {
        pcVar3 = pcVar5 + 1;
      }
    }
    else {
      pcVar3 = pcVar3 + 1;
      pcVar5 = strrchr(pcVar3,0x5c);
      if (pcVar5 != (char *)0x0) {
LAB_00114344:
        pcVar3 = pcVar5 + 1;
      }
      if (src == pcVar3) goto LAB_0011468d;
    }
    pcVar5 = scp_save_remotepath();
    if (verbose != 0) {
      tell_user(stderr,"Entering directory: %s",pcVar3);
    }
    iVar2 = scp_send_dirname(pcVar3,0x1ed);
    if (iVar2 == 0) {
      dir = open_directory(src);
      if (dir != (DirHandle *)0x0) {
        while (pcVar3 = read_filename(dir), pcVar3 != (char *)0x0) {
          src_00 = dupcat(src,&DAT_0015ecb1,pcVar3,0);
          source(src_00);
          safefree(src_00);
          safefree(pcVar3);
        }
      }
      close_directory(dir);
      scp_send_enddir();
      scp_restore_remotepath(pcVar5);
    }
    goto LAB_00114299;
  }
  local_10a0 = strrchr(src,0x2f);
  if (local_10a0 == (char *)0x0) {
    pcVar3 = strrchr(src,0x5c);
    if (pcVar3 != (char *)0x0) goto LAB_001141aa;
LAB_001146c0:
    pcVar3 = strchr(src,0x3a);
    local_10a0 = pcVar3 + 1;
    if (pcVar3 == (char *)0x0) {
      local_10a0 = src;
    }
  }
  else {
    local_10a0 = local_10a0 + 1;
    pcVar3 = strrchr(local_10a0,0x5c);
    if (pcVar3 != (char *)0x0) {
LAB_001141aa:
      local_10a0 = pcVar3 + 1;
    }
    if (local_10a0 == src) goto LAB_001146c0;
  }
  f = open_existing_file(src,&size,&mtime,&atime,&permissions);
  if (f == (RFile *)0x0) {
    run_err("%s: Cannot open file",src);
  }
  else if ((preserve == 0) || (iVar2 = scp_send_filetimes(mtime,atime), iVar2 == 0)) {
    if (verbose != 0) {
      uint64_decimal(size,sizestr);
      tell_user(stderr,"Sending file %s, size=%s",local_10a0,sizestr);
    }
    iVar2 = scp_send_filename(local_10a0,size,(int)permissions);
    if (iVar2 == 0) {
      local_1098 = uint64_make(0,0);
      start = time((time_t *)0x0);
      x = uint64_make(0,0);
      local_1088 = 0;
      while (iVar2 = uint64_compare(x,size), iVar2 < 0) {
        uVar14 = uint64_add32(x,0x1000);
        iVar2 = uint64_compare(uVar14,size);
        length = 0x1000;
        if (0 < iVar2) {
          uVar14 = uint64_subtract(size,x);
          length = uVar14.lo;
        }
        iVar2 = read_from_file(f,sizestr,length);
        if (length != iVar2) {
          if (statistics != 0) {
            putchar(10);
          }
          bump("%s: Read error",src);
        }
        iVar2 = scp_send_filedata(sizestr,length);
        if (iVar2 != 0) {
          bump("%s: Network error occurred",src);
        }
        if (statistics != 0) {
          local_1098 = uint64_add32(local_1098,(long)length);
          tVar6 = time((time_t *)0x0);
          if (tVar6 == local_1088) {
            uVar14 = uint64_add32(x,(long)length);
            iVar2 = uint64_compare(uVar14,size);
            if (iVar2 != 0) goto LAB_00114520;
          }
          local_1088 = time((time_t *)0x0);
          print_stats(local_10a0,size,local_1098,start,local_1088);
        }
LAB_00114520:
        x = uint64_add32(x,0x1000);
      }
      close_rfile(f);
      scp_send_finish();
    }
    else {
      close_rfile(f);
    }
  }
  else {
    close_rfile(f);
  }
LAB_00114299:
  if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return;
}



void FUN_00114133(byte *param_1)

{
  int iVar1;
  int iVar2;
  char *pcVar3;
  long lVar4;
  time_t tVar5;
  char *pcVar6;
  undefined8 uVar7;
  undefined8 uVar8;
  long lVar9;
  time_t tVar10;
  int extraout_EDX;
  byte *pbVar11;
  byte *pbVar12;
  byte *pbVar13;
  long in_FS_OFFSET;
  bool bVar14;
  bool bVar15;
  bool bVar16;
  byte bVar17;
  undefined1 auVar18 [16];
  undefined1 auVar19 [16];
  byte *local_10a0;
  undefined8 local_1098;
  undefined8 local_1090;
  long local_1088;
  undefined8 local_1070;
  undefined8 local_1068;
  undefined4 local_1060 [2];
  undefined8 local_1058;
  undefined8 local_1050;
  undefined1 local_1048 [4104];
  long local_40;
  
  bVar17 = 0;
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  iVar1 = FUN_0015874b();
  if ((iVar1 == 0) || (iVar1 == 3)) {
    pcVar3 = "Not a";
    if (iVar1 != 3) {
      pcVar3 = "No such";
    }
    FUN_0011382c("%s: %s file or directory",param_1,pcVar3);
    goto LAB_00114299;
  }
  if (iVar1 == 2) {
    if (DAT_00183374 == 0) {
      FUN_0011382c("%s: not a regular file",param_1);
      goto LAB_00114299;
    }
    pcVar6 = strrchr((char *)param_1,0x2f);
    pcVar3 = pcVar6;
    if (pcVar6 == (char *)0x0) {
      pcVar3 = strrchr((char *)param_1,0x5c);
      bVar14 = false;
      bVar16 = pcVar3 == (char *)0x0;
      pbVar11 = param_1;
      if (!bVar16) goto LAB_001142e8;
    }
    else {
LAB_001142e8:
      bVar14 = (char *)0xfffffffffffffffe < pcVar3;
      bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0;
      pbVar11 = (byte *)(pcVar3 + 1);
    }
    lVar4 = 2;
    pbVar12 = pbVar11;
    pbVar13 = (byte *)0x15eb4d;
    do {
      if (lVar4 == 0) break;
      lVar4 = lVar4 + -1;
      bVar14 = *pbVar12 < *pbVar13;
      bVar16 = *pbVar12 == *pbVar13;
      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;
      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;
    } while (bVar16);
    bVar15 = false;
    bVar14 = (!bVar14 && !bVar16) == bVar14;
    if (bVar14) goto LAB_00114299;
    lVar4 = 3;
    pbVar12 = (byte *)0x15eb4c;
    do {
      if (lVar4 == 0) break;
      lVar4 = lVar4 + -1;
      bVar15 = *pbVar11 < *pbVar12;
      bVar14 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (ulong)bVar17 * -2 + 1;
      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;
    } while (bVar14);
    if ((!bVar15 && !bVar14) == bVar15) goto LAB_00114299;
    if (pcVar6 == (char *)0x0) {
      pcVar3 = strrchr((char *)param_1,0x5c);
      pbVar11 = param_1;
      if (pcVar3 != (char *)0x0) goto LAB_00114344;
LAB_0011468d:
      pcVar3 = strchr((char *)param_1,0x3a);
      if (pcVar3 != (char *)0x0) {
        pbVar11 = (byte *)(pcVar3 + 1);
      }
    }
    else {
      pbVar11 = (byte *)(pcVar6 + 1);
      pcVar3 = strrchr((char *)pbVar11,0x5c);
      if (pcVar3 != (char *)0x0) {
LAB_00114344:
        pbVar11 = (byte *)(pcVar3 + 1);
      }
      if (param_1 == pbVar11) goto LAB_0011468d;
    }
    uVar7 = FUN_00113ee9();
    if (DAT_00183378 != 0) {
      FUN_00111e5a(stderr,"Entering directory: %s",pbVar11);
    }
    iVar1 = FUN_00113f10(pbVar11,0x1ed);
    if (iVar1 == 0) {
      lVar4 = FUN_00158804(param_1);
      if (lVar4 != 0) {
        while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {
          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);
          FUN_00114133(uVar8);
          FUN_0010da9f(uVar8);
          FUN_0010da9f(lVar9);
        }
      }
      FUN_00158855(lVar4);
      FUN_001140ec();
      FUN_00113eff(uVar7);
    }
    goto LAB_00114299;
  }
  pcVar3 = strrchr((char *)param_1,0x2f);
  if (pcVar3 == (char *)0x0) {
    pcVar3 = strrchr((char *)param_1,0x5c);
    if (pcVar3 != (char *)0x0) goto LAB_001141aa;
LAB_001146c0:
    pcVar3 = strchr((char *)param_1,0x3a);
    local_10a0 = (byte *)(pcVar3 + 1);
    if (pcVar3 == (char *)0x0) {
      local_10a0 = param_1;
    }
  }
  else {
    local_10a0 = (byte *)(pcVar3 + 1);
    pcVar3 = strrchr((char *)local_10a0,0x5c);
    if (pcVar3 != (char *)0x0) {
LAB_001141aa:
      local_10a0 = (byte *)(pcVar3 + 1);
    }
    if (local_10a0 == param_1) goto LAB_001146c0;
  }
  lVar4 = FUN_00158359(param_1,&local_1058,&local_1070,&local_1068,local_1060);
  if (lVar4 == 0) {
    FUN_0011382c("%s: Cannot open file",param_1);
  }
  else if ((DAT_00183370 == 0) || (iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0)) {
    if (DAT_00183378 != 0) {
      FUN_0010b956(local_1058,local_1050,local_1048);
      FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);
    }
    iVar1 = FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0]);
    if (iVar1 == 0) {
      auVar18 = FUN_0010baa3(0,0);
      tVar5 = time((time_t *)0x0);
      auVar19 = FUN_0010baa3(0,0);
      local_1088 = 0;
      while( true ) {
        uVar7 = auVar19._8_8_;
        uVar8 = auVar19._0_8_;
        local_1090 = auVar18._8_8_;
        local_1098 = auVar18._0_8_;
        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);
        if (-1 < iVar1) break;
        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);
        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);
        iVar1 = 0x1000;
        if (0 < iVar2) {
          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);
          iVar1 = extraout_EDX;
        }
        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);
        if (iVar1 != iVar2) {
          if (DAT_00183070 != 0) {
            putchar(10);
          }
          FUN_0011203b("%s: Read error",param_1);
        }
        iVar2 = FUN_00113c18(local_1048,iVar1);
        if (iVar2 != 0) {
          FUN_0011203b("%s: Network error occurred",param_1);
        }
        if (DAT_00183070 != 0) {
          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);
          tVar10 = time((time_t *)0x0);
          if (tVar10 == local_1088) {
            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);
            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);
            if (iVar1 != 0) goto LAB_00114520;
          }
          local_1088 = time((time_t *)0x0);
          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088
                      );
        }
LAB_00114520:
        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);
      }
      FUN_001584ca(lVar4);
      FUN_00113d4a();
    }
    else {
      FUN_001584ca(lVar4);
    }
  }
  else {
    FUN_001584ca(lVar4);
  }
LAB_00114299:
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x1078
MOV R13,RDI
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x1068],RAX
XOR EAX,EAX
CALL 0x0015874b
TEST EAX,EAX
JZ 0x00114270
CMP EAX,0x3
JZ 0x00114270
CMP EAX,0x2
JZ 0x001142c2
MOV ESI,0x2f
MOV RDI,R13
CALL 0x00107340
TEST RAX,RAX
JZ 0x001146aa
ADD RAX,0x1
MOV qword ptr [RSP + 0x8],RAX
MOV ESI,0x5c
MOV RDI,RAX
CALL 0x00107340
TEST RAX,RAX
JZ 0x001141b3
ADD RAX,0x1
MOV qword ptr [RSP + 0x8],RAX
CMP qword ptr [RSP + 0x8],R13
JZ 0x001146c0
LEA RCX,[RSP + 0x40]
LEA RDX,[RSP + 0x38]
LEA RSI,[RSP + 0x50]
LEA R8,[RSP + 0x48]
MOV RDI,R13
CALL 0x00158359
MOV R15,RAX
TEST RAX,RAX
JZ 0x00114441
CMP dword ptr [0x00183370],0x0
JNZ 0x0011445a
CMP dword ptr [0x00183378],0x0
JNZ 0x0011447e
MOV ECX,dword ptr [RSP + 0x48]
MOV RSI,qword ptr [RSP + 0x50]
MOV RDX,qword ptr [RSP + 0x58]
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x001139f2
TEST EAX,EAX
JNZ 0x001144ba
MOV ESI,0x0
MOV EDI,0x0
CALL 0x0010baa3
MOV qword ptr [RSP + 0x10],RAX
MOV qword ptr [RSP + 0x18],RDX
MOV EDI,0x0
CALL 0x00107540
MOV qword ptr [RSP + 0x28],RAX
MOV ESI,0x0
MOV EDI,0x0
CALL 0x0010baa3
MOV R12,RAX
MOV RBX,RDX
MOV qword ptr [RSP + 0x20],0x0
LEA R14,[RSP + 0x60]
JMP 0x00114536
CMP EAX,0x3
LEA RDX,[0x15ed33]
LEA RAX,[0x15ed39]
CMOVNZ RDX,RAX
MOV RSI,R13
LEA RDI,[0x15ed41]
MOV EAX,0x0
CALL 0x0011382c
MOV RAX,qword ptr [RSP + 0x1068]
XOR RAX,qword ptr FS:[0x28]
JNZ 0x001146e2
ADD RSP,0x1078
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
CMP dword ptr [0x00183374],0x0
JZ 0x00114428
MOV ESI,0x2f
MOV RDI,R13
CALL 0x00107340
MOV RBX,RAX
TEST RAX,RAX
JZ 0x00114390
ADD RAX,0x1
MOV ECX,0x2
LEA RDI,[0x15eb4d]
MOV RSI,RAX
CMPSB.REPE RDI,RSI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x00114299
MOV ECX,0x3
LEA RDI,[0x15eb4c]
MOV RSI,RAX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00114299
TEST RBX,RBX
JZ 0x00114674
ADD RBX,0x1
MOV ESI,0x5c
MOV RDI,RBX
CALL 0x00107340
TEST RAX,RAX
JZ 0x00114348
LEA RBX,[RAX + 0x1]
CMP R13,RBX
JZ 0x0011468d
CALL 0x00113ee9
MOV R14,RAX
CMP dword ptr [0x00183378],0x0
JNZ 0x001143ae
MOV ESI,0x1ed
MOV RDI,RBX
CALL 0x00113f10
TEST EAX,EAX
JNZ 0x00114299
MOV RDI,R13
CALL 0x00158804
MOV R12,RAX
LEA R15,[0x15ecb1]
TEST RAX,RAX
JNZ 0x001143fe
JMP 0x0011440e
MOV ESI,0x5c
MOV RDI,R13
CALL 0x00107340
TEST RAX,RAX
JNZ 0x001142e8
MOV RAX,R13
JMP 0x001142ec
MOV RDX,RBX
LEA RSI,[0x15ed5a]
MOV RDI,qword ptr [0x00183220]
MOV EAX,0x0
CALL 0x00111e5a
JMP 0x00114362
MOV ECX,0x0
MOV RDX,RBX
MOV RSI,R15
MOV RDI,R13
MOV EAX,0x0
CALL 0x0010d36f
MOV RBP,RAX
MOV RDI,RAX
CALL 0x00114133
MOV RDI,RBP
CALL 0x0010da9f
MOV RDI,RBX
CALL 0x0010da9f
MOV RDI,R12
CALL 0x00158826
MOV RBX,RAX
TEST RAX,RAX
JNZ 0x001143cb
MOV RDI,R12
CALL 0x00158855
CALL 0x001140ec
MOV RDI,R14
CALL 0x00113eff
JMP 0x00114299
MOV RSI,R13
LEA RDI,[0x15ed71]
MOV EAX,0x0
CALL 0x0011382c
JMP 0x00114299
MOV RSI,R13
LEA RDI,[0x15ed88]
MOV EAX,0x0
CALL 0x0011382c
JMP 0x00114299
MOV RSI,qword ptr [RSP + 0x40]
MOV RDI,qword ptr [RSP + 0x38]
CALL 0x00113947
TEST EAX,EAX
JZ 0x001141f3
MOV RDI,R15
CALL 0x001584ca
JMP 0x00114299
LEA RBX,[RSP + 0x60]
MOV RDX,RBX
MOV RDI,qword ptr [RSP + 0x50]
MOV RSI,qword ptr [RSP + 0x58]
CALL 0x0010b956
MOV RCX,RBX
MOV RDX,qword ptr [RSP + 0x8]
LEA RSI,[0x15ed9d]
MOV RDI,qword ptr [0x00183220]
MOV EAX,0x0
CALL 0x00111e5a
JMP 0x00114200
MOV RDI,R15
CALL 0x001584ca
JMP 0x00114299
MOV RDX,R12
MOV RCX,RBX
MOV RDI,qword ptr [RSP + 0x50]
MOV RSI,qword ptr [RSP + 0x58]
CALL 0x0010bae7
MOV EBP,EDX
JMP 0x00114585
MOV EDI,0xa
CALL 0x001070a0
MOV RSI,R13
LEA RDI,[0x15edb6]
MOV EAX,0x0
CALL 0x0011203b
MOV ESI,EBP
MOV RDI,R14
CALL 0x00113c18
TEST EAX,EAX
JNZ 0x001145ac
CMP dword ptr [0x00183070],0x0
JNZ 0x001145c5
MOV RSI,RBX
MOV EDX,0x1000
MOV RDI,R12
CALL 0x0010bab8
MOV R12,RAX
MOV RBX,RDX
MOV RSI,RBX
MOV RDX,qword ptr [RSP + 0x50]
MOV RCX,qword ptr [RSP + 0x58]
MOV RDI,R12
CALL 0x0010bac6
TEST EAX,EAX
JNS 0x00114662
MOV RSI,RBX
MOV EDX,0x1000
MOV RDI,R12
CALL 0x0010bab8
MOV RSI,RDX
MOV RDX,qword ptr [RSP + 0x50]
MOV RCX,qword ptr [RSP + 0x58]
MOV RDI,RAX
CALL 0x0010bac6
MOV EBP,0x1000
TEST EAX,EAX
JG 0x001144c7
MOV EDX,EBP
MOV RSI,R14
MOV RDI,R15
CALL 0x001584b7
CMP EBP,EAX
JZ 0x00114501
CMP dword ptr [0x00183070],0x0
JZ 0x001144ed
JMP 0x001144e3
MOV RSI,R13
LEA RDI,[0x15edc5]
MOV EAX,0x0
CALL 0x0011203b
JMP 0x00114513
MOVSXD RBP,EBP
MOV RSI,qword ptr [RSP + 0x18]
MOV RDX,RBP
MOV RDI,qword ptr [RSP + 0x10]
CALL 0x0010bab8
MOV qword ptr [RSP + 0x10],RAX
MOV qword ptr [RSP + 0x18],RDX
MOV EDI,0x0
CALL 0x00107540
CMP RAX,qword ptr [RSP + 0x20]
JZ 0x00114635
MOV EDI,0x0
CALL 0x00107540
MOV qword ptr [RSP + 0x20],RAX
MOV R8,qword ptr [RSP + 0x18]
SUB RSP,0x8
PUSH RAX
MOV R9,qword ptr [RSP + 0x38]
MOV RCX,qword ptr [RSP + 0x20]
MOV RSI,qword ptr [RSP + 0x60]
MOV RDX,qword ptr [RSP + 0x68]
MOV RDI,qword ptr [RSP + 0x18]
CALL 0x00112ad9
ADD RSP,0x10
JMP 0x00114520
MOV RSI,RBX
MOV RDX,RBP
MOV RDI,R12
CALL 0x0010bab8
MOV RSI,RDX
MOV RDX,qword ptr [RSP + 0x50]
MOV RCX,qword ptr [RSP + 0x58]
MOV RDI,RAX
CALL 0x0010bac6
TEST EAX,EAX
JNZ 0x00114520
JMP 0x001145f5
MOV RDI,R15
CALL 0x001584ca
CALL 0x00113d4a
JMP 0x00114299
MOV ESI,0x5c
MOV RDI,R13
CALL 0x00107340
MOV RBX,R13
TEST RAX,RAX
JNZ 0x00114344
MOV ESI,0x3a
MOV RDI,R13
CALL 0x001072d0
LEA RDX,[RAX + 0x1]
TEST RAX,RAX
CMOVNZ RBX,RDX
JMP 0x00114351
MOV ESI,0x5c
MOV RDI,R13
CALL 0x00107340
TEST RAX,RAX
JNZ 0x001141aa
MOV ESI,0x3a
MOV RDI,R13
CALL 0x001072d0
LEA RDX,[RAX + 0x1]
TEST RAX,RAX
CMOVZ RDX,R13
MOV qword ptr [RSP + 0x8],RDX
JMP 0x001141be
CALL 0x00107290
(translation_unit "void FUN_00114133(byte *param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  char *pcVar3;\n  long lVar4;\n  time_t tVar5;\n  char *pcVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  long lVar9;\n  time_t tVar10;\n  int extraout_EDX;\n  byte *pbVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  long in_FS_OFFSET;\n  bool bVar14;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  undefined1 auVar18 [16];\n  undefined1 auVar19 [16];\n  byte *local_10a0;\n  undefined8 local_1098;\n  undefined8 local_1090;\n  long local_1088;\n  undefined8 local_1070;\n  undefined8 local_1068;\n  undefined4 local_1060 [2];\n  undefined8 local_1058;\n  undefined8 local_1050;\n  undefined1 local_1048 [4104];\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar1 = FUN_0015874b();\n  if ((iVar1 == 0) || (iVar1 == 3)) {\n    pcVar3 = "Not a";\n    if (iVar1 != 3) {\n      pcVar3 = "No such";\n    }\n    FUN_0011382c("%s: %s file or directory",param_1,pcVar3);\n    goto LAB_00114299;\n  }\n  if (iVar1 == 2) {\n    if (DAT_00183374 == 0) {\n      FUN_0011382c("%s: not a regular file",param_1);\n      goto LAB_00114299;\n    }\n    pcVar6 = strrchr((char *)param_1,0x2f);\n    pcVar3 = pcVar6;\n    if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      bVar14 = false;\n      bVar16 = pcVar3 == (char *)0x0;\n      pbVar11 = param_1;\n      if (!bVar16) goto LAB_001142e8;\n    }\n    else {\nLAB_001142e8:\n      bVar14 = (char *)0xfffffffffffffffe < pcVar3;\n      bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0;\n      pbVar11 = (byte *)(pcVar3 + 1);\n    }\n    lVar4 = 2;\n    pbVar12 = pbVar11;\n    pbVar13 = (byte *)0x15eb4d;\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar14 = *pbVar12 < *pbVar13;\n      bVar16 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    bVar15 = false;\n    bVar14 = (!bVar14 && !bVar16) == bVar14;\n    if (bVar14) goto LAB_00114299;\n    lVar4 = 3;\n    pbVar12 = (byte *)0x15eb4c;\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar15 = *pbVar11 < *pbVar12;\n      bVar14 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar17 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n    } while (bVar14);\n    if ((!bVar15 && !bVar14) == bVar15) goto LAB_00114299;\n    if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      pbVar11 = param_1;\n      if (pcVar3 != (char *)0x0) goto LAB_00114344;\nLAB_0011468d:\n      pcVar3 = strchr((char *)param_1,0x3a);\n      if (pcVar3 != (char *)0x0) {\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n    }\n    else {\n      pbVar11 = (byte *)(pcVar6 + 1);\n      pcVar3 = strrchr((char *)pbVar11,0x5c);\n      if (pcVar3 != (char *)0x0) {\nLAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n      if (param_1 == pbVar11) goto LAB_0011468d;\n    }\n    uVar7 = FUN_00113ee9();\n    if (DAT_00183378 != 0) {\n      FUN_00111e5a(stderr,"Entering directory: %s",pbVar11);\n    }\n    iVar1 = FUN_00113f10(pbVar11,0x1ed);\n    if (iVar1 == 0) {\n      lVar4 = FUN_00158804(param_1);\n      if (lVar4 != 0) {\n        while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }\n      }\n      FUN_00158855(lVar4);\n      FUN_001140ec();\n      FUN_00113eff(uVar7);\n    }\n    goto LAB_00114299;\n  }\n  pcVar3 = strrchr((char *)param_1,0x2f);\n  if (pcVar3 == (char *)0x0) {\n    pcVar3 = strrchr((char *)param_1,0x5c);\n    if (pcVar3 != (char *)0x0) goto LAB_001141aa;\nLAB_001146c0:\n    pcVar3 = strchr((char *)param_1,0x3a);\n    local_10a0 = (byte *)(pcVar3 + 1);\n    if (pcVar3 == (char *)0x0) {\n      local_10a0 = param_1;\n    }\n  }\n  else {\n    local_10a0 = (byte *)(pcVar3 + 1);\n    pcVar3 = strrchr((char *)local_10a0,0x5c);\n    if (pcVar3 != (char *)0x0) {\nLAB_001141aa:\n      local_10a0 = (byte *)(pcVar3 + 1);\n    }\n    if (local_10a0 == param_1) goto LAB_001146c0;\n  }\n  lVar4 = FUN_00158359(param_1,&local_1058,&local_1070,&local_1068,local_1060);\n  if (lVar4 == 0) {\n    FUN_0011382c("%s: Cannot open file",param_1);\n  }\n  else if ((DAT_00183370 == 0) || (iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0)) {\n    if (DAT_00183378 != 0) {\n      FUN_0010b956(local_1058,local_1050,local_1048);\n      FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);\n    }\n    iVar1 = FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0]);\n    if (iVar1 == 0) {\n      auVar18 = FUN_0010baa3(0,0);\n      tVar5 = time((time_t *)0x0);\n      auVar19 = FUN_0010baa3(0,0);\n      local_1088 = 0;\n      while( true ) {\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }\n      FUN_001584ca(lVar4);\n      FUN_00113d4a();\n    }\n    else {\n      FUN_001584ca(lVar4);\n    }\n  }\n  else {\n    FUN_001584ca(lVar4);\n  }\nLAB_00114299:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return;\n}\n\n" (function_definition "void FUN_00114133(byte *param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  char *pcVar3;\n  long lVar4;\n  time_t tVar5;\n  char *pcVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  long lVar9;\n  time_t tVar10;\n  int extraout_EDX;\n  byte *pbVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  long in_FS_OFFSET;\n  bool bVar14;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  undefined1 auVar18 [16];\n  undefined1 auVar19 [16];\n  byte *local_10a0;\n  undefined8 local_1098;\n  undefined8 local_1090;\n  long local_1088;\n  undefined8 local_1070;\n  undefined8 local_1068;\n  undefined4 local_1060 [2];\n  undefined8 local_1058;\n  undefined8 local_1050;\n  undefined1 local_1048 [4104];\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar1 = FUN_0015874b();\n  if ((iVar1 == 0) || (iVar1 == 3)) {\n    pcVar3 = "Not a";\n    if (iVar1 != 3) {\n      pcVar3 = "No such";\n    }\n    FUN_0011382c("%s: %s file or directory",param_1,pcVar3);\n    goto LAB_00114299;\n  }\n  if (iVar1 == 2) {\n    if (DAT_00183374 == 0) {\n      FUN_0011382c("%s: not a regular file",param_1);\n      goto LAB_00114299;\n    }\n    pcVar6 = strrchr((char *)param_1,0x2f);\n    pcVar3 = pcVar6;\n    if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      bVar14 = false;\n      bVar16 = pcVar3 == (char *)0x0;\n      pbVar11 = param_1;\n      if (!bVar16) goto LAB_001142e8;\n    }\n    else {\nLAB_001142e8:\n      bVar14 = (char *)0xfffffffffffffffe < pcVar3;\n      bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0;\n      pbVar11 = (byte *)(pcVar3 + 1);\n    }\n    lVar4 = 2;\n    pbVar12 = pbVar11;\n    pbVar13 = (byte *)0x15eb4d;\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar14 = *pbVar12 < *pbVar13;\n      bVar16 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    bVar15 = false;\n    bVar14 = (!bVar14 && !bVar16) == bVar14;\n    if (bVar14) goto LAB_00114299;\n    lVar4 = 3;\n    pbVar12 = (byte *)0x15eb4c;\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar15 = *pbVar11 < *pbVar12;\n      bVar14 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar17 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n    } while (bVar14);\n    if ((!bVar15 && !bVar14) == bVar15) goto LAB_00114299;\n    if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      pbVar11 = param_1;\n      if (pcVar3 != (char *)0x0) goto LAB_00114344;\nLAB_0011468d:\n      pcVar3 = strchr((char *)param_1,0x3a);\n      if (pcVar3 != (char *)0x0) {\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n    }\n    else {\n      pbVar11 = (byte *)(pcVar6 + 1);\n      pcVar3 = strrchr((char *)pbVar11,0x5c);\n      if (pcVar3 != (char *)0x0) {\nLAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n      if (param_1 == pbVar11) goto LAB_0011468d;\n    }\n    uVar7 = FUN_00113ee9();\n    if (DAT_00183378 != 0) {\n      FUN_00111e5a(stderr,"Entering directory: %s",pbVar11);\n    }\n    iVar1 = FUN_00113f10(pbVar11,0x1ed);\n    if (iVar1 == 0) {\n      lVar4 = FUN_00158804(param_1);\n      if (lVar4 != 0) {\n        while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }\n      }\n      FUN_00158855(lVar4);\n      FUN_001140ec();\n      FUN_00113eff(uVar7);\n    }\n    goto LAB_00114299;\n  }\n  pcVar3 = strrchr((char *)param_1,0x2f);\n  if (pcVar3 == (char *)0x0) {\n    pcVar3 = strrchr((char *)param_1,0x5c);\n    if (pcVar3 != (char *)0x0) goto LAB_001141aa;\nLAB_001146c0:\n    pcVar3 = strchr((char *)param_1,0x3a);\n    local_10a0 = (byte *)(pcVar3 + 1);\n    if (pcVar3 == (char *)0x0) {\n      local_10a0 = param_1;\n    }\n  }\n  else {\n    local_10a0 = (byte *)(pcVar3 + 1);\n    pcVar3 = strrchr((char *)local_10a0,0x5c);\n    if (pcVar3 != (char *)0x0) {\nLAB_001141aa:\n      local_10a0 = (byte *)(pcVar3 + 1);\n    }\n    if (local_10a0 == param_1) goto LAB_001146c0;\n  }\n  lVar4 = FUN_00158359(param_1,&local_1058,&local_1070,&local_1068,local_1060);\n  if (lVar4 == 0) {\n    FUN_0011382c("%s: Cannot open file",param_1);\n  }\n  else if ((DAT_00183370 == 0) || (iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0)) {\n    if (DAT_00183378 != 0) {\n      FUN_0010b956(local_1058,local_1050,local_1048);\n      FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);\n    }\n    iVar1 = FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0]);\n    if (iVar1 == 0) {\n      auVar18 = FUN_0010baa3(0,0);\n      tVar5 = time((time_t *)0x0);\n      auVar19 = FUN_0010baa3(0,0);\n      local_1088 = 0;\n      while( true ) {\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }\n      FUN_001584ca(lVar4);\n      FUN_00113d4a();\n    }\n    else {\n      FUN_001584ca(lVar4);\n    }\n  }\n  else {\n    FUN_001584ca(lVar4);\n  }\nLAB_00114299:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00114133(byte *param_1)" identifier (parameter_list "(byte *param_1)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  char *pcVar3;\n  long lVar4;\n  time_t tVar5;\n  char *pcVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  long lVar9;\n  time_t tVar10;\n  int extraout_EDX;\n  byte *pbVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  long in_FS_OFFSET;\n  bool bVar14;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  undefined1 auVar18 [16];\n  undefined1 auVar19 [16];\n  byte *local_10a0;\n  undefined8 local_1098;\n  undefined8 local_1090;\n  long local_1088;\n  undefined8 local_1070;\n  undefined8 local_1068;\n  undefined4 local_1060 [2];\n  undefined8 local_1058;\n  undefined8 local_1050;\n  undefined1 local_1048 [4104];\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar1 = FUN_0015874b();\n  if ((iVar1 == 0) || (iVar1 == 3)) {\n    pcVar3 = "Not a";\n    if (iVar1 != 3) {\n      pcVar3 = "No such";\n    }\n    FUN_0011382c("%s: %s file or directory",param_1,pcVar3);\n    goto LAB_00114299;\n  }\n  if (iVar1 == 2) {\n    if (DAT_00183374 == 0) {\n      FUN_0011382c("%s: not a regular file",param_1);\n      goto LAB_00114299;\n    }\n    pcVar6 = strrchr((char *)param_1,0x2f);\n    pcVar3 = pcVar6;\n    if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      bVar14 = false;\n      bVar16 = pcVar3 == (char *)0x0;\n      pbVar11 = param_1;\n      if (!bVar16) goto LAB_001142e8;\n    }\n    else {\nLAB_001142e8:\n      bVar14 = (char *)0xfffffffffffffffe < pcVar3;\n      bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0;\n      pbVar11 = (byte *)(pcVar3 + 1);\n    }\n    lVar4 = 2;\n    pbVar12 = pbVar11;\n    pbVar13 = (byte *)0x15eb4d;\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar14 = *pbVar12 < *pbVar13;\n      bVar16 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    bVar15 = false;\n    bVar14 = (!bVar14 && !bVar16) == bVar14;\n    if (bVar14) goto LAB_00114299;\n    lVar4 = 3;\n    pbVar12 = (byte *)0x15eb4c;\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar15 = *pbVar11 < *pbVar12;\n      bVar14 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar17 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n    } while (bVar14);\n    if ((!bVar15 && !bVar14) == bVar15) goto LAB_00114299;\n    if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      pbVar11 = param_1;\n      if (pcVar3 != (char *)0x0) goto LAB_00114344;\nLAB_0011468d:\n      pcVar3 = strchr((char *)param_1,0x3a);\n      if (pcVar3 != (char *)0x0) {\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n    }\n    else {\n      pbVar11 = (byte *)(pcVar6 + 1);\n      pcVar3 = strrchr((char *)pbVar11,0x5c);\n      if (pcVar3 != (char *)0x0) {\nLAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n      if (param_1 == pbVar11) goto LAB_0011468d;\n    }\n    uVar7 = FUN_00113ee9();\n    if (DAT_00183378 != 0) {\n      FUN_00111e5a(stderr,"Entering directory: %s",pbVar11);\n    }\n    iVar1 = FUN_00113f10(pbVar11,0x1ed);\n    if (iVar1 == 0) {\n      lVar4 = FUN_00158804(param_1);\n      if (lVar4 != 0) {\n        while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }\n      }\n      FUN_00158855(lVar4);\n      FUN_001140ec();\n      FUN_00113eff(uVar7);\n    }\n    goto LAB_00114299;\n  }\n  pcVar3 = strrchr((char *)param_1,0x2f);\n  if (pcVar3 == (char *)0x0) {\n    pcVar3 = strrchr((char *)param_1,0x5c);\n    if (pcVar3 != (char *)0x0) goto LAB_001141aa;\nLAB_001146c0:\n    pcVar3 = strchr((char *)param_1,0x3a);\n    local_10a0 = (byte *)(pcVar3 + 1);\n    if (pcVar3 == (char *)0x0) {\n      local_10a0 = param_1;\n    }\n  }\n  else {\n    local_10a0 = (byte *)(pcVar3 + 1);\n    pcVar3 = strrchr((char *)local_10a0,0x5c);\n    if (pcVar3 != (char *)0x0) {\nLAB_001141aa:\n      local_10a0 = (byte *)(pcVar3 + 1);\n    }\n    if (local_10a0 == param_1) goto LAB_001146c0;\n  }\n  lVar4 = FUN_00158359(param_1,&local_1058,&local_1070,&local_1068,local_1060);\n  if (lVar4 == 0) {\n    FUN_0011382c("%s: Cannot open file",param_1);\n  }\n  else if ((DAT_00183370 == 0) || (iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0)) {\n    if (DAT_00183378 != 0) {\n      FUN_0010b956(local_1058,local_1050,local_1048);\n      FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);\n    }\n    iVar1 = FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0]);\n    if (iVar1 == 0) {\n      auVar18 = FUN_0010baa3(0,0);\n      tVar5 = time((time_t *)0x0);\n      auVar19 = FUN_0010baa3(0,0);\n      local_1088 = 0;\n      while( true ) {\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }\n      FUN_001584ca(lVar4);\n      FUN_00113d4a();\n    }\n    else {\n      FUN_001584ca(lVar4);\n    }\n  }\n  else {\n    FUN_001584ca(lVar4);\n  }\nLAB_00114299:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "time_t tVar5;" type_identifier identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "time_t tVar10;" type_identifier identifier ;) (declaration "int extraout_EDX;" primitive_type identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "bool bVar14;" primitive_type identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "undefined1 auVar18 [16];" type_identifier (array_declarator "auVar18 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 auVar19 [16];" type_identifier (array_declarator "auVar19 [16]" identifier [ number_literal ]) ;) (declaration "byte *local_10a0;" type_identifier (pointer_declarator "*local_10a0" * identifier) ;) (declaration "undefined8 local_1098;" type_identifier identifier ;) (declaration "undefined8 local_1090;" type_identifier identifier ;) (declaration "long local_1088;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_1070;" type_identifier identifier ;) (declaration "undefined8 local_1068;" type_identifier identifier ;) (declaration "undefined4 local_1060 [2];" type_identifier (array_declarator "local_1060 [2]" identifier [ number_literal ]) ;) (declaration "undefined8 local_1058;" type_identifier identifier ;) (declaration "undefined8 local_1050;" type_identifier identifier ;) (declaration "undefined1 local_1048 [4104];" type_identifier (array_declarator "local_1048 [4104]" identifier [ number_literal ]) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = FUN_0015874b();" (assignment_expression "iVar1 = FUN_0015874b()" identifier = (call_expression "FUN_0015874b()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar1 == 0) || (iVar1 == 3)) {\n    pcVar3 = "Not a";\n    if (iVar1 != 3) {\n      pcVar3 = "No such";\n    }\n    FUN_0011382c("%s: %s file or directory",param_1,pcVar3);\n    goto LAB_00114299;\n  }" if (parenthesized_expression "((iVar1 == 0) || (iVar1 == 3))" ( (binary_expression "(iVar1 == 0) || (iVar1 == 3)" (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar1 == 3)" ( (binary_expression "iVar1 == 3" identifier == number_literal) ))) )) (compound_statement "{\n    pcVar3 = "Not a";\n    if (iVar1 != 3) {\n      pcVar3 = "No such";\n    }\n    FUN_0011382c("%s: %s file or directory",param_1,pcVar3);\n    goto LAB_00114299;\n  }" { (expression_statement "pcVar3 = "Not a";" (assignment_expression "pcVar3 = "Not a"" identifier = (string_literal ""Not a"" " string_content ")) ;) (if_statement "if (iVar1 != 3) {\n      pcVar3 = "No such";\n    }" if (parenthesized_expression "(iVar1 != 3)" ( (binary_expression "iVar1 != 3" identifier != number_literal) )) (compound_statement "{\n      pcVar3 = "No such";\n    }" { (expression_statement "pcVar3 = "No such";" (assignment_expression "pcVar3 = "No such"" identifier = (string_literal ""No such"" " string_content ")) ;) })) (expression_statement "FUN_0011382c("%s: %s file or directory",param_1,pcVar3);" (call_expression "FUN_0011382c("%s: %s file or directory",param_1,pcVar3)" identifier (argument_list "("%s: %s file or directory",param_1,pcVar3)" ( (string_literal ""%s: %s file or directory"" " string_content ") , identifier , identifier ))) ;) (goto_statement "goto LAB_00114299;" goto statement_identifier ;) })) (if_statement "if (iVar1 == 2) {\n    if (DAT_00183374 == 0) {\n      FUN_0011382c("%s: not a regular file",param_1);\n      goto LAB_00114299;\n    }\n    pcVar6 = strrchr((char *)param_1,0x2f);\n    pcVar3 = pcVar6;\n    if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      bVar14 = false;\n      bVar16 = pcVar3 == (char *)0x0;\n      pbVar11 = param_1;\n      if (!bVar16) goto LAB_001142e8;\n    }\n    else {\nLAB_001142e8:\n      bVar14 = (char *)0xfffffffffffffffe < pcVar3;\n      bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0;\n      pbVar11 = (byte *)(pcVar3 + 1);\n    }\n    lVar4 = 2;\n    pbVar12 = pbVar11;\n    pbVar13 = (byte *)0x15eb4d;\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar14 = *pbVar12 < *pbVar13;\n      bVar16 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    bVar15 = false;\n    bVar14 = (!bVar14 && !bVar16) == bVar14;\n    if (bVar14) goto LAB_00114299;\n    lVar4 = 3;\n    pbVar12 = (byte *)0x15eb4c;\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar15 = *pbVar11 < *pbVar12;\n      bVar14 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar17 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n    } while (bVar14);\n    if ((!bVar15 && !bVar14) == bVar15) goto LAB_00114299;\n    if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      pbVar11 = param_1;\n      if (pcVar3 != (char *)0x0) goto LAB_00114344;\nLAB_0011468d:\n      pcVar3 = strchr((char *)param_1,0x3a);\n      if (pcVar3 != (char *)0x0) {\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n    }\n    else {\n      pbVar11 = (byte *)(pcVar6 + 1);\n      pcVar3 = strrchr((char *)pbVar11,0x5c);\n      if (pcVar3 != (char *)0x0) {\nLAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n      if (param_1 == pbVar11) goto LAB_0011468d;\n    }\n    uVar7 = FUN_00113ee9();\n    if (DAT_00183378 != 0) {\n      FUN_00111e5a(stderr,"Entering directory: %s",pbVar11);\n    }\n    iVar1 = FUN_00113f10(pbVar11,0x1ed);\n    if (iVar1 == 0) {\n      lVar4 = FUN_00158804(param_1);\n      if (lVar4 != 0) {\n        while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }\n      }\n      FUN_00158855(lVar4);\n      FUN_001140ec();\n      FUN_00113eff(uVar7);\n    }\n    goto LAB_00114299;\n  }" if (parenthesized_expression "(iVar1 == 2)" ( (binary_expression "iVar1 == 2" identifier == number_literal) )) (compound_statement "{\n    if (DAT_00183374 == 0) {\n      FUN_0011382c("%s: not a regular file",param_1);\n      goto LAB_00114299;\n    }\n    pcVar6 = strrchr((char *)param_1,0x2f);\n    pcVar3 = pcVar6;\n    if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      bVar14 = false;\n      bVar16 = pcVar3 == (char *)0x0;\n      pbVar11 = param_1;\n      if (!bVar16) goto LAB_001142e8;\n    }\n    else {\nLAB_001142e8:\n      bVar14 = (char *)0xfffffffffffffffe < pcVar3;\n      bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0;\n      pbVar11 = (byte *)(pcVar3 + 1);\n    }\n    lVar4 = 2;\n    pbVar12 = pbVar11;\n    pbVar13 = (byte *)0x15eb4d;\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar14 = *pbVar12 < *pbVar13;\n      bVar16 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    bVar15 = false;\n    bVar14 = (!bVar14 && !bVar16) == bVar14;\n    if (bVar14) goto LAB_00114299;\n    lVar4 = 3;\n    pbVar12 = (byte *)0x15eb4c;\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar15 = *pbVar11 < *pbVar12;\n      bVar14 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar17 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n    } while (bVar14);\n    if ((!bVar15 && !bVar14) == bVar15) goto LAB_00114299;\n    if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      pbVar11 = param_1;\n      if (pcVar3 != (char *)0x0) goto LAB_00114344;\nLAB_0011468d:\n      pcVar3 = strchr((char *)param_1,0x3a);\n      if (pcVar3 != (char *)0x0) {\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n    }\n    else {\n      pbVar11 = (byte *)(pcVar6 + 1);\n      pcVar3 = strrchr((char *)pbVar11,0x5c);\n      if (pcVar3 != (char *)0x0) {\nLAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n      if (param_1 == pbVar11) goto LAB_0011468d;\n    }\n    uVar7 = FUN_00113ee9();\n    if (DAT_00183378 != 0) {\n      FUN_00111e5a(stderr,"Entering directory: %s",pbVar11);\n    }\n    iVar1 = FUN_00113f10(pbVar11,0x1ed);\n    if (iVar1 == 0) {\n      lVar4 = FUN_00158804(param_1);\n      if (lVar4 != 0) {\n        while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }\n      }\n      FUN_00158855(lVar4);\n      FUN_001140ec();\n      FUN_00113eff(uVar7);\n    }\n    goto LAB_00114299;\n  }" { (if_statement "if (DAT_00183374 == 0) {\n      FUN_0011382c("%s: not a regular file",param_1);\n      goto LAB_00114299;\n    }" if (parenthesized_expression "(DAT_00183374 == 0)" ( (binary_expression "DAT_00183374 == 0" identifier == number_literal) )) (compound_statement "{\n      FUN_0011382c("%s: not a regular file",param_1);\n      goto LAB_00114299;\n    }" { (expression_statement "FUN_0011382c("%s: not a regular file",param_1);" (call_expression "FUN_0011382c("%s: not a regular file",param_1)" identifier (argument_list "("%s: not a regular file",param_1)" ( (string_literal ""%s: not a regular file"" " string_content ") , identifier ))) ;) (goto_statement "goto LAB_00114299;" goto statement_identifier ;) })) (expression_statement "pcVar6 = strrchr((char *)param_1,0x2f);" (assignment_expression "pcVar6 = strrchr((char *)param_1,0x2f)" identifier = (call_expression "strrchr((char *)param_1,0x2f)" identifier (argument_list "((char *)param_1,0x2f)" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (expression_statement "pcVar3 = pcVar6;" (assignment_expression "pcVar3 = pcVar6" identifier = identifier) ;) (if_statement "if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      bVar14 = false;\n      bVar16 = pcVar3 == (char *)0x0;\n      pbVar11 = param_1;\n      if (!bVar16) goto LAB_001142e8;\n    }\n    else {\nLAB_001142e8:\n      bVar14 = (char *)0xfffffffffffffffe < pcVar3;\n      bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0;\n      pbVar11 = (byte *)(pcVar3 + 1);\n    }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      bVar14 = false;\n      bVar16 = pcVar3 == (char *)0x0;\n      pbVar11 = param_1;\n      if (!bVar16) goto LAB_001142e8;\n    }" { (expression_statement "pcVar3 = strrchr((char *)param_1,0x5c);" (assignment_expression "pcVar3 = strrchr((char *)param_1,0x5c)" identifier = (call_expression "strrchr((char *)param_1,0x5c)" identifier (argument_list "((char *)param_1,0x5c)" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;) (expression_statement "bVar16 = pcVar3 == (char *)0x0;" (assignment_expression "bVar16 = pcVar3 == (char *)0x0" identifier = (binary_expression "pcVar3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (if_statement "if (!bVar16) goto LAB_001142e8;" if (parenthesized_expression "(!bVar16)" ( (unary_expression "!bVar16" ! identifier) )) (goto_statement "goto LAB_001142e8;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_001142e8:\n      bVar14 = (char *)0xfffffffffffffffe < pcVar3;\n      bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0;\n      pbVar11 = (byte *)(pcVar3 + 1);\n    }" else (compound_statement "{\nLAB_001142e8:\n      bVar14 = (char *)0xfffffffffffffffe < pcVar3;\n      bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0;\n      pbVar11 = (byte *)(pcVar3 + 1);\n    }" { (labeled_statement "LAB_001142e8:\n      bVar14 = (char *)0xfffffffffffffffe < pcVar3;" statement_identifier : (expression_statement "bVar14 = (char *)0xfffffffffffffffe < pcVar3;" (assignment_expression "bVar14 = (char *)0xfffffffffffffffe < pcVar3" identifier = (binary_expression "(char *)0xfffffffffffffffe < pcVar3" (cast_expression "(char *)0xfffffffffffffffe" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier)) ;)) (expression_statement "bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0;" (assignment_expression "bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0" identifier = (binary_expression "(byte *)(pcVar3 + 1) == (byte *)0x0" (cast_expression "(byte *)(pcVar3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 1)" ( (binary_expression "pcVar3 + 1" identifier + number_literal) ))) == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar11 = (byte *)(pcVar3 + 1);" (assignment_expression "pbVar11 = (byte *)(pcVar3 + 1)" identifier = (cast_expression "(byte *)(pcVar3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 1)" ( (binary_expression "pcVar3 + 1" identifier + number_literal) )))) ;) }))) (expression_statement "lVar4 = 2;" (assignment_expression "lVar4 = 2" identifier = number_literal) ;) (expression_statement "pbVar12 = pbVar11;" (assignment_expression "pbVar12 = pbVar11" identifier = identifier) ;) (expression_statement "pbVar13 = (byte *)0x15eb4d;" (assignment_expression "pbVar13 = (byte *)0x15eb4d" identifier = (cast_expression "(byte *)0x15eb4d" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar14 = *pbVar12 < *pbVar13;\n      bVar16 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);" do (compound_statement "{\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar14 = *pbVar12 < *pbVar13;\n      bVar16 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n    }" { (if_statement "if (lVar4 == 0) break;" if (parenthesized_expression "(lVar4 == 0)" ( (binary_expression "lVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar4 = lVar4 + -1;" (assignment_expression "lVar4 = lVar4 + -1" identifier = (binary_expression "lVar4 + -1" identifier + number_literal)) ;) (expression_statement "bVar14 = *pbVar12 < *pbVar13;" (assignment_expression "bVar14 = *pbVar12 < *pbVar13" identifier = (binary_expression "*pbVar12 < *pbVar13" (pointer_expression "*pbVar12" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar16 = *pbVar12 == *pbVar13;" (assignment_expression "bVar16 = *pbVar12 == *pbVar13" identifier = (binary_expression "*pbVar12 == *pbVar13" (pointer_expression "*pbVar12" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "bVar14 = (!bVar14 && !bVar16) == bVar14;" (assignment_expression "bVar14 = (!bVar14 && !bVar16) == bVar14" identifier = (binary_expression "(!bVar14 && !bVar16) == bVar14" (parenthesized_expression "(!bVar14 && !bVar16)" ( (binary_expression "!bVar14 && !bVar16" (unary_expression "!bVar14" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar14) goto LAB_00114299;" if (parenthesized_expression "(bVar14)" ( identifier )) (goto_statement "goto LAB_00114299;" goto statement_identifier ;)) (expression_statement "lVar4 = 3;" (assignment_expression "lVar4 = 3" identifier = number_literal) ;) (expression_statement "pbVar12 = (byte *)0x15eb4c;" (assignment_expression "pbVar12 = (byte *)0x15eb4c" identifier = (cast_expression "(byte *)0x15eb4c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar15 = *pbVar11 < *pbVar12;\n      bVar14 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar17 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n    } while (bVar14);" do (compound_statement "{\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar15 = *pbVar11 < *pbVar12;\n      bVar14 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar17 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n    }" { (if_statement "if (lVar4 == 0) break;" if (parenthesized_expression "(lVar4 == 0)" ( (binary_expression "lVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar4 = lVar4 + -1;" (assignment_expression "lVar4 = lVar4 + -1" identifier = (binary_expression "lVar4 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar11 < *pbVar12;" (assignment_expression "bVar15 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar14 = *pbVar11 == *pbVar12;" (assignment_expression "bVar14 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar14)" ( identifier )) ;) (if_statement "if ((!bVar15 && !bVar14) == bVar15) goto LAB_00114299;" if (parenthesized_expression "((!bVar15 && !bVar14) == bVar15)" ( (binary_expression "(!bVar15 && !bVar14) == bVar15" (parenthesized_expression "(!bVar15 && !bVar14)" ( (binary_expression "!bVar15 && !bVar14" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar14" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_00114299;" goto statement_identifier ;)) (if_statement "if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      pbVar11 = param_1;\n      if (pcVar3 != (char *)0x0) goto LAB_00114344;\nLAB_0011468d:\n      pcVar3 = strchr((char *)param_1,0x3a);\n      if (pcVar3 != (char *)0x0) {\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n    }\n    else {\n      pbVar11 = (byte *)(pcVar6 + 1);\n      pcVar3 = strrchr((char *)pbVar11,0x5c);\n      if (pcVar3 != (char *)0x0) {\nLAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n      if (param_1 == pbVar11) goto LAB_0011468d;\n    }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      pbVar11 = param_1;\n      if (pcVar3 != (char *)0x0) goto LAB_00114344;\nLAB_0011468d:\n      pcVar3 = strchr((char *)param_1,0x3a);\n      if (pcVar3 != (char *)0x0) {\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n    }" { (expression_statement "pcVar3 = strrchr((char *)param_1,0x5c);" (assignment_expression "pcVar3 = strrchr((char *)param_1,0x5c)" identifier = (call_expression "strrchr((char *)param_1,0x5c)" identifier (argument_list "((char *)param_1,0x5c)" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (if_statement "if (pcVar3 != (char *)0x0) goto LAB_00114344;" if (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00114344;" goto statement_identifier ;)) (labeled_statement "LAB_0011468d:\n      pcVar3 = strchr((char *)param_1,0x3a);" statement_identifier : (expression_statement "pcVar3 = strchr((char *)param_1,0x3a);" (assignment_expression "pcVar3 = strchr((char *)param_1,0x3a)" identifier = (call_expression "strchr((char *)param_1,0x3a)" identifier (argument_list "((char *)param_1,0x3a)" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;)) (if_statement "if (pcVar3 != (char *)0x0) {\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }" if (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }" { (expression_statement "pbVar11 = (byte *)(pcVar3 + 1);" (assignment_expression "pbVar11 = (byte *)(pcVar3 + 1)" identifier = (cast_expression "(byte *)(pcVar3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 1)" ( (binary_expression "pcVar3 + 1" identifier + number_literal) )))) ;) })) }) (else_clause "else {\n      pbVar11 = (byte *)(pcVar6 + 1);\n      pcVar3 = strrchr((char *)pbVar11,0x5c);\n      if (pcVar3 != (char *)0x0) {\nLAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n      if (param_1 == pbVar11) goto LAB_0011468d;\n    }" else (compound_statement "{\n      pbVar11 = (byte *)(pcVar6 + 1);\n      pcVar3 = strrchr((char *)pbVar11,0x5c);\n      if (pcVar3 != (char *)0x0) {\nLAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n      if (param_1 == pbVar11) goto LAB_0011468d;\n    }" { (expression_statement "pbVar11 = (byte *)(pcVar6 + 1);" (assignment_expression "pbVar11 = (byte *)(pcVar6 + 1)" identifier = (cast_expression "(byte *)(pcVar6 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 1)" ( (binary_expression "pcVar6 + 1" identifier + number_literal) )))) ;) (expression_statement "pcVar3 = strrchr((char *)pbVar11,0x5c);" (assignment_expression "pcVar3 = strrchr((char *)pbVar11,0x5c)" identifier = (call_expression "strrchr((char *)pbVar11,0x5c)" identifier (argument_list "((char *)pbVar11,0x5c)" ( (cast_expression "(char *)pbVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar3 != (char *)0x0) {\nLAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }" if (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }" { (labeled_statement "LAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);" statement_identifier : (expression_statement "pbVar11 = (byte *)(pcVar3 + 1);" (assignment_expression "pbVar11 = (byte *)(pcVar3 + 1)" identifier = (cast_expression "(byte *)(pcVar3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 1)" ( (binary_expression "pcVar3 + 1" identifier + number_literal) )))) ;)) })) (if_statement "if (param_1 == pbVar11) goto LAB_0011468d;" if (parenthesized_expression "(param_1 == pbVar11)" ( (binary_expression "param_1 == pbVar11" identifier == identifier) )) (goto_statement "goto LAB_0011468d;" goto statement_identifier ;)) }))) (expression_statement "uVar7 = FUN_00113ee9();" (assignment_expression "uVar7 = FUN_00113ee9()" identifier = (call_expression "FUN_00113ee9()" identifier (argument_list "()" ( )))) ;) (if_statement "if (DAT_00183378 != 0) {\n      FUN_00111e5a(stderr,"Entering directory: %s",pbVar11);\n    }" if (parenthesized_expression "(DAT_00183378 != 0)" ( (binary_expression "DAT_00183378 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_00111e5a(stderr,"Entering directory: %s",pbVar11);\n    }" { (expression_statement "FUN_00111e5a(stderr,"Entering directory: %s",pbVar11);" (call_expression "FUN_00111e5a(stderr,"Entering directory: %s",pbVar11)" identifier (argument_list "(stderr,"Entering directory: %s",pbVar11)" ( identifier , (string_literal ""Entering directory: %s"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar1 = FUN_00113f10(pbVar11,0x1ed);" (assignment_expression "iVar1 = FUN_00113f10(pbVar11,0x1ed)" identifier = (call_expression "FUN_00113f10(pbVar11,0x1ed)" identifier (argument_list "(pbVar11,0x1ed)" ( identifier , number_literal )))) ;) (if_statement "if (iVar1 == 0) {\n      lVar4 = FUN_00158804(param_1);\n      if (lVar4 != 0) {\n        while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }\n      }\n      FUN_00158855(lVar4);\n      FUN_001140ec();\n      FUN_00113eff(uVar7);\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      lVar4 = FUN_00158804(param_1);\n      if (lVar4 != 0) {\n        while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }\n      }\n      FUN_00158855(lVar4);\n      FUN_001140ec();\n      FUN_00113eff(uVar7);\n    }" { (expression_statement "lVar4 = FUN_00158804(param_1);" (assignment_expression "lVar4 = FUN_00158804(param_1)" identifier = (call_expression "FUN_00158804(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (lVar4 != 0) {\n        while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }\n      }" if (parenthesized_expression "(lVar4 != 0)" ( (binary_expression "lVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }\n      }" { (while_statement "while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }" while (parenthesized_expression "(lVar9 = FUN_00158826(lVar4), lVar9 != 0)" ( (comma_expression "lVar9 = FUN_00158826(lVar4), lVar9 != 0" (assignment_expression "lVar9 = FUN_00158826(lVar4)" identifier = (call_expression "FUN_00158826(lVar4)" identifier (argument_list "(lVar4)" ( identifier )))) , (binary_expression "lVar9 != 0" identifier != number_literal)) )) (compound_statement "{\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }" { (expression_statement "uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);" (assignment_expression "uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0)" identifier = (call_expression "FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0)" identifier (argument_list "(param_1,&DAT_0015ecb1,lVar9,0)" ( identifier , (pointer_expression "&DAT_0015ecb1" & identifier) , identifier , number_literal )))) ;) (expression_statement "FUN_00114133(uVar8);" (call_expression "FUN_00114133(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))) ;) (expression_statement "FUN_0010da9f(uVar8);" (call_expression "FUN_0010da9f(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))) ;) (expression_statement "FUN_0010da9f(lVar9);" (call_expression "FUN_0010da9f(lVar9)" identifier (argument_list "(lVar9)" ( identifier ))) ;) })) })) (expression_statement "FUN_00158855(lVar4);" (call_expression "FUN_00158855(lVar4)" identifier (argument_list "(lVar4)" ( identifier ))) ;) (expression_statement "FUN_001140ec();" (call_expression "FUN_001140ec()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00113eff(uVar7);" (call_expression "FUN_00113eff(uVar7)" identifier (argument_list "(uVar7)" ( identifier ))) ;) })) (goto_statement "goto LAB_00114299;" goto statement_identifier ;) })) (expression_statement "pcVar3 = strrchr((char *)param_1,0x2f);" (assignment_expression "pcVar3 = strrchr((char *)param_1,0x2f)" identifier = (call_expression "strrchr((char *)param_1,0x2f)" identifier (argument_list "((char *)param_1,0x2f)" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar3 == (char *)0x0) {\n    pcVar3 = strrchr((char *)param_1,0x5c);\n    if (pcVar3 != (char *)0x0) goto LAB_001141aa;\nLAB_001146c0:\n    pcVar3 = strchr((char *)param_1,0x3a);\n    local_10a0 = (byte *)(pcVar3 + 1);\n    if (pcVar3 == (char *)0x0) {\n      local_10a0 = param_1;\n    }\n  }\n  else {\n    local_10a0 = (byte *)(pcVar3 + 1);\n    pcVar3 = strrchr((char *)local_10a0,0x5c);\n    if (pcVar3 != (char *)0x0) {\nLAB_001141aa:\n      local_10a0 = (byte *)(pcVar3 + 1);\n    }\n    if (local_10a0 == param_1) goto LAB_001146c0;\n  }" if (parenthesized_expression "(pcVar3 == (char *)0x0)" ( (binary_expression "pcVar3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar3 = strrchr((char *)param_1,0x5c);\n    if (pcVar3 != (char *)0x0) goto LAB_001141aa;\nLAB_001146c0:\n    pcVar3 = strchr((char *)param_1,0x3a);\n    local_10a0 = (byte *)(pcVar3 + 1);\n    if (pcVar3 == (char *)0x0) {\n      local_10a0 = param_1;\n    }\n  }" { (expression_statement "pcVar3 = strrchr((char *)param_1,0x5c);" (assignment_expression "pcVar3 = strrchr((char *)param_1,0x5c)" identifier = (call_expression "strrchr((char *)param_1,0x5c)" identifier (argument_list "((char *)param_1,0x5c)" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar3 != (char *)0x0) goto LAB_001141aa;" if (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001141aa;" goto statement_identifier ;)) (labeled_statement "LAB_001146c0:\n    pcVar3 = strchr((char *)param_1,0x3a);" statement_identifier : (expression_statement "pcVar3 = strchr((char *)param_1,0x3a);" (assignment_expression "pcVar3 = strchr((char *)param_1,0x3a)" identifier = (call_expression "strchr((char *)param_1,0x3a)" identifier (argument_list "((char *)param_1,0x3a)" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;)) (expression_statement "local_10a0 = (byte *)(pcVar3 + 1);" (assignment_expression "local_10a0 = (byte *)(pcVar3 + 1)" identifier = (cast_expression "(byte *)(pcVar3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 1)" ( (binary_expression "pcVar3 + 1" identifier + number_literal) )))) ;) (if_statement "if (pcVar3 == (char *)0x0) {\n      local_10a0 = param_1;\n    }" if (parenthesized_expression "(pcVar3 == (char *)0x0)" ( (binary_expression "pcVar3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_10a0 = param_1;\n    }" { (expression_statement "local_10a0 = param_1;" (assignment_expression "local_10a0 = param_1" identifier = identifier) ;) })) }) (else_clause "else {\n    local_10a0 = (byte *)(pcVar3 + 1);\n    pcVar3 = strrchr((char *)local_10a0,0x5c);\n    if (pcVar3 != (char *)0x0) {\nLAB_001141aa:\n      local_10a0 = (byte *)(pcVar3 + 1);\n    }\n    if (local_10a0 == param_1) goto LAB_001146c0;\n  }" else (compound_statement "{\n    local_10a0 = (byte *)(pcVar3 + 1);\n    pcVar3 = strrchr((char *)local_10a0,0x5c);\n    if (pcVar3 != (char *)0x0) {\nLAB_001141aa:\n      local_10a0 = (byte *)(pcVar3 + 1);\n    }\n    if (local_10a0 == param_1) goto LAB_001146c0;\n  }" { (expression_statement "local_10a0 = (byte *)(pcVar3 + 1);" (assignment_expression "local_10a0 = (byte *)(pcVar3 + 1)" identifier = (cast_expression "(byte *)(pcVar3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 1)" ( (binary_expression "pcVar3 + 1" identifier + number_literal) )))) ;) (expression_statement "pcVar3 = strrchr((char *)local_10a0,0x5c);" (assignment_expression "pcVar3 = strrchr((char *)local_10a0,0x5c)" identifier = (call_expression "strrchr((char *)local_10a0,0x5c)" identifier (argument_list "((char *)local_10a0,0x5c)" ( (cast_expression "(char *)local_10a0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar3 != (char *)0x0) {\nLAB_001141aa:\n      local_10a0 = (byte *)(pcVar3 + 1);\n    }" if (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_001141aa:\n      local_10a0 = (byte *)(pcVar3 + 1);\n    }" { (labeled_statement "LAB_001141aa:\n      local_10a0 = (byte *)(pcVar3 + 1);" statement_identifier : (expression_statement "local_10a0 = (byte *)(pcVar3 + 1);" (assignment_expression "local_10a0 = (byte *)(pcVar3 + 1)" identifier = (cast_expression "(byte *)(pcVar3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 1)" ( (binary_expression "pcVar3 + 1" identifier + number_literal) )))) ;)) })) (if_statement "if (local_10a0 == param_1) goto LAB_001146c0;" if (parenthesized_expression "(local_10a0 == param_1)" ( (binary_expression "local_10a0 == param_1" identifier == identifier) )) (goto_statement "goto LAB_001146c0;" goto statement_identifier ;)) }))) (expression_statement "lVar4 = FUN_00158359(param_1,&local_1058,&local_1070,&local_1068,local_1060);" (assignment_expression "lVar4 = FUN_00158359(param_1,&local_1058,&local_1070,&local_1068,local_1060)" identifier = (call_expression "FUN_00158359(param_1,&local_1058,&local_1070,&local_1068,local_1060)" identifier (argument_list "(param_1,&local_1058,&local_1070,&local_1068,local_1060)" ( identifier , (pointer_expression "&local_1058" & identifier) , (pointer_expression "&local_1070" & identifier) , (pointer_expression "&local_1068" & identifier) , identifier )))) ;) (if_statement "if (lVar4 == 0) {\n    FUN_0011382c("%s: Cannot open file",param_1);\n  }\n  else if ((DAT_00183370 == 0) || (iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0)) {\n    if (DAT_00183378 != 0) {\n      FUN_0010b956(local_1058,local_1050,local_1048);\n      FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);\n    }\n    iVar1 = FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0]);\n    if (iVar1 == 0) {\n      auVar18 = FUN_0010baa3(0,0);\n      tVar5 = time((time_t *)0x0);\n      auVar19 = FUN_0010baa3(0,0);\n      local_1088 = 0;\n      while( true ) {\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }\n      FUN_001584ca(lVar4);\n      FUN_00113d4a();\n    }\n    else {\n      FUN_001584ca(lVar4);\n    }\n  }\n  else {\n    FUN_001584ca(lVar4);\n  }" if (parenthesized_expression "(lVar4 == 0)" ( (binary_expression "lVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_0011382c("%s: Cannot open file",param_1);\n  }" { (expression_statement "FUN_0011382c("%s: Cannot open file",param_1);" (call_expression "FUN_0011382c("%s: Cannot open file",param_1)" identifier (argument_list "("%s: Cannot open file",param_1)" ( (string_literal ""%s: Cannot open file"" " string_content ") , identifier ))) ;) }) (else_clause "else if ((DAT_00183370 == 0) || (iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0)) {\n    if (DAT_00183378 != 0) {\n      FUN_0010b956(local_1058,local_1050,local_1048);\n      FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);\n    }\n    iVar1 = FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0]);\n    if (iVar1 == 0) {\n      auVar18 = FUN_0010baa3(0,0);\n      tVar5 = time((time_t *)0x0);\n      auVar19 = FUN_0010baa3(0,0);\n      local_1088 = 0;\n      while( true ) {\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }\n      FUN_001584ca(lVar4);\n      FUN_00113d4a();\n    }\n    else {\n      FUN_001584ca(lVar4);\n    }\n  }\n  else {\n    FUN_001584ca(lVar4);\n  }" else (if_statement "if ((DAT_00183370 == 0) || (iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0)) {\n    if (DAT_00183378 != 0) {\n      FUN_0010b956(local_1058,local_1050,local_1048);\n      FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);\n    }\n    iVar1 = FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0]);\n    if (iVar1 == 0) {\n      auVar18 = FUN_0010baa3(0,0);\n      tVar5 = time((time_t *)0x0);\n      auVar19 = FUN_0010baa3(0,0);\n      local_1088 = 0;\n      while( true ) {\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }\n      FUN_001584ca(lVar4);\n      FUN_00113d4a();\n    }\n    else {\n      FUN_001584ca(lVar4);\n    }\n  }\n  else {\n    FUN_001584ca(lVar4);\n  }" if (parenthesized_expression "((DAT_00183370 == 0) || (iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0))" ( (binary_expression "(DAT_00183370 == 0) || (iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0)" (parenthesized_expression "(DAT_00183370 == 0)" ( (binary_expression "DAT_00183370 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0)" ( (comma_expression "iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0" (assignment_expression "iVar1 = FUN_00113947(local_1070,local_1068)" identifier = (call_expression "FUN_00113947(local_1070,local_1068)" identifier (argument_list "(local_1070,local_1068)" ( identifier , identifier )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    if (DAT_00183378 != 0) {\n      FUN_0010b956(local_1058,local_1050,local_1048);\n      FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);\n    }\n    iVar1 = FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0]);\n    if (iVar1 == 0) {\n      auVar18 = FUN_0010baa3(0,0);\n      tVar5 = time((time_t *)0x0);\n      auVar19 = FUN_0010baa3(0,0);\n      local_1088 = 0;\n      while( true ) {\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }\n      FUN_001584ca(lVar4);\n      FUN_00113d4a();\n    }\n    else {\n      FUN_001584ca(lVar4);\n    }\n  }" { (if_statement "if (DAT_00183378 != 0) {\n      FUN_0010b956(local_1058,local_1050,local_1048);\n      FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);\n    }" if (parenthesized_expression "(DAT_00183378 != 0)" ( (binary_expression "DAT_00183378 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_0010b956(local_1058,local_1050,local_1048);\n      FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);\n    }" { (expression_statement "FUN_0010b956(local_1058,local_1050,local_1048);" (call_expression "FUN_0010b956(local_1058,local_1050,local_1048)" identifier (argument_list "(local_1058,local_1050,local_1048)" ( identifier , identifier , identifier ))) ;) (expression_statement "FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);" (call_expression "FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048)" identifier (argument_list "(stderr,"Sending file %s, size=%s",local_10a0,local_1048)" ( identifier , (string_literal ""Sending file %s, size=%s"" " string_content ") , identifier , identifier ))) ;) })) (expression_statement "iVar1 = FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0]);" (assignment_expression "iVar1 = FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0])" identifier = (call_expression "FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0])" identifier (argument_list "(local_10a0,local_1058,local_1050,local_1060[0])" ( identifier , identifier , identifier , (subscript_expression "local_1060[0]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar1 == 0) {\n      auVar18 = FUN_0010baa3(0,0);\n      tVar5 = time((time_t *)0x0);\n      auVar19 = FUN_0010baa3(0,0);\n      local_1088 = 0;\n      while( true ) {\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }\n      FUN_001584ca(lVar4);\n      FUN_00113d4a();\n    }\n    else {\n      FUN_001584ca(lVar4);\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      auVar18 = FUN_0010baa3(0,0);\n      tVar5 = time((time_t *)0x0);\n      auVar19 = FUN_0010baa3(0,0);\n      local_1088 = 0;\n      while( true ) {\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }\n      FUN_001584ca(lVar4);\n      FUN_00113d4a();\n    }" { (expression_statement "auVar18 = FUN_0010baa3(0,0);" (assignment_expression "auVar18 = FUN_0010baa3(0,0)" identifier = (call_expression "FUN_0010baa3(0,0)" identifier (argument_list "(0,0)" ( number_literal , number_literal )))) ;) (expression_statement "tVar5 = time((time_t *)0x0);" (assignment_expression "tVar5 = time((time_t *)0x0)" identifier = (call_expression "time((time_t *)0x0)" identifier (argument_list "((time_t *)0x0)" ( (cast_expression "(time_t *)0x0" ( (type_descriptor "time_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "auVar19 = FUN_0010baa3(0,0);" (assignment_expression "auVar19 = FUN_0010baa3(0,0)" identifier = (call_expression "FUN_0010baa3(0,0)" identifier (argument_list "(0,0)" ( number_literal , number_literal )))) ;) (expression_statement "local_1088 = 0;" (assignment_expression "local_1088 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }" { (expression_statement "uVar7 = auVar19._8_8_;" (assignment_expression "uVar7 = auVar19._8_8_" identifier = (field_expression "auVar19._8_8_" identifier . field_identifier)) ;) (expression_statement "uVar8 = auVar19._0_8_;" (assignment_expression "uVar8 = auVar19._0_8_" identifier = (field_expression "auVar19._0_8_" identifier . field_identifier)) ;) (expression_statement "local_1090 = auVar18._8_8_;" (assignment_expression "local_1090 = auVar18._8_8_" identifier = (field_expression "auVar18._8_8_" identifier . field_identifier)) ;) (expression_statement "local_1098 = auVar18._0_8_;" (assignment_expression "local_1098 = auVar18._0_8_" identifier = (field_expression "auVar18._0_8_" identifier . field_identifier)) ;) (expression_statement "iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);" (assignment_expression "iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050)" identifier = (call_expression "FUN_0010bac6(uVar8,uVar7,local_1058,local_1050)" identifier (argument_list "(uVar8,uVar7,local_1058,local_1050)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (-1 < iVar1) break;" if (parenthesized_expression "(-1 < iVar1)" ( (binary_expression "-1 < iVar1" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);" (assignment_expression "auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000)" identifier = (call_expression "FUN_0010bab8(uVar8,uVar7,0x1000)" identifier (argument_list "(uVar8,uVar7,0x1000)" ( identifier , identifier , number_literal )))) ;) (expression_statement "iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);" (assignment_expression "iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050)" identifier = (call_expression "FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050)" identifier (argument_list "(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050)" ( (field_expression "auVar19._0_8_" identifier . field_identifier) , (field_expression "auVar19._8_8_" identifier . field_identifier) , identifier , identifier )))) ;) (expression_statement "iVar1 = 0x1000;" (assignment_expression "iVar1 = 0x1000" identifier = number_literal) ;) (if_statement "if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }" if (parenthesized_expression "(0 < iVar2)" ( (binary_expression "0 < iVar2" number_literal < identifier) )) (compound_statement "{\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }" { (expression_statement "FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);" (call_expression "FUN_0010bae7(local_1058,local_1050,uVar8,uVar7)" identifier (argument_list "(local_1058,local_1050,uVar8,uVar7)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar1 = extraout_EDX;" (assignment_expression "iVar1 = extraout_EDX" identifier = identifier) ;) })) (expression_statement "iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);" (assignment_expression "iVar2 = FUN_001584b7(lVar4,local_1048,iVar1)" identifier = (call_expression "FUN_001584b7(lVar4,local_1048,iVar1)" identifier (argument_list "(lVar4,local_1048,iVar1)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }" if (parenthesized_expression "(iVar1 != iVar2)" ( (binary_expression "iVar1 != iVar2" identifier != identifier) )) (compound_statement "{\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }" { (if_statement "if (DAT_00183070 != 0) {\n            putchar(10);\n          }" if (parenthesized_expression "(DAT_00183070 != 0)" ( (binary_expression "DAT_00183070 != 0" identifier != number_literal) )) (compound_statement "{\n            putchar(10);\n          }" { (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) })) (expression_statement "FUN_0011203b("%s: Read error",param_1);" (call_expression "FUN_0011203b("%s: Read error",param_1)" identifier (argument_list "("%s: Read error",param_1)" ( (string_literal ""%s: Read error"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar2 = FUN_00113c18(local_1048,iVar1);" (assignment_expression "iVar2 = FUN_00113c18(local_1048,iVar1)" identifier = (call_expression "FUN_00113c18(local_1048,iVar1)" identifier (argument_list "(local_1048,iVar1)" ( identifier , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }" { (expression_statement "FUN_0011203b("%s: Network error occurred",param_1);" (call_expression "FUN_0011203b("%s: Network error occurred",param_1)" identifier (argument_list "("%s: Network error occurred",param_1)" ( (string_literal ""%s: Network error occurred"" " string_content ") , identifier ))) ;) })) (if_statement "if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }" if (parenthesized_expression "(DAT_00183070 != 0)" ( (binary_expression "DAT_00183070 != 0" identifier != number_literal) )) (compound_statement "{\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }" { (expression_statement "auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);" (assignment_expression "auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1)" identifier = (call_expression "FUN_0010bab8(local_1098,local_1090,(long)iVar1)" identifier (argument_list "(local_1098,local_1090,(long)iVar1)" ( identifier , identifier , (cast_expression "(long)iVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) )))) ;) (expression_statement "tVar10 = time((time_t *)0x0);" (assignment_expression "tVar10 = time((time_t *)0x0)" identifier = (call_expression "time((time_t *)0x0)" identifier (argument_list "((time_t *)0x0)" ( (cast_expression "(time_t *)0x0" ( (type_descriptor "time_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }" if (parenthesized_expression "(tVar10 == local_1088)" ( (binary_expression "tVar10 == local_1088" identifier == identifier) )) (compound_statement "{\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }" { (expression_statement "auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);" (assignment_expression "auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1)" identifier = (call_expression "FUN_0010bab8(uVar8,uVar7,(long)iVar1)" identifier (argument_list "(uVar8,uVar7,(long)iVar1)" ( identifier , identifier , (cast_expression "(long)iVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) )))) ;) (expression_statement "iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);" (assignment_expression "iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050)" identifier = (call_expression "FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050)" identifier (argument_list "(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050)" ( (field_expression "auVar19._0_8_" identifier . field_identifier) , (field_expression "auVar19._8_8_" identifier . field_identifier) , identifier , identifier )))) ;) (if_statement "if (iVar1 != 0) goto LAB_00114520;" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00114520;" goto statement_identifier ;)) })) (expression_statement "local_1088 = time((time_t *)0x0);" (assignment_expression "local_1088 = time((time_t *)0x0)" identifier = (call_expression "time((time_t *)0x0)" identifier (argument_list "((time_t *)0x0)" ( (cast_expression "(time_t *)0x0" ( (type_descriptor "time_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );" (call_expression "FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      )" identifier (argument_list "(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      )" ( identifier , identifier , identifier , (field_expression "auVar18._0_8_" identifier . field_identifier) , (field_expression "auVar18._8_8_" identifier . field_identifier) , identifier , identifier ))) ;) })) (labeled_statement "LAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);" statement_identifier : (expression_statement "auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);" (assignment_expression "auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000)" identifier = (call_expression "FUN_0010bab8(uVar8,uVar7,0x1000)" identifier (argument_list "(uVar8,uVar7,0x1000)" ( identifier , identifier , number_literal )))) ;)) })) (expression_statement "FUN_001584ca(lVar4);" (call_expression "FUN_001584ca(lVar4)" identifier (argument_list "(lVar4)" ( identifier ))) ;) (expression_statement "FUN_00113d4a();" (call_expression "FUN_00113d4a()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n      FUN_001584ca(lVar4);\n    }" else (compound_statement "{\n      FUN_001584ca(lVar4);\n    }" { (expression_statement "FUN_001584ca(lVar4);" (call_expression "FUN_001584ca(lVar4)" identifier (argument_list "(lVar4)" ( identifier ))) ;) }))) }) (else_clause "else {\n    FUN_001584ca(lVar4);\n  }" else (compound_statement "{\n    FUN_001584ca(lVar4);\n  }" { (expression_statement "FUN_001584ca(lVar4);" (call_expression "FUN_001584ca(lVar4)" identifier (argument_list "(lVar4)" ( identifier ))) ;) }))))) (labeled_statement "LAB_00114299:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return;" return ;) })))
(translation_unit "void source(char *src)\n\n{\n  long lVar1;\n  int iVar2;\n  char *pcVar3;\n  RFile *f;\n  time_t start;\n  byte *pbVar4;\n  char *pcVar5;\n  DirHandle *dir;\n  char *src_00;\n  time_t tVar6;\n  long lVar7;\n  int length;\n  byte *pbVar8;\n  byte *pbVar9;\n  long in_FS_OFFSET;\n  bool bVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  uint64 x;\n  uint64 uVar14;\n  char *local_10a0;\n  uint64 local_1098;\n  long local_1088;\n  ulong mtime;\n  ulong atime;\n  long permissions;\n  uint64 size;\n  char sizestr [40];\n  \n  bVar13 = 0;\n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar2 = file_type(src);\n  if ((iVar2 == 0) || (iVar2 == 3)) {\n    pcVar3 = "Not a";\n    if (iVar2 != 3) {\n      pcVar3 = "No such";\n    }\n    run_err("%s: %s file or directory",src,pcVar3);\n    goto LAB_00114299;\n  }\n  if (iVar2 == 2) {\n    if (recursive == 0) {\n      run_err("%s: not a regular file",src);\n      goto LAB_00114299;\n    }\n    pcVar3 = strrchr(src,0x2f);\n    pcVar5 = pcVar3;\n    if (pcVar3 == (char *)0x0) {\n      pcVar5 = strrchr(src,0x5c);\n      bVar10 = false;\n      bVar12 = pcVar5 == (char *)0x0;\n      pbVar4 = (byte *)src;\n      if (!bVar12) goto LAB_001142e8;\n    }\n    else {\nLAB_001142e8:\n      bVar10 = (char *)0xfffffffffffffffe < pcVar5;\n      bVar12 = (byte *)(pcVar5 + 1) == (byte *)0x0;\n      pbVar4 = (byte *)(pcVar5 + 1);\n    }\n    lVar7 = 2;\n    pbVar8 = pbVar4;\n    pbVar9 = (byte *)0x15eb4d;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar10 = *pbVar8 < *pbVar9;\n      bVar12 = *pbVar8 == *pbVar9;\n      pbVar8 = pbVar8 + (ulong)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (ulong)bVar13 * -2 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (bVar10) goto LAB_00114299;\n    lVar7 = 3;\n    pbVar8 = (byte *)0x15eb4c;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar11 = *pbVar4 < *pbVar8;\n      bVar10 = *pbVar4 == *pbVar8;\n      pbVar4 = pbVar4 + (ulong)bVar13 * -2 + 1;\n      pbVar8 = pbVar8 + (ulong)bVar13 * -2 + 1;\n    } while (bVar10);\n    if ((!bVar11 && !bVar10) == bVar11) goto LAB_00114299;\n    if (pcVar3 == (char *)0x0) {\n      pcVar5 = strrchr(src,0x5c);\n      pcVar3 = src;\n      if (pcVar5 != (char *)0x0) goto LAB_00114344;\nLAB_0011468d:\n      pcVar5 = strchr(src,0x3a);\n      if (pcVar5 != (char *)0x0) {\n        pcVar3 = pcVar5 + 1;\n      }\n    }\n    else {\n      pcVar3 = pcVar3 + 1;\n      pcVar5 = strrchr(pcVar3,0x5c);\n      if (pcVar5 != (char *)0x0) {\nLAB_00114344:\n        pcVar3 = pcVar5 + 1;\n      }\n      if (src == pcVar3) goto LAB_0011468d;\n    }\n    pcVar5 = scp_save_remotepath();\n    if (verbose != 0) {\n      tell_user(stderr,"Entering directory: %s",pcVar3);\n    }\n    iVar2 = scp_send_dirname(pcVar3,0x1ed);\n    if (iVar2 == 0) {\n      dir = open_directory(src);\n      if (dir != (DirHandle *)0x0) {\n        while (pcVar3 = read_filename(dir), pcVar3 != (char *)0x0) {\n          src_00 = dupcat(src,&DAT_0015ecb1,pcVar3,0);\n          source(src_00);\n          safefree(src_00);\n          safefree(pcVar3);\n        }\n      }\n      close_directory(dir);\n      scp_send_enddir();\n      scp_restore_remotepath(pcVar5);\n    }\n    goto LAB_00114299;\n  }\n  local_10a0 = strrchr(src,0x2f);\n  if (local_10a0 == (char *)0x0) {\n    pcVar3 = strrchr(src,0x5c);\n    if (pcVar3 != (char *)0x0) goto LAB_001141aa;\nLAB_001146c0:\n    pcVar3 = strchr(src,0x3a);\n    local_10a0 = pcVar3 + 1;\n    if (pcVar3 == (char *)0x0) {\n      local_10a0 = src;\n    }\n  }\n  else {\n    local_10a0 = local_10a0 + 1;\n    pcVar3 = strrchr(local_10a0,0x5c);\n    if (pcVar3 != (char *)0x0) {\nLAB_001141aa:\n      local_10a0 = pcVar3 + 1;\n    }\n    if (local_10a0 == src) goto LAB_001146c0;\n  }\n  f = open_existing_file(src,&size,&mtime,&atime,&permissions);\n  if (f == (RFile *)0x0) {\n    run_err("%s: Cannot open file",src);\n  }\n  else if ((preserve == 0) || (iVar2 = scp_send_filetimes(mtime,atime), iVar2 == 0)) {\n    if (verbose != 0) {\n      uint64_decimal(size,sizestr);\n      tell_user(stderr,"Sending file %s, size=%s",local_10a0,sizestr);\n    }\n    iVar2 = scp_send_filename(local_10a0,size,(int)permissions);\n    if (iVar2 == 0) {\n      local_1098 = uint64_make(0,0);\n      start = time((time_t *)0x0);\n      x = uint64_make(0,0);\n      local_1088 = 0;\n      while (iVar2 = uint64_compare(x,size), iVar2 < 0) {\n        uVar14 = uint64_add32(x,0x1000);\n        iVar2 = uint64_compare(uVar14,size);\n        length = 0x1000;\n        if (0 < iVar2) {\n          uVar14 = uint64_subtract(size,x);\n          length = uVar14.lo;\n        }\n        iVar2 = read_from_file(f,sizestr,length);\n        if (length != iVar2) {\n          if (statistics != 0) {\n            putchar(10);\n          }\n          bump("%s: Read error",src);\n        }\n        iVar2 = scp_send_filedata(sizestr,length);\n        if (iVar2 != 0) {\n          bump("%s: Network error occurred",src);\n        }\n        if (statistics != 0) {\n          local_1098 = uint64_add32(local_1098,(long)length);\n          tVar6 = time((time_t *)0x0);\n          if (tVar6 == local_1088) {\n            uVar14 = uint64_add32(x,(long)length);\n            iVar2 = uint64_compare(uVar14,size);\n            if (iVar2 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          print_stats(local_10a0,size,local_1098,start,local_1088);\n        }\nLAB_00114520:\n        x = uint64_add32(x,0x1000);\n      }\n      close_rfile(f);\n      scp_send_finish();\n    }\n    else {\n      close_rfile(f);\n    }\n  }\n  else {\n    close_rfile(f);\n  }\nLAB_00114299:\n  if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return;\n}\n\n" (function_definition "void source(char *src)\n\n{\n  long lVar1;\n  int iVar2;\n  char *pcVar3;\n  RFile *f;\n  time_t start;\n  byte *pbVar4;\n  char *pcVar5;\n  DirHandle *dir;\n  char *src_00;\n  time_t tVar6;\n  long lVar7;\n  int length;\n  byte *pbVar8;\n  byte *pbVar9;\n  long in_FS_OFFSET;\n  bool bVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  uint64 x;\n  uint64 uVar14;\n  char *local_10a0;\n  uint64 local_1098;\n  long local_1088;\n  ulong mtime;\n  ulong atime;\n  long permissions;\n  uint64 size;\n  char sizestr [40];\n  \n  bVar13 = 0;\n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar2 = file_type(src);\n  if ((iVar2 == 0) || (iVar2 == 3)) {\n    pcVar3 = "Not a";\n    if (iVar2 != 3) {\n      pcVar3 = "No such";\n    }\n    run_err("%s: %s file or directory",src,pcVar3);\n    goto LAB_00114299;\n  }\n  if (iVar2 == 2) {\n    if (recursive == 0) {\n      run_err("%s: not a regular file",src);\n      goto LAB_00114299;\n    }\n    pcVar3 = strrchr(src,0x2f);\n    pcVar5 = pcVar3;\n    if (pcVar3 == (char *)0x0) {\n      pcVar5 = strrchr(src,0x5c);\n      bVar10 = false;\n      bVar12 = pcVar5 == (char *)0x0;\n      pbVar4 = (byte *)src;\n      if (!bVar12) goto LAB_001142e8;\n    }\n    else {\nLAB_001142e8:\n      bVar10 = (char *)0xfffffffffffffffe < pcVar5;\n      bVar12 = (byte *)(pcVar5 + 1) == (byte *)0x0;\n      pbVar4 = (byte *)(pcVar5 + 1);\n    }\n    lVar7 = 2;\n    pbVar8 = pbVar4;\n    pbVar9 = (byte *)0x15eb4d;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar10 = *pbVar8 < *pbVar9;\n      bVar12 = *pbVar8 == *pbVar9;\n      pbVar8 = pbVar8 + (ulong)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (ulong)bVar13 * -2 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (bVar10) goto LAB_00114299;\n    lVar7 = 3;\n    pbVar8 = (byte *)0x15eb4c;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar11 = *pbVar4 < *pbVar8;\n      bVar10 = *pbVar4 == *pbVar8;\n      pbVar4 = pbVar4 + (ulong)bVar13 * -2 + 1;\n      pbVar8 = pbVar8 + (ulong)bVar13 * -2 + 1;\n    } while (bVar10);\n    if ((!bVar11 && !bVar10) == bVar11) goto LAB_00114299;\n    if (pcVar3 == (char *)0x0) {\n      pcVar5 = strrchr(src,0x5c);\n      pcVar3 = src;\n      if (pcVar5 != (char *)0x0) goto LAB_00114344;\nLAB_0011468d:\n      pcVar5 = strchr(src,0x3a);\n      if (pcVar5 != (char *)0x0) {\n        pcVar3 = pcVar5 + 1;\n      }\n    }\n    else {\n      pcVar3 = pcVar3 + 1;\n      pcVar5 = strrchr(pcVar3,0x5c);\n      if (pcVar5 != (char *)0x0) {\nLAB_00114344:\n        pcVar3 = pcVar5 + 1;\n      }\n      if (src == pcVar3) goto LAB_0011468d;\n    }\n    pcVar5 = scp_save_remotepath();\n    if (verbose != 0) {\n      tell_user(stderr,"Entering directory: %s",pcVar3);\n    }\n    iVar2 = scp_send_dirname(pcVar3,0x1ed);\n    if (iVar2 == 0) {\n      dir = open_directory(src);\n      if (dir != (DirHandle *)0x0) {\n        while (pcVar3 = read_filename(dir), pcVar3 != (char *)0x0) {\n          src_00 = dupcat(src,&DAT_0015ecb1,pcVar3,0);\n          source(src_00);\n          safefree(src_00);\n          safefree(pcVar3);\n        }\n      }\n      close_directory(dir);\n      scp_send_enddir();\n      scp_restore_remotepath(pcVar5);\n    }\n    goto LAB_00114299;\n  }\n  local_10a0 = strrchr(src,0x2f);\n  if (local_10a0 == (char *)0x0) {\n    pcVar3 = strrchr(src,0x5c);\n    if (pcVar3 != (char *)0x0) goto LAB_001141aa;\nLAB_001146c0:\n    pcVar3 = strchr(src,0x3a);\n    local_10a0 = pcVar3 + 1;\n    if (pcVar3 == (char *)0x0) {\n      local_10a0 = src;\n    }\n  }\n  else {\n    local_10a0 = local_10a0 + 1;\n    pcVar3 = strrchr(local_10a0,0x5c);\n    if (pcVar3 != (char *)0x0) {\nLAB_001141aa:\n      local_10a0 = pcVar3 + 1;\n    }\n    if (local_10a0 == src) goto LAB_001146c0;\n  }\n  f = open_existing_file(src,&size,&mtime,&atime,&permissions);\n  if (f == (RFile *)0x0) {\n    run_err("%s: Cannot open file",src);\n  }\n  else if ((preserve == 0) || (iVar2 = scp_send_filetimes(mtime,atime), iVar2 == 0)) {\n    if (verbose != 0) {\n      uint64_decimal(size,sizestr);\n      tell_user(stderr,"Sending file %s, size=%s",local_10a0,sizestr);\n    }\n    iVar2 = scp_send_filename(local_10a0,size,(int)permissions);\n    if (iVar2 == 0) {\n      local_1098 = uint64_make(0,0);\n      start = time((time_t *)0x0);\n      x = uint64_make(0,0);\n      local_1088 = 0;\n      while (iVar2 = uint64_compare(x,size), iVar2 < 0) {\n        uVar14 = uint64_add32(x,0x1000);\n        iVar2 = uint64_compare(uVar14,size);\n        length = 0x1000;\n        if (0 < iVar2) {\n          uVar14 = uint64_subtract(size,x);\n          length = uVar14.lo;\n        }\n        iVar2 = read_from_file(f,sizestr,length);\n        if (length != iVar2) {\n          if (statistics != 0) {\n            putchar(10);\n          }\n          bump("%s: Read error",src);\n        }\n        iVar2 = scp_send_filedata(sizestr,length);\n        if (iVar2 != 0) {\n          bump("%s: Network error occurred",src);\n        }\n        if (statistics != 0) {\n          local_1098 = uint64_add32(local_1098,(long)length);\n          tVar6 = time((time_t *)0x0);\n          if (tVar6 == local_1088) {\n            uVar14 = uint64_add32(x,(long)length);\n            iVar2 = uint64_compare(uVar14,size);\n            if (iVar2 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          print_stats(local_10a0,size,local_1098,start,local_1088);\n        }\nLAB_00114520:\n        x = uint64_add32(x,0x1000);\n      }\n      close_rfile(f);\n      scp_send_finish();\n    }\n    else {\n      close_rfile(f);\n    }\n  }\n  else {\n    close_rfile(f);\n  }\nLAB_00114299:\n  if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return;\n}" primitive_type (function_declarator "source(char *src)" identifier (parameter_list "(char *src)" ( (parameter_declaration "char *src" primitive_type (pointer_declarator "*src" * identifier)) ))) (compound_statement "{\n  long lVar1;\n  int iVar2;\n  char *pcVar3;\n  RFile *f;\n  time_t start;\n  byte *pbVar4;\n  char *pcVar5;\n  DirHandle *dir;\n  char *src_00;\n  time_t tVar6;\n  long lVar7;\n  int length;\n  byte *pbVar8;\n  byte *pbVar9;\n  long in_FS_OFFSET;\n  bool bVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  uint64 x;\n  uint64 uVar14;\n  char *local_10a0;\n  uint64 local_1098;\n  long local_1088;\n  ulong mtime;\n  ulong atime;\n  long permissions;\n  uint64 size;\n  char sizestr [40];\n  \n  bVar13 = 0;\n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar2 = file_type(src);\n  if ((iVar2 == 0) || (iVar2 == 3)) {\n    pcVar3 = "Not a";\n    if (iVar2 != 3) {\n      pcVar3 = "No such";\n    }\n    run_err("%s: %s file or directory",src,pcVar3);\n    goto LAB_00114299;\n  }\n  if (iVar2 == 2) {\n    if (recursive == 0) {\n      run_err("%s: not a regular file",src);\n      goto LAB_00114299;\n    }\n    pcVar3 = strrchr(src,0x2f);\n    pcVar5 = pcVar3;\n    if (pcVar3 == (char *)0x0) {\n      pcVar5 = strrchr(src,0x5c);\n      bVar10 = false;\n      bVar12 = pcVar5 == (char *)0x0;\n      pbVar4 = (byte *)src;\n      if (!bVar12) goto LAB_001142e8;\n    }\n    else {\nLAB_001142e8:\n      bVar10 = (char *)0xfffffffffffffffe < pcVar5;\n      bVar12 = (byte *)(pcVar5 + 1) == (byte *)0x0;\n      pbVar4 = (byte *)(pcVar5 + 1);\n    }\n    lVar7 = 2;\n    pbVar8 = pbVar4;\n    pbVar9 = (byte *)0x15eb4d;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar10 = *pbVar8 < *pbVar9;\n      bVar12 = *pbVar8 == *pbVar9;\n      pbVar8 = pbVar8 + (ulong)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (ulong)bVar13 * -2 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (bVar10) goto LAB_00114299;\n    lVar7 = 3;\n    pbVar8 = (byte *)0x15eb4c;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar11 = *pbVar4 < *pbVar8;\n      bVar10 = *pbVar4 == *pbVar8;\n      pbVar4 = pbVar4 + (ulong)bVar13 * -2 + 1;\n      pbVar8 = pbVar8 + (ulong)bVar13 * -2 + 1;\n    } while (bVar10);\n    if ((!bVar11 && !bVar10) == bVar11) goto LAB_00114299;\n    if (pcVar3 == (char *)0x0) {\n      pcVar5 = strrchr(src,0x5c);\n      pcVar3 = src;\n      if (pcVar5 != (char *)0x0) goto LAB_00114344;\nLAB_0011468d:\n      pcVar5 = strchr(src,0x3a);\n      if (pcVar5 != (char *)0x0) {\n        pcVar3 = pcVar5 + 1;\n      }\n    }\n    else {\n      pcVar3 = pcVar3 + 1;\n      pcVar5 = strrchr(pcVar3,0x5c);\n      if (pcVar5 != (char *)0x0) {\nLAB_00114344:\n        pcVar3 = pcVar5 + 1;\n      }\n      if (src == pcVar3) goto LAB_0011468d;\n    }\n    pcVar5 = scp_save_remotepath();\n    if (verbose != 0) {\n      tell_user(stderr,"Entering directory: %s",pcVar3);\n    }\n    iVar2 = scp_send_dirname(pcVar3,0x1ed);\n    if (iVar2 == 0) {\n      dir = open_directory(src);\n      if (dir != (DirHandle *)0x0) {\n        while (pcVar3 = read_filename(dir), pcVar3 != (char *)0x0) {\n          src_00 = dupcat(src,&DAT_0015ecb1,pcVar3,0);\n          source(src_00);\n          safefree(src_00);\n          safefree(pcVar3);\n        }\n      }\n      close_directory(dir);\n      scp_send_enddir();\n      scp_restore_remotepath(pcVar5);\n    }\n    goto LAB_00114299;\n  }\n  local_10a0 = strrchr(src,0x2f);\n  if (local_10a0 == (char *)0x0) {\n    pcVar3 = strrchr(src,0x5c);\n    if (pcVar3 != (char *)0x0) goto LAB_001141aa;\nLAB_001146c0:\n    pcVar3 = strchr(src,0x3a);\n    local_10a0 = pcVar3 + 1;\n    if (pcVar3 == (char *)0x0) {\n      local_10a0 = src;\n    }\n  }\n  else {\n    local_10a0 = local_10a0 + 1;\n    pcVar3 = strrchr(local_10a0,0x5c);\n    if (pcVar3 != (char *)0x0) {\nLAB_001141aa:\n      local_10a0 = pcVar3 + 1;\n    }\n    if (local_10a0 == src) goto LAB_001146c0;\n  }\n  f = open_existing_file(src,&size,&mtime,&atime,&permissions);\n  if (f == (RFile *)0x0) {\n    run_err("%s: Cannot open file",src);\n  }\n  else if ((preserve == 0) || (iVar2 = scp_send_filetimes(mtime,atime), iVar2 == 0)) {\n    if (verbose != 0) {\n      uint64_decimal(size,sizestr);\n      tell_user(stderr,"Sending file %s, size=%s",local_10a0,sizestr);\n    }\n    iVar2 = scp_send_filename(local_10a0,size,(int)permissions);\n    if (iVar2 == 0) {\n      local_1098 = uint64_make(0,0);\n      start = time((time_t *)0x0);\n      x = uint64_make(0,0);\n      local_1088 = 0;\n      while (iVar2 = uint64_compare(x,size), iVar2 < 0) {\n        uVar14 = uint64_add32(x,0x1000);\n        iVar2 = uint64_compare(uVar14,size);\n        length = 0x1000;\n        if (0 < iVar2) {\n          uVar14 = uint64_subtract(size,x);\n          length = uVar14.lo;\n        }\n        iVar2 = read_from_file(f,sizestr,length);\n        if (length != iVar2) {\n          if (statistics != 0) {\n            putchar(10);\n          }\n          bump("%s: Read error",src);\n        }\n        iVar2 = scp_send_filedata(sizestr,length);\n        if (iVar2 != 0) {\n          bump("%s: Network error occurred",src);\n        }\n        if (statistics != 0) {\n          local_1098 = uint64_add32(local_1098,(long)length);\n          tVar6 = time((time_t *)0x0);\n          if (tVar6 == local_1088) {\n            uVar14 = uint64_add32(x,(long)length);\n            iVar2 = uint64_compare(uVar14,size);\n            if (iVar2 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          print_stats(local_10a0,size,local_1098,start,local_1088);\n        }\nLAB_00114520:\n        x = uint64_add32(x,0x1000);\n      }\n      close_rfile(f);\n      scp_send_finish();\n    }\n    else {\n      close_rfile(f);\n    }\n  }\n  else {\n    close_rfile(f);\n  }\nLAB_00114299:\n  if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "RFile *f;" type_identifier (pointer_declarator "*f" * identifier) ;) (declaration "time_t start;" type_identifier identifier ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "DirHandle *dir;" type_identifier (pointer_declarator "*dir" * identifier) ;) (declaration "char *src_00;" primitive_type (pointer_declarator "*src_00" * identifier) ;) (declaration "time_t tVar6;" type_identifier identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "int length;" primitive_type identifier ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "uint64 x;" type_identifier identifier ;) (declaration "uint64 uVar14;" type_identifier identifier ;) (declaration "char *local_10a0;" primitive_type (pointer_declarator "*local_10a0" * identifier) ;) (declaration "uint64 local_1098;" type_identifier identifier ;) (declaration "long local_1088;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong mtime;" type_identifier identifier ;) (declaration "ulong atime;" type_identifier identifier ;) (declaration "long permissions;" (sized_type_specifier "long" long) identifier ;) (declaration "uint64 size;" type_identifier identifier ;) (declaration "char sizestr [40];" primitive_type (array_declarator "sizestr [40]" identifier [ number_literal ]) ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "lVar1 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar1 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = file_type(src);" (assignment_expression "iVar2 = file_type(src)" identifier = (call_expression "file_type(src)" identifier (argument_list "(src)" ( identifier )))) ;) (if_statement "if ((iVar2 == 0) || (iVar2 == 3)) {\n    pcVar3 = "Not a";\n    if (iVar2 != 3) {\n      pcVar3 = "No such";\n    }\n    run_err("%s: %s file or directory",src,pcVar3);\n    goto LAB_00114299;\n  }" if (parenthesized_expression "((iVar2 == 0) || (iVar2 == 3))" ( (binary_expression "(iVar2 == 0) || (iVar2 == 3)" (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar2 == 3)" ( (binary_expression "iVar2 == 3" identifier == number_literal) ))) )) (compound_statement "{\n    pcVar3 = "Not a";\n    if (iVar2 != 3) {\n      pcVar3 = "No such";\n    }\n    run_err("%s: %s file or directory",src,pcVar3);\n    goto LAB_00114299;\n  }" { (expression_statement "pcVar3 = "Not a";" (assignment_expression "pcVar3 = "Not a"" identifier = (string_literal ""Not a"" " string_content ")) ;) (if_statement "if (iVar2 != 3) {\n      pcVar3 = "No such";\n    }" if (parenthesized_expression "(iVar2 != 3)" ( (binary_expression "iVar2 != 3" identifier != number_literal) )) (compound_statement "{\n      pcVar3 = "No such";\n    }" { (expression_statement "pcVar3 = "No such";" (assignment_expression "pcVar3 = "No such"" identifier = (string_literal ""No such"" " string_content ")) ;) })) (expression_statement "run_err("%s: %s file or directory",src,pcVar3);" (call_expression "run_err("%s: %s file or directory",src,pcVar3)" identifier (argument_list "("%s: %s file or directory",src,pcVar3)" ( (string_literal ""%s: %s file or directory"" " string_content ") , identifier , identifier ))) ;) (goto_statement "goto LAB_00114299;" goto statement_identifier ;) })) (if_statement "if (iVar2 == 2) {\n    if (recursive == 0) {\n      run_err("%s: not a regular file",src);\n      goto LAB_00114299;\n    }\n    pcVar3 = strrchr(src,0x2f);\n    pcVar5 = pcVar3;\n    if (pcVar3 == (char *)0x0) {\n      pcVar5 = strrchr(src,0x5c);\n      bVar10 = false;\n      bVar12 = pcVar5 == (char *)0x0;\n      pbVar4 = (byte *)src;\n      if (!bVar12) goto LAB_001142e8;\n    }\n    else {\nLAB_001142e8:\n      bVar10 = (char *)0xfffffffffffffffe < pcVar5;\n      bVar12 = (byte *)(pcVar5 + 1) == (byte *)0x0;\n      pbVar4 = (byte *)(pcVar5 + 1);\n    }\n    lVar7 = 2;\n    pbVar8 = pbVar4;\n    pbVar9 = (byte *)0x15eb4d;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar10 = *pbVar8 < *pbVar9;\n      bVar12 = *pbVar8 == *pbVar9;\n      pbVar8 = pbVar8 + (ulong)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (ulong)bVar13 * -2 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (bVar10) goto LAB_00114299;\n    lVar7 = 3;\n    pbVar8 = (byte *)0x15eb4c;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar11 = *pbVar4 < *pbVar8;\n      bVar10 = *pbVar4 == *pbVar8;\n      pbVar4 = pbVar4 + (ulong)bVar13 * -2 + 1;\n      pbVar8 = pbVar8 + (ulong)bVar13 * -2 + 1;\n    } while (bVar10);\n    if ((!bVar11 && !bVar10) == bVar11) goto LAB_00114299;\n    if (pcVar3 == (char *)0x0) {\n      pcVar5 = strrchr(src,0x5c);\n      pcVar3 = src;\n      if (pcVar5 != (char *)0x0) goto LAB_00114344;\nLAB_0011468d:\n      pcVar5 = strchr(src,0x3a);\n      if (pcVar5 != (char *)0x0) {\n        pcVar3 = pcVar5 + 1;\n      }\n    }\n    else {\n      pcVar3 = pcVar3 + 1;\n      pcVar5 = strrchr(pcVar3,0x5c);\n      if (pcVar5 != (char *)0x0) {\nLAB_00114344:\n        pcVar3 = pcVar5 + 1;\n      }\n      if (src == pcVar3) goto LAB_0011468d;\n    }\n    pcVar5 = scp_save_remotepath();\n    if (verbose != 0) {\n      tell_user(stderr,"Entering directory: %s",pcVar3);\n    }\n    iVar2 = scp_send_dirname(pcVar3,0x1ed);\n    if (iVar2 == 0) {\n      dir = open_directory(src);\n      if (dir != (DirHandle *)0x0) {\n        while (pcVar3 = read_filename(dir), pcVar3 != (char *)0x0) {\n          src_00 = dupcat(src,&DAT_0015ecb1,pcVar3,0);\n          source(src_00);\n          safefree(src_00);\n          safefree(pcVar3);\n        }\n      }\n      close_directory(dir);\n      scp_send_enddir();\n      scp_restore_remotepath(pcVar5);\n    }\n    goto LAB_00114299;\n  }" if (parenthesized_expression "(iVar2 == 2)" ( (binary_expression "iVar2 == 2" identifier == number_literal) )) (compound_statement "{\n    if (recursive == 0) {\n      run_err("%s: not a regular file",src);\n      goto LAB_00114299;\n    }\n    pcVar3 = strrchr(src,0x2f);\n    pcVar5 = pcVar3;\n    if (pcVar3 == (char *)0x0) {\n      pcVar5 = strrchr(src,0x5c);\n      bVar10 = false;\n      bVar12 = pcVar5 == (char *)0x0;\n      pbVar4 = (byte *)src;\n      if (!bVar12) goto LAB_001142e8;\n    }\n    else {\nLAB_001142e8:\n      bVar10 = (char *)0xfffffffffffffffe < pcVar5;\n      bVar12 = (byte *)(pcVar5 + 1) == (byte *)0x0;\n      pbVar4 = (byte *)(pcVar5 + 1);\n    }\n    lVar7 = 2;\n    pbVar8 = pbVar4;\n    pbVar9 = (byte *)0x15eb4d;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar10 = *pbVar8 < *pbVar9;\n      bVar12 = *pbVar8 == *pbVar9;\n      pbVar8 = pbVar8 + (ulong)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (ulong)bVar13 * -2 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (bVar10) goto LAB_00114299;\n    lVar7 = 3;\n    pbVar8 = (byte *)0x15eb4c;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar11 = *pbVar4 < *pbVar8;\n      bVar10 = *pbVar4 == *pbVar8;\n      pbVar4 = pbVar4 + (ulong)bVar13 * -2 + 1;\n      pbVar8 = pbVar8 + (ulong)bVar13 * -2 + 1;\n    } while (bVar10);\n    if ((!bVar11 && !bVar10) == bVar11) goto LAB_00114299;\n    if (pcVar3 == (char *)0x0) {\n      pcVar5 = strrchr(src,0x5c);\n      pcVar3 = src;\n      if (pcVar5 != (char *)0x0) goto LAB_00114344;\nLAB_0011468d:\n      pcVar5 = strchr(src,0x3a);\n      if (pcVar5 != (char *)0x0) {\n        pcVar3 = pcVar5 + 1;\n      }\n    }\n    else {\n      pcVar3 = pcVar3 + 1;\n      pcVar5 = strrchr(pcVar3,0x5c);\n      if (pcVar5 != (char *)0x0) {\nLAB_00114344:\n        pcVar3 = pcVar5 + 1;\n      }\n      if (src == pcVar3) goto LAB_0011468d;\n    }\n    pcVar5 = scp_save_remotepath();\n    if (verbose != 0) {\n      tell_user(stderr,"Entering directory: %s",pcVar3);\n    }\n    iVar2 = scp_send_dirname(pcVar3,0x1ed);\n    if (iVar2 == 0) {\n      dir = open_directory(src);\n      if (dir != (DirHandle *)0x0) {\n        while (pcVar3 = read_filename(dir), pcVar3 != (char *)0x0) {\n          src_00 = dupcat(src,&DAT_0015ecb1,pcVar3,0);\n          source(src_00);\n          safefree(src_00);\n          safefree(pcVar3);\n        }\n      }\n      close_directory(dir);\n      scp_send_enddir();\n      scp_restore_remotepath(pcVar5);\n    }\n    goto LAB_00114299;\n  }" { (if_statement "if (recursive == 0) {\n      run_err("%s: not a regular file",src);\n      goto LAB_00114299;\n    }" if (parenthesized_expression "(recursive == 0)" ( (binary_expression "recursive == 0" identifier == number_literal) )) (compound_statement "{\n      run_err("%s: not a regular file",src);\n      goto LAB_00114299;\n    }" { (expression_statement "run_err("%s: not a regular file",src);" (call_expression "run_err("%s: not a regular file",src)" identifier (argument_list "("%s: not a regular file",src)" ( (string_literal ""%s: not a regular file"" " string_content ") , identifier ))) ;) (goto_statement "goto LAB_00114299;" goto statement_identifier ;) })) (expression_statement "pcVar3 = strrchr(src,0x2f);" (assignment_expression "pcVar3 = strrchr(src,0x2f)" identifier = (call_expression "strrchr(src,0x2f)" identifier (argument_list "(src,0x2f)" ( identifier , number_literal )))) ;) (expression_statement "pcVar5 = pcVar3;" (assignment_expression "pcVar5 = pcVar3" identifier = identifier) ;) (if_statement "if (pcVar3 == (char *)0x0) {\n      pcVar5 = strrchr(src,0x5c);\n      bVar10 = false;\n      bVar12 = pcVar5 == (char *)0x0;\n      pbVar4 = (byte *)src;\n      if (!bVar12) goto LAB_001142e8;\n    }\n    else {\nLAB_001142e8:\n      bVar10 = (char *)0xfffffffffffffffe < pcVar5;\n      bVar12 = (byte *)(pcVar5 + 1) == (byte *)0x0;\n      pbVar4 = (byte *)(pcVar5 + 1);\n    }" if (parenthesized_expression "(pcVar3 == (char *)0x0)" ( (binary_expression "pcVar3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar5 = strrchr(src,0x5c);\n      bVar10 = false;\n      bVar12 = pcVar5 == (char *)0x0;\n      pbVar4 = (byte *)src;\n      if (!bVar12) goto LAB_001142e8;\n    }" { (expression_statement "pcVar5 = strrchr(src,0x5c);" (assignment_expression "pcVar5 = strrchr(src,0x5c)" identifier = (call_expression "strrchr(src,0x5c)" identifier (argument_list "(src,0x5c)" ( identifier , number_literal )))) ;) (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) (expression_statement "bVar12 = pcVar5 == (char *)0x0;" (assignment_expression "bVar12 = pcVar5 == (char *)0x0" identifier = (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar4 = (byte *)src;" (assignment_expression "pbVar4 = (byte *)src" identifier = (cast_expression "(byte *)src" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (!bVar12) goto LAB_001142e8;" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (goto_statement "goto LAB_001142e8;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_001142e8:\n      bVar10 = (char *)0xfffffffffffffffe < pcVar5;\n      bVar12 = (byte *)(pcVar5 + 1) == (byte *)0x0;\n      pbVar4 = (byte *)(pcVar5 + 1);\n    }" else (compound_statement "{\nLAB_001142e8:\n      bVar10 = (char *)0xfffffffffffffffe < pcVar5;\n      bVar12 = (byte *)(pcVar5 + 1) == (byte *)0x0;\n      pbVar4 = (byte *)(pcVar5 + 1);\n    }" { (labeled_statement "LAB_001142e8:\n      bVar10 = (char *)0xfffffffffffffffe < pcVar5;" statement_identifier : (expression_statement "bVar10 = (char *)0xfffffffffffffffe < pcVar5;" (assignment_expression "bVar10 = (char *)0xfffffffffffffffe < pcVar5" identifier = (binary_expression "(char *)0xfffffffffffffffe < pcVar5" (cast_expression "(char *)0xfffffffffffffffe" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier)) ;)) (expression_statement "bVar12 = (byte *)(pcVar5 + 1) == (byte *)0x0;" (assignment_expression "bVar12 = (byte *)(pcVar5 + 1) == (byte *)0x0" identifier = (binary_expression "(byte *)(pcVar5 + 1) == (byte *)0x0" (cast_expression "(byte *)(pcVar5 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 1)" ( (binary_expression "pcVar5 + 1" identifier + number_literal) ))) == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar4 = (byte *)(pcVar5 + 1);" (assignment_expression "pbVar4 = (byte *)(pcVar5 + 1)" identifier = (cast_expression "(byte *)(pcVar5 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 1)" ( (binary_expression "pcVar5 + 1" identifier + number_literal) )))) ;) }))) (expression_statement "lVar7 = 2;" (assignment_expression "lVar7 = 2" identifier = number_literal) ;) (expression_statement "pbVar8 = pbVar4;" (assignment_expression "pbVar8 = pbVar4" identifier = identifier) ;) (expression_statement "pbVar9 = (byte *)0x15eb4d;" (assignment_expression "pbVar9 = (byte *)0x15eb4d" identifier = (cast_expression "(byte *)0x15eb4d" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar10 = *pbVar8 < *pbVar9;\n      bVar12 = *pbVar8 == *pbVar9;\n      pbVar8 = pbVar8 + (ulong)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (ulong)bVar13 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar10 = *pbVar8 < *pbVar9;\n      bVar12 = *pbVar8 == *pbVar9;\n      pbVar8 = pbVar8 + (ulong)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (ulong)bVar13 * -2 + 1;\n    }" { (if_statement "if (lVar7 == 0) break;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar10 = *pbVar8 < *pbVar9;" (assignment_expression "bVar10 = *pbVar8 < *pbVar9" identifier = (binary_expression "*pbVar8 < *pbVar9" (pointer_expression "*pbVar8" * identifier) < (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "bVar12 = *pbVar8 == *pbVar9;" (assignment_expression "bVar12 = *pbVar8 == *pbVar9" identifier = (binary_expression "*pbVar8 == *pbVar9" (pointer_expression "*pbVar8" * identifier) == (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "pbVar8 = pbVar8 + (ulong)bVar13 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (ulong)bVar13 * -2 + 1" identifier = (binary_expression "pbVar8 + (ulong)bVar13 * -2 + 1" (binary_expression "pbVar8 + (ulong)bVar13 * -2" identifier + (binary_expression "(ulong)bVar13 * -2" (cast_expression "(ulong)bVar13" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar9 = pbVar9 + (ulong)bVar13 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (ulong)bVar13 * -2 + 1" identifier = (binary_expression "pbVar9 + (ulong)bVar13 * -2 + 1" (binary_expression "pbVar9 + (ulong)bVar13 * -2" identifier + (binary_expression "(ulong)bVar13 * -2" (cast_expression "(ulong)bVar13" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" identifier = false) ;) (expression_statement "bVar10 = (!bVar10 && !bVar12) == bVar10;" (assignment_expression "bVar10 = (!bVar10 && !bVar12) == bVar10" identifier = (binary_expression "(!bVar10 && !bVar12) == bVar10" (parenthesized_expression "(!bVar10 && !bVar12)" ( (binary_expression "!bVar10 && !bVar12" (unary_expression "!bVar10" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar10) goto LAB_00114299;" if (parenthesized_expression "(bVar10)" ( identifier )) (goto_statement "goto LAB_00114299;" goto statement_identifier ;)) (expression_statement "lVar7 = 3;" (assignment_expression "lVar7 = 3" identifier = number_literal) ;) (expression_statement "pbVar8 = (byte *)0x15eb4c;" (assignment_expression "pbVar8 = (byte *)0x15eb4c" identifier = (cast_expression "(byte *)0x15eb4c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar11 = *pbVar4 < *pbVar8;\n      bVar10 = *pbVar4 == *pbVar8;\n      pbVar4 = pbVar4 + (ulong)bVar13 * -2 + 1;\n      pbVar8 = pbVar8 + (ulong)bVar13 * -2 + 1;\n    } while (bVar10);" do (compound_statement "{\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar11 = *pbVar4 < *pbVar8;\n      bVar10 = *pbVar4 == *pbVar8;\n      pbVar4 = pbVar4 + (ulong)bVar13 * -2 + 1;\n      pbVar8 = pbVar8 + (ulong)bVar13 * -2 + 1;\n    }" { (if_statement "if (lVar7 == 0) break;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar11 = *pbVar4 < *pbVar8;" (assignment_expression "bVar11 = *pbVar4 < *pbVar8" identifier = (binary_expression "*pbVar4 < *pbVar8" (pointer_expression "*pbVar4" * identifier) < (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "bVar10 = *pbVar4 == *pbVar8;" (assignment_expression "bVar10 = *pbVar4 == *pbVar8" identifier = (binary_expression "*pbVar4 == *pbVar8" (pointer_expression "*pbVar4" * identifier) == (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "pbVar4 = pbVar4 + (ulong)bVar13 * -2 + 1;" (assignment_expression "pbVar4 = pbVar4 + (ulong)bVar13 * -2 + 1" identifier = (binary_expression "pbVar4 + (ulong)bVar13 * -2 + 1" (binary_expression "pbVar4 + (ulong)bVar13 * -2" identifier + (binary_expression "(ulong)bVar13 * -2" (cast_expression "(ulong)bVar13" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar8 = pbVar8 + (ulong)bVar13 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (ulong)bVar13 * -2 + 1" identifier = (binary_expression "pbVar8 + (ulong)bVar13 * -2 + 1" (binary_expression "pbVar8 + (ulong)bVar13 * -2" identifier + (binary_expression "(ulong)bVar13 * -2" (cast_expression "(ulong)bVar13" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar10)" ( identifier )) ;) (if_statement "if ((!bVar11 && !bVar10) == bVar11) goto LAB_00114299;" if (parenthesized_expression "((!bVar11 && !bVar10) == bVar11)" ( (binary_expression "(!bVar11 && !bVar10) == bVar11" (parenthesized_expression "(!bVar11 && !bVar10)" ( (binary_expression "!bVar11 && !bVar10" (unary_expression "!bVar11" ! identifier) && (unary_expression "!bVar10" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_00114299;" goto statement_identifier ;)) (if_statement "if (pcVar3 == (char *)0x0) {\n      pcVar5 = strrchr(src,0x5c);\n      pcVar3 = src;\n      if (pcVar5 != (char *)0x0) goto LAB_00114344;\nLAB_0011468d:\n      pcVar5 = strchr(src,0x3a);\n      if (pcVar5 != (char *)0x0) {\n        pcVar3 = pcVar5 + 1;\n      }\n    }\n    else {\n      pcVar3 = pcVar3 + 1;\n      pcVar5 = strrchr(pcVar3,0x5c);\n      if (pcVar5 != (char *)0x0) {\nLAB_00114344:\n        pcVar3 = pcVar5 + 1;\n      }\n      if (src == pcVar3) goto LAB_0011468d;\n    }" if (parenthesized_expression "(pcVar3 == (char *)0x0)" ( (binary_expression "pcVar3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar5 = strrchr(src,0x5c);\n      pcVar3 = src;\n      if (pcVar5 != (char *)0x0) goto LAB_00114344;\nLAB_0011468d:\n      pcVar5 = strchr(src,0x3a);\n      if (pcVar5 != (char *)0x0) {\n        pcVar3 = pcVar5 + 1;\n      }\n    }" { (expression_statement "pcVar5 = strrchr(src,0x5c);" (assignment_expression "pcVar5 = strrchr(src,0x5c)" identifier = (call_expression "strrchr(src,0x5c)" identifier (argument_list "(src,0x5c)" ( identifier , number_literal )))) ;) (expression_statement "pcVar3 = src;" (assignment_expression "pcVar3 = src" identifier = identifier) ;) (if_statement "if (pcVar5 != (char *)0x0) goto LAB_00114344;" if (parenthesized_expression "(pcVar5 != (char *)0x0)" ( (binary_expression "pcVar5 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00114344;" goto statement_identifier ;)) (labeled_statement "LAB_0011468d:\n      pcVar5 = strchr(src,0x3a);" statement_identifier : (expression_statement "pcVar5 = strchr(src,0x3a);" (assignment_expression "pcVar5 = strchr(src,0x3a)" identifier = (call_expression "strchr(src,0x3a)" identifier (argument_list "(src,0x3a)" ( identifier , number_literal )))) ;)) (if_statement "if (pcVar5 != (char *)0x0) {\n        pcVar3 = pcVar5 + 1;\n      }" if (parenthesized_expression "(pcVar5 != (char *)0x0)" ( (binary_expression "pcVar5 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar3 = pcVar5 + 1;\n      }" { (expression_statement "pcVar3 = pcVar5 + 1;" (assignment_expression "pcVar3 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) })) }) (else_clause "else {\n      pcVar3 = pcVar3 + 1;\n      pcVar5 = strrchr(pcVar3,0x5c);\n      if (pcVar5 != (char *)0x0) {\nLAB_00114344:\n        pcVar3 = pcVar5 + 1;\n      }\n      if (src == pcVar3) goto LAB_0011468d;\n    }" else (compound_statement "{\n      pcVar3 = pcVar3 + 1;\n      pcVar5 = strrchr(pcVar3,0x5c);\n      if (pcVar5 != (char *)0x0) {\nLAB_00114344:\n        pcVar3 = pcVar5 + 1;\n      }\n      if (src == pcVar3) goto LAB_0011468d;\n    }" { (expression_statement "pcVar3 = pcVar3 + 1;" (assignment_expression "pcVar3 = pcVar3 + 1" identifier = (binary_expression "pcVar3 + 1" identifier + number_literal)) ;) (expression_statement "pcVar5 = strrchr(pcVar3,0x5c);" (assignment_expression "pcVar5 = strrchr(pcVar3,0x5c)" identifier = (call_expression "strrchr(pcVar3,0x5c)" identifier (argument_list "(pcVar3,0x5c)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar5 != (char *)0x0) {\nLAB_00114344:\n        pcVar3 = pcVar5 + 1;\n      }" if (parenthesized_expression "(pcVar5 != (char *)0x0)" ( (binary_expression "pcVar5 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00114344:\n        pcVar3 = pcVar5 + 1;\n      }" { (labeled_statement "LAB_00114344:\n        pcVar3 = pcVar5 + 1;" statement_identifier : (expression_statement "pcVar3 = pcVar5 + 1;" (assignment_expression "pcVar3 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;)) })) (if_statement "if (src == pcVar3) goto LAB_0011468d;" if (parenthesized_expression "(src == pcVar3)" ( (binary_expression "src == pcVar3" identifier == identifier) )) (goto_statement "goto LAB_0011468d;" goto statement_identifier ;)) }))) (expression_statement "pcVar5 = scp_save_remotepath();" (assignment_expression "pcVar5 = scp_save_remotepath()" identifier = (call_expression "scp_save_remotepath()" identifier (argument_list "()" ( )))) ;) (if_statement "if (verbose != 0) {\n      tell_user(stderr,"Entering directory: %s",pcVar3);\n    }" if (parenthesized_expression "(verbose != 0)" ( (binary_expression "verbose != 0" identifier != number_literal) )) (compound_statement "{\n      tell_user(stderr,"Entering directory: %s",pcVar3);\n    }" { (expression_statement "tell_user(stderr,"Entering directory: %s",pcVar3);" (call_expression "tell_user(stderr,"Entering directory: %s",pcVar3)" identifier (argument_list "(stderr,"Entering directory: %s",pcVar3)" ( identifier , (string_literal ""Entering directory: %s"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar2 = scp_send_dirname(pcVar3,0x1ed);" (assignment_expression "iVar2 = scp_send_dirname(pcVar3,0x1ed)" identifier = (call_expression "scp_send_dirname(pcVar3,0x1ed)" identifier (argument_list "(pcVar3,0x1ed)" ( identifier , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n      dir = open_directory(src);\n      if (dir != (DirHandle *)0x0) {\n        while (pcVar3 = read_filename(dir), pcVar3 != (char *)0x0) {\n          src_00 = dupcat(src,&DAT_0015ecb1,pcVar3,0);\n          source(src_00);\n          safefree(src_00);\n          safefree(pcVar3);\n        }\n      }\n      close_directory(dir);\n      scp_send_enddir();\n      scp_restore_remotepath(pcVar5);\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      dir = open_directory(src);\n      if (dir != (DirHandle *)0x0) {\n        while (pcVar3 = read_filename(dir), pcVar3 != (char *)0x0) {\n          src_00 = dupcat(src,&DAT_0015ecb1,pcVar3,0);\n          source(src_00);\n          safefree(src_00);\n          safefree(pcVar3);\n        }\n      }\n      close_directory(dir);\n      scp_send_enddir();\n      scp_restore_remotepath(pcVar5);\n    }" { (expression_statement "dir = open_directory(src);" (assignment_expression "dir = open_directory(src)" identifier = (call_expression "open_directory(src)" identifier (argument_list "(src)" ( identifier )))) ;) (if_statement "if (dir != (DirHandle *)0x0) {\n        while (pcVar3 = read_filename(dir), pcVar3 != (char *)0x0) {\n          src_00 = dupcat(src,&DAT_0015ecb1,pcVar3,0);\n          source(src_00);\n          safefree(src_00);\n          safefree(pcVar3);\n        }\n      }" if (parenthesized_expression "(dir != (DirHandle *)0x0)" ( (binary_expression "dir != (DirHandle *)0x0" identifier != (cast_expression "(DirHandle *)0x0" ( (type_descriptor "DirHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        while (pcVar3 = read_filename(dir), pcVar3 != (char *)0x0) {\n          src_00 = dupcat(src,&DAT_0015ecb1,pcVar3,0);\n          source(src_00);\n          safefree(src_00);\n          safefree(pcVar3);\n        }\n      }" { (while_statement "while (pcVar3 = read_filename(dir), pcVar3 != (char *)0x0) {\n          src_00 = dupcat(src,&DAT_0015ecb1,pcVar3,0);\n          source(src_00);\n          safefree(src_00);\n          safefree(pcVar3);\n        }" while (parenthesized_expression "(pcVar3 = read_filename(dir), pcVar3 != (char *)0x0)" ( (comma_expression "pcVar3 = read_filename(dir), pcVar3 != (char *)0x0" (assignment_expression "pcVar3 = read_filename(dir)" identifier = (call_expression "read_filename(dir)" identifier (argument_list "(dir)" ( identifier )))) , (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          src_00 = dupcat(src,&DAT_0015ecb1,pcVar3,0);\n          source(src_00);\n          safefree(src_00);\n          safefree(pcVar3);\n        }" { (expression_statement "src_00 = dupcat(src,&DAT_0015ecb1,pcVar3,0);" (assignment_expression "src_00 = dupcat(src,&DAT_0015ecb1,pcVar3,0)" identifier = (call_expression "dupcat(src,&DAT_0015ecb1,pcVar3,0)" identifier (argument_list "(src,&DAT_0015ecb1,pcVar3,0)" ( identifier , (pointer_expression "&DAT_0015ecb1" & identifier) , identifier , number_literal )))) ;) (expression_statement "source(src_00);" (call_expression "source(src_00)" identifier (argument_list "(src_00)" ( identifier ))) ;) (expression_statement "safefree(src_00);" (call_expression "safefree(src_00)" identifier (argument_list "(src_00)" ( identifier ))) ;) (expression_statement "safefree(pcVar3);" (call_expression "safefree(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) })) })) (expression_statement "close_directory(dir);" (call_expression "close_directory(dir)" identifier (argument_list "(dir)" ( identifier ))) ;) (expression_statement "scp_send_enddir();" (call_expression "scp_send_enddir()" identifier (argument_list "()" ( ))) ;) (expression_statement "scp_restore_remotepath(pcVar5);" (call_expression "scp_restore_remotepath(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) })) (goto_statement "goto LAB_00114299;" goto statement_identifier ;) })) (expression_statement "local_10a0 = strrchr(src,0x2f);" (assignment_expression "local_10a0 = strrchr(src,0x2f)" identifier = (call_expression "strrchr(src,0x2f)" identifier (argument_list "(src,0x2f)" ( identifier , number_literal )))) ;) (if_statement "if (local_10a0 == (char *)0x0) {\n    pcVar3 = strrchr(src,0x5c);\n    if (pcVar3 != (char *)0x0) goto LAB_001141aa;\nLAB_001146c0:\n    pcVar3 = strchr(src,0x3a);\n    local_10a0 = pcVar3 + 1;\n    if (pcVar3 == (char *)0x0) {\n      local_10a0 = src;\n    }\n  }\n  else {\n    local_10a0 = local_10a0 + 1;\n    pcVar3 = strrchr(local_10a0,0x5c);\n    if (pcVar3 != (char *)0x0) {\nLAB_001141aa:\n      local_10a0 = pcVar3 + 1;\n    }\n    if (local_10a0 == src) goto LAB_001146c0;\n  }" if (parenthesized_expression "(local_10a0 == (char *)0x0)" ( (binary_expression "local_10a0 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar3 = strrchr(src,0x5c);\n    if (pcVar3 != (char *)0x0) goto LAB_001141aa;\nLAB_001146c0:\n    pcVar3 = strchr(src,0x3a);\n    local_10a0 = pcVar3 + 1;\n    if (pcVar3 == (char *)0x0) {\n      local_10a0 = src;\n    }\n  }" { (expression_statement "pcVar3 = strrchr(src,0x5c);" (assignment_expression "pcVar3 = strrchr(src,0x5c)" identifier = (call_expression "strrchr(src,0x5c)" identifier (argument_list "(src,0x5c)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar3 != (char *)0x0) goto LAB_001141aa;" if (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001141aa;" goto statement_identifier ;)) (labeled_statement "LAB_001146c0:\n    pcVar3 = strchr(src,0x3a);" statement_identifier : (expression_statement "pcVar3 = strchr(src,0x3a);" (assignment_expression "pcVar3 = strchr(src,0x3a)" identifier = (call_expression "strchr(src,0x3a)" identifier (argument_list "(src,0x3a)" ( identifier , number_literal )))) ;)) (expression_statement "local_10a0 = pcVar3 + 1;" (assignment_expression "local_10a0 = pcVar3 + 1" identifier = (binary_expression "pcVar3 + 1" identifier + number_literal)) ;) (if_statement "if (pcVar3 == (char *)0x0) {\n      local_10a0 = src;\n    }" if (parenthesized_expression "(pcVar3 == (char *)0x0)" ( (binary_expression "pcVar3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_10a0 = src;\n    }" { (expression_statement "local_10a0 = src;" (assignment_expression "local_10a0 = src" identifier = identifier) ;) })) }) (else_clause "else {\n    local_10a0 = local_10a0 + 1;\n    pcVar3 = strrchr(local_10a0,0x5c);\n    if (pcVar3 != (char *)0x0) {\nLAB_001141aa:\n      local_10a0 = pcVar3 + 1;\n    }\n    if (local_10a0 == src) goto LAB_001146c0;\n  }" else (compound_statement "{\n    local_10a0 = local_10a0 + 1;\n    pcVar3 = strrchr(local_10a0,0x5c);\n    if (pcVar3 != (char *)0x0) {\nLAB_001141aa:\n      local_10a0 = pcVar3 + 1;\n    }\n    if (local_10a0 == src) goto LAB_001146c0;\n  }" { (expression_statement "local_10a0 = local_10a0 + 1;" (assignment_expression "local_10a0 = local_10a0 + 1" identifier = (binary_expression "local_10a0 + 1" identifier + number_literal)) ;) (expression_statement "pcVar3 = strrchr(local_10a0,0x5c);" (assignment_expression "pcVar3 = strrchr(local_10a0,0x5c)" identifier = (call_expression "strrchr(local_10a0,0x5c)" identifier (argument_list "(local_10a0,0x5c)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar3 != (char *)0x0) {\nLAB_001141aa:\n      local_10a0 = pcVar3 + 1;\n    }" if (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_001141aa:\n      local_10a0 = pcVar3 + 1;\n    }" { (labeled_statement "LAB_001141aa:\n      local_10a0 = pcVar3 + 1;" statement_identifier : (expression_statement "local_10a0 = pcVar3 + 1;" (assignment_expression "local_10a0 = pcVar3 + 1" identifier = (binary_expression "pcVar3 + 1" identifier + number_literal)) ;)) })) (if_statement "if (local_10a0 == src) goto LAB_001146c0;" if (parenthesized_expression "(local_10a0 == src)" ( (binary_expression "local_10a0 == src" identifier == identifier) )) (goto_statement "goto LAB_001146c0;" goto statement_identifier ;)) }))) (expression_statement "f = open_existing_file(src,&size,&mtime,&atime,&permissions);" (assignment_expression "f = open_existing_file(src,&size,&mtime,&atime,&permissions)" identifier = (call_expression "open_existing_file(src,&size,&mtime,&atime,&permissions)" identifier (argument_list "(src,&size,&mtime,&atime,&permissions)" ( identifier , (pointer_expression "&size" & identifier) , (pointer_expression "&mtime" & identifier) , (pointer_expression "&atime" & identifier) , (pointer_expression "&permissions" & identifier) )))) ;) (if_statement "if (f == (RFile *)0x0) {\n    run_err("%s: Cannot open file",src);\n  }\n  else if ((preserve == 0) || (iVar2 = scp_send_filetimes(mtime,atime), iVar2 == 0)) {\n    if (verbose != 0) {\n      uint64_decimal(size,sizestr);\n      tell_user(stderr,"Sending file %s, size=%s",local_10a0,sizestr);\n    }\n    iVar2 = scp_send_filename(local_10a0,size,(int)permissions);\n    if (iVar2 == 0) {\n      local_1098 = uint64_make(0,0);\n      start = time((time_t *)0x0);\n      x = uint64_make(0,0);\n      local_1088 = 0;\n      while (iVar2 = uint64_compare(x,size), iVar2 < 0) {\n        uVar14 = uint64_add32(x,0x1000);\n        iVar2 = uint64_compare(uVar14,size);\n        length = 0x1000;\n        if (0 < iVar2) {\n          uVar14 = uint64_subtract(size,x);\n          length = uVar14.lo;\n        }\n        iVar2 = read_from_file(f,sizestr,length);\n        if (length != iVar2) {\n          if (statistics != 0) {\n            putchar(10);\n          }\n          bump("%s: Read error",src);\n        }\n        iVar2 = scp_send_filedata(sizestr,length);\n        if (iVar2 != 0) {\n          bump("%s: Network error occurred",src);\n        }\n        if (statistics != 0) {\n          local_1098 = uint64_add32(local_1098,(long)length);\n          tVar6 = time((time_t *)0x0);\n          if (tVar6 == local_1088) {\n            uVar14 = uint64_add32(x,(long)length);\n            iVar2 = uint64_compare(uVar14,size);\n            if (iVar2 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          print_stats(local_10a0,size,local_1098,start,local_1088);\n        }\nLAB_00114520:\n        x = uint64_add32(x,0x1000);\n      }\n      close_rfile(f);\n      scp_send_finish();\n    }\n    else {\n      close_rfile(f);\n    }\n  }\n  else {\n    close_rfile(f);\n  }" if (parenthesized_expression "(f == (RFile *)0x0)" ( (binary_expression "f == (RFile *)0x0" identifier == (cast_expression "(RFile *)0x0" ( (type_descriptor "RFile *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    run_err("%s: Cannot open file",src);\n  }" { (expression_statement "run_err("%s: Cannot open file",src);" (call_expression "run_err("%s: Cannot open file",src)" identifier (argument_list "("%s: Cannot open file",src)" ( (string_literal ""%s: Cannot open file"" " string_content ") , identifier ))) ;) }) (else_clause "else if ((preserve == 0) || (iVar2 = scp_send_filetimes(mtime,atime), iVar2 == 0)) {\n    if (verbose != 0) {\n      uint64_decimal(size,sizestr);\n      tell_user(stderr,"Sending file %s, size=%s",local_10a0,sizestr);\n    }\n    iVar2 = scp_send_filename(local_10a0,size,(int)permissions);\n    if (iVar2 == 0) {\n      local_1098 = uint64_make(0,0);\n      start = time((time_t *)0x0);\n      x = uint64_make(0,0);\n      local_1088 = 0;\n      while (iVar2 = uint64_compare(x,size), iVar2 < 0) {\n        uVar14 = uint64_add32(x,0x1000);\n        iVar2 = uint64_compare(uVar14,size);\n        length = 0x1000;\n        if (0 < iVar2) {\n          uVar14 = uint64_subtract(size,x);\n          length = uVar14.lo;\n        }\n        iVar2 = read_from_file(f,sizestr,length);\n        if (length != iVar2) {\n          if (statistics != 0) {\n            putchar(10);\n          }\n          bump("%s: Read error",src);\n        }\n        iVar2 = scp_send_filedata(sizestr,length);\n        if (iVar2 != 0) {\n          bump("%s: Network error occurred",src);\n        }\n        if (statistics != 0) {\n          local_1098 = uint64_add32(local_1098,(long)length);\n          tVar6 = time((time_t *)0x0);\n          if (tVar6 == local_1088) {\n            uVar14 = uint64_add32(x,(long)length);\n            iVar2 = uint64_compare(uVar14,size);\n            if (iVar2 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          print_stats(local_10a0,size,local_1098,start,local_1088);\n        }\nLAB_00114520:\n        x = uint64_add32(x,0x1000);\n      }\n      close_rfile(f);\n      scp_send_finish();\n    }\n    else {\n      close_rfile(f);\n    }\n  }\n  else {\n    close_rfile(f);\n  }" else (if_statement "if ((preserve == 0) || (iVar2 = scp_send_filetimes(mtime,atime), iVar2 == 0)) {\n    if (verbose != 0) {\n      uint64_decimal(size,sizestr);\n      tell_user(stderr,"Sending file %s, size=%s",local_10a0,sizestr);\n    }\n    iVar2 = scp_send_filename(local_10a0,size,(int)permissions);\n    if (iVar2 == 0) {\n      local_1098 = uint64_make(0,0);\n      start = time((time_t *)0x0);\n      x = uint64_make(0,0);\n      local_1088 = 0;\n      while (iVar2 = uint64_compare(x,size), iVar2 < 0) {\n        uVar14 = uint64_add32(x,0x1000);\n        iVar2 = uint64_compare(uVar14,size);\n        length = 0x1000;\n        if (0 < iVar2) {\n          uVar14 = uint64_subtract(size,x);\n          length = uVar14.lo;\n        }\n        iVar2 = read_from_file(f,sizestr,length);\n        if (length != iVar2) {\n          if (statistics != 0) {\n            putchar(10);\n          }\n          bump("%s: Read error",src);\n        }\n        iVar2 = scp_send_filedata(sizestr,length);\n        if (iVar2 != 0) {\n          bump("%s: Network error occurred",src);\n        }\n        if (statistics != 0) {\n          local_1098 = uint64_add32(local_1098,(long)length);\n          tVar6 = time((time_t *)0x0);\n          if (tVar6 == local_1088) {\n            uVar14 = uint64_add32(x,(long)length);\n            iVar2 = uint64_compare(uVar14,size);\n            if (iVar2 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          print_stats(local_10a0,size,local_1098,start,local_1088);\n        }\nLAB_00114520:\n        x = uint64_add32(x,0x1000);\n      }\n      close_rfile(f);\n      scp_send_finish();\n    }\n    else {\n      close_rfile(f);\n    }\n  }\n  else {\n    close_rfile(f);\n  }" if (parenthesized_expression "((preserve == 0) || (iVar2 = scp_send_filetimes(mtime,atime), iVar2 == 0))" ( (binary_expression "(preserve == 0) || (iVar2 = scp_send_filetimes(mtime,atime), iVar2 == 0)" (parenthesized_expression "(preserve == 0)" ( (binary_expression "preserve == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar2 = scp_send_filetimes(mtime,atime), iVar2 == 0)" ( (comma_expression "iVar2 = scp_send_filetimes(mtime,atime), iVar2 == 0" (assignment_expression "iVar2 = scp_send_filetimes(mtime,atime)" identifier = (call_expression "scp_send_filetimes(mtime,atime)" identifier (argument_list "(mtime,atime)" ( identifier , identifier )))) , (binary_expression "iVar2 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    if (verbose != 0) {\n      uint64_decimal(size,sizestr);\n      tell_user(stderr,"Sending file %s, size=%s",local_10a0,sizestr);\n    }\n    iVar2 = scp_send_filename(local_10a0,size,(int)permissions);\n    if (iVar2 == 0) {\n      local_1098 = uint64_make(0,0);\n      start = time((time_t *)0x0);\n      x = uint64_make(0,0);\n      local_1088 = 0;\n      while (iVar2 = uint64_compare(x,size), iVar2 < 0) {\n        uVar14 = uint64_add32(x,0x1000);\n        iVar2 = uint64_compare(uVar14,size);\n        length = 0x1000;\n        if (0 < iVar2) {\n          uVar14 = uint64_subtract(size,x);\n          length = uVar14.lo;\n        }\n        iVar2 = read_from_file(f,sizestr,length);\n        if (length != iVar2) {\n          if (statistics != 0) {\n            putchar(10);\n          }\n          bump("%s: Read error",src);\n        }\n        iVar2 = scp_send_filedata(sizestr,length);\n        if (iVar2 != 0) {\n          bump("%s: Network error occurred",src);\n        }\n        if (statistics != 0) {\n          local_1098 = uint64_add32(local_1098,(long)length);\n          tVar6 = time((time_t *)0x0);\n          if (tVar6 == local_1088) {\n            uVar14 = uint64_add32(x,(long)length);\n            iVar2 = uint64_compare(uVar14,size);\n            if (iVar2 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          print_stats(local_10a0,size,local_1098,start,local_1088);\n        }\nLAB_00114520:\n        x = uint64_add32(x,0x1000);\n      }\n      close_rfile(f);\n      scp_send_finish();\n    }\n    else {\n      close_rfile(f);\n    }\n  }" { (if_statement "if (verbose != 0) {\n      uint64_decimal(size,sizestr);\n      tell_user(stderr,"Sending file %s, size=%s",local_10a0,sizestr);\n    }" if (parenthesized_expression "(verbose != 0)" ( (binary_expression "verbose != 0" identifier != number_literal) )) (compound_statement "{\n      uint64_decimal(size,sizestr);\n      tell_user(stderr,"Sending file %s, size=%s",local_10a0,sizestr);\n    }" { (expression_statement "uint64_decimal(size,sizestr);" (call_expression "uint64_decimal(size,sizestr)" identifier (argument_list "(size,sizestr)" ( identifier , identifier ))) ;) (expression_statement "tell_user(stderr,"Sending file %s, size=%s",local_10a0,sizestr);" (call_expression "tell_user(stderr,"Sending file %s, size=%s",local_10a0,sizestr)" identifier (argument_list "(stderr,"Sending file %s, size=%s",local_10a0,sizestr)" ( identifier , (string_literal ""Sending file %s, size=%s"" " string_content ") , identifier , identifier ))) ;) })) (expression_statement "iVar2 = scp_send_filename(local_10a0,size,(int)permissions);" (assignment_expression "iVar2 = scp_send_filename(local_10a0,size,(int)permissions)" identifier = (call_expression "scp_send_filename(local_10a0,size,(int)permissions)" identifier (argument_list "(local_10a0,size,(int)permissions)" ( identifier , identifier , (cast_expression "(int)permissions" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n      local_1098 = uint64_make(0,0);\n      start = time((time_t *)0x0);\n      x = uint64_make(0,0);\n      local_1088 = 0;\n      while (iVar2 = uint64_compare(x,size), iVar2 < 0) {\n        uVar14 = uint64_add32(x,0x1000);\n        iVar2 = uint64_compare(uVar14,size);\n        length = 0x1000;\n        if (0 < iVar2) {\n          uVar14 = uint64_subtract(size,x);\n          length = uVar14.lo;\n        }\n        iVar2 = read_from_file(f,sizestr,length);\n        if (length != iVar2) {\n          if (statistics != 0) {\n            putchar(10);\n          }\n          bump("%s: Read error",src);\n        }\n        iVar2 = scp_send_filedata(sizestr,length);\n        if (iVar2 != 0) {\n          bump("%s: Network error occurred",src);\n        }\n        if (statistics != 0) {\n          local_1098 = uint64_add32(local_1098,(long)length);\n          tVar6 = time((time_t *)0x0);\n          if (tVar6 == local_1088) {\n            uVar14 = uint64_add32(x,(long)length);\n            iVar2 = uint64_compare(uVar14,size);\n            if (iVar2 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          print_stats(local_10a0,size,local_1098,start,local_1088);\n        }\nLAB_00114520:\n        x = uint64_add32(x,0x1000);\n      }\n      close_rfile(f);\n      scp_send_finish();\n    }\n    else {\n      close_rfile(f);\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      local_1098 = uint64_make(0,0);\n      start = time((time_t *)0x0);\n      x = uint64_make(0,0);\n      local_1088 = 0;\n      while (iVar2 = uint64_compare(x,size), iVar2 < 0) {\n        uVar14 = uint64_add32(x,0x1000);\n        iVar2 = uint64_compare(uVar14,size);\n        length = 0x1000;\n        if (0 < iVar2) {\n          uVar14 = uint64_subtract(size,x);\n          length = uVar14.lo;\n        }\n        iVar2 = read_from_file(f,sizestr,length);\n        if (length != iVar2) {\n          if (statistics != 0) {\n            putchar(10);\n          }\n          bump("%s: Read error",src);\n        }\n        iVar2 = scp_send_filedata(sizestr,length);\n        if (iVar2 != 0) {\n          bump("%s: Network error occurred",src);\n        }\n        if (statistics != 0) {\n          local_1098 = uint64_add32(local_1098,(long)length);\n          tVar6 = time((time_t *)0x0);\n          if (tVar6 == local_1088) {\n            uVar14 = uint64_add32(x,(long)length);\n            iVar2 = uint64_compare(uVar14,size);\n            if (iVar2 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          print_stats(local_10a0,size,local_1098,start,local_1088);\n        }\nLAB_00114520:\n        x = uint64_add32(x,0x1000);\n      }\n      close_rfile(f);\n      scp_send_finish();\n    }" { (expression_statement "local_1098 = uint64_make(0,0);" (assignment_expression "local_1098 = uint64_make(0,0)" identifier = (call_expression "uint64_make(0,0)" identifier (argument_list "(0,0)" ( number_literal , number_literal )))) ;) (expression_statement "start = time((time_t *)0x0);" (assignment_expression "start = time((time_t *)0x0)" identifier = (call_expression "time((time_t *)0x0)" identifier (argument_list "((time_t *)0x0)" ( (cast_expression "(time_t *)0x0" ( (type_descriptor "time_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "x = uint64_make(0,0);" (assignment_expression "x = uint64_make(0,0)" identifier = (call_expression "uint64_make(0,0)" identifier (argument_list "(0,0)" ( number_literal , number_literal )))) ;) (expression_statement "local_1088 = 0;" (assignment_expression "local_1088 = 0" identifier = number_literal) ;) (while_statement "while (iVar2 = uint64_compare(x,size), iVar2 < 0) {\n        uVar14 = uint64_add32(x,0x1000);\n        iVar2 = uint64_compare(uVar14,size);\n        length = 0x1000;\n        if (0 < iVar2) {\n          uVar14 = uint64_subtract(size,x);\n          length = uVar14.lo;\n        }\n        iVar2 = read_from_file(f,sizestr,length);\n        if (length != iVar2) {\n          if (statistics != 0) {\n            putchar(10);\n          }\n          bump("%s: Read error",src);\n        }\n        iVar2 = scp_send_filedata(sizestr,length);\n        if (iVar2 != 0) {\n          bump("%s: Network error occurred",src);\n        }\n        if (statistics != 0) {\n          local_1098 = uint64_add32(local_1098,(long)length);\n          tVar6 = time((time_t *)0x0);\n          if (tVar6 == local_1088) {\n            uVar14 = uint64_add32(x,(long)length);\n            iVar2 = uint64_compare(uVar14,size);\n            if (iVar2 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          print_stats(local_10a0,size,local_1098,start,local_1088);\n        }\nLAB_00114520:\n        x = uint64_add32(x,0x1000);\n      }" while (parenthesized_expression "(iVar2 = uint64_compare(x,size), iVar2 < 0)" ( (comma_expression "iVar2 = uint64_compare(x,size), iVar2 < 0" (assignment_expression "iVar2 = uint64_compare(x,size)" identifier = (call_expression "uint64_compare(x,size)" identifier (argument_list "(x,size)" ( identifier , identifier )))) , (binary_expression "iVar2 < 0" identifier < number_literal)) )) (compound_statement "{\n        uVar14 = uint64_add32(x,0x1000);\n        iVar2 = uint64_compare(uVar14,size);\n        length = 0x1000;\n        if (0 < iVar2) {\n          uVar14 = uint64_subtract(size,x);\n          length = uVar14.lo;\n        }\n        iVar2 = read_from_file(f,sizestr,length);\n        if (length != iVar2) {\n          if (statistics != 0) {\n            putchar(10);\n          }\n          bump("%s: Read error",src);\n        }\n        iVar2 = scp_send_filedata(sizestr,length);\n        if (iVar2 != 0) {\n          bump("%s: Network error occurred",src);\n        }\n        if (statistics != 0) {\n          local_1098 = uint64_add32(local_1098,(long)length);\n          tVar6 = time((time_t *)0x0);\n          if (tVar6 == local_1088) {\n            uVar14 = uint64_add32(x,(long)length);\n            iVar2 = uint64_compare(uVar14,size);\n            if (iVar2 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          print_stats(local_10a0,size,local_1098,start,local_1088);\n        }\nLAB_00114520:\n        x = uint64_add32(x,0x1000);\n      }" { (expression_statement "uVar14 = uint64_add32(x,0x1000);" (assignment_expression "uVar14 = uint64_add32(x,0x1000)" identifier = (call_expression "uint64_add32(x,0x1000)" identifier (argument_list "(x,0x1000)" ( identifier , number_literal )))) ;) (expression_statement "iVar2 = uint64_compare(uVar14,size);" (assignment_expression "iVar2 = uint64_compare(uVar14,size)" identifier = (call_expression "uint64_compare(uVar14,size)" identifier (argument_list "(uVar14,size)" ( identifier , identifier )))) ;) (expression_statement "length = 0x1000;" (assignment_expression "length = 0x1000" identifier = number_literal) ;) (if_statement "if (0 < iVar2) {\n          uVar14 = uint64_subtract(size,x);\n          length = uVar14.lo;\n        }" if (parenthesized_expression "(0 < iVar2)" ( (binary_expression "0 < iVar2" number_literal < identifier) )) (compound_statement "{\n          uVar14 = uint64_subtract(size,x);\n          length = uVar14.lo;\n        }" { (expression_statement "uVar14 = uint64_subtract(size,x);" (assignment_expression "uVar14 = uint64_subtract(size,x)" identifier = (call_expression "uint64_subtract(size,x)" identifier (argument_list "(size,x)" ( identifier , identifier )))) ;) (expression_statement "length = uVar14.lo;" (assignment_expression "length = uVar14.lo" identifier = (field_expression "uVar14.lo" identifier . field_identifier)) ;) })) (expression_statement "iVar2 = read_from_file(f,sizestr,length);" (assignment_expression "iVar2 = read_from_file(f,sizestr,length)" identifier = (call_expression "read_from_file(f,sizestr,length)" identifier (argument_list "(f,sizestr,length)" ( identifier , identifier , identifier )))) ;) (if_statement "if (length != iVar2) {\n          if (statistics != 0) {\n            putchar(10);\n          }\n          bump("%s: Read error",src);\n        }" if (parenthesized_expression "(length != iVar2)" ( (binary_expression "length != iVar2" identifier != identifier) )) (compound_statement "{\n          if (statistics != 0) {\n            putchar(10);\n          }\n          bump("%s: Read error",src);\n        }" { (if_statement "if (statistics != 0) {\n            putchar(10);\n          }" if (parenthesized_expression "(statistics != 0)" ( (binary_expression "statistics != 0" identifier != number_literal) )) (compound_statement "{\n            putchar(10);\n          }" { (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) })) (expression_statement "bump("%s: Read error",src);" (call_expression "bump("%s: Read error",src)" identifier (argument_list "("%s: Read error",src)" ( (string_literal ""%s: Read error"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar2 = scp_send_filedata(sizestr,length);" (assignment_expression "iVar2 = scp_send_filedata(sizestr,length)" identifier = (call_expression "scp_send_filedata(sizestr,length)" identifier (argument_list "(sizestr,length)" ( identifier , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n          bump("%s: Network error occurred",src);\n        }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          bump("%s: Network error occurred",src);\n        }" { (expression_statement "bump("%s: Network error occurred",src);" (call_expression "bump("%s: Network error occurred",src)" identifier (argument_list "("%s: Network error occurred",src)" ( (string_literal ""%s: Network error occurred"" " string_content ") , identifier ))) ;) })) (if_statement "if (statistics != 0) {\n          local_1098 = uint64_add32(local_1098,(long)length);\n          tVar6 = time((time_t *)0x0);\n          if (tVar6 == local_1088) {\n            uVar14 = uint64_add32(x,(long)length);\n            iVar2 = uint64_compare(uVar14,size);\n            if (iVar2 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          print_stats(local_10a0,size,local_1098,start,local_1088);\n        }" if (parenthesized_expression "(statistics != 0)" ( (binary_expression "statistics != 0" identifier != number_literal) )) (compound_statement "{\n          local_1098 = uint64_add32(local_1098,(long)length);\n          tVar6 = time((time_t *)0x0);\n          if (tVar6 == local_1088) {\n            uVar14 = uint64_add32(x,(long)length);\n            iVar2 = uint64_compare(uVar14,size);\n            if (iVar2 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          print_stats(local_10a0,size,local_1098,start,local_1088);\n        }" { (expression_statement "local_1098 = uint64_add32(local_1098,(long)length);" (assignment_expression "local_1098 = uint64_add32(local_1098,(long)length)" identifier = (call_expression "uint64_add32(local_1098,(long)length)" identifier (argument_list "(local_1098,(long)length)" ( identifier , (cast_expression "(long)length" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) )))) ;) (expression_statement "tVar6 = time((time_t *)0x0);" (assignment_expression "tVar6 = time((time_t *)0x0)" identifier = (call_expression "time((time_t *)0x0)" identifier (argument_list "((time_t *)0x0)" ( (cast_expression "(time_t *)0x0" ( (type_descriptor "time_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (tVar6 == local_1088) {\n            uVar14 = uint64_add32(x,(long)length);\n            iVar2 = uint64_compare(uVar14,size);\n            if (iVar2 != 0) goto LAB_00114520;\n          }" if (parenthesized_expression "(tVar6 == local_1088)" ( (binary_expression "tVar6 == local_1088" identifier == identifier) )) (compound_statement "{\n            uVar14 = uint64_add32(x,(long)length);\n            iVar2 = uint64_compare(uVar14,size);\n            if (iVar2 != 0) goto LAB_00114520;\n          }" { (expression_statement "uVar14 = uint64_add32(x,(long)length);" (assignment_expression "uVar14 = uint64_add32(x,(long)length)" identifier = (call_expression "uint64_add32(x,(long)length)" identifier (argument_list "(x,(long)length)" ( identifier , (cast_expression "(long)length" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) )))) ;) (expression_statement "iVar2 = uint64_compare(uVar14,size);" (assignment_expression "iVar2 = uint64_compare(uVar14,size)" identifier = (call_expression "uint64_compare(uVar14,size)" identifier (argument_list "(uVar14,size)" ( identifier , identifier )))) ;) (if_statement "if (iVar2 != 0) goto LAB_00114520;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00114520;" goto statement_identifier ;)) })) (expression_statement "local_1088 = time((time_t *)0x0);" (assignment_expression "local_1088 = time((time_t *)0x0)" identifier = (call_expression "time((time_t *)0x0)" identifier (argument_list "((time_t *)0x0)" ( (cast_expression "(time_t *)0x0" ( (type_descriptor "time_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "print_stats(local_10a0,size,local_1098,start,local_1088);" (call_expression "print_stats(local_10a0,size,local_1098,start,local_1088)" identifier (argument_list "(local_10a0,size,local_1098,start,local_1088)" ( identifier , identifier , identifier , identifier , identifier ))) ;) })) (labeled_statement "LAB_00114520:\n        x = uint64_add32(x,0x1000);" statement_identifier : (expression_statement "x = uint64_add32(x,0x1000);" (assignment_expression "x = uint64_add32(x,0x1000)" identifier = (call_expression "uint64_add32(x,0x1000)" identifier (argument_list "(x,0x1000)" ( identifier , number_literal )))) ;)) })) (expression_statement "close_rfile(f);" (call_expression "close_rfile(f)" identifier (argument_list "(f)" ( identifier ))) ;) (expression_statement "scp_send_finish();" (call_expression "scp_send_finish()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n      close_rfile(f);\n    }" else (compound_statement "{\n      close_rfile(f);\n    }" { (expression_statement "close_rfile(f);" (call_expression "close_rfile(f)" identifier (argument_list "(f)" ( identifier ))) ;) }))) }) (else_clause "else {\n    close_rfile(f);\n  }" else (compound_statement "{\n    close_rfile(f);\n  }" { (expression_statement "close_rfile(f);" (call_expression "close_rfile(f)" identifier (argument_list "(f)" ( identifier ))) ;) }))))) (labeled_statement "LAB_00114299:\n  if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(lVar1 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar1 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00114133(byte *param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  char *pcVar3;\n  long lVar4;\n  time_t tVar5;\n  char *pcVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  long lVar9;\n  time_t tVar10;\n  int extraout_EDX;\n  byte *pbVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  long in_FS_OFFSET;\n  bool bVar14;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  undefined1 auVar18 [16];\n  undefined1 auVar19 [16];\n  byte *local_10a0;\n  undefined8 local_1098;\n  undefined8 local_1090;\n  long local_1088;\n  undefined8 local_1070;\n  undefined8 local_1068;\n  undefined4 local_1060 [2];\n  undefined8 local_1058;\n  undefined8 local_1050;\n  undefined1 local_1048 [4104];\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar1 = FUN_0015874b();\n  if ((iVar1 == 0) || (iVar1 == 3)) {\n    pcVar3 = "Not a";\n    if (iVar1 != 3) {\n      pcVar3 = "No such";\n    }\n    FUN_0011382c("%s: %s file or directory",param_1,pcVar3);\n    goto LAB_00114299;\n  }\n  if (iVar1 == 2) {\n    if (DAT_00183374 == 0) {\n      FUN_0011382c("%s: not a regular file",param_1);\n      goto LAB_00114299;\n    }\n    pcVar6 = strrchr((char *)param_1,0x2f);\n    pcVar3 = pcVar6;\n    if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      bVar14 = false;\n      bVar16 = pcVar3 == (char *)0x0;\n      pbVar11 = param_1;\n      if (!bVar16) goto LAB_001142e8;\n    }\n    else {\nLAB_001142e8:\n      bVar14 = (char *)0xfffffffffffffffe < pcVar3;\n      bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0;\n      pbVar11 = (byte *)(pcVar3 + 1);\n    }\n    lVar4 = 2;\n    pbVar12 = pbVar11;\n    pbVar13 = (byte *)0x15eb4d;\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar14 = *pbVar12 < *pbVar13;\n      bVar16 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    bVar15 = false;\n    bVar14 = (!bVar14 && !bVar16) == bVar14;\n    if (bVar14) goto LAB_00114299;\n    lVar4 = 3;\n    pbVar12 = (byte *)0x15eb4c;\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar15 = *pbVar11 < *pbVar12;\n      bVar14 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar17 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n    } while (bVar14);\n    if ((!bVar15 && !bVar14) == bVar15) goto LAB_00114299;\n    if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      pbVar11 = param_1;\n      if (pcVar3 != (char *)0x0) goto LAB_00114344;\nLAB_0011468d:\n      pcVar3 = strchr((char *)param_1,0x3a);\n      if (pcVar3 != (char *)0x0) {\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n    }\n    else {\n      pbVar11 = (byte *)(pcVar6 + 1);\n      pcVar3 = strrchr((char *)pbVar11,0x5c);\n      if (pcVar3 != (char *)0x0) {\nLAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n      if (param_1 == pbVar11) goto LAB_0011468d;\n    }\n    uVar7 = FUN_00113ee9();\n    if (DAT_00183378 != 0) {\n      FUN_00111e5a(stderr,"Entering directory: %s",pbVar11);\n    }\n    iVar1 = FUN_00113f10(pbVar11,0x1ed);\n    if (iVar1 == 0) {\n      lVar4 = FUN_00158804(param_1);\n      if (lVar4 != 0) {\n        while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }\n      }\n      FUN_00158855(lVar4);\n      FUN_001140ec();\n      FUN_00113eff(uVar7);\n    }\n    goto LAB_00114299;\n  }\n  pcVar3 = strrchr((char *)param_1,0x2f);\n  if (pcVar3 == (char *)0x0) {\n    pcVar3 = strrchr((char *)param_1,0x5c);\n    if (pcVar3 != (char *)0x0) goto LAB_001141aa;\nLAB_001146c0:\n    pcVar3 = strchr((char *)param_1,0x3a);\n    local_10a0 = (byte *)(pcVar3 + 1);\n    if (pcVar3 == (char *)0x0) {\n      local_10a0 = param_1;\n    }\n  }\n  else {\n    local_10a0 = (byte *)(pcVar3 + 1);\n    pcVar3 = strrchr((char *)local_10a0,0x5c);\n    if (pcVar3 != (char *)0x0) {\nLAB_001141aa:\n      local_10a0 = (byte *)(pcVar3 + 1);\n    }\n    if (local_10a0 == param_1) goto LAB_001146c0;\n  }\n  lVar4 = FUN_00158359(param_1,&local_1058,&local_1070,&local_1068,local_1060);\n  if (lVar4 == 0) {\n    FUN_0011382c("%s: Cannot open file",param_1);\n  }\n  else if ((DAT_00183370 == 0) || (iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0)) {\n    if (DAT_00183378 != 0) {\n      FUN_0010b956(local_1058,local_1050,local_1048);\n      FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);\n    }\n    iVar1 = FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0]);\n    if (iVar1 == 0) {\n      auVar18 = FUN_0010baa3(0,0);\n      tVar5 = time((time_t *)0x0);\n      auVar19 = FUN_0010baa3(0,0);\n      local_1088 = 0;\n      while( true ) {\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }\n      FUN_001584ca(lVar4);\n      FUN_00113d4a();\n    }\n    else {\n      FUN_001584ca(lVar4);\n    }\n  }\n  else {\n    FUN_001584ca(lVar4);\n  }\nLAB_00114299:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return;\n}\n\n" (function_definition "void FUN_00114133(byte *param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  char *pcVar3;\n  long lVar4;\n  time_t tVar5;\n  char *pcVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  long lVar9;\n  time_t tVar10;\n  int extraout_EDX;\n  byte *pbVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  long in_FS_OFFSET;\n  bool bVar14;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  undefined1 auVar18 [16];\n  undefined1 auVar19 [16];\n  byte *local_10a0;\n  undefined8 local_1098;\n  undefined8 local_1090;\n  long local_1088;\n  undefined8 local_1070;\n  undefined8 local_1068;\n  undefined4 local_1060 [2];\n  undefined8 local_1058;\n  undefined8 local_1050;\n  undefined1 local_1048 [4104];\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar1 = FUN_0015874b();\n  if ((iVar1 == 0) || (iVar1 == 3)) {\n    pcVar3 = "Not a";\n    if (iVar1 != 3) {\n      pcVar3 = "No such";\n    }\n    FUN_0011382c("%s: %s file or directory",param_1,pcVar3);\n    goto LAB_00114299;\n  }\n  if (iVar1 == 2) {\n    if (DAT_00183374 == 0) {\n      FUN_0011382c("%s: not a regular file",param_1);\n      goto LAB_00114299;\n    }\n    pcVar6 = strrchr((char *)param_1,0x2f);\n    pcVar3 = pcVar6;\n    if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      bVar14 = false;\n      bVar16 = pcVar3 == (char *)0x0;\n      pbVar11 = param_1;\n      if (!bVar16) goto LAB_001142e8;\n    }\n    else {\nLAB_001142e8:\n      bVar14 = (char *)0xfffffffffffffffe < pcVar3;\n      bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0;\n      pbVar11 = (byte *)(pcVar3 + 1);\n    }\n    lVar4 = 2;\n    pbVar12 = pbVar11;\n    pbVar13 = (byte *)0x15eb4d;\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar14 = *pbVar12 < *pbVar13;\n      bVar16 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    bVar15 = false;\n    bVar14 = (!bVar14 && !bVar16) == bVar14;\n    if (bVar14) goto LAB_00114299;\n    lVar4 = 3;\n    pbVar12 = (byte *)0x15eb4c;\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar15 = *pbVar11 < *pbVar12;\n      bVar14 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar17 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n    } while (bVar14);\n    if ((!bVar15 && !bVar14) == bVar15) goto LAB_00114299;\n    if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      pbVar11 = param_1;\n      if (pcVar3 != (char *)0x0) goto LAB_00114344;\nLAB_0011468d:\n      pcVar3 = strchr((char *)param_1,0x3a);\n      if (pcVar3 != (char *)0x0) {\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n    }\n    else {\n      pbVar11 = (byte *)(pcVar6 + 1);\n      pcVar3 = strrchr((char *)pbVar11,0x5c);\n      if (pcVar3 != (char *)0x0) {\nLAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n      if (param_1 == pbVar11) goto LAB_0011468d;\n    }\n    uVar7 = FUN_00113ee9();\n    if (DAT_00183378 != 0) {\n      FUN_00111e5a(stderr,"Entering directory: %s",pbVar11);\n    }\n    iVar1 = FUN_00113f10(pbVar11,0x1ed);\n    if (iVar1 == 0) {\n      lVar4 = FUN_00158804(param_1);\n      if (lVar4 != 0) {\n        while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }\n      }\n      FUN_00158855(lVar4);\n      FUN_001140ec();\n      FUN_00113eff(uVar7);\n    }\n    goto LAB_00114299;\n  }\n  pcVar3 = strrchr((char *)param_1,0x2f);\n  if (pcVar3 == (char *)0x0) {\n    pcVar3 = strrchr((char *)param_1,0x5c);\n    if (pcVar3 != (char *)0x0) goto LAB_001141aa;\nLAB_001146c0:\n    pcVar3 = strchr((char *)param_1,0x3a);\n    local_10a0 = (byte *)(pcVar3 + 1);\n    if (pcVar3 == (char *)0x0) {\n      local_10a0 = param_1;\n    }\n  }\n  else {\n    local_10a0 = (byte *)(pcVar3 + 1);\n    pcVar3 = strrchr((char *)local_10a0,0x5c);\n    if (pcVar3 != (char *)0x0) {\nLAB_001141aa:\n      local_10a0 = (byte *)(pcVar3 + 1);\n    }\n    if (local_10a0 == param_1) goto LAB_001146c0;\n  }\n  lVar4 = FUN_00158359(param_1,&local_1058,&local_1070,&local_1068,local_1060);\n  if (lVar4 == 0) {\n    FUN_0011382c("%s: Cannot open file",param_1);\n  }\n  else if ((DAT_00183370 == 0) || (iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0)) {\n    if (DAT_00183378 != 0) {\n      FUN_0010b956(local_1058,local_1050,local_1048);\n      FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);\n    }\n    iVar1 = FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0]);\n    if (iVar1 == 0) {\n      auVar18 = FUN_0010baa3(0,0);\n      tVar5 = time((time_t *)0x0);\n      auVar19 = FUN_0010baa3(0,0);\n      local_1088 = 0;\n      while( true ) {\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }\n      FUN_001584ca(lVar4);\n      FUN_00113d4a();\n    }\n    else {\n      FUN_001584ca(lVar4);\n    }\n  }\n  else {\n    FUN_001584ca(lVar4);\n  }\nLAB_00114299:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00114133(byte *param_1)" identifier (parameter_list "(byte *param_1)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  char *pcVar3;\n  long lVar4;\n  time_t tVar5;\n  char *pcVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  long lVar9;\n  time_t tVar10;\n  int extraout_EDX;\n  byte *pbVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  long in_FS_OFFSET;\n  bool bVar14;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  undefined1 auVar18 [16];\n  undefined1 auVar19 [16];\n  byte *local_10a0;\n  undefined8 local_1098;\n  undefined8 local_1090;\n  long local_1088;\n  undefined8 local_1070;\n  undefined8 local_1068;\n  undefined4 local_1060 [2];\n  undefined8 local_1058;\n  undefined8 local_1050;\n  undefined1 local_1048 [4104];\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar1 = FUN_0015874b();\n  if ((iVar1 == 0) || (iVar1 == 3)) {\n    pcVar3 = "Not a";\n    if (iVar1 != 3) {\n      pcVar3 = "No such";\n    }\n    FUN_0011382c("%s: %s file or directory",param_1,pcVar3);\n    goto LAB_00114299;\n  }\n  if (iVar1 == 2) {\n    if (DAT_00183374 == 0) {\n      FUN_0011382c("%s: not a regular file",param_1);\n      goto LAB_00114299;\n    }\n    pcVar6 = strrchr((char *)param_1,0x2f);\n    pcVar3 = pcVar6;\n    if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      bVar14 = false;\n      bVar16 = pcVar3 == (char *)0x0;\n      pbVar11 = param_1;\n      if (!bVar16) goto LAB_001142e8;\n    }\n    else {\nLAB_001142e8:\n      bVar14 = (char *)0xfffffffffffffffe < pcVar3;\n      bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0;\n      pbVar11 = (byte *)(pcVar3 + 1);\n    }\n    lVar4 = 2;\n    pbVar12 = pbVar11;\n    pbVar13 = (byte *)0x15eb4d;\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar14 = *pbVar12 < *pbVar13;\n      bVar16 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    bVar15 = false;\n    bVar14 = (!bVar14 && !bVar16) == bVar14;\n    if (bVar14) goto LAB_00114299;\n    lVar4 = 3;\n    pbVar12 = (byte *)0x15eb4c;\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar15 = *pbVar11 < *pbVar12;\n      bVar14 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar17 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n    } while (bVar14);\n    if ((!bVar15 && !bVar14) == bVar15) goto LAB_00114299;\n    if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      pbVar11 = param_1;\n      if (pcVar3 != (char *)0x0) goto LAB_00114344;\nLAB_0011468d:\n      pcVar3 = strchr((char *)param_1,0x3a);\n      if (pcVar3 != (char *)0x0) {\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n    }\n    else {\n      pbVar11 = (byte *)(pcVar6 + 1);\n      pcVar3 = strrchr((char *)pbVar11,0x5c);\n      if (pcVar3 != (char *)0x0) {\nLAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n      if (param_1 == pbVar11) goto LAB_0011468d;\n    }\n    uVar7 = FUN_00113ee9();\n    if (DAT_00183378 != 0) {\n      FUN_00111e5a(stderr,"Entering directory: %s",pbVar11);\n    }\n    iVar1 = FUN_00113f10(pbVar11,0x1ed);\n    if (iVar1 == 0) {\n      lVar4 = FUN_00158804(param_1);\n      if (lVar4 != 0) {\n        while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }\n      }\n      FUN_00158855(lVar4);\n      FUN_001140ec();\n      FUN_00113eff(uVar7);\n    }\n    goto LAB_00114299;\n  }\n  pcVar3 = strrchr((char *)param_1,0x2f);\n  if (pcVar3 == (char *)0x0) {\n    pcVar3 = strrchr((char *)param_1,0x5c);\n    if (pcVar3 != (char *)0x0) goto LAB_001141aa;\nLAB_001146c0:\n    pcVar3 = strchr((char *)param_1,0x3a);\n    local_10a0 = (byte *)(pcVar3 + 1);\n    if (pcVar3 == (char *)0x0) {\n      local_10a0 = param_1;\n    }\n  }\n  else {\n    local_10a0 = (byte *)(pcVar3 + 1);\n    pcVar3 = strrchr((char *)local_10a0,0x5c);\n    if (pcVar3 != (char *)0x0) {\nLAB_001141aa:\n      local_10a0 = (byte *)(pcVar3 + 1);\n    }\n    if (local_10a0 == param_1) goto LAB_001146c0;\n  }\n  lVar4 = FUN_00158359(param_1,&local_1058,&local_1070,&local_1068,local_1060);\n  if (lVar4 == 0) {\n    FUN_0011382c("%s: Cannot open file",param_1);\n  }\n  else if ((DAT_00183370 == 0) || (iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0)) {\n    if (DAT_00183378 != 0) {\n      FUN_0010b956(local_1058,local_1050,local_1048);\n      FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);\n    }\n    iVar1 = FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0]);\n    if (iVar1 == 0) {\n      auVar18 = FUN_0010baa3(0,0);\n      tVar5 = time((time_t *)0x0);\n      auVar19 = FUN_0010baa3(0,0);\n      local_1088 = 0;\n      while( true ) {\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }\n      FUN_001584ca(lVar4);\n      FUN_00113d4a();\n    }\n    else {\n      FUN_001584ca(lVar4);\n    }\n  }\n  else {\n    FUN_001584ca(lVar4);\n  }\nLAB_00114299:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "time_t tVar5;" type_identifier identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "time_t tVar10;" type_identifier identifier ;) (declaration "int extraout_EDX;" primitive_type identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "bool bVar14;" primitive_type identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "undefined1 auVar18 [16];" type_identifier (array_declarator "auVar18 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 auVar19 [16];" type_identifier (array_declarator "auVar19 [16]" identifier [ number_literal ]) ;) (declaration "byte *local_10a0;" type_identifier (pointer_declarator "*local_10a0" * identifier) ;) (declaration "undefined8 local_1098;" type_identifier identifier ;) (declaration "undefined8 local_1090;" type_identifier identifier ;) (declaration "long local_1088;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_1070;" type_identifier identifier ;) (declaration "undefined8 local_1068;" type_identifier identifier ;) (declaration "undefined4 local_1060 [2];" type_identifier (array_declarator "local_1060 [2]" identifier [ number_literal ]) ;) (declaration "undefined8 local_1058;" type_identifier identifier ;) (declaration "undefined8 local_1050;" type_identifier identifier ;) (declaration "undefined1 local_1048 [4104];" type_identifier (array_declarator "local_1048 [4104]" identifier [ number_literal ]) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = FUN_0015874b();" (assignment_expression "iVar1 = FUN_0015874b()" identifier = (call_expression "FUN_0015874b()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar1 == 0) || (iVar1 == 3)) {\n    pcVar3 = "Not a";\n    if (iVar1 != 3) {\n      pcVar3 = "No such";\n    }\n    FUN_0011382c("%s: %s file or directory",param_1,pcVar3);\n    goto LAB_00114299;\n  }" if (parenthesized_expression "((iVar1 == 0) || (iVar1 == 3))" ( (binary_expression "(iVar1 == 0) || (iVar1 == 3)" (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar1 == 3)" ( (binary_expression "iVar1 == 3" identifier == number_literal) ))) )) (compound_statement "{\n    pcVar3 = "Not a";\n    if (iVar1 != 3) {\n      pcVar3 = "No such";\n    }\n    FUN_0011382c("%s: %s file or directory",param_1,pcVar3);\n    goto LAB_00114299;\n  }" { (expression_statement "pcVar3 = "Not a";" (assignment_expression "pcVar3 = "Not a"" identifier = (string_literal ""Not a"" " string_content ")) ;) (if_statement "if (iVar1 != 3) {\n      pcVar3 = "No such";\n    }" if (parenthesized_expression "(iVar1 != 3)" ( (binary_expression "iVar1 != 3" identifier != number_literal) )) (compound_statement "{\n      pcVar3 = "No such";\n    }" { (expression_statement "pcVar3 = "No such";" (assignment_expression "pcVar3 = "No such"" identifier = (string_literal ""No such"" " string_content ")) ;) })) (expression_statement "FUN_0011382c("%s: %s file or directory",param_1,pcVar3);" (call_expression "FUN_0011382c("%s: %s file or directory",param_1,pcVar3)" identifier (argument_list "("%s: %s file or directory",param_1,pcVar3)" ( (string_literal ""%s: %s file or directory"" " string_content ") , identifier , identifier ))) ;) (goto_statement "goto LAB_00114299;" goto statement_identifier ;) })) (if_statement "if (iVar1 == 2) {\n    if (DAT_00183374 == 0) {\n      FUN_0011382c("%s: not a regular file",param_1);\n      goto LAB_00114299;\n    }\n    pcVar6 = strrchr((char *)param_1,0x2f);\n    pcVar3 = pcVar6;\n    if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      bVar14 = false;\n      bVar16 = pcVar3 == (char *)0x0;\n      pbVar11 = param_1;\n      if (!bVar16) goto LAB_001142e8;\n    }\n    else {\nLAB_001142e8:\n      bVar14 = (char *)0xfffffffffffffffe < pcVar3;\n      bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0;\n      pbVar11 = (byte *)(pcVar3 + 1);\n    }\n    lVar4 = 2;\n    pbVar12 = pbVar11;\n    pbVar13 = (byte *)0x15eb4d;\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar14 = *pbVar12 < *pbVar13;\n      bVar16 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    bVar15 = false;\n    bVar14 = (!bVar14 && !bVar16) == bVar14;\n    if (bVar14) goto LAB_00114299;\n    lVar4 = 3;\n    pbVar12 = (byte *)0x15eb4c;\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar15 = *pbVar11 < *pbVar12;\n      bVar14 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar17 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n    } while (bVar14);\n    if ((!bVar15 && !bVar14) == bVar15) goto LAB_00114299;\n    if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      pbVar11 = param_1;\n      if (pcVar3 != (char *)0x0) goto LAB_00114344;\nLAB_0011468d:\n      pcVar3 = strchr((char *)param_1,0x3a);\n      if (pcVar3 != (char *)0x0) {\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n    }\n    else {\n      pbVar11 = (byte *)(pcVar6 + 1);\n      pcVar3 = strrchr((char *)pbVar11,0x5c);\n      if (pcVar3 != (char *)0x0) {\nLAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n      if (param_1 == pbVar11) goto LAB_0011468d;\n    }\n    uVar7 = FUN_00113ee9();\n    if (DAT_00183378 != 0) {\n      FUN_00111e5a(stderr,"Entering directory: %s",pbVar11);\n    }\n    iVar1 = FUN_00113f10(pbVar11,0x1ed);\n    if (iVar1 == 0) {\n      lVar4 = FUN_00158804(param_1);\n      if (lVar4 != 0) {\n        while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }\n      }\n      FUN_00158855(lVar4);\n      FUN_001140ec();\n      FUN_00113eff(uVar7);\n    }\n    goto LAB_00114299;\n  }" if (parenthesized_expression "(iVar1 == 2)" ( (binary_expression "iVar1 == 2" identifier == number_literal) )) (compound_statement "{\n    if (DAT_00183374 == 0) {\n      FUN_0011382c("%s: not a regular file",param_1);\n      goto LAB_00114299;\n    }\n    pcVar6 = strrchr((char *)param_1,0x2f);\n    pcVar3 = pcVar6;\n    if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      bVar14 = false;\n      bVar16 = pcVar3 == (char *)0x0;\n      pbVar11 = param_1;\n      if (!bVar16) goto LAB_001142e8;\n    }\n    else {\nLAB_001142e8:\n      bVar14 = (char *)0xfffffffffffffffe < pcVar3;\n      bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0;\n      pbVar11 = (byte *)(pcVar3 + 1);\n    }\n    lVar4 = 2;\n    pbVar12 = pbVar11;\n    pbVar13 = (byte *)0x15eb4d;\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar14 = *pbVar12 < *pbVar13;\n      bVar16 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    bVar15 = false;\n    bVar14 = (!bVar14 && !bVar16) == bVar14;\n    if (bVar14) goto LAB_00114299;\n    lVar4 = 3;\n    pbVar12 = (byte *)0x15eb4c;\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar15 = *pbVar11 < *pbVar12;\n      bVar14 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar17 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n    } while (bVar14);\n    if ((!bVar15 && !bVar14) == bVar15) goto LAB_00114299;\n    if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      pbVar11 = param_1;\n      if (pcVar3 != (char *)0x0) goto LAB_00114344;\nLAB_0011468d:\n      pcVar3 = strchr((char *)param_1,0x3a);\n      if (pcVar3 != (char *)0x0) {\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n    }\n    else {\n      pbVar11 = (byte *)(pcVar6 + 1);\n      pcVar3 = strrchr((char *)pbVar11,0x5c);\n      if (pcVar3 != (char *)0x0) {\nLAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n      if (param_1 == pbVar11) goto LAB_0011468d;\n    }\n    uVar7 = FUN_00113ee9();\n    if (DAT_00183378 != 0) {\n      FUN_00111e5a(stderr,"Entering directory: %s",pbVar11);\n    }\n    iVar1 = FUN_00113f10(pbVar11,0x1ed);\n    if (iVar1 == 0) {\n      lVar4 = FUN_00158804(param_1);\n      if (lVar4 != 0) {\n        while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }\n      }\n      FUN_00158855(lVar4);\n      FUN_001140ec();\n      FUN_00113eff(uVar7);\n    }\n    goto LAB_00114299;\n  }" { (if_statement "if (DAT_00183374 == 0) {\n      FUN_0011382c("%s: not a regular file",param_1);\n      goto LAB_00114299;\n    }" if (parenthesized_expression "(DAT_00183374 == 0)" ( (binary_expression "DAT_00183374 == 0" identifier == number_literal) )) (compound_statement "{\n      FUN_0011382c("%s: not a regular file",param_1);\n      goto LAB_00114299;\n    }" { (expression_statement "FUN_0011382c("%s: not a regular file",param_1);" (call_expression "FUN_0011382c("%s: not a regular file",param_1)" identifier (argument_list "("%s: not a regular file",param_1)" ( (string_literal ""%s: not a regular file"" " string_content ") , identifier ))) ;) (goto_statement "goto LAB_00114299;" goto statement_identifier ;) })) (expression_statement "pcVar6 = strrchr((char *)param_1,0x2f);" (assignment_expression "pcVar6 = strrchr((char *)param_1,0x2f)" identifier = (call_expression "strrchr((char *)param_1,0x2f)" identifier (argument_list "((char *)param_1,0x2f)" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (expression_statement "pcVar3 = pcVar6;" (assignment_expression "pcVar3 = pcVar6" identifier = identifier) ;) (if_statement "if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      bVar14 = false;\n      bVar16 = pcVar3 == (char *)0x0;\n      pbVar11 = param_1;\n      if (!bVar16) goto LAB_001142e8;\n    }\n    else {\nLAB_001142e8:\n      bVar14 = (char *)0xfffffffffffffffe < pcVar3;\n      bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0;\n      pbVar11 = (byte *)(pcVar3 + 1);\n    }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      bVar14 = false;\n      bVar16 = pcVar3 == (char *)0x0;\n      pbVar11 = param_1;\n      if (!bVar16) goto LAB_001142e8;\n    }" { (expression_statement "pcVar3 = strrchr((char *)param_1,0x5c);" (assignment_expression "pcVar3 = strrchr((char *)param_1,0x5c)" identifier = (call_expression "strrchr((char *)param_1,0x5c)" identifier (argument_list "((char *)param_1,0x5c)" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;) (expression_statement "bVar16 = pcVar3 == (char *)0x0;" (assignment_expression "bVar16 = pcVar3 == (char *)0x0" identifier = (binary_expression "pcVar3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (if_statement "if (!bVar16) goto LAB_001142e8;" if (parenthesized_expression "(!bVar16)" ( (unary_expression "!bVar16" ! identifier) )) (goto_statement "goto LAB_001142e8;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_001142e8:\n      bVar14 = (char *)0xfffffffffffffffe < pcVar3;\n      bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0;\n      pbVar11 = (byte *)(pcVar3 + 1);\n    }" else (compound_statement "{\nLAB_001142e8:\n      bVar14 = (char *)0xfffffffffffffffe < pcVar3;\n      bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0;\n      pbVar11 = (byte *)(pcVar3 + 1);\n    }" { (labeled_statement "LAB_001142e8:\n      bVar14 = (char *)0xfffffffffffffffe < pcVar3;" statement_identifier : (expression_statement "bVar14 = (char *)0xfffffffffffffffe < pcVar3;" (assignment_expression "bVar14 = (char *)0xfffffffffffffffe < pcVar3" identifier = (binary_expression "(char *)0xfffffffffffffffe < pcVar3" (cast_expression "(char *)0xfffffffffffffffe" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier)) ;)) (expression_statement "bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0;" (assignment_expression "bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0" identifier = (binary_expression "(byte *)(pcVar3 + 1) == (byte *)0x0" (cast_expression "(byte *)(pcVar3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 1)" ( (binary_expression "pcVar3 + 1" identifier + number_literal) ))) == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar11 = (byte *)(pcVar3 + 1);" (assignment_expression "pbVar11 = (byte *)(pcVar3 + 1)" identifier = (cast_expression "(byte *)(pcVar3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 1)" ( (binary_expression "pcVar3 + 1" identifier + number_literal) )))) ;) }))) (expression_statement "lVar4 = 2;" (assignment_expression "lVar4 = 2" identifier = number_literal) ;) (expression_statement "pbVar12 = pbVar11;" (assignment_expression "pbVar12 = pbVar11" identifier = identifier) ;) (expression_statement "pbVar13 = (byte *)0x15eb4d;" (assignment_expression "pbVar13 = (byte *)0x15eb4d" identifier = (cast_expression "(byte *)0x15eb4d" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar14 = *pbVar12 < *pbVar13;\n      bVar16 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);" do (compound_statement "{\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar14 = *pbVar12 < *pbVar13;\n      bVar16 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n    }" { (if_statement "if (lVar4 == 0) break;" if (parenthesized_expression "(lVar4 == 0)" ( (binary_expression "lVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar4 = lVar4 + -1;" (assignment_expression "lVar4 = lVar4 + -1" identifier = (binary_expression "lVar4 + -1" identifier + number_literal)) ;) (expression_statement "bVar14 = *pbVar12 < *pbVar13;" (assignment_expression "bVar14 = *pbVar12 < *pbVar13" identifier = (binary_expression "*pbVar12 < *pbVar13" (pointer_expression "*pbVar12" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar16 = *pbVar12 == *pbVar13;" (assignment_expression "bVar16 = *pbVar12 == *pbVar13" identifier = (binary_expression "*pbVar12 == *pbVar13" (pointer_expression "*pbVar12" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "bVar14 = (!bVar14 && !bVar16) == bVar14;" (assignment_expression "bVar14 = (!bVar14 && !bVar16) == bVar14" identifier = (binary_expression "(!bVar14 && !bVar16) == bVar14" (parenthesized_expression "(!bVar14 && !bVar16)" ( (binary_expression "!bVar14 && !bVar16" (unary_expression "!bVar14" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar14) goto LAB_00114299;" if (parenthesized_expression "(bVar14)" ( identifier )) (goto_statement "goto LAB_00114299;" goto statement_identifier ;)) (expression_statement "lVar4 = 3;" (assignment_expression "lVar4 = 3" identifier = number_literal) ;) (expression_statement "pbVar12 = (byte *)0x15eb4c;" (assignment_expression "pbVar12 = (byte *)0x15eb4c" identifier = (cast_expression "(byte *)0x15eb4c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar15 = *pbVar11 < *pbVar12;\n      bVar14 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar17 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n    } while (bVar14);" do (compound_statement "{\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar15 = *pbVar11 < *pbVar12;\n      bVar14 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar17 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n    }" { (if_statement "if (lVar4 == 0) break;" if (parenthesized_expression "(lVar4 == 0)" ( (binary_expression "lVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar4 = lVar4 + -1;" (assignment_expression "lVar4 = lVar4 + -1" identifier = (binary_expression "lVar4 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar11 < *pbVar12;" (assignment_expression "bVar15 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar14 = *pbVar11 == *pbVar12;" (assignment_expression "bVar14 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar14)" ( identifier )) ;) (if_statement "if ((!bVar15 && !bVar14) == bVar15) goto LAB_00114299;" if (parenthesized_expression "((!bVar15 && !bVar14) == bVar15)" ( (binary_expression "(!bVar15 && !bVar14) == bVar15" (parenthesized_expression "(!bVar15 && !bVar14)" ( (binary_expression "!bVar15 && !bVar14" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar14" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_00114299;" goto statement_identifier ;)) (if_statement "if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      pbVar11 = param_1;\n      if (pcVar3 != (char *)0x0) goto LAB_00114344;\nLAB_0011468d:\n      pcVar3 = strchr((char *)param_1,0x3a);\n      if (pcVar3 != (char *)0x0) {\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n    }\n    else {\n      pbVar11 = (byte *)(pcVar6 + 1);\n      pcVar3 = strrchr((char *)pbVar11,0x5c);\n      if (pcVar3 != (char *)0x0) {\nLAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n      if (param_1 == pbVar11) goto LAB_0011468d;\n    }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      pbVar11 = param_1;\n      if (pcVar3 != (char *)0x0) goto LAB_00114344;\nLAB_0011468d:\n      pcVar3 = strchr((char *)param_1,0x3a);\n      if (pcVar3 != (char *)0x0) {\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n    }" { (expression_statement "pcVar3 = strrchr((char *)param_1,0x5c);" (assignment_expression "pcVar3 = strrchr((char *)param_1,0x5c)" identifier = (call_expression "strrchr((char *)param_1,0x5c)" identifier (argument_list "((char *)param_1,0x5c)" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (if_statement "if (pcVar3 != (char *)0x0) goto LAB_00114344;" if (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00114344;" goto statement_identifier ;)) (labeled_statement "LAB_0011468d:\n      pcVar3 = strchr((char *)param_1,0x3a);" statement_identifier : (expression_statement "pcVar3 = strchr((char *)param_1,0x3a);" (assignment_expression "pcVar3 = strchr((char *)param_1,0x3a)" identifier = (call_expression "strchr((char *)param_1,0x3a)" identifier (argument_list "((char *)param_1,0x3a)" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;)) (if_statement "if (pcVar3 != (char *)0x0) {\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }" if (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }" { (expression_statement "pbVar11 = (byte *)(pcVar3 + 1);" (assignment_expression "pbVar11 = (byte *)(pcVar3 + 1)" identifier = (cast_expression "(byte *)(pcVar3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 1)" ( (binary_expression "pcVar3 + 1" identifier + number_literal) )))) ;) })) }) (else_clause "else {\n      pbVar11 = (byte *)(pcVar6 + 1);\n      pcVar3 = strrchr((char *)pbVar11,0x5c);\n      if (pcVar3 != (char *)0x0) {\nLAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n      if (param_1 == pbVar11) goto LAB_0011468d;\n    }" else (compound_statement "{\n      pbVar11 = (byte *)(pcVar6 + 1);\n      pcVar3 = strrchr((char *)pbVar11,0x5c);\n      if (pcVar3 != (char *)0x0) {\nLAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n      if (param_1 == pbVar11) goto LAB_0011468d;\n    }" { (expression_statement "pbVar11 = (byte *)(pcVar6 + 1);" (assignment_expression "pbVar11 = (byte *)(pcVar6 + 1)" identifier = (cast_expression "(byte *)(pcVar6 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 1)" ( (binary_expression "pcVar6 + 1" identifier + number_literal) )))) ;) (expression_statement "pcVar3 = strrchr((char *)pbVar11,0x5c);" (assignment_expression "pcVar3 = strrchr((char *)pbVar11,0x5c)" identifier = (call_expression "strrchr((char *)pbVar11,0x5c)" identifier (argument_list "((char *)pbVar11,0x5c)" ( (cast_expression "(char *)pbVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar3 != (char *)0x0) {\nLAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }" if (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }" { (labeled_statement "LAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);" statement_identifier : (expression_statement "pbVar11 = (byte *)(pcVar3 + 1);" (assignment_expression "pbVar11 = (byte *)(pcVar3 + 1)" identifier = (cast_expression "(byte *)(pcVar3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 1)" ( (binary_expression "pcVar3 + 1" identifier + number_literal) )))) ;)) })) (if_statement "if (param_1 == pbVar11) goto LAB_0011468d;" if (parenthesized_expression "(param_1 == pbVar11)" ( (binary_expression "param_1 == pbVar11" identifier == identifier) )) (goto_statement "goto LAB_0011468d;" goto statement_identifier ;)) }))) (expression_statement "uVar7 = FUN_00113ee9();" (assignment_expression "uVar7 = FUN_00113ee9()" identifier = (call_expression "FUN_00113ee9()" identifier (argument_list "()" ( )))) ;) (if_statement "if (DAT_00183378 != 0) {\n      FUN_00111e5a(stderr,"Entering directory: %s",pbVar11);\n    }" if (parenthesized_expression "(DAT_00183378 != 0)" ( (binary_expression "DAT_00183378 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_00111e5a(stderr,"Entering directory: %s",pbVar11);\n    }" { (expression_statement "FUN_00111e5a(stderr,"Entering directory: %s",pbVar11);" (call_expression "FUN_00111e5a(stderr,"Entering directory: %s",pbVar11)" identifier (argument_list "(stderr,"Entering directory: %s",pbVar11)" ( identifier , (string_literal ""Entering directory: %s"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar1 = FUN_00113f10(pbVar11,0x1ed);" (assignment_expression "iVar1 = FUN_00113f10(pbVar11,0x1ed)" identifier = (call_expression "FUN_00113f10(pbVar11,0x1ed)" identifier (argument_list "(pbVar11,0x1ed)" ( identifier , number_literal )))) ;) (if_statement "if (iVar1 == 0) {\n      lVar4 = FUN_00158804(param_1);\n      if (lVar4 != 0) {\n        while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }\n      }\n      FUN_00158855(lVar4);\n      FUN_001140ec();\n      FUN_00113eff(uVar7);\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      lVar4 = FUN_00158804(param_1);\n      if (lVar4 != 0) {\n        while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }\n      }\n      FUN_00158855(lVar4);\n      FUN_001140ec();\n      FUN_00113eff(uVar7);\n    }" { (expression_statement "lVar4 = FUN_00158804(param_1);" (assignment_expression "lVar4 = FUN_00158804(param_1)" identifier = (call_expression "FUN_00158804(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (lVar4 != 0) {\n        while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }\n      }" if (parenthesized_expression "(lVar4 != 0)" ( (binary_expression "lVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }\n      }" { (while_statement "while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }" while (parenthesized_expression "(lVar9 = FUN_00158826(lVar4), lVar9 != 0)" ( (comma_expression "lVar9 = FUN_00158826(lVar4), lVar9 != 0" (assignment_expression "lVar9 = FUN_00158826(lVar4)" identifier = (call_expression "FUN_00158826(lVar4)" identifier (argument_list "(lVar4)" ( identifier )))) , (binary_expression "lVar9 != 0" identifier != number_literal)) )) (compound_statement "{\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }" { (expression_statement "uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);" (assignment_expression "uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0)" identifier = (call_expression "FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0)" identifier (argument_list "(param_1,&DAT_0015ecb1,lVar9,0)" ( identifier , (pointer_expression "&DAT_0015ecb1" & identifier) , identifier , number_literal )))) ;) (expression_statement "FUN_00114133(uVar8);" (call_expression "FUN_00114133(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))) ;) (expression_statement "FUN_0010da9f(uVar8);" (call_expression "FUN_0010da9f(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))) ;) (expression_statement "FUN_0010da9f(lVar9);" (call_expression "FUN_0010da9f(lVar9)" identifier (argument_list "(lVar9)" ( identifier ))) ;) })) })) (expression_statement "FUN_00158855(lVar4);" (call_expression "FUN_00158855(lVar4)" identifier (argument_list "(lVar4)" ( identifier ))) ;) (expression_statement "FUN_001140ec();" (call_expression "FUN_001140ec()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00113eff(uVar7);" (call_expression "FUN_00113eff(uVar7)" identifier (argument_list "(uVar7)" ( identifier ))) ;) })) (goto_statement "goto LAB_00114299;" goto statement_identifier ;) })) (expression_statement "pcVar3 = strrchr((char *)param_1,0x2f);" (assignment_expression "pcVar3 = strrchr((char *)param_1,0x2f)" identifier = (call_expression "strrchr((char *)param_1,0x2f)" identifier (argument_list "((char *)param_1,0x2f)" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar3 == (char *)0x0) {\n    pcVar3 = strrchr((char *)param_1,0x5c);\n    if (pcVar3 != (char *)0x0) goto LAB_001141aa;\nLAB_001146c0:\n    pcVar3 = strchr((char *)param_1,0x3a);\n    local_10a0 = (byte *)(pcVar3 + 1);\n    if (pcVar3 == (char *)0x0) {\n      local_10a0 = param_1;\n    }\n  }\n  else {\n    local_10a0 = (byte *)(pcVar3 + 1);\n    pcVar3 = strrchr((char *)local_10a0,0x5c);\n    if (pcVar3 != (char *)0x0) {\nLAB_001141aa:\n      local_10a0 = (byte *)(pcVar3 + 1);\n    }\n    if (local_10a0 == param_1) goto LAB_001146c0;\n  }" if (parenthesized_expression "(pcVar3 == (char *)0x0)" ( (binary_expression "pcVar3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar3 = strrchr((char *)param_1,0x5c);\n    if (pcVar3 != (char *)0x0) goto LAB_001141aa;\nLAB_001146c0:\n    pcVar3 = strchr((char *)param_1,0x3a);\n    local_10a0 = (byte *)(pcVar3 + 1);\n    if (pcVar3 == (char *)0x0) {\n      local_10a0 = param_1;\n    }\n  }" { (expression_statement "pcVar3 = strrchr((char *)param_1,0x5c);" (assignment_expression "pcVar3 = strrchr((char *)param_1,0x5c)" identifier = (call_expression "strrchr((char *)param_1,0x5c)" identifier (argument_list "((char *)param_1,0x5c)" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar3 != (char *)0x0) goto LAB_001141aa;" if (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001141aa;" goto statement_identifier ;)) (labeled_statement "LAB_001146c0:\n    pcVar3 = strchr((char *)param_1,0x3a);" statement_identifier : (expression_statement "pcVar3 = strchr((char *)param_1,0x3a);" (assignment_expression "pcVar3 = strchr((char *)param_1,0x3a)" identifier = (call_expression "strchr((char *)param_1,0x3a)" identifier (argument_list "((char *)param_1,0x3a)" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;)) (expression_statement "local_10a0 = (byte *)(pcVar3 + 1);" (assignment_expression "local_10a0 = (byte *)(pcVar3 + 1)" identifier = (cast_expression "(byte *)(pcVar3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 1)" ( (binary_expression "pcVar3 + 1" identifier + number_literal) )))) ;) (if_statement "if (pcVar3 == (char *)0x0) {\n      local_10a0 = param_1;\n    }" if (parenthesized_expression "(pcVar3 == (char *)0x0)" ( (binary_expression "pcVar3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_10a0 = param_1;\n    }" { (expression_statement "local_10a0 = param_1;" (assignment_expression "local_10a0 = param_1" identifier = identifier) ;) })) }) (else_clause "else {\n    local_10a0 = (byte *)(pcVar3 + 1);\n    pcVar3 = strrchr((char *)local_10a0,0x5c);\n    if (pcVar3 != (char *)0x0) {\nLAB_001141aa:\n      local_10a0 = (byte *)(pcVar3 + 1);\n    }\n    if (local_10a0 == param_1) goto LAB_001146c0;\n  }" else (compound_statement "{\n    local_10a0 = (byte *)(pcVar3 + 1);\n    pcVar3 = strrchr((char *)local_10a0,0x5c);\n    if (pcVar3 != (char *)0x0) {\nLAB_001141aa:\n      local_10a0 = (byte *)(pcVar3 + 1);\n    }\n    if (local_10a0 == param_1) goto LAB_001146c0;\n  }" { (expression_statement "local_10a0 = (byte *)(pcVar3 + 1);" (assignment_expression "local_10a0 = (byte *)(pcVar3 + 1)" identifier = (cast_expression "(byte *)(pcVar3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 1)" ( (binary_expression "pcVar3 + 1" identifier + number_literal) )))) ;) (expression_statement "pcVar3 = strrchr((char *)local_10a0,0x5c);" (assignment_expression "pcVar3 = strrchr((char *)local_10a0,0x5c)" identifier = (call_expression "strrchr((char *)local_10a0,0x5c)" identifier (argument_list "((char *)local_10a0,0x5c)" ( (cast_expression "(char *)local_10a0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar3 != (char *)0x0) {\nLAB_001141aa:\n      local_10a0 = (byte *)(pcVar3 + 1);\n    }" if (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_001141aa:\n      local_10a0 = (byte *)(pcVar3 + 1);\n    }" { (labeled_statement "LAB_001141aa:\n      local_10a0 = (byte *)(pcVar3 + 1);" statement_identifier : (expression_statement "local_10a0 = (byte *)(pcVar3 + 1);" (assignment_expression "local_10a0 = (byte *)(pcVar3 + 1)" identifier = (cast_expression "(byte *)(pcVar3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 1)" ( (binary_expression "pcVar3 + 1" identifier + number_literal) )))) ;)) })) (if_statement "if (local_10a0 == param_1) goto LAB_001146c0;" if (parenthesized_expression "(local_10a0 == param_1)" ( (binary_expression "local_10a0 == param_1" identifier == identifier) )) (goto_statement "goto LAB_001146c0;" goto statement_identifier ;)) }))) (expression_statement "lVar4 = FUN_00158359(param_1,&local_1058,&local_1070,&local_1068,local_1060);" (assignment_expression "lVar4 = FUN_00158359(param_1,&local_1058,&local_1070,&local_1068,local_1060)" identifier = (call_expression "FUN_00158359(param_1,&local_1058,&local_1070,&local_1068,local_1060)" identifier (argument_list "(param_1,&local_1058,&local_1070,&local_1068,local_1060)" ( identifier , (pointer_expression "&local_1058" & identifier) , (pointer_expression "&local_1070" & identifier) , (pointer_expression "&local_1068" & identifier) , identifier )))) ;) (if_statement "if (lVar4 == 0) {\n    FUN_0011382c("%s: Cannot open file",param_1);\n  }\n  else if ((DAT_00183370 == 0) || (iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0)) {\n    if (DAT_00183378 != 0) {\n      FUN_0010b956(local_1058,local_1050,local_1048);\n      FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);\n    }\n    iVar1 = FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0]);\n    if (iVar1 == 0) {\n      auVar18 = FUN_0010baa3(0,0);\n      tVar5 = time((time_t *)0x0);\n      auVar19 = FUN_0010baa3(0,0);\n      local_1088 = 0;\n      while( true ) {\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }\n      FUN_001584ca(lVar4);\n      FUN_00113d4a();\n    }\n    else {\n      FUN_001584ca(lVar4);\n    }\n  }\n  else {\n    FUN_001584ca(lVar4);\n  }" if (parenthesized_expression "(lVar4 == 0)" ( (binary_expression "lVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_0011382c("%s: Cannot open file",param_1);\n  }" { (expression_statement "FUN_0011382c("%s: Cannot open file",param_1);" (call_expression "FUN_0011382c("%s: Cannot open file",param_1)" identifier (argument_list "("%s: Cannot open file",param_1)" ( (string_literal ""%s: Cannot open file"" " string_content ") , identifier ))) ;) }) (else_clause "else if ((DAT_00183370 == 0) || (iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0)) {\n    if (DAT_00183378 != 0) {\n      FUN_0010b956(local_1058,local_1050,local_1048);\n      FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);\n    }\n    iVar1 = FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0]);\n    if (iVar1 == 0) {\n      auVar18 = FUN_0010baa3(0,0);\n      tVar5 = time((time_t *)0x0);\n      auVar19 = FUN_0010baa3(0,0);\n      local_1088 = 0;\n      while( true ) {\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }\n      FUN_001584ca(lVar4);\n      FUN_00113d4a();\n    }\n    else {\n      FUN_001584ca(lVar4);\n    }\n  }\n  else {\n    FUN_001584ca(lVar4);\n  }" else (if_statement "if ((DAT_00183370 == 0) || (iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0)) {\n    if (DAT_00183378 != 0) {\n      FUN_0010b956(local_1058,local_1050,local_1048);\n      FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);\n    }\n    iVar1 = FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0]);\n    if (iVar1 == 0) {\n      auVar18 = FUN_0010baa3(0,0);\n      tVar5 = time((time_t *)0x0);\n      auVar19 = FUN_0010baa3(0,0);\n      local_1088 = 0;\n      while( true ) {\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }\n      FUN_001584ca(lVar4);\n      FUN_00113d4a();\n    }\n    else {\n      FUN_001584ca(lVar4);\n    }\n  }\n  else {\n    FUN_001584ca(lVar4);\n  }" if (parenthesized_expression "((DAT_00183370 == 0) || (iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0))" ( (binary_expression "(DAT_00183370 == 0) || (iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0)" (parenthesized_expression "(DAT_00183370 == 0)" ( (binary_expression "DAT_00183370 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0)" ( (comma_expression "iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0" (assignment_expression "iVar1 = FUN_00113947(local_1070,local_1068)" identifier = (call_expression "FUN_00113947(local_1070,local_1068)" identifier (argument_list "(local_1070,local_1068)" ( identifier , identifier )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    if (DAT_00183378 != 0) {\n      FUN_0010b956(local_1058,local_1050,local_1048);\n      FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);\n    }\n    iVar1 = FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0]);\n    if (iVar1 == 0) {\n      auVar18 = FUN_0010baa3(0,0);\n      tVar5 = time((time_t *)0x0);\n      auVar19 = FUN_0010baa3(0,0);\n      local_1088 = 0;\n      while( true ) {\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }\n      FUN_001584ca(lVar4);\n      FUN_00113d4a();\n    }\n    else {\n      FUN_001584ca(lVar4);\n    }\n  }" { (if_statement "if (DAT_00183378 != 0) {\n      FUN_0010b956(local_1058,local_1050,local_1048);\n      FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);\n    }" if (parenthesized_expression "(DAT_00183378 != 0)" ( (binary_expression "DAT_00183378 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_0010b956(local_1058,local_1050,local_1048);\n      FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);\n    }" { (expression_statement "FUN_0010b956(local_1058,local_1050,local_1048);" (call_expression "FUN_0010b956(local_1058,local_1050,local_1048)" identifier (argument_list "(local_1058,local_1050,local_1048)" ( identifier , identifier , identifier ))) ;) (expression_statement "FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);" (call_expression "FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048)" identifier (argument_list "(stderr,"Sending file %s, size=%s",local_10a0,local_1048)" ( identifier , (string_literal ""Sending file %s, size=%s"" " string_content ") , identifier , identifier ))) ;) })) (expression_statement "iVar1 = FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0]);" (assignment_expression "iVar1 = FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0])" identifier = (call_expression "FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0])" identifier (argument_list "(local_10a0,local_1058,local_1050,local_1060[0])" ( identifier , identifier , identifier , (subscript_expression "local_1060[0]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar1 == 0) {\n      auVar18 = FUN_0010baa3(0,0);\n      tVar5 = time((time_t *)0x0);\n      auVar19 = FUN_0010baa3(0,0);\n      local_1088 = 0;\n      while( true ) {\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }\n      FUN_001584ca(lVar4);\n      FUN_00113d4a();\n    }\n    else {\n      FUN_001584ca(lVar4);\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      auVar18 = FUN_0010baa3(0,0);\n      tVar5 = time((time_t *)0x0);\n      auVar19 = FUN_0010baa3(0,0);\n      local_1088 = 0;\n      while( true ) {\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }\n      FUN_001584ca(lVar4);\n      FUN_00113d4a();\n    }" { (expression_statement "auVar18 = FUN_0010baa3(0,0);" (assignment_expression "auVar18 = FUN_0010baa3(0,0)" identifier = (call_expression "FUN_0010baa3(0,0)" identifier (argument_list "(0,0)" ( number_literal , number_literal )))) ;) (expression_statement "tVar5 = time((time_t *)0x0);" (assignment_expression "tVar5 = time((time_t *)0x0)" identifier = (call_expression "time((time_t *)0x0)" identifier (argument_list "((time_t *)0x0)" ( (cast_expression "(time_t *)0x0" ( (type_descriptor "time_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "auVar19 = FUN_0010baa3(0,0);" (assignment_expression "auVar19 = FUN_0010baa3(0,0)" identifier = (call_expression "FUN_0010baa3(0,0)" identifier (argument_list "(0,0)" ( number_literal , number_literal )))) ;) (expression_statement "local_1088 = 0;" (assignment_expression "local_1088 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }" { (expression_statement "uVar7 = auVar19._8_8_;" (assignment_expression "uVar7 = auVar19._8_8_" identifier = (field_expression "auVar19._8_8_" identifier . field_identifier)) ;) (expression_statement "uVar8 = auVar19._0_8_;" (assignment_expression "uVar8 = auVar19._0_8_" identifier = (field_expression "auVar19._0_8_" identifier . field_identifier)) ;) (expression_statement "local_1090 = auVar18._8_8_;" (assignment_expression "local_1090 = auVar18._8_8_" identifier = (field_expression "auVar18._8_8_" identifier . field_identifier)) ;) (expression_statement "local_1098 = auVar18._0_8_;" (assignment_expression "local_1098 = auVar18._0_8_" identifier = (field_expression "auVar18._0_8_" identifier . field_identifier)) ;) (expression_statement "iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);" (assignment_expression "iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050)" identifier = (call_expression "FUN_0010bac6(uVar8,uVar7,local_1058,local_1050)" identifier (argument_list "(uVar8,uVar7,local_1058,local_1050)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (-1 < iVar1) break;" if (parenthesized_expression "(-1 < iVar1)" ( (binary_expression "-1 < iVar1" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);" (assignment_expression "auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000)" identifier = (call_expression "FUN_0010bab8(uVar8,uVar7,0x1000)" identifier (argument_list "(uVar8,uVar7,0x1000)" ( identifier , identifier , number_literal )))) ;) (expression_statement "iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);" (assignment_expression "iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050)" identifier = (call_expression "FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050)" identifier (argument_list "(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050)" ( (field_expression "auVar19._0_8_" identifier . field_identifier) , (field_expression "auVar19._8_8_" identifier . field_identifier) , identifier , identifier )))) ;) (expression_statement "iVar1 = 0x1000;" (assignment_expression "iVar1 = 0x1000" identifier = number_literal) ;) (if_statement "if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }" if (parenthesized_expression "(0 < iVar2)" ( (binary_expression "0 < iVar2" number_literal < identifier) )) (compound_statement "{\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }" { (expression_statement "FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);" (call_expression "FUN_0010bae7(local_1058,local_1050,uVar8,uVar7)" identifier (argument_list "(local_1058,local_1050,uVar8,uVar7)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar1 = extraout_EDX;" (assignment_expression "iVar1 = extraout_EDX" identifier = identifier) ;) })) (expression_statement "iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);" (assignment_expression "iVar2 = FUN_001584b7(lVar4,local_1048,iVar1)" identifier = (call_expression "FUN_001584b7(lVar4,local_1048,iVar1)" identifier (argument_list "(lVar4,local_1048,iVar1)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }" if (parenthesized_expression "(iVar1 != iVar2)" ( (binary_expression "iVar1 != iVar2" identifier != identifier) )) (compound_statement "{\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }" { (if_statement "if (DAT_00183070 != 0) {\n            putchar(10);\n          }" if (parenthesized_expression "(DAT_00183070 != 0)" ( (binary_expression "DAT_00183070 != 0" identifier != number_literal) )) (compound_statement "{\n            putchar(10);\n          }" { (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) })) (expression_statement "FUN_0011203b("%s: Read error",param_1);" (call_expression "FUN_0011203b("%s: Read error",param_1)" identifier (argument_list "("%s: Read error",param_1)" ( (string_literal ""%s: Read error"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar2 = FUN_00113c18(local_1048,iVar1);" (assignment_expression "iVar2 = FUN_00113c18(local_1048,iVar1)" identifier = (call_expression "FUN_00113c18(local_1048,iVar1)" identifier (argument_list "(local_1048,iVar1)" ( identifier , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }" { (expression_statement "FUN_0011203b("%s: Network error occurred",param_1);" (call_expression "FUN_0011203b("%s: Network error occurred",param_1)" identifier (argument_list "("%s: Network error occurred",param_1)" ( (string_literal ""%s: Network error occurred"" " string_content ") , identifier ))) ;) })) (if_statement "if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }" if (parenthesized_expression "(DAT_00183070 != 0)" ( (binary_expression "DAT_00183070 != 0" identifier != number_literal) )) (compound_statement "{\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }" { (expression_statement "auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);" (assignment_expression "auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1)" identifier = (call_expression "FUN_0010bab8(local_1098,local_1090,(long)iVar1)" identifier (argument_list "(local_1098,local_1090,(long)iVar1)" ( identifier , identifier , (cast_expression "(long)iVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) )))) ;) (expression_statement "tVar10 = time((time_t *)0x0);" (assignment_expression "tVar10 = time((time_t *)0x0)" identifier = (call_expression "time((time_t *)0x0)" identifier (argument_list "((time_t *)0x0)" ( (cast_expression "(time_t *)0x0" ( (type_descriptor "time_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }" if (parenthesized_expression "(tVar10 == local_1088)" ( (binary_expression "tVar10 == local_1088" identifier == identifier) )) (compound_statement "{\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }" { (expression_statement "auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);" (assignment_expression "auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1)" identifier = (call_expression "FUN_0010bab8(uVar8,uVar7,(long)iVar1)" identifier (argument_list "(uVar8,uVar7,(long)iVar1)" ( identifier , identifier , (cast_expression "(long)iVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) )))) ;) (expression_statement "iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);" (assignment_expression "iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050)" identifier = (call_expression "FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050)" identifier (argument_list "(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050)" ( (field_expression "auVar19._0_8_" identifier . field_identifier) , (field_expression "auVar19._8_8_" identifier . field_identifier) , identifier , identifier )))) ;) (if_statement "if (iVar1 != 0) goto LAB_00114520;" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00114520;" goto statement_identifier ;)) })) (expression_statement "local_1088 = time((time_t *)0x0);" (assignment_expression "local_1088 = time((time_t *)0x0)" identifier = (call_expression "time((time_t *)0x0)" identifier (argument_list "((time_t *)0x0)" ( (cast_expression "(time_t *)0x0" ( (type_descriptor "time_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );" (call_expression "FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      )" identifier (argument_list "(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      )" ( identifier , identifier , identifier , (field_expression "auVar18._0_8_" identifier . field_identifier) , (field_expression "auVar18._8_8_" identifier . field_identifier) , identifier , identifier ))) ;) })) (labeled_statement "LAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);" statement_identifier : (expression_statement "auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);" (assignment_expression "auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000)" identifier = (call_expression "FUN_0010bab8(uVar8,uVar7,0x1000)" identifier (argument_list "(uVar8,uVar7,0x1000)" ( identifier , identifier , number_literal )))) ;)) })) (expression_statement "FUN_001584ca(lVar4);" (call_expression "FUN_001584ca(lVar4)" identifier (argument_list "(lVar4)" ( identifier ))) ;) (expression_statement "FUN_00113d4a();" (call_expression "FUN_00113d4a()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n      FUN_001584ca(lVar4);\n    }" else (compound_statement "{\n      FUN_001584ca(lVar4);\n    }" { (expression_statement "FUN_001584ca(lVar4);" (call_expression "FUN_001584ca(lVar4)" identifier (argument_list "(lVar4)" ( identifier ))) ;) }))) }) (else_clause "else {\n    FUN_001584ca(lVar4);\n  }" else (compound_statement "{\n    FUN_001584ca(lVar4);\n  }" { (expression_statement "FUN_001584ca(lVar4);" (call_expression "FUN_001584ca(lVar4)" identifier (argument_list "(lVar4)" ( identifier ))) ;) }))))) (labeled_statement "LAB_00114299:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" { (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < IDENT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (field_expression IDENT . field_identifier) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (field_expression IDENT . field_identifier) , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (field_expression IDENT . field_identifier) , (field_expression IDENT . field_identifier) , IDENT , IDENT ))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) ;)) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (return_statement return ;) })))
(function_definition "void FUN_00114133(byte *param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  char *pcVar3;\n  long lVar4;\n  time_t tVar5;\n  char *pcVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  long lVar9;\n  time_t tVar10;\n  int extraout_EDX;\n  byte *pbVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  long in_FS_OFFSET;\n  bool bVar14;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  undefined1 auVar18 [16];\n  undefined1 auVar19 [16];\n  byte *local_10a0;\n  undefined8 local_1098;\n  undefined8 local_1090;\n  long local_1088;\n  undefined8 local_1070;\n  undefined8 local_1068;\n  undefined4 local_1060 [2];\n  undefined8 local_1058;\n  undefined8 local_1050;\n  undefined1 local_1048 [4104];\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar1 = FUN_0015874b();\n  if ((iVar1 == 0) || (iVar1 == 3)) {\n    pcVar3 = "Not a";\n    if (iVar1 != 3) {\n      pcVar3 = "No such";\n    }\n    FUN_0011382c("%s: %s file or directory",param_1,pcVar3);\n    goto LAB_00114299;\n  }\n  if (iVar1 == 2) {\n    if (DAT_00183374 == 0) {\n      FUN_0011382c("%s: not a regular file",param_1);\n      goto LAB_00114299;\n    }\n    pcVar6 = strrchr((char *)param_1,0x2f);\n    pcVar3 = pcVar6;\n    if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      bVar14 = false;\n      bVar16 = pcVar3 == (char *)0x0;\n      pbVar11 = param_1;\n      if (!bVar16) goto LAB_001142e8;\n    }\n    else {\nLAB_001142e8:\n      bVar14 = (char *)0xfffffffffffffffe < pcVar3;\n      bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0;\n      pbVar11 = (byte *)(pcVar3 + 1);\n    }\n    lVar4 = 2;\n    pbVar12 = pbVar11;\n    pbVar13 = (byte *)0x15eb4d;\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar14 = *pbVar12 < *pbVar13;\n      bVar16 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    bVar15 = false;\n    bVar14 = (!bVar14 && !bVar16) == bVar14;\n    if (bVar14) goto LAB_00114299;\n    lVar4 = 3;\n    pbVar12 = (byte *)0x15eb4c;\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar15 = *pbVar11 < *pbVar12;\n      bVar14 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar17 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n    } while (bVar14);\n    if ((!bVar15 && !bVar14) == bVar15) goto LAB_00114299;\n    if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      pbVar11 = param_1;\n      if (pcVar3 != (char *)0x0) goto LAB_00114344;\nLAB_0011468d:\n      pcVar3 = strchr((char *)param_1,0x3a);\n      if (pcVar3 != (char *)0x0) {\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n    }\n    else {\n      pbVar11 = (byte *)(pcVar6 + 1);\n      pcVar3 = strrchr((char *)pbVar11,0x5c);\n      if (pcVar3 != (char *)0x0) {\nLAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n      if (param_1 == pbVar11) goto LAB_0011468d;\n    }\n    uVar7 = FUN_00113ee9();\n    if (DAT_00183378 != 0) {\n      FUN_00111e5a(stderr,"Entering directory: %s",pbVar11);\n    }\n    iVar1 = FUN_00113f10(pbVar11,0x1ed);\n    if (iVar1 == 0) {\n      lVar4 = FUN_00158804(param_1);\n      if (lVar4 != 0) {\n        while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }\n      }\n      FUN_00158855(lVar4);\n      FUN_001140ec();\n      FUN_00113eff(uVar7);\n    }\n    goto LAB_00114299;\n  }\n  pcVar3 = strrchr((char *)param_1,0x2f);\n  if (pcVar3 == (char *)0x0) {\n    pcVar3 = strrchr((char *)param_1,0x5c);\n    if (pcVar3 != (char *)0x0) goto LAB_001141aa;\nLAB_001146c0:\n    pcVar3 = strchr((char *)param_1,0x3a);\n    local_10a0 = (byte *)(pcVar3 + 1);\n    if (pcVar3 == (char *)0x0) {\n      local_10a0 = param_1;\n    }\n  }\n  else {\n    local_10a0 = (byte *)(pcVar3 + 1);\n    pcVar3 = strrchr((char *)local_10a0,0x5c);\n    if (pcVar3 != (char *)0x0) {\nLAB_001141aa:\n      local_10a0 = (byte *)(pcVar3 + 1);\n    }\n    if (local_10a0 == param_1) goto LAB_001146c0;\n  }\n  lVar4 = FUN_00158359(param_1,&local_1058,&local_1070,&local_1068,local_1060);\n  if (lVar4 == 0) {\n    FUN_0011382c("%s: Cannot open file",param_1);\n  }\n  else if ((DAT_00183370 == 0) || (iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0)) {\n    if (DAT_00183378 != 0) {\n      FUN_0010b956(local_1058,local_1050,local_1048);\n      FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);\n    }\n    iVar1 = FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0]);\n    if (iVar1 == 0) {\n      auVar18 = FUN_0010baa3(0,0);\n      tVar5 = time((time_t *)0x0);\n      auVar19 = FUN_0010baa3(0,0);\n      local_1088 = 0;\n      while( true ) {\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }\n      FUN_001584ca(lVar4);\n      FUN_00113d4a();\n    }\n    else {\n      FUN_001584ca(lVar4);\n    }\n  }\n  else {\n    FUN_001584ca(lVar4);\n  }\nLAB_00114299:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00114133(byte *param_1)" (identifier "FUN_00114133") (parameter_list "(byte *param_1)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  char *pcVar3;\n  long lVar4;\n  time_t tVar5;\n  char *pcVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  long lVar9;\n  time_t tVar10;\n  int extraout_EDX;\n  byte *pbVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  long in_FS_OFFSET;\n  bool bVar14;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  undefined1 auVar18 [16];\n  undefined1 auVar19 [16];\n  byte *local_10a0;\n  undefined8 local_1098;\n  undefined8 local_1090;\n  long local_1088;\n  undefined8 local_1070;\n  undefined8 local_1068;\n  undefined4 local_1060 [2];\n  undefined8 local_1058;\n  undefined8 local_1050;\n  undefined1 local_1048 [4104];\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar1 = FUN_0015874b();\n  if ((iVar1 == 0) || (iVar1 == 3)) {\n    pcVar3 = "Not a";\n    if (iVar1 != 3) {\n      pcVar3 = "No such";\n    }\n    FUN_0011382c("%s: %s file or directory",param_1,pcVar3);\n    goto LAB_00114299;\n  }\n  if (iVar1 == 2) {\n    if (DAT_00183374 == 0) {\n      FUN_0011382c("%s: not a regular file",param_1);\n      goto LAB_00114299;\n    }\n    pcVar6 = strrchr((char *)param_1,0x2f);\n    pcVar3 = pcVar6;\n    if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      bVar14 = false;\n      bVar16 = pcVar3 == (char *)0x0;\n      pbVar11 = param_1;\n      if (!bVar16) goto LAB_001142e8;\n    }\n    else {\nLAB_001142e8:\n      bVar14 = (char *)0xfffffffffffffffe < pcVar3;\n      bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0;\n      pbVar11 = (byte *)(pcVar3 + 1);\n    }\n    lVar4 = 2;\n    pbVar12 = pbVar11;\n    pbVar13 = (byte *)0x15eb4d;\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar14 = *pbVar12 < *pbVar13;\n      bVar16 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    bVar15 = false;\n    bVar14 = (!bVar14 && !bVar16) == bVar14;\n    if (bVar14) goto LAB_00114299;\n    lVar4 = 3;\n    pbVar12 = (byte *)0x15eb4c;\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar15 = *pbVar11 < *pbVar12;\n      bVar14 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar17 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n    } while (bVar14);\n    if ((!bVar15 && !bVar14) == bVar15) goto LAB_00114299;\n    if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      pbVar11 = param_1;\n      if (pcVar3 != (char *)0x0) goto LAB_00114344;\nLAB_0011468d:\n      pcVar3 = strchr((char *)param_1,0x3a);\n      if (pcVar3 != (char *)0x0) {\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n    }\n    else {\n      pbVar11 = (byte *)(pcVar6 + 1);\n      pcVar3 = strrchr((char *)pbVar11,0x5c);\n      if (pcVar3 != (char *)0x0) {\nLAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n      if (param_1 == pbVar11) goto LAB_0011468d;\n    }\n    uVar7 = FUN_00113ee9();\n    if (DAT_00183378 != 0) {\n      FUN_00111e5a(stderr,"Entering directory: %s",pbVar11);\n    }\n    iVar1 = FUN_00113f10(pbVar11,0x1ed);\n    if (iVar1 == 0) {\n      lVar4 = FUN_00158804(param_1);\n      if (lVar4 != 0) {\n        while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }\n      }\n      FUN_00158855(lVar4);\n      FUN_001140ec();\n      FUN_00113eff(uVar7);\n    }\n    goto LAB_00114299;\n  }\n  pcVar3 = strrchr((char *)param_1,0x2f);\n  if (pcVar3 == (char *)0x0) {\n    pcVar3 = strrchr((char *)param_1,0x5c);\n    if (pcVar3 != (char *)0x0) goto LAB_001141aa;\nLAB_001146c0:\n    pcVar3 = strchr((char *)param_1,0x3a);\n    local_10a0 = (byte *)(pcVar3 + 1);\n    if (pcVar3 == (char *)0x0) {\n      local_10a0 = param_1;\n    }\n  }\n  else {\n    local_10a0 = (byte *)(pcVar3 + 1);\n    pcVar3 = strrchr((char *)local_10a0,0x5c);\n    if (pcVar3 != (char *)0x0) {\nLAB_001141aa:\n      local_10a0 = (byte *)(pcVar3 + 1);\n    }\n    if (local_10a0 == param_1) goto LAB_001146c0;\n  }\n  lVar4 = FUN_00158359(param_1,&local_1058,&local_1070,&local_1068,local_1060);\n  if (lVar4 == 0) {\n    FUN_0011382c("%s: Cannot open file",param_1);\n  }\n  else if ((DAT_00183370 == 0) || (iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0)) {\n    if (DAT_00183378 != 0) {\n      FUN_0010b956(local_1058,local_1050,local_1048);\n      FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);\n    }\n    iVar1 = FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0]);\n    if (iVar1 == 0) {\n      auVar18 = FUN_0010baa3(0,0);\n      tVar5 = time((time_t *)0x0);\n      auVar19 = FUN_0010baa3(0,0);\n      local_1088 = 0;\n      while( true ) {\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }\n      FUN_001584ca(lVar4);\n      FUN_00113d4a();\n    }\n    else {\n      FUN_001584ca(lVar4);\n    }\n  }\n  else {\n    FUN_001584ca(lVar4);\n  }\nLAB_00114299:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "long lVar4;" (sized_type_specifier "long" (long "long")) (identifier "lVar4") (; ";")) (declaration "time_t tVar5;" (type_identifier "time_t") (identifier "tVar5") (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "undefined8 uVar7;" (type_identifier "undefined8") (identifier "uVar7") (; ";")) (declaration "undefined8 uVar8;" (type_identifier "undefined8") (identifier "uVar8") (; ";")) (declaration "long lVar9;" (sized_type_specifier "long" (long "long")) (identifier "lVar9") (; ";")) (declaration "time_t tVar10;" (type_identifier "time_t") (identifier "tVar10") (; ";")) (declaration "int extraout_EDX;" (primitive_type "int") (identifier "extraout_EDX") (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "byte *pbVar12;" (type_identifier "byte") (pointer_declarator "*pbVar12" (* "*") (identifier "pbVar12")) (; ";")) (declaration "byte *pbVar13;" (type_identifier "byte") (pointer_declarator "*pbVar13" (* "*") (identifier "pbVar13")) (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "bool bVar14;" (primitive_type "bool") (identifier "bVar14") (; ";")) (declaration "bool bVar15;" (primitive_type "bool") (identifier "bVar15") (; ";")) (declaration "bool bVar16;" (primitive_type "bool") (identifier "bVar16") (; ";")) (declaration "byte bVar17;" (type_identifier "byte") (identifier "bVar17") (; ";")) (declaration "undefined1 auVar18 [16];" (type_identifier "undefined1") (array_declarator "auVar18 [16]" (identifier "auVar18") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined1 auVar19 [16];" (type_identifier "undefined1") (array_declarator "auVar19 [16]" (identifier "auVar19") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "byte *local_10a0;" (type_identifier "byte") (pointer_declarator "*local_10a0" (* "*") (identifier "local_10a0")) (; ";")) (declaration "undefined8 local_1098;" (type_identifier "undefined8") (identifier "local_1098") (; ";")) (declaration "undefined8 local_1090;" (type_identifier "undefined8") (identifier "local_1090") (; ";")) (declaration "long local_1088;" (sized_type_specifier "long" (long "long")) (identifier "local_1088") (; ";")) (declaration "undefined8 local_1070;" (type_identifier "undefined8") (identifier "local_1070") (; ";")) (declaration "undefined8 local_1068;" (type_identifier "undefined8") (identifier "local_1068") (; ";")) (declaration "undefined4 local_1060 [2];" (type_identifier "undefined4") (array_declarator "local_1060 [2]" (identifier "local_1060") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined8 local_1058;" (type_identifier "undefined8") (identifier "local_1058") (; ";")) (declaration "undefined8 local_1050;" (type_identifier "undefined8") (identifier "local_1050") (; ";")) (declaration "undefined1 local_1048 [4104];" (type_identifier "undefined1") (array_declarator "local_1048 [4104]" (identifier "local_1048") ([ "[") (number_literal "4104") (] "]")) (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" (identifier "bVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "iVar1 = FUN_0015874b();" (assignment_expression "iVar1 = FUN_0015874b()" (identifier "iVar1") (= "=") (call_expression "FUN_0015874b()" (identifier "FUN_0015874b") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((iVar1 == 0) || (iVar1 == 3)) {\n    pcVar3 = "Not a";\n    if (iVar1 != 3) {\n      pcVar3 = "No such";\n    }\n    FUN_0011382c("%s: %s file or directory",param_1,pcVar3);\n    goto LAB_00114299;\n  }" (if "if") (parenthesized_expression "((iVar1 == 0) || (iVar1 == 3))" (( "(") (binary_expression "(iVar1 == 0) || (iVar1 == 3)" (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar1 == 3)" (( "(") (binary_expression "iVar1 == 3" (identifier "iVar1") (== "==") (number_literal "3")) () ")"))) () ")")) (compound_statement "{\n    pcVar3 = "Not a";\n    if (iVar1 != 3) {\n      pcVar3 = "No such";\n    }\n    FUN_0011382c("%s: %s file or directory",param_1,pcVar3);\n    goto LAB_00114299;\n  }" ({ "{") (expression_statement "pcVar3 = "Not a";" (assignment_expression "pcVar3 = "Not a"" (identifier "pcVar3") (= "=") (string_literal ""Not a"" (" """) (string_content "Not a") (" """))) (; ";")) (if_statement "if (iVar1 != 3) {\n      pcVar3 = "No such";\n    }" (if "if") (parenthesized_expression "(iVar1 != 3)" (( "(") (binary_expression "iVar1 != 3" (identifier "iVar1") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n      pcVar3 = "No such";\n    }" ({ "{") (expression_statement "pcVar3 = "No such";" (assignment_expression "pcVar3 = "No such"" (identifier "pcVar3") (= "=") (string_literal ""No such"" (" """) (string_content "No such") (" """))) (; ";")) (} "}"))) (expression_statement "FUN_0011382c("%s: %s file or directory",param_1,pcVar3);" (call_expression "FUN_0011382c("%s: %s file or directory",param_1,pcVar3)" (identifier "FUN_0011382c") (argument_list "("%s: %s file or directory",param_1,pcVar3)" (( "(") (string_literal ""%s: %s file or directory"" (" """) (string_content "%s: %s file or directory") (" """)) (, ",") (identifier "param_1") (, ",") (identifier "pcVar3") () ")"))) (; ";")) (goto_statement "goto LAB_00114299;" (goto "goto") (statement_identifier "LAB_00114299") (; ";")) (} "}"))) (if_statement "if (iVar1 == 2) {\n    if (DAT_00183374 == 0) {\n      FUN_0011382c("%s: not a regular file",param_1);\n      goto LAB_00114299;\n    }\n    pcVar6 = strrchr((char *)param_1,0x2f);\n    pcVar3 = pcVar6;\n    if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      bVar14 = false;\n      bVar16 = pcVar3 == (char *)0x0;\n      pbVar11 = param_1;\n      if (!bVar16) goto LAB_001142e8;\n    }\n    else {\nLAB_001142e8:\n      bVar14 = (char *)0xfffffffffffffffe < pcVar3;\n      bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0;\n      pbVar11 = (byte *)(pcVar3 + 1);\n    }\n    lVar4 = 2;\n    pbVar12 = pbVar11;\n    pbVar13 = (byte *)0x15eb4d;\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar14 = *pbVar12 < *pbVar13;\n      bVar16 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    bVar15 = false;\n    bVar14 = (!bVar14 && !bVar16) == bVar14;\n    if (bVar14) goto LAB_00114299;\n    lVar4 = 3;\n    pbVar12 = (byte *)0x15eb4c;\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar15 = *pbVar11 < *pbVar12;\n      bVar14 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar17 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n    } while (bVar14);\n    if ((!bVar15 && !bVar14) == bVar15) goto LAB_00114299;\n    if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      pbVar11 = param_1;\n      if (pcVar3 != (char *)0x0) goto LAB_00114344;\nLAB_0011468d:\n      pcVar3 = strchr((char *)param_1,0x3a);\n      if (pcVar3 != (char *)0x0) {\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n    }\n    else {\n      pbVar11 = (byte *)(pcVar6 + 1);\n      pcVar3 = strrchr((char *)pbVar11,0x5c);\n      if (pcVar3 != (char *)0x0) {\nLAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n      if (param_1 == pbVar11) goto LAB_0011468d;\n    }\n    uVar7 = FUN_00113ee9();\n    if (DAT_00183378 != 0) {\n      FUN_00111e5a(stderr,"Entering directory: %s",pbVar11);\n    }\n    iVar1 = FUN_00113f10(pbVar11,0x1ed);\n    if (iVar1 == 0) {\n      lVar4 = FUN_00158804(param_1);\n      if (lVar4 != 0) {\n        while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }\n      }\n      FUN_00158855(lVar4);\n      FUN_001140ec();\n      FUN_00113eff(uVar7);\n    }\n    goto LAB_00114299;\n  }" (if "if") (parenthesized_expression "(iVar1 == 2)" (( "(") (binary_expression "iVar1 == 2" (identifier "iVar1") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n    if (DAT_00183374 == 0) {\n      FUN_0011382c("%s: not a regular file",param_1);\n      goto LAB_00114299;\n    }\n    pcVar6 = strrchr((char *)param_1,0x2f);\n    pcVar3 = pcVar6;\n    if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      bVar14 = false;\n      bVar16 = pcVar3 == (char *)0x0;\n      pbVar11 = param_1;\n      if (!bVar16) goto LAB_001142e8;\n    }\n    else {\nLAB_001142e8:\n      bVar14 = (char *)0xfffffffffffffffe < pcVar3;\n      bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0;\n      pbVar11 = (byte *)(pcVar3 + 1);\n    }\n    lVar4 = 2;\n    pbVar12 = pbVar11;\n    pbVar13 = (byte *)0x15eb4d;\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar14 = *pbVar12 < *pbVar13;\n      bVar16 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    bVar15 = false;\n    bVar14 = (!bVar14 && !bVar16) == bVar14;\n    if (bVar14) goto LAB_00114299;\n    lVar4 = 3;\n    pbVar12 = (byte *)0x15eb4c;\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar15 = *pbVar11 < *pbVar12;\n      bVar14 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar17 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n    } while (bVar14);\n    if ((!bVar15 && !bVar14) == bVar15) goto LAB_00114299;\n    if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      pbVar11 = param_1;\n      if (pcVar3 != (char *)0x0) goto LAB_00114344;\nLAB_0011468d:\n      pcVar3 = strchr((char *)param_1,0x3a);\n      if (pcVar3 != (char *)0x0) {\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n    }\n    else {\n      pbVar11 = (byte *)(pcVar6 + 1);\n      pcVar3 = strrchr((char *)pbVar11,0x5c);\n      if (pcVar3 != (char *)0x0) {\nLAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n      if (param_1 == pbVar11) goto LAB_0011468d;\n    }\n    uVar7 = FUN_00113ee9();\n    if (DAT_00183378 != 0) {\n      FUN_00111e5a(stderr,"Entering directory: %s",pbVar11);\n    }\n    iVar1 = FUN_00113f10(pbVar11,0x1ed);\n    if (iVar1 == 0) {\n      lVar4 = FUN_00158804(param_1);\n      if (lVar4 != 0) {\n        while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }\n      }\n      FUN_00158855(lVar4);\n      FUN_001140ec();\n      FUN_00113eff(uVar7);\n    }\n    goto LAB_00114299;\n  }" ({ "{") (if_statement "if (DAT_00183374 == 0) {\n      FUN_0011382c("%s: not a regular file",param_1);\n      goto LAB_00114299;\n    }" (if "if") (parenthesized_expression "(DAT_00183374 == 0)" (( "(") (binary_expression "DAT_00183374 == 0" (identifier "DAT_00183374") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_0011382c("%s: not a regular file",param_1);\n      goto LAB_00114299;\n    }" ({ "{") (expression_statement "FUN_0011382c("%s: not a regular file",param_1);" (call_expression "FUN_0011382c("%s: not a regular file",param_1)" (identifier "FUN_0011382c") (argument_list "("%s: not a regular file",param_1)" (( "(") (string_literal ""%s: not a regular file"" (" """) (string_content "%s: not a regular file") (" """)) (, ",") (identifier "param_1") () ")"))) (; ";")) (goto_statement "goto LAB_00114299;" (goto "goto") (statement_identifier "LAB_00114299") (; ";")) (} "}"))) (expression_statement "pcVar6 = strrchr((char *)param_1,0x2f);" (assignment_expression "pcVar6 = strrchr((char *)param_1,0x2f)" (identifier "pcVar6") (= "=") (call_expression "strrchr((char *)param_1,0x2f)" (identifier "strrchr") (argument_list "((char *)param_1,0x2f)" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (number_literal "0x2f") () ")")))) (; ";")) (expression_statement "pcVar3 = pcVar6;" (assignment_expression "pcVar3 = pcVar6" (identifier "pcVar3") (= "=") (identifier "pcVar6")) (; ";")) (if_statement "if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      bVar14 = false;\n      bVar16 = pcVar3 == (char *)0x0;\n      pbVar11 = param_1;\n      if (!bVar16) goto LAB_001142e8;\n    }\n    else {\nLAB_001142e8:\n      bVar14 = (char *)0xfffffffffffffffe < pcVar3;\n      bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0;\n      pbVar11 = (byte *)(pcVar3 + 1);\n    }" (if "if") (parenthesized_expression "(pcVar6 == (char *)0x0)" (( "(") (binary_expression "pcVar6 == (char *)0x0" (identifier "pcVar6") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      bVar14 = false;\n      bVar16 = pcVar3 == (char *)0x0;\n      pbVar11 = param_1;\n      if (!bVar16) goto LAB_001142e8;\n    }" ({ "{") (expression_statement "pcVar3 = strrchr((char *)param_1,0x5c);" (assignment_expression "pcVar3 = strrchr((char *)param_1,0x5c)" (identifier "pcVar3") (= "=") (call_expression "strrchr((char *)param_1,0x5c)" (identifier "strrchr") (argument_list "((char *)param_1,0x5c)" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (number_literal "0x5c") () ")")))) (; ";")) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" (identifier "bVar14") (= "=") (false "false")) (; ";")) (expression_statement "bVar16 = pcVar3 == (char *)0x0;" (assignment_expression "bVar16 = pcVar3 == (char *)0x0" (identifier "bVar16") (= "=") (binary_expression "pcVar3 == (char *)0x0" (identifier "pcVar3") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" (identifier "pbVar11") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (!bVar16) goto LAB_001142e8;" (if "if") (parenthesized_expression "(!bVar16)" (( "(") (unary_expression "!bVar16" (! "!") (identifier "bVar16")) () ")")) (goto_statement "goto LAB_001142e8;" (goto "goto") (statement_identifier "LAB_001142e8") (; ";"))) (} "}")) (else_clause "else {\nLAB_001142e8:\n      bVar14 = (char *)0xfffffffffffffffe < pcVar3;\n      bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0;\n      pbVar11 = (byte *)(pcVar3 + 1);\n    }" (else "else") (compound_statement "{\nLAB_001142e8:\n      bVar14 = (char *)0xfffffffffffffffe < pcVar3;\n      bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0;\n      pbVar11 = (byte *)(pcVar3 + 1);\n    }" ({ "{") (labeled_statement "LAB_001142e8:\n      bVar14 = (char *)0xfffffffffffffffe < pcVar3;" (statement_identifier "LAB_001142e8") (: ":") (expression_statement "bVar14 = (char *)0xfffffffffffffffe < pcVar3;" (assignment_expression "bVar14 = (char *)0xfffffffffffffffe < pcVar3" (identifier "bVar14") (= "=") (binary_expression "(char *)0xfffffffffffffffe < pcVar3" (cast_expression "(char *)0xfffffffffffffffe" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xfffffffffffffffe")) (< "<") (identifier "pcVar3"))) (; ";"))) (expression_statement "bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0;" (assignment_expression "bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0" (identifier "bVar16") (= "=") (binary_expression "(byte *)(pcVar3 + 1) == (byte *)0x0" (cast_expression "(byte *)(pcVar3 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar3 + 1)" (( "(") (binary_expression "pcVar3 + 1" (identifier "pcVar3") (+ "+") (number_literal "1")) () ")"))) (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "pbVar11 = (byte *)(pcVar3 + 1);" (assignment_expression "pbVar11 = (byte *)(pcVar3 + 1)" (identifier "pbVar11") (= "=") (cast_expression "(byte *)(pcVar3 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar3 + 1)" (( "(") (binary_expression "pcVar3 + 1" (identifier "pcVar3") (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")))) (expression_statement "lVar4 = 2;" (assignment_expression "lVar4 = 2" (identifier "lVar4") (= "=") (number_literal "2")) (; ";")) (expression_statement "pbVar12 = pbVar11;" (assignment_expression "pbVar12 = pbVar11" (identifier "pbVar12") (= "=") (identifier "pbVar11")) (; ";")) (expression_statement "pbVar13 = (byte *)0x15eb4d;" (assignment_expression "pbVar13 = (byte *)0x15eb4d" (identifier "pbVar13") (= "=") (cast_expression "(byte *)0x15eb4d" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x15eb4d"))) (; ";")) (do_statement "do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar14 = *pbVar12 < *pbVar13;\n      bVar16 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);" (do "do") (compound_statement "{\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar14 = *pbVar12 < *pbVar13;\n      bVar16 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n    }" ({ "{") (if_statement "if (lVar4 == 0) break;" (if "if") (parenthesized_expression "(lVar4 == 0)" (( "(") (binary_expression "lVar4 == 0" (identifier "lVar4") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar4 = lVar4 + -1;" (assignment_expression "lVar4 = lVar4 + -1" (identifier "lVar4") (= "=") (binary_expression "lVar4 + -1" (identifier "lVar4") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar14 = *pbVar12 < *pbVar13;" (assignment_expression "bVar14 = *pbVar12 < *pbVar13" (identifier "bVar14") (= "=") (binary_expression "*pbVar12 < *pbVar13" (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")) (< "<") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "bVar16 = *pbVar12 == *pbVar13;" (assignment_expression "bVar16 = *pbVar12 == *pbVar13" (identifier "bVar16") (= "=") (binary_expression "*pbVar12 == *pbVar13" (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")) (== "==") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar17 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar17 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (; ";")) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (false "false")) (; ";")) (expression_statement "bVar14 = (!bVar14 && !bVar16) == bVar14;" (assignment_expression "bVar14 = (!bVar14 && !bVar16) == bVar14" (identifier "bVar14") (= "=") (binary_expression "(!bVar14 && !bVar16) == bVar14" (parenthesized_expression "(!bVar14 && !bVar16)" (( "(") (binary_expression "!bVar14 && !bVar16" (unary_expression "!bVar14" (! "!") (identifier "bVar14")) (&& "&&") (unary_expression "!bVar16" (! "!") (identifier "bVar16"))) () ")")) (== "==") (identifier "bVar14"))) (; ";")) (if_statement "if (bVar14) goto LAB_00114299;" (if "if") (parenthesized_expression "(bVar14)" (( "(") (identifier "bVar14") () ")")) (goto_statement "goto LAB_00114299;" (goto "goto") (statement_identifier "LAB_00114299") (; ";"))) (expression_statement "lVar4 = 3;" (assignment_expression "lVar4 = 3" (identifier "lVar4") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar12 = (byte *)0x15eb4c;" (assignment_expression "pbVar12 = (byte *)0x15eb4c" (identifier "pbVar12") (= "=") (cast_expression "(byte *)0x15eb4c" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x15eb4c"))) (; ";")) (do_statement "do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar15 = *pbVar11 < *pbVar12;\n      bVar14 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar17 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n    } while (bVar14);" (do "do") (compound_statement "{\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar15 = *pbVar11 < *pbVar12;\n      bVar14 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (ulong)bVar17 * -2 + 1;\n      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;\n    }" ({ "{") (if_statement "if (lVar4 == 0) break;" (if "if") (parenthesized_expression "(lVar4 == 0)" (( "(") (binary_expression "lVar4 == 0" (identifier "lVar4") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar4 = lVar4 + -1;" (assignment_expression "lVar4 = lVar4 + -1" (identifier "lVar4") (= "=") (binary_expression "lVar4 + -1" (identifier "lVar4") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar15 = *pbVar11 < *pbVar12;" (assignment_expression "bVar15 = *pbVar11 < *pbVar12" (identifier "bVar15") (= "=") (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar14 = *pbVar11 == *pbVar12;" (assignment_expression "bVar14 = *pbVar11 == *pbVar12" (identifier "bVar14") (= "=") (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar17 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar17 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar17 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar14)" (( "(") (identifier "bVar14") () ")")) (; ";")) (if_statement "if ((!bVar15 && !bVar14) == bVar15) goto LAB_00114299;" (if "if") (parenthesized_expression "((!bVar15 && !bVar14) == bVar15)" (( "(") (binary_expression "(!bVar15 && !bVar14) == bVar15" (parenthesized_expression "(!bVar15 && !bVar14)" (( "(") (binary_expression "!bVar15 && !bVar14" (unary_expression "!bVar15" (! "!") (identifier "bVar15")) (&& "&&") (unary_expression "!bVar14" (! "!") (identifier "bVar14"))) () ")")) (== "==") (identifier "bVar15")) () ")")) (goto_statement "goto LAB_00114299;" (goto "goto") (statement_identifier "LAB_00114299") (; ";"))) (if_statement "if (pcVar6 == (char *)0x0) {\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      pbVar11 = param_1;\n      if (pcVar3 != (char *)0x0) goto LAB_00114344;\nLAB_0011468d:\n      pcVar3 = strchr((char *)param_1,0x3a);\n      if (pcVar3 != (char *)0x0) {\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n    }\n    else {\n      pbVar11 = (byte *)(pcVar6 + 1);\n      pcVar3 = strrchr((char *)pbVar11,0x5c);\n      if (pcVar3 != (char *)0x0) {\nLAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n      if (param_1 == pbVar11) goto LAB_0011468d;\n    }" (if "if") (parenthesized_expression "(pcVar6 == (char *)0x0)" (( "(") (binary_expression "pcVar6 == (char *)0x0" (identifier "pcVar6") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pcVar3 = strrchr((char *)param_1,0x5c);\n      pbVar11 = param_1;\n      if (pcVar3 != (char *)0x0) goto LAB_00114344;\nLAB_0011468d:\n      pcVar3 = strchr((char *)param_1,0x3a);\n      if (pcVar3 != (char *)0x0) {\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n    }" ({ "{") (expression_statement "pcVar3 = strrchr((char *)param_1,0x5c);" (assignment_expression "pcVar3 = strrchr((char *)param_1,0x5c)" (identifier "pcVar3") (= "=") (call_expression "strrchr((char *)param_1,0x5c)" (identifier "strrchr") (argument_list "((char *)param_1,0x5c)" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (number_literal "0x5c") () ")")))) (; ";")) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" (identifier "pbVar11") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (pcVar3 != (char *)0x0) goto LAB_00114344;" (if "if") (parenthesized_expression "(pcVar3 != (char *)0x0)" (( "(") (binary_expression "pcVar3 != (char *)0x0" (identifier "pcVar3") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00114344;" (goto "goto") (statement_identifier "LAB_00114344") (; ";"))) (labeled_statement "LAB_0011468d:\n      pcVar3 = strchr((char *)param_1,0x3a);" (statement_identifier "LAB_0011468d") (: ":") (expression_statement "pcVar3 = strchr((char *)param_1,0x3a);" (assignment_expression "pcVar3 = strchr((char *)param_1,0x3a)" (identifier "pcVar3") (= "=") (call_expression "strchr((char *)param_1,0x3a)" (identifier "strchr") (argument_list "((char *)param_1,0x3a)" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (number_literal "0x3a") () ")")))) (; ";"))) (if_statement "if (pcVar3 != (char *)0x0) {\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }" (if "if") (parenthesized_expression "(pcVar3 != (char *)0x0)" (( "(") (binary_expression "pcVar3 != (char *)0x0" (identifier "pcVar3") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }" ({ "{") (expression_statement "pbVar11 = (byte *)(pcVar3 + 1);" (assignment_expression "pbVar11 = (byte *)(pcVar3 + 1)" (identifier "pbVar11") (= "=") (cast_expression "(byte *)(pcVar3 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar3 + 1)" (( "(") (binary_expression "pcVar3 + 1" (identifier "pcVar3") (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      pbVar11 = (byte *)(pcVar6 + 1);\n      pcVar3 = strrchr((char *)pbVar11,0x5c);\n      if (pcVar3 != (char *)0x0) {\nLAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n      if (param_1 == pbVar11) goto LAB_0011468d;\n    }" (else "else") (compound_statement "{\n      pbVar11 = (byte *)(pcVar6 + 1);\n      pcVar3 = strrchr((char *)pbVar11,0x5c);\n      if (pcVar3 != (char *)0x0) {\nLAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }\n      if (param_1 == pbVar11) goto LAB_0011468d;\n    }" ({ "{") (expression_statement "pbVar11 = (byte *)(pcVar6 + 1);" (assignment_expression "pbVar11 = (byte *)(pcVar6 + 1)" (identifier "pbVar11") (= "=") (cast_expression "(byte *)(pcVar6 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 1)" (( "(") (binary_expression "pcVar6 + 1" (identifier "pcVar6") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pcVar3 = strrchr((char *)pbVar11,0x5c);" (assignment_expression "pcVar3 = strrchr((char *)pbVar11,0x5c)" (identifier "pcVar3") (= "=") (call_expression "strrchr((char *)pbVar11,0x5c)" (identifier "strrchr") (argument_list "((char *)pbVar11,0x5c)" (( "(") (cast_expression "(char *)pbVar11" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar11")) (, ",") (number_literal "0x5c") () ")")))) (; ";")) (if_statement "if (pcVar3 != (char *)0x0) {\nLAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }" (if "if") (parenthesized_expression "(pcVar3 != (char *)0x0)" (( "(") (binary_expression "pcVar3 != (char *)0x0" (identifier "pcVar3") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);\n      }" ({ "{") (labeled_statement "LAB_00114344:\n        pbVar11 = (byte *)(pcVar3 + 1);" (statement_identifier "LAB_00114344") (: ":") (expression_statement "pbVar11 = (byte *)(pcVar3 + 1);" (assignment_expression "pbVar11 = (byte *)(pcVar3 + 1)" (identifier "pbVar11") (= "=") (cast_expression "(byte *)(pcVar3 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar3 + 1)" (( "(") (binary_expression "pcVar3 + 1" (identifier "pcVar3") (+ "+") (number_literal "1")) () ")")))) (; ";"))) (} "}"))) (if_statement "if (param_1 == pbVar11) goto LAB_0011468d;" (if "if") (parenthesized_expression "(param_1 == pbVar11)" (( "(") (binary_expression "param_1 == pbVar11" (identifier "param_1") (== "==") (identifier "pbVar11")) () ")")) (goto_statement "goto LAB_0011468d;" (goto "goto") (statement_identifier "LAB_0011468d") (; ";"))) (} "}")))) (expression_statement "uVar7 = FUN_00113ee9();" (assignment_expression "uVar7 = FUN_00113ee9()" (identifier "uVar7") (= "=") (call_expression "FUN_00113ee9()" (identifier "FUN_00113ee9") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (DAT_00183378 != 0) {\n      FUN_00111e5a(stderr,"Entering directory: %s",pbVar11);\n    }" (if "if") (parenthesized_expression "(DAT_00183378 != 0)" (( "(") (binary_expression "DAT_00183378 != 0" (identifier "DAT_00183378") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00111e5a(stderr,"Entering directory: %s",pbVar11);\n    }" ({ "{") (expression_statement "FUN_00111e5a(stderr,"Entering directory: %s",pbVar11);" (call_expression "FUN_00111e5a(stderr,"Entering directory: %s",pbVar11)" (identifier "FUN_00111e5a") (argument_list "(stderr,"Entering directory: %s",pbVar11)" (( "(") (identifier "stderr") (, ",") (string_literal ""Entering directory: %s"" (" """) (string_content "Entering directory: %s") (" """)) (, ",") (identifier "pbVar11") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar1 = FUN_00113f10(pbVar11,0x1ed);" (assignment_expression "iVar1 = FUN_00113f10(pbVar11,0x1ed)" (identifier "iVar1") (= "=") (call_expression "FUN_00113f10(pbVar11,0x1ed)" (identifier "FUN_00113f10") (argument_list "(pbVar11,0x1ed)" (( "(") (identifier "pbVar11") (, ",") (number_literal "0x1ed") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n      lVar4 = FUN_00158804(param_1);\n      if (lVar4 != 0) {\n        while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }\n      }\n      FUN_00158855(lVar4);\n      FUN_001140ec();\n      FUN_00113eff(uVar7);\n    }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      lVar4 = FUN_00158804(param_1);\n      if (lVar4 != 0) {\n        while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }\n      }\n      FUN_00158855(lVar4);\n      FUN_001140ec();\n      FUN_00113eff(uVar7);\n    }" ({ "{") (expression_statement "lVar4 = FUN_00158804(param_1);" (assignment_expression "lVar4 = FUN_00158804(param_1)" (identifier "lVar4") (= "=") (call_expression "FUN_00158804(param_1)" (identifier "FUN_00158804") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (lVar4 != 0) {\n        while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }\n      }" (if "if") (parenthesized_expression "(lVar4 != 0)" (( "(") (binary_expression "lVar4 != 0" (identifier "lVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }\n      }" ({ "{") (while_statement "while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }" (while "while") (parenthesized_expression "(lVar9 = FUN_00158826(lVar4), lVar9 != 0)" (( "(") (comma_expression "lVar9 = FUN_00158826(lVar4), lVar9 != 0" (assignment_expression "lVar9 = FUN_00158826(lVar4)" (identifier "lVar9") (= "=") (call_expression "FUN_00158826(lVar4)" (identifier "FUN_00158826") (argument_list "(lVar4)" (( "(") (identifier "lVar4") () ")")))) (, ",") (binary_expression "lVar9 != 0" (identifier "lVar9") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);\n          FUN_00114133(uVar8);\n          FUN_0010da9f(uVar8);\n          FUN_0010da9f(lVar9);\n        }" ({ "{") (expression_statement "uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);" (assignment_expression "uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0)" (identifier "uVar8") (= "=") (call_expression "FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0)" (identifier "FUN_0010d36f") (argument_list "(param_1,&DAT_0015ecb1,lVar9,0)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&DAT_0015ecb1" (& "&") (identifier "DAT_0015ecb1")) (, ",") (identifier "lVar9") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "FUN_00114133(uVar8);" (call_expression "FUN_00114133(uVar8)" (identifier "FUN_00114133") (argument_list "(uVar8)" (( "(") (identifier "uVar8") () ")"))) (; ";")) (expression_statement "FUN_0010da9f(uVar8);" (call_expression "FUN_0010da9f(uVar8)" (identifier "FUN_0010da9f") (argument_list "(uVar8)" (( "(") (identifier "uVar8") () ")"))) (; ";")) (expression_statement "FUN_0010da9f(lVar9);" (call_expression "FUN_0010da9f(lVar9)" (identifier "FUN_0010da9f") (argument_list "(lVar9)" (( "(") (identifier "lVar9") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_00158855(lVar4);" (call_expression "FUN_00158855(lVar4)" (identifier "FUN_00158855") (argument_list "(lVar4)" (( "(") (identifier "lVar4") () ")"))) (; ";")) (expression_statement "FUN_001140ec();" (call_expression "FUN_001140ec()" (identifier "FUN_001140ec") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00113eff(uVar7);" (call_expression "FUN_00113eff(uVar7)" (identifier "FUN_00113eff") (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_00114299;" (goto "goto") (statement_identifier "LAB_00114299") (; ";")) (} "}"))) (expression_statement "pcVar3 = strrchr((char *)param_1,0x2f);" (assignment_expression "pcVar3 = strrchr((char *)param_1,0x2f)" (identifier "pcVar3") (= "=") (call_expression "strrchr((char *)param_1,0x2f)" (identifier "strrchr") (argument_list "((char *)param_1,0x2f)" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (number_literal "0x2f") () ")")))) (; ";")) (if_statement "if (pcVar3 == (char *)0x0) {\n    pcVar3 = strrchr((char *)param_1,0x5c);\n    if (pcVar3 != (char *)0x0) goto LAB_001141aa;\nLAB_001146c0:\n    pcVar3 = strchr((char *)param_1,0x3a);\n    local_10a0 = (byte *)(pcVar3 + 1);\n    if (pcVar3 == (char *)0x0) {\n      local_10a0 = param_1;\n    }\n  }\n  else {\n    local_10a0 = (byte *)(pcVar3 + 1);\n    pcVar3 = strrchr((char *)local_10a0,0x5c);\n    if (pcVar3 != (char *)0x0) {\nLAB_001141aa:\n      local_10a0 = (byte *)(pcVar3 + 1);\n    }\n    if (local_10a0 == param_1) goto LAB_001146c0;\n  }" (if "if") (parenthesized_expression "(pcVar3 == (char *)0x0)" (( "(") (binary_expression "pcVar3 == (char *)0x0" (identifier "pcVar3") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pcVar3 = strrchr((char *)param_1,0x5c);\n    if (pcVar3 != (char *)0x0) goto LAB_001141aa;\nLAB_001146c0:\n    pcVar3 = strchr((char *)param_1,0x3a);\n    local_10a0 = (byte *)(pcVar3 + 1);\n    if (pcVar3 == (char *)0x0) {\n      local_10a0 = param_1;\n    }\n  }" ({ "{") (expression_statement "pcVar3 = strrchr((char *)param_1,0x5c);" (assignment_expression "pcVar3 = strrchr((char *)param_1,0x5c)" (identifier "pcVar3") (= "=") (call_expression "strrchr((char *)param_1,0x5c)" (identifier "strrchr") (argument_list "((char *)param_1,0x5c)" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (number_literal "0x5c") () ")")))) (; ";")) (if_statement "if (pcVar3 != (char *)0x0) goto LAB_001141aa;" (if "if") (parenthesized_expression "(pcVar3 != (char *)0x0)" (( "(") (binary_expression "pcVar3 != (char *)0x0" (identifier "pcVar3") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_001141aa;" (goto "goto") (statement_identifier "LAB_001141aa") (; ";"))) (labeled_statement "LAB_001146c0:\n    pcVar3 = strchr((char *)param_1,0x3a);" (statement_identifier "LAB_001146c0") (: ":") (expression_statement "pcVar3 = strchr((char *)param_1,0x3a);" (assignment_expression "pcVar3 = strchr((char *)param_1,0x3a)" (identifier "pcVar3") (= "=") (call_expression "strchr((char *)param_1,0x3a)" (identifier "strchr") (argument_list "((char *)param_1,0x3a)" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (number_literal "0x3a") () ")")))) (; ";"))) (expression_statement "local_10a0 = (byte *)(pcVar3 + 1);" (assignment_expression "local_10a0 = (byte *)(pcVar3 + 1)" (identifier "local_10a0") (= "=") (cast_expression "(byte *)(pcVar3 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar3 + 1)" (( "(") (binary_expression "pcVar3 + 1" (identifier "pcVar3") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (pcVar3 == (char *)0x0) {\n      local_10a0 = param_1;\n    }" (if "if") (parenthesized_expression "(pcVar3 == (char *)0x0)" (( "(") (binary_expression "pcVar3 == (char *)0x0" (identifier "pcVar3") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      local_10a0 = param_1;\n    }" ({ "{") (expression_statement "local_10a0 = param_1;" (assignment_expression "local_10a0 = param_1" (identifier "local_10a0") (= "=") (identifier "param_1")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    local_10a0 = (byte *)(pcVar3 + 1);\n    pcVar3 = strrchr((char *)local_10a0,0x5c);\n    if (pcVar3 != (char *)0x0) {\nLAB_001141aa:\n      local_10a0 = (byte *)(pcVar3 + 1);\n    }\n    if (local_10a0 == param_1) goto LAB_001146c0;\n  }" (else "else") (compound_statement "{\n    local_10a0 = (byte *)(pcVar3 + 1);\n    pcVar3 = strrchr((char *)local_10a0,0x5c);\n    if (pcVar3 != (char *)0x0) {\nLAB_001141aa:\n      local_10a0 = (byte *)(pcVar3 + 1);\n    }\n    if (local_10a0 == param_1) goto LAB_001146c0;\n  }" ({ "{") (expression_statement "local_10a0 = (byte *)(pcVar3 + 1);" (assignment_expression "local_10a0 = (byte *)(pcVar3 + 1)" (identifier "local_10a0") (= "=") (cast_expression "(byte *)(pcVar3 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar3 + 1)" (( "(") (binary_expression "pcVar3 + 1" (identifier "pcVar3") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pcVar3 = strrchr((char *)local_10a0,0x5c);" (assignment_expression "pcVar3 = strrchr((char *)local_10a0,0x5c)" (identifier "pcVar3") (= "=") (call_expression "strrchr((char *)local_10a0,0x5c)" (identifier "strrchr") (argument_list "((char *)local_10a0,0x5c)" (( "(") (cast_expression "(char *)local_10a0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_10a0")) (, ",") (number_literal "0x5c") () ")")))) (; ";")) (if_statement "if (pcVar3 != (char *)0x0) {\nLAB_001141aa:\n      local_10a0 = (byte *)(pcVar3 + 1);\n    }" (if "if") (parenthesized_expression "(pcVar3 != (char *)0x0)" (( "(") (binary_expression "pcVar3 != (char *)0x0" (identifier "pcVar3") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_001141aa:\n      local_10a0 = (byte *)(pcVar3 + 1);\n    }" ({ "{") (labeled_statement "LAB_001141aa:\n      local_10a0 = (byte *)(pcVar3 + 1);" (statement_identifier "LAB_001141aa") (: ":") (expression_statement "local_10a0 = (byte *)(pcVar3 + 1);" (assignment_expression "local_10a0 = (byte *)(pcVar3 + 1)" (identifier "local_10a0") (= "=") (cast_expression "(byte *)(pcVar3 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar3 + 1)" (( "(") (binary_expression "pcVar3 + 1" (identifier "pcVar3") (+ "+") (number_literal "1")) () ")")))) (; ";"))) (} "}"))) (if_statement "if (local_10a0 == param_1) goto LAB_001146c0;" (if "if") (parenthesized_expression "(local_10a0 == param_1)" (( "(") (binary_expression "local_10a0 == param_1" (identifier "local_10a0") (== "==") (identifier "param_1")) () ")")) (goto_statement "goto LAB_001146c0;" (goto "goto") (statement_identifier "LAB_001146c0") (; ";"))) (} "}")))) (expression_statement "lVar4 = FUN_00158359(param_1,&local_1058,&local_1070,&local_1068,local_1060);" (assignment_expression "lVar4 = FUN_00158359(param_1,&local_1058,&local_1070,&local_1068,local_1060)" (identifier "lVar4") (= "=") (call_expression "FUN_00158359(param_1,&local_1058,&local_1070,&local_1068,local_1060)" (identifier "FUN_00158359") (argument_list "(param_1,&local_1058,&local_1070,&local_1068,local_1060)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&local_1058" (& "&") (identifier "local_1058")) (, ",") (pointer_expression "&local_1070" (& "&") (identifier "local_1070")) (, ",") (pointer_expression "&local_1068" (& "&") (identifier "local_1068")) (, ",") (identifier "local_1060") () ")")))) (; ";")) (if_statement "if (lVar4 == 0) {\n    FUN_0011382c("%s: Cannot open file",param_1);\n  }\n  else if ((DAT_00183370 == 0) || (iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0)) {\n    if (DAT_00183378 != 0) {\n      FUN_0010b956(local_1058,local_1050,local_1048);\n      FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);\n    }\n    iVar1 = FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0]);\n    if (iVar1 == 0) {\n      auVar18 = FUN_0010baa3(0,0);\n      tVar5 = time((time_t *)0x0);\n      auVar19 = FUN_0010baa3(0,0);\n      local_1088 = 0;\n      while( true ) {\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }\n      FUN_001584ca(lVar4);\n      FUN_00113d4a();\n    }\n    else {\n      FUN_001584ca(lVar4);\n    }\n  }\n  else {\n    FUN_001584ca(lVar4);\n  }" (if "if") (parenthesized_expression "(lVar4 == 0)" (( "(") (binary_expression "lVar4 == 0" (identifier "lVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0011382c("%s: Cannot open file",param_1);\n  }" ({ "{") (expression_statement "FUN_0011382c("%s: Cannot open file",param_1);" (call_expression "FUN_0011382c("%s: Cannot open file",param_1)" (identifier "FUN_0011382c") (argument_list "("%s: Cannot open file",param_1)" (( "(") (string_literal ""%s: Cannot open file"" (" """) (string_content "%s: Cannot open file") (" """)) (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}")) (else_clause "else if ((DAT_00183370 == 0) || (iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0)) {\n    if (DAT_00183378 != 0) {\n      FUN_0010b956(local_1058,local_1050,local_1048);\n      FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);\n    }\n    iVar1 = FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0]);\n    if (iVar1 == 0) {\n      auVar18 = FUN_0010baa3(0,0);\n      tVar5 = time((time_t *)0x0);\n      auVar19 = FUN_0010baa3(0,0);\n      local_1088 = 0;\n      while( true ) {\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }\n      FUN_001584ca(lVar4);\n      FUN_00113d4a();\n    }\n    else {\n      FUN_001584ca(lVar4);\n    }\n  }\n  else {\n    FUN_001584ca(lVar4);\n  }" (else "else") (if_statement "if ((DAT_00183370 == 0) || (iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0)) {\n    if (DAT_00183378 != 0) {\n      FUN_0010b956(local_1058,local_1050,local_1048);\n      FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);\n    }\n    iVar1 = FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0]);\n    if (iVar1 == 0) {\n      auVar18 = FUN_0010baa3(0,0);\n      tVar5 = time((time_t *)0x0);\n      auVar19 = FUN_0010baa3(0,0);\n      local_1088 = 0;\n      while( true ) {\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }\n      FUN_001584ca(lVar4);\n      FUN_00113d4a();\n    }\n    else {\n      FUN_001584ca(lVar4);\n    }\n  }\n  else {\n    FUN_001584ca(lVar4);\n  }" (if "if") (parenthesized_expression "((DAT_00183370 == 0) || (iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0))" (( "(") (binary_expression "(DAT_00183370 == 0) || (iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0)" (parenthesized_expression "(DAT_00183370 == 0)" (( "(") (binary_expression "DAT_00183370 == 0" (identifier "DAT_00183370") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0)" (( "(") (comma_expression "iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0" (assignment_expression "iVar1 = FUN_00113947(local_1070,local_1068)" (identifier "iVar1") (= "=") (call_expression "FUN_00113947(local_1070,local_1068)" (identifier "FUN_00113947") (argument_list "(local_1070,local_1068)" (( "(") (identifier "local_1070") (, ",") (identifier "local_1068") () ")")))) (, ",") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    if (DAT_00183378 != 0) {\n      FUN_0010b956(local_1058,local_1050,local_1048);\n      FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);\n    }\n    iVar1 = FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0]);\n    if (iVar1 == 0) {\n      auVar18 = FUN_0010baa3(0,0);\n      tVar5 = time((time_t *)0x0);\n      auVar19 = FUN_0010baa3(0,0);\n      local_1088 = 0;\n      while( true ) {\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }\n      FUN_001584ca(lVar4);\n      FUN_00113d4a();\n    }\n    else {\n      FUN_001584ca(lVar4);\n    }\n  }" ({ "{") (if_statement "if (DAT_00183378 != 0) {\n      FUN_0010b956(local_1058,local_1050,local_1048);\n      FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);\n    }" (if "if") (parenthesized_expression "(DAT_00183378 != 0)" (( "(") (binary_expression "DAT_00183378 != 0" (identifier "DAT_00183378") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_0010b956(local_1058,local_1050,local_1048);\n      FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);\n    }" ({ "{") (expression_statement "FUN_0010b956(local_1058,local_1050,local_1048);" (call_expression "FUN_0010b956(local_1058,local_1050,local_1048)" (identifier "FUN_0010b956") (argument_list "(local_1058,local_1050,local_1048)" (( "(") (identifier "local_1058") (, ",") (identifier "local_1050") (, ",") (identifier "local_1048") () ")"))) (; ";")) (expression_statement "FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);" (call_expression "FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048)" (identifier "FUN_00111e5a") (argument_list "(stderr,"Sending file %s, size=%s",local_10a0,local_1048)" (( "(") (identifier "stderr") (, ",") (string_literal ""Sending file %s, size=%s"" (" """) (string_content "Sending file %s, size=%s") (" """)) (, ",") (identifier "local_10a0") (, ",") (identifier "local_1048") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar1 = FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0]);" (assignment_expression "iVar1 = FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0])" (identifier "iVar1") (= "=") (call_expression "FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0])" (identifier "FUN_001139f2") (argument_list "(local_10a0,local_1058,local_1050,local_1060[0])" (( "(") (identifier "local_10a0") (, ",") (identifier "local_1058") (, ",") (identifier "local_1050") (, ",") (subscript_expression "local_1060[0]" (identifier "local_1060") ([ "[") (number_literal "0") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n      auVar18 = FUN_0010baa3(0,0);\n      tVar5 = time((time_t *)0x0);\n      auVar19 = FUN_0010baa3(0,0);\n      local_1088 = 0;\n      while( true ) {\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }\n      FUN_001584ca(lVar4);\n      FUN_00113d4a();\n    }\n    else {\n      FUN_001584ca(lVar4);\n    }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      auVar18 = FUN_0010baa3(0,0);\n      tVar5 = time((time_t *)0x0);\n      auVar19 = FUN_0010baa3(0,0);\n      local_1088 = 0;\n      while( true ) {\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }\n      FUN_001584ca(lVar4);\n      FUN_00113d4a();\n    }" ({ "{") (expression_statement "auVar18 = FUN_0010baa3(0,0);" (assignment_expression "auVar18 = FUN_0010baa3(0,0)" (identifier "auVar18") (= "=") (call_expression "FUN_0010baa3(0,0)" (identifier "FUN_0010baa3") (argument_list "(0,0)" (( "(") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "tVar5 = time((time_t *)0x0);" (assignment_expression "tVar5 = time((time_t *)0x0)" (identifier "tVar5") (= "=") (call_expression "time((time_t *)0x0)" (identifier "time") (argument_list "((time_t *)0x0)" (( "(") (cast_expression "(time_t *)0x0" (( "(") (type_descriptor "time_t *" (type_identifier "time_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")")))) (; ";")) (expression_statement "auVar19 = FUN_0010baa3(0,0);" (assignment_expression "auVar19 = FUN_0010baa3(0,0)" (identifier "auVar19") (= "=") (call_expression "FUN_0010baa3(0,0)" (identifier "FUN_0010baa3") (argument_list "(0,0)" (( "(") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "local_1088 = 0;" (assignment_expression "local_1088 = 0" (identifier "local_1088") (= "=") (number_literal "0")) (; ";")) (while_statement "while( true ) {\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        uVar7 = auVar19._8_8_;\n        uVar8 = auVar19._0_8_;\n        local_1090 = auVar18._8_8_;\n        local_1098 = auVar18._0_8_;\n        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);\n        if (-1 < iVar1) break;\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n        iVar1 = 0x1000;\n        if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }\n        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);\n        if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }\n        iVar2 = FUN_00113c18(local_1048,iVar1);\n        if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }\n        if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }\nLAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);\n      }" ({ "{") (expression_statement "uVar7 = auVar19._8_8_;" (assignment_expression "uVar7 = auVar19._8_8_" (identifier "uVar7") (= "=") (field_expression "auVar19._8_8_" (identifier "auVar19") (. ".") (field_identifier "_8_8_"))) (; ";")) (expression_statement "uVar8 = auVar19._0_8_;" (assignment_expression "uVar8 = auVar19._0_8_" (identifier "uVar8") (= "=") (field_expression "auVar19._0_8_" (identifier "auVar19") (. ".") (field_identifier "_0_8_"))) (; ";")) (expression_statement "local_1090 = auVar18._8_8_;" (assignment_expression "local_1090 = auVar18._8_8_" (identifier "local_1090") (= "=") (field_expression "auVar18._8_8_" (identifier "auVar18") (. ".") (field_identifier "_8_8_"))) (; ";")) (expression_statement "local_1098 = auVar18._0_8_;" (assignment_expression "local_1098 = auVar18._0_8_" (identifier "local_1098") (= "=") (field_expression "auVar18._0_8_" (identifier "auVar18") (. ".") (field_identifier "_0_8_"))) (; ";")) (expression_statement "iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);" (assignment_expression "iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050)" (identifier "iVar1") (= "=") (call_expression "FUN_0010bac6(uVar8,uVar7,local_1058,local_1050)" (identifier "FUN_0010bac6") (argument_list "(uVar8,uVar7,local_1058,local_1050)" (( "(") (identifier "uVar8") (, ",") (identifier "uVar7") (, ",") (identifier "local_1058") (, ",") (identifier "local_1050") () ")")))) (; ";")) (if_statement "if (-1 < iVar1) break;" (if "if") (parenthesized_expression "(-1 < iVar1)" (( "(") (binary_expression "-1 < iVar1" (number_literal "-1") (< "<") (identifier "iVar1")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);" (assignment_expression "auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000)" (identifier "auVar19") (= "=") (call_expression "FUN_0010bab8(uVar8,uVar7,0x1000)" (identifier "FUN_0010bab8") (argument_list "(uVar8,uVar7,0x1000)" (( "(") (identifier "uVar8") (, ",") (identifier "uVar7") (, ",") (number_literal "0x1000") () ")")))) (; ";")) (expression_statement "iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);" (assignment_expression "iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050)" (identifier "iVar2") (= "=") (call_expression "FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050)" (identifier "FUN_0010bac6") (argument_list "(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050)" (( "(") (field_expression "auVar19._0_8_" (identifier "auVar19") (. ".") (field_identifier "_0_8_")) (, ",") (field_expression "auVar19._8_8_" (identifier "auVar19") (. ".") (field_identifier "_8_8_")) (, ",") (identifier "local_1058") (, ",") (identifier "local_1050") () ")")))) (; ";")) (expression_statement "iVar1 = 0x1000;" (assignment_expression "iVar1 = 0x1000" (identifier "iVar1") (= "=") (number_literal "0x1000")) (; ";")) (if_statement "if (0 < iVar2) {\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }" (if "if") (parenthesized_expression "(0 < iVar2)" (( "(") (binary_expression "0 < iVar2" (number_literal "0") (< "<") (identifier "iVar2")) () ")")) (compound_statement "{\n          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);\n          iVar1 = extraout_EDX;\n        }" ({ "{") (expression_statement "FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);" (call_expression "FUN_0010bae7(local_1058,local_1050,uVar8,uVar7)" (identifier "FUN_0010bae7") (argument_list "(local_1058,local_1050,uVar8,uVar7)" (( "(") (identifier "local_1058") (, ",") (identifier "local_1050") (, ",") (identifier "uVar8") (, ",") (identifier "uVar7") () ")"))) (; ";")) (expression_statement "iVar1 = extraout_EDX;" (assignment_expression "iVar1 = extraout_EDX" (identifier "iVar1") (= "=") (identifier "extraout_EDX")) (; ";")) (} "}"))) (expression_statement "iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);" (assignment_expression "iVar2 = FUN_001584b7(lVar4,local_1048,iVar1)" (identifier "iVar2") (= "=") (call_expression "FUN_001584b7(lVar4,local_1048,iVar1)" (identifier "FUN_001584b7") (argument_list "(lVar4,local_1048,iVar1)" (( "(") (identifier "lVar4") (, ",") (identifier "local_1048") (, ",") (identifier "iVar1") () ")")))) (; ";")) (if_statement "if (iVar1 != iVar2) {\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }" (if "if") (parenthesized_expression "(iVar1 != iVar2)" (( "(") (binary_expression "iVar1 != iVar2" (identifier "iVar1") (!= "!=") (identifier "iVar2")) () ")")) (compound_statement "{\n          if (DAT_00183070 != 0) {\n            putchar(10);\n          }\n          FUN_0011203b("%s: Read error",param_1);\n        }" ({ "{") (if_statement "if (DAT_00183070 != 0) {\n            putchar(10);\n          }" (if "if") (parenthesized_expression "(DAT_00183070 != 0)" (( "(") (binary_expression "DAT_00183070 != 0" (identifier "DAT_00183070") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            putchar(10);\n          }" ({ "{") (expression_statement "putchar(10);" (call_expression "putchar(10)" (identifier "putchar") (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0011203b("%s: Read error",param_1);" (call_expression "FUN_0011203b("%s: Read error",param_1)" (identifier "FUN_0011203b") (argument_list "("%s: Read error",param_1)" (( "(") (string_literal ""%s: Read error"" (" """) (string_content "%s: Read error") (" """)) (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar2 = FUN_00113c18(local_1048,iVar1);" (assignment_expression "iVar2 = FUN_00113c18(local_1048,iVar1)" (identifier "iVar2") (= "=") (call_expression "FUN_00113c18(local_1048,iVar1)" (identifier "FUN_00113c18") (argument_list "(local_1048,iVar1)" (( "(") (identifier "local_1048") (, ",") (identifier "iVar1") () ")")))) (; ";")) (if_statement "if (iVar2 != 0) {\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_0011203b("%s: Network error occurred",param_1);\n        }" ({ "{") (expression_statement "FUN_0011203b("%s: Network error occurred",param_1);" (call_expression "FUN_0011203b("%s: Network error occurred",param_1)" (identifier "FUN_0011203b") (argument_list "("%s: Network error occurred",param_1)" (( "(") (string_literal ""%s: Network error occurred"" (" """) (string_content "%s: Network error occurred") (" """)) (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (if_statement "if (DAT_00183070 != 0) {\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }" (if "if") (parenthesized_expression "(DAT_00183070 != 0)" (( "(") (binary_expression "DAT_00183070 != 0" (identifier "DAT_00183070") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);\n          tVar10 = time((time_t *)0x0);\n          if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }\n          local_1088 = time((time_t *)0x0);\n          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );\n        }" ({ "{") (expression_statement "auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);" (assignment_expression "auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1)" (identifier "auVar18") (= "=") (call_expression "FUN_0010bab8(local_1098,local_1090,(long)iVar1)" (identifier "FUN_0010bab8") (argument_list "(local_1098,local_1090,(long)iVar1)" (( "(") (identifier "local_1098") (, ",") (identifier "local_1090") (, ",") (cast_expression "(long)iVar1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar1")) () ")")))) (; ";")) (expression_statement "tVar10 = time((time_t *)0x0);" (assignment_expression "tVar10 = time((time_t *)0x0)" (identifier "tVar10") (= "=") (call_expression "time((time_t *)0x0)" (identifier "time") (argument_list "((time_t *)0x0)" (( "(") (cast_expression "(time_t *)0x0" (( "(") (type_descriptor "time_t *" (type_identifier "time_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")")))) (; ";")) (if_statement "if (tVar10 == local_1088) {\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }" (if "if") (parenthesized_expression "(tVar10 == local_1088)" (( "(") (binary_expression "tVar10 == local_1088" (identifier "tVar10") (== "==") (identifier "local_1088")) () ")")) (compound_statement "{\n            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);\n            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);\n            if (iVar1 != 0) goto LAB_00114520;\n          }" ({ "{") (expression_statement "auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);" (assignment_expression "auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1)" (identifier "auVar19") (= "=") (call_expression "FUN_0010bab8(uVar8,uVar7,(long)iVar1)" (identifier "FUN_0010bab8") (argument_list "(uVar8,uVar7,(long)iVar1)" (( "(") (identifier "uVar8") (, ",") (identifier "uVar7") (, ",") (cast_expression "(long)iVar1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar1")) () ")")))) (; ";")) (expression_statement "iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);" (assignment_expression "iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050)" (identifier "iVar1") (= "=") (call_expression "FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050)" (identifier "FUN_0010bac6") (argument_list "(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050)" (( "(") (field_expression "auVar19._0_8_" (identifier "auVar19") (. ".") (field_identifier "_0_8_")) (, ",") (field_expression "auVar19._8_8_" (identifier "auVar19") (. ".") (field_identifier "_8_8_")) (, ",") (identifier "local_1058") (, ",") (identifier "local_1050") () ")")))) (; ";")) (if_statement "if (iVar1 != 0) goto LAB_00114520;" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00114520;" (goto "goto") (statement_identifier "LAB_00114520") (; ";"))) (} "}"))) (expression_statement "local_1088 = time((time_t *)0x0);" (assignment_expression "local_1088 = time((time_t *)0x0)" (identifier "local_1088") (= "=") (call_expression "time((time_t *)0x0)" (identifier "time") (argument_list "((time_t *)0x0)" (( "(") (cast_expression "(time_t *)0x0" (( "(") (type_descriptor "time_t *" (type_identifier "time_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")")))) (; ";")) (expression_statement "FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      );" (call_expression "FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      )" (identifier "FUN_00112ad9") (argument_list "(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088\n                      )" (( "(") (identifier "local_10a0") (, ",") (identifier "local_1058") (, ",") (identifier "local_1050") (, ",") (field_expression "auVar18._0_8_" (identifier "auVar18") (. ".") (field_identifier "_0_8_")) (, ",") (field_expression "auVar18._8_8_" (identifier "auVar18") (. ".") (field_identifier "_8_8_")) (, ",") (identifier "tVar5") (, ",") (identifier "local_1088") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_00114520:\n        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);" (statement_identifier "LAB_00114520") (: ":") (expression_statement "auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);" (assignment_expression "auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000)" (identifier "auVar19") (= "=") (call_expression "FUN_0010bab8(uVar8,uVar7,0x1000)" (identifier "FUN_0010bab8") (argument_list "(uVar8,uVar7,0x1000)" (( "(") (identifier "uVar8") (, ",") (identifier "uVar7") (, ",") (number_literal "0x1000") () ")")))) (; ";"))) (} "}"))) (expression_statement "FUN_001584ca(lVar4);" (call_expression "FUN_001584ca(lVar4)" (identifier "FUN_001584ca") (argument_list "(lVar4)" (( "(") (identifier "lVar4") () ")"))) (; ";")) (expression_statement "FUN_00113d4a();" (call_expression "FUN_00113d4a()" (identifier "FUN_00113d4a") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      FUN_001584ca(lVar4);\n    }" (else "else") (compound_statement "{\n      FUN_001584ca(lVar4);\n    }" ({ "{") (expression_statement "FUN_001584ca(lVar4);" (call_expression "FUN_001584ca(lVar4)" (identifier "FUN_001584ca") (argument_list "(lVar4)" (( "(") (identifier "lVar4") () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    FUN_001584ca(lVar4);\n  }" (else "else") (compound_statement "{\n    FUN_001584ca(lVar4);\n  }" ({ "{") (expression_statement "FUN_001584ca(lVar4);" (call_expression "FUN_001584ca(lVar4)" (identifier "FUN_001584ca") (argument_list "(lVar4)" (( "(") (identifier "lVar4") () ")"))) (; ";")) (} "}")))))) (labeled_statement "LAB_00114299:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" (statement_identifier "LAB_00114299") (: ":") (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" (if "if") (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (!= "!=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" ({ "{") (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(char *var_16)

{
  long var_52;
  int var_3;
  char *var_7;
  type_1 *var_31;
  type_2 start;
  type_3 *var_13;
  char *var_8;
  type_4 *var_22;
  char *src_00;
  type_2 var_47;
  long var_9;
  int var_42;
  type_3 *var_10;
  type_3 *var_11;
  long var_1;
  bool var_12;
  bool var_14;
  bool bVar12;
  type_3 bVar13;
  type_5 x;
  type_5 uVar14;
  char *var_29;
  type_5 local_1098;
  long var_48;
  type_6 mtime;
  type_6 atime;
  long permissions;
  type_5 size;
  char sizestr [40];
  
  bVar13 = 0;
  var_52 = *(long *)(var_1 + 0x28);
  var_3 = var_2(var_16);
  if ((var_3 == 0) || (var_3 == 3)) {
    var_7 = "Not a";
    if (var_3 != 3) {
      var_7 = "No such";
    }
    var_4("%s: %s file or directory",var_16,var_7);
    goto LAB_00114299;
  }
  if (var_3 == 2) {
    if (var_5 == 0) {
      var_4("%s: not a regular file",var_16);
      goto LAB_00114299;
    }
    var_7 = var_6(var_16,0x2f);
    var_8 = var_7;
    if (var_7 == (char *)0x0) {
      var_8 = var_6(var_16,0x5c);
      var_12 = false;
      bVar12 = var_8 == (char *)0x0;
      var_13 = (type_3 *)var_16;
      if (!bVar12) goto LAB_001142e8;
    }
    else {
LAB_001142e8:
      var_12 = (char *)0xfffffffffffffffe < var_8;
      bVar12 = (type_3 *)(var_8 + 1) == (type_3 *)0x0;
      var_13 = (type_3 *)(var_8 + 1);
    }
    var_9 = 2;
    var_10 = var_13;
    var_11 = (type_3 *)0x15eb4d;
    do {
      if (var_9 == 0) break;
      var_9 = var_9 + -1;
      var_12 = *var_10 < *var_11;
      bVar12 = *var_10 == *var_11;
      var_10 = var_10 + (type_6)bVar13 * -2 + 1;
      var_11 = var_11 + (type_6)bVar13 * -2 + 1;
    } while (bVar12);
    var_14 = false;
    var_12 = (!var_12 && !bVar12) == var_12;
    if (var_12) goto LAB_00114299;
    var_9 = 3;
    var_10 = (type_3 *)0x15eb4c;
    do {
      if (var_9 == 0) break;
      var_9 = var_9 + -1;
      var_14 = *var_13 < *var_10;
      var_12 = *var_13 == *var_10;
      var_13 = var_13 + (type_6)bVar13 * -2 + 1;
      var_10 = var_10 + (type_6)bVar13 * -2 + 1;
    } while (var_12);
    if ((!var_14 && !var_12) == var_14) goto LAB_00114299;
    if (var_7 == (char *)0x0) {
      var_8 = var_6(var_16,0x5c);
      var_7 = var_16;
      if (var_8 != (char *)0x0) goto LAB_00114344;
LAB_0011468d:
      var_8 = var_15(var_16,0x3a);
      if (var_8 != (char *)0x0) {
        var_7 = var_8 + 1;
      }
    }
    else {
      var_7 = var_7 + 1;
      var_8 = var_6(var_7,0x5c);
      if (var_8 != (char *)0x0) {
LAB_00114344:
        var_7 = var_8 + 1;
      }
      if (var_16 == var_7) goto LAB_0011468d;
    }
    var_8 = var_17();
    if (var_18 != 0) {
      var_19(stderr,"Entering directory: %s",var_7);
    }
    var_3 = var_20(var_7,0x1ed);
    if (var_3 == 0) {
      var_22 = var_21(var_16);
      if (var_22 != (type_4 *)0x0) {
        while (var_7 = var_23(var_22), var_7 != (char *)0x0) {
          src_00 = var_24(var_16,&DAT_0015ecb1,var_7,0);
          function_1(src_00);
          var_25(src_00);
          var_25(var_7);
        }
      }
      var_26(var_22);
      var_27();
      var_28(var_8);
    }
    goto LAB_00114299;
  }
  var_29 = var_6(var_16,0x2f);
  if (var_29 == (char *)0x0) {
    var_7 = var_6(var_16,0x5c);
    if (var_7 != (char *)0x0) goto LAB_001141aa;
LAB_001146c0:
    var_7 = var_15(var_16,0x3a);
    var_29 = var_7 + 1;
    if (var_7 == (char *)0x0) {
      var_29 = var_16;
    }
  }
  else {
    var_29 = var_29 + 1;
    var_7 = var_6(var_29,0x5c);
    if (var_7 != (char *)0x0) {
LAB_001141aa:
      var_29 = var_7 + 1;
    }
    if (var_29 == var_16) goto LAB_001146c0;
  }
  var_31 = var_30(var_16,&size,&mtime,&atime,&permissions);
  if (var_31 == (type_1 *)0x0) {
    var_4("%s: Cannot open file",var_16);
  }
  else if ((var_32 == 0) || (var_3 = var_33(mtime,atime), var_3 == 0)) {
    if (var_18 != 0) {
      var_34(size,sizestr);
      var_19(stderr,"Sending file %s, size=%s",var_29,sizestr);
    }
    var_3 = var_35(var_29,size,(int)permissions);
    if (var_3 == 0) {
      local_1098 = var_36(0,0);
      start = var_37((type_2 *)0x0);
      x = var_36(0,0);
      var_48 = 0;
      while (var_3 = var_38(x,size), var_3 < 0) {
        uVar14 = var_39(x,0x1000);
        var_3 = var_38(uVar14,size);
        var_42 = 0x1000;
        if (0 < var_3) {
          uVar14 = var_40(size,x);
          var_42 = uVar14.lo;
        }
        var_3 = var_41(var_31,sizestr,var_42);
        if (var_42 != var_3) {
          if (var_43 != 0) {
            var_44(10);
          }
          var_45("%s: Read error",var_16);
        }
        var_3 = var_46(sizestr,var_42);
        if (var_3 != 0) {
          var_45("%s: Network error occurred",var_16);
        }
        if (var_43 != 0) {
          local_1098 = var_39(local_1098,(long)var_42);
          var_47 = var_37((type_2 *)0x0);
          if (var_47 == var_48) {
            uVar14 = var_39(x,(long)var_42);
            var_3 = var_38(uVar14,size);
            if (var_3 != 0) goto LAB_00114520;
          }
          var_48 = var_37((type_2 *)0x0);
          var_49(var_29,size,local_1098,start,var_48);
        }
LAB_00114520:
        x = var_39(x,0x1000);
      }
      var_50(var_31);
      var_51();
    }
    else {
      var_50(var_31);
    }
  }
  else {
    var_50(var_31);
  }
LAB_00114299:
  if (var_52 != *(long *)(var_1 + 0x28)) {
                    /* WARNING: Subroutine does not return */
    var_53();
  }
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (identifier) (identifier)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (identifier) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (identifier))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (field_expression argument: (identifier) field: (field_identifier)) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (field_expression argument: (identifier) field: (field_identifier)) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (field_expression argument: (identifier) field: (field_identifier)) (field_expression argument: (identifier) field: (field_identifier)) (identifier) (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))) (return_statement))))

void MASKED(byte *param_1)

{
  int iVar1;
  int iVar2;
  char *pcVar3;
  long lVar4;
  time_t tVar5;
  char *pcVar6;
  undefined8 uVar7;
  undefined8 uVar8;
  long lVar9;
  time_t tVar10;
  int extraout_EDX;
  byte *pbVar11;
  byte *pbVar12;
  byte *pbVar13;
  long in_FS_OFFSET;
  bool bVar14;
  bool bVar15;
  bool bVar16;
  byte bVar17;
  undefined1 auVar18 [16];
  undefined1 auVar19 [16];
  byte *local_10a0;
  undefined8 local_1098;
  undefined8 local_1090;
  long local_1088;
  undefined8 local_1070;
  undefined8 local_1068;
  undefined4 local_1060 [2];
  undefined8 local_1058;
  undefined8 local_1050;
  undefined1 local_1048 [4104];
  long local_40;
  
  bVar17 = 0;
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  iVar1 = FUN_0015874b();
  if ((iVar1 == 0) || (iVar1 == 3)) {
    pcVar3 = "Not a";
    if (iVar1 != 3) {
      pcVar3 = "No such";
    }
    FUN_0011382c("%s: %s file or directory",param_1,pcVar3);
    goto LAB_00114299;
  }
  if (iVar1 == 2) {
    if (DAT_00183374 == 0) {
      FUN_0011382c("%s: not a regular file",param_1);
      goto LAB_00114299;
    }
    pcVar6 = strrchr((char *)param_1,0x2f);
    pcVar3 = pcVar6;
    if (pcVar6 == (char *)0x0) {
      pcVar3 = strrchr((char *)param_1,0x5c);
      bVar14 = false;
      bVar16 = pcVar3 == (char *)0x0;
      pbVar11 = param_1;
      if (!bVar16) goto LAB_001142e8;
    }
    else {
LAB_001142e8:
      bVar14 = (char *)0xfffffffffffffffe < pcVar3;
      bVar16 = (byte *)(pcVar3 + 1) == (byte *)0x0;
      pbVar11 = (byte *)(pcVar3 + 1);
    }
    lVar4 = 2;
    pbVar12 = pbVar11;
    pbVar13 = (byte *)0x15eb4d;
    do {
      if (lVar4 == 0) break;
      lVar4 = lVar4 + -1;
      bVar14 = *pbVar12 < *pbVar13;
      bVar16 = *pbVar12 == *pbVar13;
      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;
      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;
    } while (bVar16);
    bVar15 = false;
    bVar14 = (!bVar14 && !bVar16) == bVar14;
    if (bVar14) goto LAB_00114299;
    lVar4 = 3;
    pbVar12 = (byte *)0x15eb4c;
    do {
      if (lVar4 == 0) break;
      lVar4 = lVar4 + -1;
      bVar15 = *pbVar11 < *pbVar12;
      bVar14 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (ulong)bVar17 * -2 + 1;
      pbVar12 = pbVar12 + (ulong)bVar17 * -2 + 1;
    } while (bVar14);
    if ((!bVar15 && !bVar14) == bVar15) goto LAB_00114299;
    if (pcVar6 == (char *)0x0) {
      pcVar3 = strrchr((char *)param_1,0x5c);
      pbVar11 = param_1;
      if (pcVar3 != (char *)0x0) goto LAB_00114344;
LAB_0011468d:
      pcVar3 = strchr((char *)param_1,0x3a);
      if (pcVar3 != (char *)0x0) {
        pbVar11 = (byte *)(pcVar3 + 1);
      }
    }
    else {
      pbVar11 = (byte *)(pcVar6 + 1);
      pcVar3 = strrchr((char *)pbVar11,0x5c);
      if (pcVar3 != (char *)0x0) {
LAB_00114344:
        pbVar11 = (byte *)(pcVar3 + 1);
      }
      if (param_1 == pbVar11) goto LAB_0011468d;
    }
    uVar7 = FUN_00113ee9();
    if (DAT_00183378 != 0) {
      FUN_00111e5a(stderr,"Entering directory: %s",pbVar11);
    }
    iVar1 = FUN_00113f10(pbVar11,0x1ed);
    if (iVar1 == 0) {
      lVar4 = FUN_00158804(param_1);
      if (lVar4 != 0) {
        while (lVar9 = FUN_00158826(lVar4), lVar9 != 0) {
          uVar8 = FUN_0010d36f(param_1,&DAT_0015ecb1,lVar9,0);
          MASKED(uVar8);
          FUN_0010da9f(uVar8);
          FUN_0010da9f(lVar9);
        }
      }
      FUN_00158855(lVar4);
      FUN_001140ec();
      FUN_00113eff(uVar7);
    }
    goto LAB_00114299;
  }
  pcVar3 = strrchr((char *)param_1,0x2f);
  if (pcVar3 == (char *)0x0) {
    pcVar3 = strrchr((char *)param_1,0x5c);
    if (pcVar3 != (char *)0x0) goto LAB_001141aa;
LAB_001146c0:
    pcVar3 = strchr((char *)param_1,0x3a);
    local_10a0 = (byte *)(pcVar3 + 1);
    if (pcVar3 == (char *)0x0) {
      local_10a0 = param_1;
    }
  }
  else {
    local_10a0 = (byte *)(pcVar3 + 1);
    pcVar3 = strrchr((char *)local_10a0,0x5c);
    if (pcVar3 != (char *)0x0) {
LAB_001141aa:
      local_10a0 = (byte *)(pcVar3 + 1);
    }
    if (local_10a0 == param_1) goto LAB_001146c0;
  }
  lVar4 = FUN_00158359(param_1,&local_1058,&local_1070,&local_1068,local_1060);
  if (lVar4 == 0) {
    FUN_0011382c("%s: Cannot open file",param_1);
  }
  else if ((DAT_00183370 == 0) || (iVar1 = FUN_00113947(local_1070,local_1068), iVar1 == 0)) {
    if (DAT_00183378 != 0) {
      FUN_0010b956(local_1058,local_1050,local_1048);
      FUN_00111e5a(stderr,"Sending file %s, size=%s",local_10a0,local_1048);
    }
    iVar1 = FUN_001139f2(local_10a0,local_1058,local_1050,local_1060[0]);
    if (iVar1 == 0) {
      auVar18 = FUN_0010baa3(0,0);
      tVar5 = time((time_t *)0x0);
      auVar19 = FUN_0010baa3(0,0);
      local_1088 = 0;
      while( true ) {
        uVar7 = auVar19._8_8_;
        uVar8 = auVar19._0_8_;
        local_1090 = auVar18._8_8_;
        local_1098 = auVar18._0_8_;
        iVar1 = FUN_0010bac6(uVar8,uVar7,local_1058,local_1050);
        if (-1 < iVar1) break;
        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);
        iVar2 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);
        iVar1 = 0x1000;
        if (0 < iVar2) {
          FUN_0010bae7(local_1058,local_1050,uVar8,uVar7);
          iVar1 = extraout_EDX;
        }
        iVar2 = FUN_001584b7(lVar4,local_1048,iVar1);
        if (iVar1 != iVar2) {
          if (DAT_00183070 != 0) {
            putchar(10);
          }
          FUN_0011203b("%s: Read error",param_1);
        }
        iVar2 = FUN_00113c18(local_1048,iVar1);
        if (iVar2 != 0) {
          FUN_0011203b("%s: Network error occurred",param_1);
        }
        if (DAT_00183070 != 0) {
          auVar18 = FUN_0010bab8(local_1098,local_1090,(long)iVar1);
          tVar10 = time((time_t *)0x0);
          if (tVar10 == local_1088) {
            auVar19 = FUN_0010bab8(uVar8,uVar7,(long)iVar1);
            iVar1 = FUN_0010bac6(auVar19._0_8_,auVar19._8_8_,local_1058,local_1050);
            if (iVar1 != 0) goto LAB_00114520;
          }
          local_1088 = time((time_t *)0x0);
          FUN_00112ad9(local_10a0,local_1058,local_1050,auVar18._0_8_,auVar18._8_8_,tVar5,local_1088
                      );
        }
LAB_00114520:
        auVar19 = FUN_0010bab8(uVar8,uVar7,0x1000);
      }
      FUN_001584ca(lVar4);
      FUN_00113d4a();
    }
    else {
      FUN_001584ca(lVar4);
    }
  }
  else {
    FUN_001584ca(lVar4);
  }
LAB_00114299:
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return;
}

