
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void send_file_and_exit(char *url,int what)

{
  stat sb;
  
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void __regparm3 FUN_00030b39(char *param_1,stat64 *param_2)

{
  char *__s;
  undefined4 *puVar1;
  int iVar2;
  int *piVar3;
  char *pcVar4;
  int __fildes;
  size_t sVar5;
  char *pcVar6;
  int iVar7;
  uint uVar8;
  stat64 *psVar9;
  stat64 *extraout_ECX;
  stat64 *psVar10;
  uint uVar11;
  int iVar12;
  stat64 *psVar13;
  int in_GS_OFFSET;
  __off64_t _Var14;
  stat64 *local_a0;
  stat64 local_84;
  undefined4 local_20;
  
  piVar3 = DAT_000d1700;
  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);
  if (*(char *)((int)DAT_000d1700 + 5) == '\0') goto LAB_00030bfa;
  pcVar4 = (char *)FUN_00019fd7("%s.gz",param_1);
  __fildes = open64(pcVar4,0);
  free(pcVar4);
  if (__fildes == -1) goto LAB_00030bf6;
  __fxstat64(3,__fildes,&local_84);
  piVar3[0x14] = (int)local_84.st_size;
  piVar3[0x15] = local_84.st_size._4_4_;
  piVar3[3] = local_84.st_mtim.tv_sec;
  while (local_a0 = param_2, __fildes < 0) {
    if (param_2 == (stat64 *)0x2) goto LAB_00030d9e;
    *(undefined1 *)((int)piVar3 + 5) = 0;
    FUN_00030f43();
    FUN_00030829();
LAB_00030bf6:
    *(undefined1 *)((int)piVar3 + 5) = 0;
LAB_00030bfa:
    __fildes = open64(param_1,0);
  }
  signal(0xd,(__sighandler_t)0x1);
  pcVar4 = strrchr(param_1,0x2e);
  if (pcVar4 == (char *)0x0) {
LAB_00030c9c:
    if (param_2 != (stat64 *)0x2) goto LAB_00030da3;
LAB_00030ca7:
    piVar3[0x16] = -1;
    piVar3[0x17] = -1;
    piVar3[0x1a] = -1;
    piVar3[0x1b] = 0x7fffffff;
joined_r0x00030cc8:
    if (((uint)local_a0 & 1) != 0) {
      FUN_00030f43();
    }
    do {
      local_84.st_dev._0_4_ = piVar3[0x16];
      local_84.st_dev._4_4_ = piVar3[0x17];
      uVar11 = piVar3[0x1a];
      iVar7 = piVar3[0x1b];
      local_a0 = &local_84;
      do {
        if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {
          uVar11 = 0x7fff0000;
        }
        uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);
        if ((int)uVar8 < 0) {
          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)
          goto LAB_00030d32;
          goto LAB_00030d87;
        }
        uVar11 = piVar3[0x1a] - uVar8;
        iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);
        piVar3[0x1a] = uVar11;
        piVar3[0x1b] = iVar7;
        if (uVar8 == 0) goto LAB_00030d9e;
      } while (iVar7 != 0 || uVar11 != 0);
      FUN_00030829();
      psVar13 = (stat64 *)0x0;
      psVar10 = extraout_ECX;
      do {
        iVar12 = piVar3[0x1a] - (int)psVar10;
        iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);
        piVar3[0x1a] = iVar12;
        piVar3[0x1b] = iVar7;
        if (iVar7 == 0 && iVar12 == 0) break;
LAB_00030d32:
        local_a0 = (stat64 *)FUN_0001ac64();
        if ((int)local_a0 < 1) break;
        uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);
        iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);
        if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=
            (int)(iVar7 - uVar11) < 0) {
          local_a0 = (stat64 *)piVar3[0x1a];
        }
        psVar9 = (stat64 *)FUN_0001ac14();
        psVar10 = local_a0;
        psVar13 = local_a0;
      } while (local_a0 == psVar9);
      if ((int)local_a0 < 0) {
LAB_00030d87:
        if (1 < *piVar3) {
          FUN_00018e3c("error");
        }
      }
LAB_00030d9e:
      FUN_00030829();
LAB_00030da3:
      if (*(char *)((int)piVar3 + 5) != '\0') goto LAB_00030ca7;
      iVar7 = piVar3[0x17];
      piVar3[0x1a] = -1;
      piVar3[0x1b] = 0x7fffffff;
      if (iVar7 < 0) goto joined_r0x00030cc8;
      uVar11 = piVar3[0x18];
      iVar12 = piVar3[0x19];
      uVar8 = piVar3[0x14];
      iVar2 = piVar3[0x15];
      if ((iVar12 == 0 && uVar11 == 0) ||
         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==
          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)) {
        uVar11 = uVar8 - 1;
        iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);
        piVar3[0x18] = uVar11;
        piVar3[0x19] = iVar12;
      }
      uVar11 = (uint)(uVar11 < (uint)piVar3[0x16]);
      if ((SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=
          (int)((iVar12 - iVar7) - uVar11) < 0) goto LAB_00030e0f;
      _Var14 = lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0);
      uVar11 = piVar3[0x16];
      if (_Var14 != *(longlong *)(piVar3 + 0x16)) goto LAB_00030e0f;
      uVar8 = piVar3[0x18] - uVar11;
      piVar3[0x1a] = uVar8 + 1;
      piVar3[0x1b] = ((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +
                     (uint)(0xfffffffe < uVar8);
      FUN_00030f43();
    } while( true );
  }
  pcVar6 = ".txt.h.c.cc.cpp";
  do {
    sVar5 = strlen(pcVar6);
    __s = pcVar6 + sVar5 + 1;
    pcVar6 = strstr(pcVar6,pcVar4);
    if (pcVar6 != (char *)0x0) {
      sVar5 = strlen(pcVar4);
      if (pcVar6[sVar5] == '\0') {
        piVar3[10] = (int)__s;
      }
      else {
        if (pcVar6[sVar5] != '.') break;
        piVar3[10] = (int)__s;
      }
      puVar1 = (undefined4 *)piVar3[0x1d];
      goto joined_r0x00030f1b;
    }
    sVar5 = strlen(__s);
    pcVar6 = __s + sVar5 + 1;
  } while (*pcVar6 != '\0');
  puVar1 = (undefined4 *)piVar3[0x1d];
joined_r0x00030f1b:
  do {
    if (puVar1 == (undefined4 *)0x0) goto LAB_00030c9c;
    iVar7 = strcmp((char *)(puVar1 + 2),pcVar4);
    if (iVar7 == 0) {
      piVar3[10] = puVar1[1];
      goto LAB_00030c9c;
    }
    puVar1 = (undefined4 *)*puVar1;
  } while( true );
LAB_00030e0f:
  lseek64(__fildes,0,0);
  piVar3[0x16] = -1;
  piVar3[0x17] = -1;
  goto joined_r0x00030cc8;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x9c
CALL 0x00017640
ADD EBX,0x9fed8
MOV EDI,EAX
MOV dword ptr [ESP + 0xc],EDX
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x8c],EAX
XOR EAX,EAX
MOV ESI,dword ptr [EBX + 0xce0]
CMP byte ptr [ESI + 0x5],0x0
JZ 0x00030bfa
SUB ESP,0x8
PUSH EDI
LEA EAX,[EBX + 0xffff4aaa]
PUSH EAX
CALL 0x00019fd7
MOV EBP,EAX
POP ECX
POP EAX
PUSH 0x0
PUSH EBP
CALL 0x00016170
MOV dword ptr [ESP + 0x18],EAX
MOV dword ptr [ESP],EBP
CALL 0x000175a0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x8]
CMP EAX,-0x1
JZ 0x00030bf6
PUSH EDX
LEA EBP,[ESP + 0x2c]
PUSH EBP
PUSH EAX
PUSH 0x3
CALL 0x00016730
MOV EAX,dword ptr [ESP + 0x64]
MOV EDX,dword ptr [ESP + 0x68]
MOV dword ptr [ESI + 0x50],EAX
MOV dword ptr [ESI + 0x54],EDX
MOV EAX,dword ptr [ESP + 0x80]
MOV dword ptr [ESI + 0xc],EAX
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x8]
TEST EAX,EAX
JNS 0x00030c14
CMP dword ptr [ESP + 0xc],0x2
JZ 0x00030d9e
MOV byte ptr [ESI + 0x5],0x0
MOV EAX,0x194
CALL 0x00030f43
CALL 0x00030829
MOV byte ptr [ESI + 0x5],0x0
SUB ESP,0x8
PUSH 0x0
PUSH EDI
CALL 0x00016170
MOV dword ptr [ESP + 0x18],EAX
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x8]
TEST EAX,EAX
JS 0x00030bd8
SUB ESP,0x8
PUSH 0x1
PUSH 0xd
CALL 0x00016380
POP EBP
POP EAX
PUSH 0x2e
PUSH EDI
CALL 0x000170d0
ADD ESP,0x10
MOV EDI,EAX
TEST EAX,EAX
JZ 0x00030c9c
LEA EDX,[EBX + 0xffff4d3a]
SUB ESP,0xc
PUSH EDX
MOV dword ptr [ESP + 0x20],EDX
CALL 0x00016b40
POP EDX
POP ECX
MOV EDX,dword ptr [ESP + 0x18]
LEA EBP,[EDX + EAX*0x1 + 0x1]
PUSH EDI
PUSH EDX
CALL 0x00017590
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00030ef8
SUB ESP,0xc
PUSH EBP
CALL 0x00016b40
ADD ESP,0x10
LEA EDX,[EBP + EAX*0x1 + 0x1]
CMP byte ptr [EDX],0x0
JNZ 0x00030c39
MOV EBP,dword ptr [ESI + 0x74]
TEST EBP,EBP
JZ 0x00030c9c
LEA EAX,[EBP + 0x8]
SUB ESP,0x8
PUSH EDI
PUSH EAX
CALL 0x00016140
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00030f33
MOV EAX,dword ptr [EBP + 0x4]
MOV dword ptr [ESI + 0x28],EAX
CMP dword ptr [ESP + 0xc],0x2
JNZ 0x00030da3
MOV dword ptr [ESI + 0x58],0xffffffff
MOV dword ptr [ESI + 0x5c],0xffffffff
MOV dword ptr [ESI + 0x68],0xffffffff
MOV dword ptr [ESI + 0x6c],0x7fffffff
TEST byte ptr [ESP + 0xc],0x1
JZ 0x00030cd4
MOV EAX,0xc8
CALL 0x00030f43
MOV EAX,dword ptr [ESI + 0x58]
MOV EDX,dword ptr [ESI + 0x5c]
MOV dword ptr [ESP + 0x28],EAX
MOV dword ptr [ESP + 0x2c],EDX
MOV EDX,dword ptr [ESI + 0x68]
MOV ECX,dword ptr [ESI + 0x6c]
LEA EBP,[ESP + 0x28]
MOV dword ptr [ESP + 0xc],EBP
MOV EAX,0x7ffeffff
CMP EAX,EDX
MOV EAX,0x0
SBB EAX,ECX
JGE 0x00030d05
MOV EDX,0x7fff0000
PUSH EDX
PUSH dword ptr [ESP + 0x10]
PUSH dword ptr [ESP + 0x10]
PUSH 0x1
CALL 0x00016b10
ADD ESP,0x10
TEST EAX,EAX
JNS 0x00030e9a
MOV EAX,dword ptr [ESI + 0x58]
MOV EDX,dword ptr [ESI + 0x5c]
XOR EAX,dword ptr [ESP + 0x28]
XOR EDX,dword ptr [ESP + 0x2c]
OR EDX,EAX
JNZ 0x00030d87
MOV EDX,dword ptr [ESI + 0x7c]
MOV ECX,0x2000
MOV EAX,dword ptr [ESP + 0x8]
CALL 0x0001ac64
MOV dword ptr [ESP + 0xc],EAX
TEST EAX,EAX
JLE 0x00030d7f
MOV ECX,dword ptr [ESI + 0x68]
MOV EBP,dword ptr [ESI + 0x6c]
MOV EDI,dword ptr [ESP + 0xc]
MOV EAX,EDI
CDQ
CMP ECX,EDI
SBB EBP,EDX
JGE 0x00030d62
MOV dword ptr [ESP + 0xc],ECX
MOV EDX,dword ptr [ESI + 0x7c]
MOV EDI,dword ptr [ESP + 0xc]
MOV ECX,EDI
MOV EAX,0x1
CALL 0x0001ac14
MOV ECX,EDI
CMP EDI,EAX
JZ 0x00030eca
MOV EDI,dword ptr [ESP + 0xc]
TEST EDI,EDI
JNS 0x00030d9e
CMP dword ptr [ESI],0x1
JLE 0x00030d9e
SUB ESP,0xc
LEA EAX,[EBX + 0xffff8b59]
PUSH EAX
CALL 0x00018e3c
ADD ESP,0x10
CALL 0x00030829
CMP byte ptr [ESI + 0x5],0x0
JNZ 0x00030ca7
MOV EAX,dword ptr [ESI + 0x58]
MOV EDX,dword ptr [ESI + 0x5c]
MOV dword ptr [ESP + 0x18],EAX
MOV dword ptr [ESP + 0x1c],EDX
MOV dword ptr [ESI + 0x68],0xffffffff
MOV dword ptr [ESI + 0x6c],0x7fffffff
TEST EDX,EDX
JS 0x00030cc3
MOV EAX,dword ptr [ESI + 0x60]
MOV EDX,dword ptr [ESI + 0x64]
MOV EDI,dword ptr [ESI + 0x50]
MOV EBP,dword ptr [ESI + 0x54]
MOV dword ptr [ESP + 0x10],EDI
MOV dword ptr [ESP + 0x14],EBP
MOV EBP,EDX
OR EBP,EAX
JNZ 0x00030e3f
MOV EAX,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [ESP + 0x14]
ADD EAX,-0x1
ADC EDX,-0x1
MOV dword ptr [ESI + 0x60],EAX
MOV dword ptr [ESI + 0x64],EDX
MOV EDI,dword ptr [ESP + 0x18]
MOV EBP,dword ptr [ESP + 0x1c]
CMP EAX,EDI
MOV EAX,EDX
SBB EAX,EBP
JGE 0x00030e51
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH dword ptr [ESP + 0x14]
CALL 0x000172b0
MOV dword ptr [ESI + 0x58],0xffffffff
MOV dword ptr [ESI + 0x5c],0xffffffff
ADD ESP,0x10
TEST byte ptr [ESP + 0xc],0x1
JZ 0x00030cd4
JMP 0x00030cca
MOV EDI,dword ptr [ESP + 0x10]
MOV EBP,dword ptr [ESP + 0x14]
CMP EAX,EDI
MOV ECX,EDX
SBB ECX,EBP
JL 0x00030dff
JMP 0x00030deb
PUSH 0x0
PUSH dword ptr [ESP + 0x20]
PUSH dword ptr [ESP + 0x20]
PUSH dword ptr [ESP + 0x14]
CALL 0x000172b0
MOV EDI,dword ptr [ESI + 0x58]
MOV EBP,dword ptr [ESI + 0x5c]
ADD ESP,0x10
XOR EAX,EDI
XOR EDX,EBP
OR EDX,EAX
JNZ 0x00030e0f
MOV EAX,dword ptr [ESI + 0x60]
MOV EDX,dword ptr [ESI + 0x64]
SUB EAX,EDI
SBB EDX,EBP
ADD EAX,0x1
ADC EDX,0x0
MOV dword ptr [ESI + 0x68],EAX
MOV dword ptr [ESI + 0x6c],EDX
MOV EAX,0xce
CALL 0x00030f43
JMP 0x00030cd4
MOV ECX,EAX
SAR ECX,0x1f
MOV EDI,dword ptr [ESI + 0x68]
MOV EBP,dword ptr [ESI + 0x6c]
SUB EDI,EAX
SBB EBP,ECX
MOV EDX,EDI
MOV ECX,EBP
MOV dword ptr [ESI + 0x68],EDI
MOV dword ptr [ESI + 0x6c],EBP
TEST EAX,EAX
JZ 0x00030d9e
MOV EDI,EBP
OR EDI,EDX
JNZ 0x00030cf0
CALL 0x00030829
MOV EAX,EDI
CDQ
MOV EDI,dword ptr [ESI + 0x68]
MOV EBP,dword ptr [ESI + 0x6c]
SUB EDI,ECX
SBB EBP,EDX
MOV dword ptr [ESI + 0x68],EDI
MOV dword ptr [ESI + 0x6c],EBP
MOV EDX,EBP
OR EDX,EDI
JNZ 0x00030d32
MOV EDI,dword ptr [ESP + 0xc]
TEST EDI,EDI
JNS 0x00030d9e
JMP 0x00030d87
MOV dword ptr [ESP + 0x10],EAX
SUB ESP,0xc
PUSH EDI
CALL 0x00016b40
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x10]
MOV AL,byte ptr [EDX + EAX*0x1]
TEST AL,AL
JNZ 0x00030f26
MOV dword ptr [ESI + 0x28],EBP
MOV EBP,dword ptr [ESI + 0x74]
TEST EBP,EBP
JZ 0x00030c9c
JMP 0x00030c7e
CMP AL,0x2e
JNZ 0x00030c77
MOV dword ptr [ESI + 0x28],EBP
JMP 0x00030f16
MOV EBP,dword ptr [EBP]
TEST EBP,EBP
JNZ 0x00030c7e
JMP 0x00030c9c
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 FUN_00030b39(char *param_1,stat64 *param_2)\n\n{\n  char *__s;\n  undefined4 *puVar1;\n  int iVar2;\n  int *piVar3;\n  char *pcVar4;\n  int __fildes;\n  size_t sVar5;\n  char *pcVar6;\n  int iVar7;\n  uint uVar8;\n  stat64 *psVar9;\n  stat64 *extraout_ECX;\n  stat64 *psVar10;\n  uint uVar11;\n  int iVar12;\n  stat64 *psVar13;\n  int in_GS_OFFSET;\n  __off64_t _Var14;\n  stat64 *local_a0;\n  stat64 local_84;\n  undefined4 local_20;\n  \n  piVar3 = DAT_000d1700;\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (*(char *)((int)DAT_000d1700 + 5) == '\0') goto LAB_00030bfa;\n  pcVar4 = (char *)FUN_00019fd7("%s.gz",param_1);\n  __fildes = open64(pcVar4,0);\n  free(pcVar4);\n  if (__fildes == -1) goto LAB_00030bf6;\n  __fxstat64(3,__fildes,&local_84);\n  piVar3[0x14] = (int)local_84.st_size;\n  piVar3[0x15] = local_84.st_size._4_4_;\n  piVar3[3] = local_84.st_mtim.tv_sec;\n  while (local_a0 = param_2, __fildes < 0) {\n    if (param_2 == (stat64 *)0x2) goto LAB_00030d9e;\n    *(undefined1 *)((int)piVar3 + 5) = 0;\n    FUN_00030f43();\n    FUN_00030829();\nLAB_00030bf6:\n    *(undefined1 *)((int)piVar3 + 5) = 0;\nLAB_00030bfa:\n    __fildes = open64(param_1,0);\n  }\n  signal(0xd,(__sighandler_t)0x1);\n  pcVar4 = strrchr(param_1,0x2e);\n  if (pcVar4 == (char *)0x0) {\nLAB_00030c9c:\n    if (param_2 != (stat64 *)0x2) goto LAB_00030da3;\nLAB_00030ca7:\n    piVar3[0x16] = -1;\n    piVar3[0x17] = -1;\n    piVar3[0x1a] = -1;\n    piVar3[0x1b] = 0x7fffffff;\njoined_r0x00030cc8:\n    if (((uint)local_a0 & 1) != 0) {\n      FUN_00030f43();\n    }\n    do {\n      local_84.st_dev._0_4_ = piVar3[0x16];\n      local_84.st_dev._4_4_ = piVar3[0x17];\n      uVar11 = piVar3[0x1a];\n      iVar7 = piVar3[0x1b];\n      local_a0 = &local_84;\n      do {\n        if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {\n          uVar11 = 0x7fff0000;\n        }\n        uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);\n        if ((int)uVar8 < 0) {\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }\n        uVar11 = piVar3[0x1a] - uVar8;\n        iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);\n        piVar3[0x1a] = uVar11;\n        piVar3[0x1b] = iVar7;\n        if (uVar8 == 0) goto LAB_00030d9e;\n      } while (iVar7 != 0 || uVar11 != 0);\n      FUN_00030829();\n      psVar13 = (stat64 *)0x0;\n      psVar10 = extraout_ECX;\n      do {\n        iVar12 = piVar3[0x1a] - (int)psVar10;\n        iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);\n        piVar3[0x1a] = iVar12;\n        piVar3[0x1b] = iVar7;\n        if (iVar7 == 0 && iVar12 == 0) break;\nLAB_00030d32:\n        local_a0 = (stat64 *)FUN_0001ac64();\n        if ((int)local_a0 < 1) break;\n        uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);\n        iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);\n        if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0) {\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }\n        psVar9 = (stat64 *)FUN_0001ac14();\n        psVar10 = local_a0;\n        psVar13 = local_a0;\n      } while (local_a0 == psVar9);\n      if ((int)local_a0 < 0) {\nLAB_00030d87:\n        if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }\n      }\nLAB_00030d9e:\n      FUN_00030829();\nLAB_00030da3:\n      if (*(char *)((int)piVar3 + 5) != '\0') goto LAB_00030ca7;\n      iVar7 = piVar3[0x17];\n      piVar3[0x1a] = -1;\n      piVar3[0x1b] = 0x7fffffff;\n      if (iVar7 < 0) goto joined_r0x00030cc8;\n      uVar11 = piVar3[0x18];\n      iVar12 = piVar3[0x19];\n      uVar8 = piVar3[0x14];\n      iVar2 = piVar3[0x15];\n      if ((iVar12 == 0 && uVar11 == 0) ||\n         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)) {\n        uVar11 = uVar8 - 1;\n        iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);\n        piVar3[0x18] = uVar11;\n        piVar3[0x19] = iVar12;\n      }\n      uVar11 = (uint)(uVar11 < (uint)piVar3[0x16]);\n      if ((SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=\n          (int)((iVar12 - iVar7) - uVar11) < 0) goto LAB_00030e0f;\n      _Var14 = lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0);\n      uVar11 = piVar3[0x16];\n      if (_Var14 != *(longlong *)(piVar3 + 0x16)) goto LAB_00030e0f;\n      uVar8 = piVar3[0x18] - uVar11;\n      piVar3[0x1a] = uVar8 + 1;\n      piVar3[0x1b] = ((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +\n                     (uint)(0xfffffffe < uVar8);\n      FUN_00030f43();\n    } while( true );\n  }\n  pcVar6 = ".txt.h.c.cc.cpp";\n  do {\n    sVar5 = strlen(pcVar6);\n    __s = pcVar6 + sVar5 + 1;\n    pcVar6 = strstr(pcVar6,pcVar4);\n    if (pcVar6 != (char *)0x0) {\n      sVar5 = strlen(pcVar4);\n      if (pcVar6[sVar5] == '\0') {\n        piVar3[10] = (int)__s;\n      }\n      else {\n        if (pcVar6[sVar5] != '.') break;\n        piVar3[10] = (int)__s;\n      }\n      puVar1 = (undefined4 *)piVar3[0x1d];\n      goto joined_r0x00030f1b;\n    }\n    sVar5 = strlen(__s);\n    pcVar6 = __s + sVar5 + 1;\n  } while (*pcVar6 != '\0');\n  puVar1 = (undefined4 *)piVar3[0x1d];\njoined_r0x00030f1b:\n  do {\n    if (puVar1 == (undefined4 *)0x0) goto LAB_00030c9c;\n    iVar7 = strcmp((char *)(puVar1 + 2),pcVar4);\n    if (iVar7 == 0) {\n      piVar3[10] = puVar1[1];\n      goto LAB_00030c9c;\n    }\n    puVar1 = (undefined4 *)*puVar1;\n  } while( true );\nLAB_00030e0f:\n  lseek64(__fildes,0,0);\n  piVar3[0x16] = -1;\n  piVar3[0x17] = -1;\n  goto joined_r0x00030cc8;\n}\n\n" comment (function_definition "void __regparm3 FUN_00030b39(char *param_1,stat64 *param_2)\n\n{\n  char *__s;\n  undefined4 *puVar1;\n  int iVar2;\n  int *piVar3;\n  char *pcVar4;\n  int __fildes;\n  size_t sVar5;\n  char *pcVar6;\n  int iVar7;\n  uint uVar8;\n  stat64 *psVar9;\n  stat64 *extraout_ECX;\n  stat64 *psVar10;\n  uint uVar11;\n  int iVar12;\n  stat64 *psVar13;\n  int in_GS_OFFSET;\n  __off64_t _Var14;\n  stat64 *local_a0;\n  stat64 local_84;\n  undefined4 local_20;\n  \n  piVar3 = DAT_000d1700;\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (*(char *)((int)DAT_000d1700 + 5) == '\0') goto LAB_00030bfa;\n  pcVar4 = (char *)FUN_00019fd7("%s.gz",param_1);\n  __fildes = open64(pcVar4,0);\n  free(pcVar4);\n  if (__fildes == -1) goto LAB_00030bf6;\n  __fxstat64(3,__fildes,&local_84);\n  piVar3[0x14] = (int)local_84.st_size;\n  piVar3[0x15] = local_84.st_size._4_4_;\n  piVar3[3] = local_84.st_mtim.tv_sec;\n  while (local_a0 = param_2, __fildes < 0) {\n    if (param_2 == (stat64 *)0x2) goto LAB_00030d9e;\n    *(undefined1 *)((int)piVar3 + 5) = 0;\n    FUN_00030f43();\n    FUN_00030829();\nLAB_00030bf6:\n    *(undefined1 *)((int)piVar3 + 5) = 0;\nLAB_00030bfa:\n    __fildes = open64(param_1,0);\n  }\n  signal(0xd,(__sighandler_t)0x1);\n  pcVar4 = strrchr(param_1,0x2e);\n  if (pcVar4 == (char *)0x0) {\nLAB_00030c9c:\n    if (param_2 != (stat64 *)0x2) goto LAB_00030da3;\nLAB_00030ca7:\n    piVar3[0x16] = -1;\n    piVar3[0x17] = -1;\n    piVar3[0x1a] = -1;\n    piVar3[0x1b] = 0x7fffffff;\njoined_r0x00030cc8:\n    if (((uint)local_a0 & 1) != 0) {\n      FUN_00030f43();\n    }\n    do {\n      local_84.st_dev._0_4_ = piVar3[0x16];\n      local_84.st_dev._4_4_ = piVar3[0x17];\n      uVar11 = piVar3[0x1a];\n      iVar7 = piVar3[0x1b];\n      local_a0 = &local_84;\n      do {\n        if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {\n          uVar11 = 0x7fff0000;\n        }\n        uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);\n        if ((int)uVar8 < 0) {\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }\n        uVar11 = piVar3[0x1a] - uVar8;\n        iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);\n        piVar3[0x1a] = uVar11;\n        piVar3[0x1b] = iVar7;\n        if (uVar8 == 0) goto LAB_00030d9e;\n      } while (iVar7 != 0 || uVar11 != 0);\n      FUN_00030829();\n      psVar13 = (stat64 *)0x0;\n      psVar10 = extraout_ECX;\n      do {\n        iVar12 = piVar3[0x1a] - (int)psVar10;\n        iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);\n        piVar3[0x1a] = iVar12;\n        piVar3[0x1b] = iVar7;\n        if (iVar7 == 0 && iVar12 == 0) break;\nLAB_00030d32:\n        local_a0 = (stat64 *)FUN_0001ac64();\n        if ((int)local_a0 < 1) break;\n        uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);\n        iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);\n        if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0) {\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }\n        psVar9 = (stat64 *)FUN_0001ac14();\n        psVar10 = local_a0;\n        psVar13 = local_a0;\n      } while (local_a0 == psVar9);\n      if ((int)local_a0 < 0) {\nLAB_00030d87:\n        if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }\n      }\nLAB_00030d9e:\n      FUN_00030829();\nLAB_00030da3:\n      if (*(char *)((int)piVar3 + 5) != '\0') goto LAB_00030ca7;\n      iVar7 = piVar3[0x17];\n      piVar3[0x1a] = -1;\n      piVar3[0x1b] = 0x7fffffff;\n      if (iVar7 < 0) goto joined_r0x00030cc8;\n      uVar11 = piVar3[0x18];\n      iVar12 = piVar3[0x19];\n      uVar8 = piVar3[0x14];\n      iVar2 = piVar3[0x15];\n      if ((iVar12 == 0 && uVar11 == 0) ||\n         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)) {\n        uVar11 = uVar8 - 1;\n        iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);\n        piVar3[0x18] = uVar11;\n        piVar3[0x19] = iVar12;\n      }\n      uVar11 = (uint)(uVar11 < (uint)piVar3[0x16]);\n      if ((SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=\n          (int)((iVar12 - iVar7) - uVar11) < 0) goto LAB_00030e0f;\n      _Var14 = lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0);\n      uVar11 = piVar3[0x16];\n      if (_Var14 != *(longlong *)(piVar3 + 0x16)) goto LAB_00030e0f;\n      uVar8 = piVar3[0x18] - uVar11;\n      piVar3[0x1a] = uVar8 + 1;\n      piVar3[0x1b] = ((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +\n                     (uint)(0xfffffffe < uVar8);\n      FUN_00030f43();\n    } while( true );\n  }\n  pcVar6 = ".txt.h.c.cc.cpp";\n  do {\n    sVar5 = strlen(pcVar6);\n    __s = pcVar6 + sVar5 + 1;\n    pcVar6 = strstr(pcVar6,pcVar4);\n    if (pcVar6 != (char *)0x0) {\n      sVar5 = strlen(pcVar4);\n      if (pcVar6[sVar5] == '\0') {\n        piVar3[10] = (int)__s;\n      }\n      else {\n        if (pcVar6[sVar5] != '.') break;\n        piVar3[10] = (int)__s;\n      }\n      puVar1 = (undefined4 *)piVar3[0x1d];\n      goto joined_r0x00030f1b;\n    }\n    sVar5 = strlen(__s);\n    pcVar6 = __s + sVar5 + 1;\n  } while (*pcVar6 != '\0');\n  puVar1 = (undefined4 *)piVar3[0x1d];\njoined_r0x00030f1b:\n  do {\n    if (puVar1 == (undefined4 *)0x0) goto LAB_00030c9c;\n    iVar7 = strcmp((char *)(puVar1 + 2),pcVar4);\n    if (iVar7 == 0) {\n      piVar3[10] = puVar1[1];\n      goto LAB_00030c9c;\n    }\n    puVar1 = (undefined4 *)*puVar1;\n  } while( true );\nLAB_00030e0f:\n  lseek64(__fildes,0,0);\n  piVar3[0x16] = -1;\n  piVar3[0x17] = -1;\n  goto joined_r0x00030cc8;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00030b39(char *param_1,stat64 *param_2)" identifier (parameter_list "(char *param_1,stat64 *param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "stat64 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  char *__s;\n  undefined4 *puVar1;\n  int iVar2;\n  int *piVar3;\n  char *pcVar4;\n  int __fildes;\n  size_t sVar5;\n  char *pcVar6;\n  int iVar7;\n  uint uVar8;\n  stat64 *psVar9;\n  stat64 *extraout_ECX;\n  stat64 *psVar10;\n  uint uVar11;\n  int iVar12;\n  stat64 *psVar13;\n  int in_GS_OFFSET;\n  __off64_t _Var14;\n  stat64 *local_a0;\n  stat64 local_84;\n  undefined4 local_20;\n  \n  piVar3 = DAT_000d1700;\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (*(char *)((int)DAT_000d1700 + 5) == '\0') goto LAB_00030bfa;\n  pcVar4 = (char *)FUN_00019fd7("%s.gz",param_1);\n  __fildes = open64(pcVar4,0);\n  free(pcVar4);\n  if (__fildes == -1) goto LAB_00030bf6;\n  __fxstat64(3,__fildes,&local_84);\n  piVar3[0x14] = (int)local_84.st_size;\n  piVar3[0x15] = local_84.st_size._4_4_;\n  piVar3[3] = local_84.st_mtim.tv_sec;\n  while (local_a0 = param_2, __fildes < 0) {\n    if (param_2 == (stat64 *)0x2) goto LAB_00030d9e;\n    *(undefined1 *)((int)piVar3 + 5) = 0;\n    FUN_00030f43();\n    FUN_00030829();\nLAB_00030bf6:\n    *(undefined1 *)((int)piVar3 + 5) = 0;\nLAB_00030bfa:\n    __fildes = open64(param_1,0);\n  }\n  signal(0xd,(__sighandler_t)0x1);\n  pcVar4 = strrchr(param_1,0x2e);\n  if (pcVar4 == (char *)0x0) {\nLAB_00030c9c:\n    if (param_2 != (stat64 *)0x2) goto LAB_00030da3;\nLAB_00030ca7:\n    piVar3[0x16] = -1;\n    piVar3[0x17] = -1;\n    piVar3[0x1a] = -1;\n    piVar3[0x1b] = 0x7fffffff;\njoined_r0x00030cc8:\n    if (((uint)local_a0 & 1) != 0) {\n      FUN_00030f43();\n    }\n    do {\n      local_84.st_dev._0_4_ = piVar3[0x16];\n      local_84.st_dev._4_4_ = piVar3[0x17];\n      uVar11 = piVar3[0x1a];\n      iVar7 = piVar3[0x1b];\n      local_a0 = &local_84;\n      do {\n        if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {\n          uVar11 = 0x7fff0000;\n        }\n        uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);\n        if ((int)uVar8 < 0) {\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }\n        uVar11 = piVar3[0x1a] - uVar8;\n        iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);\n        piVar3[0x1a] = uVar11;\n        piVar3[0x1b] = iVar7;\n        if (uVar8 == 0) goto LAB_00030d9e;\n      } while (iVar7 != 0 || uVar11 != 0);\n      FUN_00030829();\n      psVar13 = (stat64 *)0x0;\n      psVar10 = extraout_ECX;\n      do {\n        iVar12 = piVar3[0x1a] - (int)psVar10;\n        iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);\n        piVar3[0x1a] = iVar12;\n        piVar3[0x1b] = iVar7;\n        if (iVar7 == 0 && iVar12 == 0) break;\nLAB_00030d32:\n        local_a0 = (stat64 *)FUN_0001ac64();\n        if ((int)local_a0 < 1) break;\n        uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);\n        iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);\n        if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0) {\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }\n        psVar9 = (stat64 *)FUN_0001ac14();\n        psVar10 = local_a0;\n        psVar13 = local_a0;\n      } while (local_a0 == psVar9);\n      if ((int)local_a0 < 0) {\nLAB_00030d87:\n        if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }\n      }\nLAB_00030d9e:\n      FUN_00030829();\nLAB_00030da3:\n      if (*(char *)((int)piVar3 + 5) != '\0') goto LAB_00030ca7;\n      iVar7 = piVar3[0x17];\n      piVar3[0x1a] = -1;\n      piVar3[0x1b] = 0x7fffffff;\n      if (iVar7 < 0) goto joined_r0x00030cc8;\n      uVar11 = piVar3[0x18];\n      iVar12 = piVar3[0x19];\n      uVar8 = piVar3[0x14];\n      iVar2 = piVar3[0x15];\n      if ((iVar12 == 0 && uVar11 == 0) ||\n         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)) {\n        uVar11 = uVar8 - 1;\n        iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);\n        piVar3[0x18] = uVar11;\n        piVar3[0x19] = iVar12;\n      }\n      uVar11 = (uint)(uVar11 < (uint)piVar3[0x16]);\n      if ((SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=\n          (int)((iVar12 - iVar7) - uVar11) < 0) goto LAB_00030e0f;\n      _Var14 = lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0);\n      uVar11 = piVar3[0x16];\n      if (_Var14 != *(longlong *)(piVar3 + 0x16)) goto LAB_00030e0f;\n      uVar8 = piVar3[0x18] - uVar11;\n      piVar3[0x1a] = uVar8 + 1;\n      piVar3[0x1b] = ((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +\n                     (uint)(0xfffffffe < uVar8);\n      FUN_00030f43();\n    } while( true );\n  }\n  pcVar6 = ".txt.h.c.cc.cpp";\n  do {\n    sVar5 = strlen(pcVar6);\n    __s = pcVar6 + sVar5 + 1;\n    pcVar6 = strstr(pcVar6,pcVar4);\n    if (pcVar6 != (char *)0x0) {\n      sVar5 = strlen(pcVar4);\n      if (pcVar6[sVar5] == '\0') {\n        piVar3[10] = (int)__s;\n      }\n      else {\n        if (pcVar6[sVar5] != '.') break;\n        piVar3[10] = (int)__s;\n      }\n      puVar1 = (undefined4 *)piVar3[0x1d];\n      goto joined_r0x00030f1b;\n    }\n    sVar5 = strlen(__s);\n    pcVar6 = __s + sVar5 + 1;\n  } while (*pcVar6 != '\0');\n  puVar1 = (undefined4 *)piVar3[0x1d];\njoined_r0x00030f1b:\n  do {\n    if (puVar1 == (undefined4 *)0x0) goto LAB_00030c9c;\n    iVar7 = strcmp((char *)(puVar1 + 2),pcVar4);\n    if (iVar7 == 0) {\n      piVar3[10] = puVar1[1];\n      goto LAB_00030c9c;\n    }\n    puVar1 = (undefined4 *)*puVar1;\n  } while( true );\nLAB_00030e0f:\n  lseek64(__fildes,0,0);\n  piVar3[0x16] = -1;\n  piVar3[0x17] = -1;\n  goto joined_r0x00030cc8;\n}" { (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int __fildes;" primitive_type identifier ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "stat64 *psVar9;" type_identifier (pointer_declarator "*psVar9" * identifier) ;) (declaration "stat64 *extraout_ECX;" type_identifier (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "stat64 *psVar10;" type_identifier (pointer_declarator "*psVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "stat64 *psVar13;" type_identifier (pointer_declarator "*psVar13" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "__off64_t _Var14;" type_identifier identifier ;) (declaration "stat64 *local_a0;" type_identifier (pointer_declarator "*local_a0" * identifier) ;) (declaration "stat64 local_84;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (expression_statement "piVar3 = DAT_000d1700;" (assignment_expression "piVar3 = DAT_000d1700" identifier = identifier) ;) (expression_statement "local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(undefined4 *)(in_GS_OFFSET + 0x14)" * (cast_expression "(undefined4 *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)((int)DAT_000d1700 + 5) == '\0') goto LAB_00030bfa;" if (parenthesized_expression "(*(char *)((int)DAT_000d1700 + 5) == '\0')" ( (binary_expression "*(char *)((int)DAT_000d1700 + 5) == '\0'" (pointer_expression "*(char *)((int)DAT_000d1700 + 5)" * (cast_expression "(char *)((int)DAT_000d1700 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)DAT_000d1700 + 5)" ( (binary_expression "(int)DAT_000d1700 + 5" (cast_expression "(int)DAT_000d1700" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00030bfa;" goto statement_identifier ;)) (expression_statement "pcVar4 = (char *)FUN_00019fd7("%s.gz",param_1);" (assignment_expression "pcVar4 = (char *)FUN_00019fd7("%s.gz",param_1)" identifier = (cast_expression "(char *)FUN_00019fd7("%s.gz",param_1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00019fd7("%s.gz",param_1)" identifier (argument_list "("%s.gz",param_1)" ( (string_literal ""%s.gz"" " string_content ") , identifier ))))) ;) (expression_statement "__fildes = open64(pcVar4,0);" (assignment_expression "__fildes = open64(pcVar4,0)" identifier = (call_expression "open64(pcVar4,0)" identifier (argument_list "(pcVar4,0)" ( identifier , number_literal )))) ;) (expression_statement "free(pcVar4);" (call_expression "free(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (if_statement "if (__fildes == -1) goto LAB_00030bf6;" if (parenthesized_expression "(__fildes == -1)" ( (binary_expression "__fildes == -1" identifier == number_literal) )) (goto_statement "goto LAB_00030bf6;" goto statement_identifier ;)) (expression_statement "__fxstat64(3,__fildes,&local_84);" (call_expression "__fxstat64(3,__fildes,&local_84)" identifier (argument_list "(3,__fildes,&local_84)" ( number_literal , identifier , (pointer_expression "&local_84" & identifier) ))) ;) (expression_statement "piVar3[0x14] = (int)local_84.st_size;" (assignment_expression "piVar3[0x14] = (int)local_84.st_size" (subscript_expression "piVar3[0x14]" identifier [ number_literal ]) = (cast_expression "(int)local_84.st_size" ( (type_descriptor "int" primitive_type) ) (field_expression "local_84.st_size" identifier . field_identifier))) ;) (expression_statement "piVar3[0x15] = local_84.st_size._4_4_;" (assignment_expression "piVar3[0x15] = local_84.st_size._4_4_" (subscript_expression "piVar3[0x15]" identifier [ number_literal ]) = (field_expression "local_84.st_size._4_4_" (field_expression "local_84.st_size" identifier . field_identifier) . field_identifier)) ;) (expression_statement "piVar3[3] = local_84.st_mtim.tv_sec;" (assignment_expression "piVar3[3] = local_84.st_mtim.tv_sec" (subscript_expression "piVar3[3]" identifier [ number_literal ]) = (field_expression "local_84.st_mtim.tv_sec" (field_expression "local_84.st_mtim" identifier . field_identifier) . field_identifier)) ;) (while_statement "while (local_a0 = param_2, __fildes < 0) {\n    if (param_2 == (stat64 *)0x2) goto LAB_00030d9e;\n    *(undefined1 *)((int)piVar3 + 5) = 0;\n    FUN_00030f43();\n    FUN_00030829();\nLAB_00030bf6:\n    *(undefined1 *)((int)piVar3 + 5) = 0;\nLAB_00030bfa:\n    __fildes = open64(param_1,0);\n  }" while (parenthesized_expression "(local_a0 = param_2, __fildes < 0)" ( (comma_expression "local_a0 = param_2, __fildes < 0" (assignment_expression "local_a0 = param_2" identifier = identifier) , (binary_expression "__fildes < 0" identifier < number_literal)) )) (compound_statement "{\n    if (param_2 == (stat64 *)0x2) goto LAB_00030d9e;\n    *(undefined1 *)((int)piVar3 + 5) = 0;\n    FUN_00030f43();\n    FUN_00030829();\nLAB_00030bf6:\n    *(undefined1 *)((int)piVar3 + 5) = 0;\nLAB_00030bfa:\n    __fildes = open64(param_1,0);\n  }" { (if_statement "if (param_2 == (stat64 *)0x2) goto LAB_00030d9e;" if (parenthesized_expression "(param_2 == (stat64 *)0x2)" ( (binary_expression "param_2 == (stat64 *)0x2" identifier == (cast_expression "(stat64 *)0x2" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030d9e;" goto statement_identifier ;)) (expression_statement "*(undefined1 *)((int)piVar3 + 5) = 0;" (assignment_expression "*(undefined1 *)((int)piVar3 + 5) = 0" (pointer_expression "*(undefined1 *)((int)piVar3 + 5)" * (cast_expression "(undefined1 *)((int)piVar3 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 5)" ( (binary_expression "(int)piVar3 + 5" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00030f43();" (call_expression "FUN_00030f43()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00030829();" (call_expression "FUN_00030829()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_00030bf6:\n    *(undefined1 *)((int)piVar3 + 5) = 0;" statement_identifier : (expression_statement "*(undefined1 *)((int)piVar3 + 5) = 0;" (assignment_expression "*(undefined1 *)((int)piVar3 + 5) = 0" (pointer_expression "*(undefined1 *)((int)piVar3 + 5)" * (cast_expression "(undefined1 *)((int)piVar3 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 5)" ( (binary_expression "(int)piVar3 + 5" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;)) (labeled_statement "LAB_00030bfa:\n    __fildes = open64(param_1,0);" statement_identifier : (expression_statement "__fildes = open64(param_1,0);" (assignment_expression "__fildes = open64(param_1,0)" identifier = (call_expression "open64(param_1,0)" identifier (argument_list "(param_1,0)" ( identifier , number_literal )))) ;)) })) (expression_statement "signal(0xd,(__sighandler_t)0x1);" (call_expression "signal(0xd,(__sighandler_t)0x1)" identifier (argument_list "(0xd,(__sighandler_t)0x1)" ( number_literal , (cast_expression "(__sighandler_t)0x1" ( (type_descriptor "__sighandler_t" type_identifier) ) number_literal) ))) ;) (expression_statement "pcVar4 = strrchr(param_1,0x2e);" (assignment_expression "pcVar4 = strrchr(param_1,0x2e)" identifier = (call_expression "strrchr(param_1,0x2e)" identifier (argument_list "(param_1,0x2e)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar4 == (char *)0x0) {\nLAB_00030c9c:\n    if (param_2 != (stat64 *)0x2) goto LAB_00030da3;\nLAB_00030ca7:\n    piVar3[0x16] = -1;\n    piVar3[0x17] = -1;\n    piVar3[0x1a] = -1;\n    piVar3[0x1b] = 0x7fffffff;\njoined_r0x00030cc8:\n    if (((uint)local_a0 & 1) != 0) {\n      FUN_00030f43();\n    }\n    do {\n      local_84.st_dev._0_4_ = piVar3[0x16];\n      local_84.st_dev._4_4_ = piVar3[0x17];\n      uVar11 = piVar3[0x1a];\n      iVar7 = piVar3[0x1b];\n      local_a0 = &local_84;\n      do {\n        if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {\n          uVar11 = 0x7fff0000;\n        }\n        uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);\n        if ((int)uVar8 < 0) {\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }\n        uVar11 = piVar3[0x1a] - uVar8;\n        iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);\n        piVar3[0x1a] = uVar11;\n        piVar3[0x1b] = iVar7;\n        if (uVar8 == 0) goto LAB_00030d9e;\n      } while (iVar7 != 0 || uVar11 != 0);\n      FUN_00030829();\n      psVar13 = (stat64 *)0x0;\n      psVar10 = extraout_ECX;\n      do {\n        iVar12 = piVar3[0x1a] - (int)psVar10;\n        iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);\n        piVar3[0x1a] = iVar12;\n        piVar3[0x1b] = iVar7;\n        if (iVar7 == 0 && iVar12 == 0) break;\nLAB_00030d32:\n        local_a0 = (stat64 *)FUN_0001ac64();\n        if ((int)local_a0 < 1) break;\n        uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);\n        iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);\n        if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0) {\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }\n        psVar9 = (stat64 *)FUN_0001ac14();\n        psVar10 = local_a0;\n        psVar13 = local_a0;\n      } while (local_a0 == psVar9);\n      if ((int)local_a0 < 0) {\nLAB_00030d87:\n        if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }\n      }\nLAB_00030d9e:\n      FUN_00030829();\nLAB_00030da3:\n      if (*(char *)((int)piVar3 + 5) != '\0') goto LAB_00030ca7;\n      iVar7 = piVar3[0x17];\n      piVar3[0x1a] = -1;\n      piVar3[0x1b] = 0x7fffffff;\n      if (iVar7 < 0) goto joined_r0x00030cc8;\n      uVar11 = piVar3[0x18];\n      iVar12 = piVar3[0x19];\n      uVar8 = piVar3[0x14];\n      iVar2 = piVar3[0x15];\n      if ((iVar12 == 0 && uVar11 == 0) ||\n         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)) {\n        uVar11 = uVar8 - 1;\n        iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);\n        piVar3[0x18] = uVar11;\n        piVar3[0x19] = iVar12;\n      }\n      uVar11 = (uint)(uVar11 < (uint)piVar3[0x16]);\n      if ((SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=\n          (int)((iVar12 - iVar7) - uVar11) < 0) goto LAB_00030e0f;\n      _Var14 = lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0);\n      uVar11 = piVar3[0x16];\n      if (_Var14 != *(longlong *)(piVar3 + 0x16)) goto LAB_00030e0f;\n      uVar8 = piVar3[0x18] - uVar11;\n      piVar3[0x1a] = uVar8 + 1;\n      piVar3[0x1b] = ((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +\n                     (uint)(0xfffffffe < uVar8);\n      FUN_00030f43();\n    } while( true );\n  }" if (parenthesized_expression "(pcVar4 == (char *)0x0)" ( (binary_expression "pcVar4 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00030c9c:\n    if (param_2 != (stat64 *)0x2) goto LAB_00030da3;\nLAB_00030ca7:\n    piVar3[0x16] = -1;\n    piVar3[0x17] = -1;\n    piVar3[0x1a] = -1;\n    piVar3[0x1b] = 0x7fffffff;\njoined_r0x00030cc8:\n    if (((uint)local_a0 & 1) != 0) {\n      FUN_00030f43();\n    }\n    do {\n      local_84.st_dev._0_4_ = piVar3[0x16];\n      local_84.st_dev._4_4_ = piVar3[0x17];\n      uVar11 = piVar3[0x1a];\n      iVar7 = piVar3[0x1b];\n      local_a0 = &local_84;\n      do {\n        if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {\n          uVar11 = 0x7fff0000;\n        }\n        uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);\n        if ((int)uVar8 < 0) {\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }\n        uVar11 = piVar3[0x1a] - uVar8;\n        iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);\n        piVar3[0x1a] = uVar11;\n        piVar3[0x1b] = iVar7;\n        if (uVar8 == 0) goto LAB_00030d9e;\n      } while (iVar7 != 0 || uVar11 != 0);\n      FUN_00030829();\n      psVar13 = (stat64 *)0x0;\n      psVar10 = extraout_ECX;\n      do {\n        iVar12 = piVar3[0x1a] - (int)psVar10;\n        iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);\n        piVar3[0x1a] = iVar12;\n        piVar3[0x1b] = iVar7;\n        if (iVar7 == 0 && iVar12 == 0) break;\nLAB_00030d32:\n        local_a0 = (stat64 *)FUN_0001ac64();\n        if ((int)local_a0 < 1) break;\n        uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);\n        iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);\n        if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0) {\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }\n        psVar9 = (stat64 *)FUN_0001ac14();\n        psVar10 = local_a0;\n        psVar13 = local_a0;\n      } while (local_a0 == psVar9);\n      if ((int)local_a0 < 0) {\nLAB_00030d87:\n        if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }\n      }\nLAB_00030d9e:\n      FUN_00030829();\nLAB_00030da3:\n      if (*(char *)((int)piVar3 + 5) != '\0') goto LAB_00030ca7;\n      iVar7 = piVar3[0x17];\n      piVar3[0x1a] = -1;\n      piVar3[0x1b] = 0x7fffffff;\n      if (iVar7 < 0) goto joined_r0x00030cc8;\n      uVar11 = piVar3[0x18];\n      iVar12 = piVar3[0x19];\n      uVar8 = piVar3[0x14];\n      iVar2 = piVar3[0x15];\n      if ((iVar12 == 0 && uVar11 == 0) ||\n         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)) {\n        uVar11 = uVar8 - 1;\n        iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);\n        piVar3[0x18] = uVar11;\n        piVar3[0x19] = iVar12;\n      }\n      uVar11 = (uint)(uVar11 < (uint)piVar3[0x16]);\n      if ((SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=\n          (int)((iVar12 - iVar7) - uVar11) < 0) goto LAB_00030e0f;\n      _Var14 = lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0);\n      uVar11 = piVar3[0x16];\n      if (_Var14 != *(longlong *)(piVar3 + 0x16)) goto LAB_00030e0f;\n      uVar8 = piVar3[0x18] - uVar11;\n      piVar3[0x1a] = uVar8 + 1;\n      piVar3[0x1b] = ((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +\n                     (uint)(0xfffffffe < uVar8);\n      FUN_00030f43();\n    } while( true );\n  }" { (labeled_statement "LAB_00030c9c:\n    if (param_2 != (stat64 *)0x2) goto LAB_00030da3;" statement_identifier : (if_statement "if (param_2 != (stat64 *)0x2) goto LAB_00030da3;" if (parenthesized_expression "(param_2 != (stat64 *)0x2)" ( (binary_expression "param_2 != (stat64 *)0x2" identifier != (cast_expression "(stat64 *)0x2" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030da3;" goto statement_identifier ;))) (labeled_statement "LAB_00030ca7:\n    piVar3[0x16] = -1;" statement_identifier : (expression_statement "piVar3[0x16] = -1;" (assignment_expression "piVar3[0x16] = -1" (subscript_expression "piVar3[0x16]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "piVar3[0x17] = -1;" (assignment_expression "piVar3[0x17] = -1" (subscript_expression "piVar3[0x17]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar3[0x1a] = -1;" (assignment_expression "piVar3[0x1a] = -1" (subscript_expression "piVar3[0x1a]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar3[0x1b] = 0x7fffffff;" (assignment_expression "piVar3[0x1b] = 0x7fffffff" (subscript_expression "piVar3[0x1b]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "joined_r0x00030cc8:\n    if (((uint)local_a0 & 1) != 0) {\n      FUN_00030f43();\n    }" statement_identifier : (if_statement "if (((uint)local_a0 & 1) != 0) {\n      FUN_00030f43();\n    }" if (parenthesized_expression "(((uint)local_a0 & 1) != 0)" ( (binary_expression "((uint)local_a0 & 1) != 0" (parenthesized_expression "((uint)local_a0 & 1)" ( (binary_expression "(uint)local_a0 & 1" (cast_expression "(uint)local_a0" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      FUN_00030f43();\n    }" { (expression_statement "FUN_00030f43();" (call_expression "FUN_00030f43()" identifier (argument_list "()" ( ))) ;) }))) (do_statement "do {\n      local_84.st_dev._0_4_ = piVar3[0x16];\n      local_84.st_dev._4_4_ = piVar3[0x17];\n      uVar11 = piVar3[0x1a];\n      iVar7 = piVar3[0x1b];\n      local_a0 = &local_84;\n      do {\n        if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {\n          uVar11 = 0x7fff0000;\n        }\n        uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);\n        if ((int)uVar8 < 0) {\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }\n        uVar11 = piVar3[0x1a] - uVar8;\n        iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);\n        piVar3[0x1a] = uVar11;\n        piVar3[0x1b] = iVar7;\n        if (uVar8 == 0) goto LAB_00030d9e;\n      } while (iVar7 != 0 || uVar11 != 0);\n      FUN_00030829();\n      psVar13 = (stat64 *)0x0;\n      psVar10 = extraout_ECX;\n      do {\n        iVar12 = piVar3[0x1a] - (int)psVar10;\n        iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);\n        piVar3[0x1a] = iVar12;\n        piVar3[0x1b] = iVar7;\n        if (iVar7 == 0 && iVar12 == 0) break;\nLAB_00030d32:\n        local_a0 = (stat64 *)FUN_0001ac64();\n        if ((int)local_a0 < 1) break;\n        uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);\n        iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);\n        if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0) {\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }\n        psVar9 = (stat64 *)FUN_0001ac14();\n        psVar10 = local_a0;\n        psVar13 = local_a0;\n      } while (local_a0 == psVar9);\n      if ((int)local_a0 < 0) {\nLAB_00030d87:\n        if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }\n      }\nLAB_00030d9e:\n      FUN_00030829();\nLAB_00030da3:\n      if (*(char *)((int)piVar3 + 5) != '\0') goto LAB_00030ca7;\n      iVar7 = piVar3[0x17];\n      piVar3[0x1a] = -1;\n      piVar3[0x1b] = 0x7fffffff;\n      if (iVar7 < 0) goto joined_r0x00030cc8;\n      uVar11 = piVar3[0x18];\n      iVar12 = piVar3[0x19];\n      uVar8 = piVar3[0x14];\n      iVar2 = piVar3[0x15];\n      if ((iVar12 == 0 && uVar11 == 0) ||\n         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)) {\n        uVar11 = uVar8 - 1;\n        iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);\n        piVar3[0x18] = uVar11;\n        piVar3[0x19] = iVar12;\n      }\n      uVar11 = (uint)(uVar11 < (uint)piVar3[0x16]);\n      if ((SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=\n          (int)((iVar12 - iVar7) - uVar11) < 0) goto LAB_00030e0f;\n      _Var14 = lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0);\n      uVar11 = piVar3[0x16];\n      if (_Var14 != *(longlong *)(piVar3 + 0x16)) goto LAB_00030e0f;\n      uVar8 = piVar3[0x18] - uVar11;\n      piVar3[0x1a] = uVar8 + 1;\n      piVar3[0x1b] = ((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +\n                     (uint)(0xfffffffe < uVar8);\n      FUN_00030f43();\n    } while( true );" do (compound_statement "{\n      local_84.st_dev._0_4_ = piVar3[0x16];\n      local_84.st_dev._4_4_ = piVar3[0x17];\n      uVar11 = piVar3[0x1a];\n      iVar7 = piVar3[0x1b];\n      local_a0 = &local_84;\n      do {\n        if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {\n          uVar11 = 0x7fff0000;\n        }\n        uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);\n        if ((int)uVar8 < 0) {\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }\n        uVar11 = piVar3[0x1a] - uVar8;\n        iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);\n        piVar3[0x1a] = uVar11;\n        piVar3[0x1b] = iVar7;\n        if (uVar8 == 0) goto LAB_00030d9e;\n      } while (iVar7 != 0 || uVar11 != 0);\n      FUN_00030829();\n      psVar13 = (stat64 *)0x0;\n      psVar10 = extraout_ECX;\n      do {\n        iVar12 = piVar3[0x1a] - (int)psVar10;\n        iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);\n        piVar3[0x1a] = iVar12;\n        piVar3[0x1b] = iVar7;\n        if (iVar7 == 0 && iVar12 == 0) break;\nLAB_00030d32:\n        local_a0 = (stat64 *)FUN_0001ac64();\n        if ((int)local_a0 < 1) break;\n        uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);\n        iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);\n        if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0) {\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }\n        psVar9 = (stat64 *)FUN_0001ac14();\n        psVar10 = local_a0;\n        psVar13 = local_a0;\n      } while (local_a0 == psVar9);\n      if ((int)local_a0 < 0) {\nLAB_00030d87:\n        if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }\n      }\nLAB_00030d9e:\n      FUN_00030829();\nLAB_00030da3:\n      if (*(char *)((int)piVar3 + 5) != '\0') goto LAB_00030ca7;\n      iVar7 = piVar3[0x17];\n      piVar3[0x1a] = -1;\n      piVar3[0x1b] = 0x7fffffff;\n      if (iVar7 < 0) goto joined_r0x00030cc8;\n      uVar11 = piVar3[0x18];\n      iVar12 = piVar3[0x19];\n      uVar8 = piVar3[0x14];\n      iVar2 = piVar3[0x15];\n      if ((iVar12 == 0 && uVar11 == 0) ||\n         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)) {\n        uVar11 = uVar8 - 1;\n        iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);\n        piVar3[0x18] = uVar11;\n        piVar3[0x19] = iVar12;\n      }\n      uVar11 = (uint)(uVar11 < (uint)piVar3[0x16]);\n      if ((SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=\n          (int)((iVar12 - iVar7) - uVar11) < 0) goto LAB_00030e0f;\n      _Var14 = lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0);\n      uVar11 = piVar3[0x16];\n      if (_Var14 != *(longlong *)(piVar3 + 0x16)) goto LAB_00030e0f;\n      uVar8 = piVar3[0x18] - uVar11;\n      piVar3[0x1a] = uVar8 + 1;\n      piVar3[0x1b] = ((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +\n                     (uint)(0xfffffffe < uVar8);\n      FUN_00030f43();\n    }" { (expression_statement "local_84.st_dev._0_4_ = piVar3[0x16];" (assignment_expression "local_84.st_dev._0_4_ = piVar3[0x16]" (field_expression "local_84.st_dev._0_4_" (field_expression "local_84.st_dev" identifier . field_identifier) . field_identifier) = (subscript_expression "piVar3[0x16]" identifier [ number_literal ])) ;) (expression_statement "local_84.st_dev._4_4_ = piVar3[0x17];" (assignment_expression "local_84.st_dev._4_4_ = piVar3[0x17]" (field_expression "local_84.st_dev._4_4_" (field_expression "local_84.st_dev" identifier . field_identifier) . field_identifier) = (subscript_expression "piVar3[0x17]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = piVar3[0x1a];" (assignment_expression "uVar11 = piVar3[0x1a]" identifier = (subscript_expression "piVar3[0x1a]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = piVar3[0x1b];" (assignment_expression "iVar7 = piVar3[0x1b]" identifier = (subscript_expression "piVar3[0x1b]" identifier [ number_literal ])) ;) (expression_statement "local_a0 = &local_84;" (assignment_expression "local_a0 = &local_84" identifier = (pointer_expression "&local_84" & identifier)) ;) (do_statement "do {\n        if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {\n          uVar11 = 0x7fff0000;\n        }\n        uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);\n        if ((int)uVar8 < 0) {\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }\n        uVar11 = piVar3[0x1a] - uVar8;\n        iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);\n        piVar3[0x1a] = uVar11;\n        piVar3[0x1b] = iVar7;\n        if (uVar8 == 0) goto LAB_00030d9e;\n      } while (iVar7 != 0 || uVar11 != 0);" do (compound_statement "{\n        if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {\n          uVar11 = 0x7fff0000;\n        }\n        uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);\n        if ((int)uVar8 < 0) {\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }\n        uVar11 = piVar3[0x1a] - uVar8;\n        iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);\n        piVar3[0x1a] = uVar11;\n        piVar3[0x1b] = iVar7;\n        if (uVar8 == 0) goto LAB_00030d9e;\n      }" { (if_statement "if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {\n          uVar11 = 0x7fff0000;\n        }" if (parenthesized_expression "(-iVar7 < (int)(uint)(0x7ffeffff < uVar11))" ( (binary_expression "-iVar7 < (int)(uint)(0x7ffeffff < uVar11)" (unary_expression "-iVar7" - identifier) < (cast_expression "(int)(uint)(0x7ffeffff < uVar11)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(0x7ffeffff < uVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x7ffeffff < uVar11)" ( (binary_expression "0x7ffeffff < uVar11" number_literal < identifier) ))))) )) (compound_statement "{\n          uVar11 = 0x7fff0000;\n        }" { (expression_statement "uVar11 = 0x7fff0000;" (assignment_expression "uVar11 = 0x7fff0000" identifier = number_literal) ;) })) (expression_statement "uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);" (assignment_expression "uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11)" identifier = (call_expression "sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11)" identifier (argument_list "(1,__fildes,(__off64_t *)local_a0,uVar11)" ( number_literal , identifier , (cast_expression "(__off64_t *)local_a0" ( (type_descriptor "__off64_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if ((int)uVar8 < 0) {\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }" if (parenthesized_expression "((int)uVar8 < 0)" ( (binary_expression "(int)uVar8 < 0" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }" { (if_statement "if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;" if (parenthesized_expression "(piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)" ( (binary_expression "piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev" (binary_expression "piVar3[0x17] == local_84.st_dev._4_4_" (subscript_expression "piVar3[0x17]" identifier [ number_literal ]) == (field_expression "local_84.st_dev._4_4_" (field_expression "local_84.st_dev" identifier . field_identifier) . field_identifier)) && (binary_expression "piVar3[0x16] == (int)local_84.st_dev" (subscript_expression "piVar3[0x16]" identifier [ number_literal ]) == (cast_expression "(int)local_84.st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "local_84.st_dev" identifier . field_identifier)))) )) (goto_statement "goto LAB_00030d32;" goto statement_identifier ;)) (goto_statement "goto LAB_00030d87;" goto statement_identifier ;) })) (expression_statement "uVar11 = piVar3[0x1a] - uVar8;" (assignment_expression "uVar11 = piVar3[0x1a] - uVar8" identifier = (binary_expression "piVar3[0x1a] - uVar8" (subscript_expression "piVar3[0x1a]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);" (assignment_expression "iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8)" identifier = (binary_expression "(piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8)" (parenthesized_expression "(piVar3[0x1b] - ((int)uVar8 >> 0x1f))" ( (binary_expression "piVar3[0x1b] - ((int)uVar8 >> 0x1f)" (subscript_expression "piVar3[0x1b]" identifier [ number_literal ]) - (parenthesized_expression "((int)uVar8 >> 0x1f)" ( (binary_expression "(int)uVar8 >> 0x1f" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) )) - (call_expression "(uint)((uint)piVar3[0x1a] < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)piVar3[0x1a] < uVar8)" ( (binary_expression "(uint)piVar3[0x1a] < uVar8" (cast_expression "(uint)piVar3[0x1a]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar3[0x1a]" identifier [ number_literal ])) < identifier) ))))) ;) (expression_statement "piVar3[0x1a] = uVar11;" (assignment_expression "piVar3[0x1a] = uVar11" (subscript_expression "piVar3[0x1a]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3[0x1b] = iVar7;" (assignment_expression "piVar3[0x1b] = iVar7" (subscript_expression "piVar3[0x1b]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar8 == 0) goto LAB_00030d9e;" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00030d9e;" goto statement_identifier ;)) }) while (parenthesized_expression "(iVar7 != 0 || uVar11 != 0)" ( (binary_expression "iVar7 != 0 || uVar11 != 0" (binary_expression "iVar7 != 0" identifier != number_literal) || (binary_expression "uVar11 != 0" identifier != number_literal)) )) ;) (expression_statement "FUN_00030829();" (call_expression "FUN_00030829()" identifier (argument_list "()" ( ))) ;) (expression_statement "psVar13 = (stat64 *)0x0;" (assignment_expression "psVar13 = (stat64 *)0x0" identifier = (cast_expression "(stat64 *)0x0" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "psVar10 = extraout_ECX;" (assignment_expression "psVar10 = extraout_ECX" identifier = identifier) ;) (do_statement "do {\n        iVar12 = piVar3[0x1a] - (int)psVar10;\n        iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);\n        piVar3[0x1a] = iVar12;\n        piVar3[0x1b] = iVar7;\n        if (iVar7 == 0 && iVar12 == 0) break;\nLAB_00030d32:\n        local_a0 = (stat64 *)FUN_0001ac64();\n        if ((int)local_a0 < 1) break;\n        uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);\n        iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);\n        if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0) {\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }\n        psVar9 = (stat64 *)FUN_0001ac14();\n        psVar10 = local_a0;\n        psVar13 = local_a0;\n      } while (local_a0 == psVar9);" do (compound_statement "{\n        iVar12 = piVar3[0x1a] - (int)psVar10;\n        iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);\n        piVar3[0x1a] = iVar12;\n        piVar3[0x1b] = iVar7;\n        if (iVar7 == 0 && iVar12 == 0) break;\nLAB_00030d32:\n        local_a0 = (stat64 *)FUN_0001ac64();\n        if ((int)local_a0 < 1) break;\n        uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);\n        iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);\n        if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0) {\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }\n        psVar9 = (stat64 *)FUN_0001ac14();\n        psVar10 = local_a0;\n        psVar13 = local_a0;\n      }" { (expression_statement "iVar12 = piVar3[0x1a] - (int)psVar10;" (assignment_expression "iVar12 = piVar3[0x1a] - (int)psVar10" identifier = (binary_expression "piVar3[0x1a] - (int)psVar10" (subscript_expression "piVar3[0x1a]" identifier [ number_literal ]) - (cast_expression "(int)psVar10" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);" (assignment_expression "iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10)" identifier = (binary_expression "(piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10)" (parenthesized_expression "(piVar3[0x1b] - ((int)psVar13 >> 0x1f))" ( (binary_expression "piVar3[0x1b] - ((int)psVar13 >> 0x1f)" (subscript_expression "piVar3[0x1b]" identifier [ number_literal ]) - (parenthesized_expression "((int)psVar13 >> 0x1f)" ( (binary_expression "(int)psVar13 >> 0x1f" (cast_expression "(int)psVar13" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) )) - (call_expression "(uint)((stat64 *)piVar3[0x1a] < psVar10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((stat64 *)piVar3[0x1a] < psVar10)" ( (binary_expression "(stat64 *)piVar3[0x1a] < psVar10" (cast_expression "(stat64 *)piVar3[0x1a]" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[0x1a]" identifier [ number_literal ])) < identifier) ))))) ;) (expression_statement "piVar3[0x1a] = iVar12;" (assignment_expression "piVar3[0x1a] = iVar12" (subscript_expression "piVar3[0x1a]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3[0x1b] = iVar7;" (assignment_expression "piVar3[0x1b] = iVar7" (subscript_expression "piVar3[0x1b]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar7 == 0 && iVar12 == 0) break;" if (parenthesized_expression "(iVar7 == 0 && iVar12 == 0)" ( (binary_expression "iVar7 == 0 && iVar12 == 0" (binary_expression "iVar7 == 0" identifier == number_literal) && (binary_expression "iVar12 == 0" identifier == number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00030d32:\n        local_a0 = (stat64 *)FUN_0001ac64();" statement_identifier : (expression_statement "local_a0 = (stat64 *)FUN_0001ac64();" (assignment_expression "local_a0 = (stat64 *)FUN_0001ac64()" identifier = (cast_expression "(stat64 *)FUN_0001ac64()" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ac64()" identifier (argument_list "()" ( ))))) ;)) (if_statement "if ((int)local_a0 < 1) break;" if (parenthesized_expression "((int)local_a0 < 1)" ( (binary_expression "(int)local_a0 < 1" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);" (assignment_expression "uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0)" identifier = (call_expression "(uint)((stat64 *)piVar3[0x1a] < local_a0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((stat64 *)piVar3[0x1a] < local_a0)" ( (binary_expression "(stat64 *)piVar3[0x1a] < local_a0" (cast_expression "(stat64 *)piVar3[0x1a]" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[0x1a]" identifier [ number_literal ])) < identifier) )))) ;) (expression_statement "iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);" (assignment_expression "iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f)" identifier = (binary_expression "piVar3[0x1b] - ((int)local_a0 >> 0x1f)" (subscript_expression "piVar3[0x1b]" identifier [ number_literal ]) - (parenthesized_expression "((int)local_a0 >> 0x1f)" ( (binary_expression "(int)local_a0 >> 0x1f" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (if_statement "if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0) {\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }" if (parenthesized_expression "((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0)" ( (binary_expression "(SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0" (parenthesized_expression "(SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11))" ( (binary_expression "SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)" (call_expression "SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f)" identifier (argument_list "(piVar3[0x1b],(int)local_a0 >> 0x1f)" ( (subscript_expression "piVar3[0x1b]" identifier [ number_literal ]) , (binary_expression "(int)local_a0 >> 0x1f" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) != (call_expression "SBORROW4(iVar7,uVar11)" identifier (argument_list "(iVar7,uVar11)" ( identifier , identifier )))) )) != (binary_expression "(int)(iVar7 - uVar11) < 0" (cast_expression "(int)(iVar7 - uVar11)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar7 - uVar11)" ( (binary_expression "iVar7 - uVar11" identifier - identifier) ))) < number_literal)) )) (compound_statement "{\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }" { (expression_statement "local_a0 = (stat64 *)piVar3[0x1a];" (assignment_expression "local_a0 = (stat64 *)piVar3[0x1a]" identifier = (cast_expression "(stat64 *)piVar3[0x1a]" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[0x1a]" identifier [ number_literal ]))) ;) })) (expression_statement "psVar9 = (stat64 *)FUN_0001ac14();" (assignment_expression "psVar9 = (stat64 *)FUN_0001ac14()" identifier = (cast_expression "(stat64 *)FUN_0001ac14()" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ac14()" identifier (argument_list "()" ( ))))) ;) (expression_statement "psVar10 = local_a0;" (assignment_expression "psVar10 = local_a0" identifier = identifier) ;) (expression_statement "psVar13 = local_a0;" (assignment_expression "psVar13 = local_a0" identifier = identifier) ;) }) while (parenthesized_expression "(local_a0 == psVar9)" ( (binary_expression "local_a0 == psVar9" identifier == identifier) )) ;) (if_statement "if ((int)local_a0 < 0) {\nLAB_00030d87:\n        if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }\n      }" if (parenthesized_expression "((int)local_a0 < 0)" ( (binary_expression "(int)local_a0 < 0" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\nLAB_00030d87:\n        if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }\n      }" { (labeled_statement "LAB_00030d87:\n        if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }" statement_identifier : (if_statement "if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }" if (parenthesized_expression "(1 < *piVar3)" ( (binary_expression "1 < *piVar3" number_literal < (pointer_expression "*piVar3" * identifier)) )) (compound_statement "{\n          FUN_00018e3c("error");\n        }" { (expression_statement "FUN_00018e3c("error");" (call_expression "FUN_00018e3c("error")" identifier (argument_list "("error")" ( (string_literal ""error"" " string_content ") ))) ;) }))) })) (labeled_statement "LAB_00030d9e:\n      FUN_00030829();" statement_identifier : (expression_statement "FUN_00030829();" (call_expression "FUN_00030829()" identifier (argument_list "()" ( ))) ;)) (labeled_statement "LAB_00030da3:\n      if (*(char *)((int)piVar3 + 5) != '\0') goto LAB_00030ca7;" statement_identifier : (if_statement "if (*(char *)((int)piVar3 + 5) != '\0') goto LAB_00030ca7;" if (parenthesized_expression "(*(char *)((int)piVar3 + 5) != '\0')" ( (binary_expression "*(char *)((int)piVar3 + 5) != '\0'" (pointer_expression "*(char *)((int)piVar3 + 5)" * (cast_expression "(char *)((int)piVar3 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 5)" ( (binary_expression "(int)piVar3 + 5" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00030ca7;" goto statement_identifier ;))) (expression_statement "iVar7 = piVar3[0x17];" (assignment_expression "iVar7 = piVar3[0x17]" identifier = (subscript_expression "piVar3[0x17]" identifier [ number_literal ])) ;) (expression_statement "piVar3[0x1a] = -1;" (assignment_expression "piVar3[0x1a] = -1" (subscript_expression "piVar3[0x1a]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar3[0x1b] = 0x7fffffff;" (assignment_expression "piVar3[0x1b] = 0x7fffffff" (subscript_expression "piVar3[0x1b]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (iVar7 < 0) goto joined_r0x00030cc8;" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (goto_statement "goto joined_r0x00030cc8;" goto statement_identifier ;)) (expression_statement "uVar11 = piVar3[0x18];" (assignment_expression "uVar11 = piVar3[0x18]" identifier = (subscript_expression "piVar3[0x18]" identifier [ number_literal ])) ;) (expression_statement "iVar12 = piVar3[0x19];" (assignment_expression "iVar12 = piVar3[0x19]" identifier = (subscript_expression "piVar3[0x19]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = piVar3[0x14];" (assignment_expression "uVar8 = piVar3[0x14]" identifier = (subscript_expression "piVar3[0x14]" identifier [ number_literal ])) ;) (expression_statement "iVar2 = piVar3[0x15];" (assignment_expression "iVar2 = piVar3[0x15]" identifier = (subscript_expression "piVar3[0x15]" identifier [ number_literal ])) ;) (if_statement "if ((iVar12 == 0 && uVar11 == 0) ||\n         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)) {\n        uVar11 = uVar8 - 1;\n        iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);\n        piVar3[0x18] = uVar11;\n        piVar3[0x19] = iVar12;\n      }" if (parenthesized_expression "((iVar12 == 0 && uVar11 == 0) ||\n         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0))" ( (binary_expression "(iVar12 == 0 && uVar11 == 0) ||\n         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)" (parenthesized_expression "(iVar12 == 0 && uVar11 == 0)" ( (binary_expression "iVar12 == 0 && uVar11 == 0" (binary_expression "iVar12 == 0" identifier == number_literal) && (binary_expression "uVar11 == 0" identifier == number_literal)) )) || (parenthesized_expression "((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)" ( (binary_expression "(SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0" (parenthesized_expression "(SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8)))" ( (binary_expression "SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))" (call_expression "SBORROW4(iVar12,iVar2)" identifier (argument_list "(iVar12,iVar2)" ( identifier , identifier ))) != (call_expression "SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))" identifier (argument_list "(iVar12 - iVar2,(uint)(uVar11 < uVar8))" ( (binary_expression "iVar12 - iVar2" identifier - identifier) , (call_expression "(uint)(uVar11 < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar11 < uVar8)" ( (binary_expression "uVar11 < uVar8" identifier < identifier) ))) )))) )) == (binary_expression "(int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0" (cast_expression "(int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((iVar12 - iVar2) - (uint)(uVar11 < uVar8))" ( (binary_expression "(iVar12 - iVar2) - (uint)(uVar11 < uVar8)" (parenthesized_expression "(iVar12 - iVar2)" ( (binary_expression "iVar12 - iVar2" identifier - identifier) )) - (call_expression "(uint)(uVar11 < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar11 < uVar8)" ( (binary_expression "uVar11 < uVar8" identifier < identifier) )))) ))) < number_literal)) ))) )) (compound_statement "{\n        uVar11 = uVar8 - 1;\n        iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);\n        piVar3[0x18] = uVar11;\n        piVar3[0x19] = iVar12;\n      }" { (expression_statement "uVar11 = uVar8 - 1;" (assignment_expression "uVar11 = uVar8 - 1" identifier = (binary_expression "uVar8 - 1" identifier - number_literal)) ;) (expression_statement "iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);" (assignment_expression "iVar12 = iVar2 + -1 + (uint)(uVar8 != 0)" identifier = (binary_expression "iVar2 + -1 + (uint)(uVar8 != 0)" (binary_expression "iVar2 + -1" identifier + number_literal) + (call_expression "(uint)(uVar8 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) ))))) ;) (expression_statement "piVar3[0x18] = uVar11;" (assignment_expression "piVar3[0x18] = uVar11" (subscript_expression "piVar3[0x18]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3[0x19] = iVar12;" (assignment_expression "piVar3[0x19] = iVar12" (subscript_expression "piVar3[0x19]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "uVar11 = (uint)(uVar11 < (uint)piVar3[0x16]);" (assignment_expression "uVar11 = (uint)(uVar11 < (uint)piVar3[0x16])" identifier = (call_expression "(uint)(uVar11 < (uint)piVar3[0x16])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar11 < (uint)piVar3[0x16])" ( (binary_expression "uVar11 < (uint)piVar3[0x16]" identifier < (cast_expression "(uint)piVar3[0x16]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar3[0x16]" identifier [ number_literal ]))) )))) ;) (if_statement "if ((SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=\n          (int)((iVar12 - iVar7) - uVar11) < 0) goto LAB_00030e0f;" if (parenthesized_expression "((SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=\n          (int)((iVar12 - iVar7) - uVar11) < 0)" ( (binary_expression "(SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=\n          (int)((iVar12 - iVar7) - uVar11) < 0" (parenthesized_expression "(SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11))" ( (binary_expression "SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)" (call_expression "SBORROW4(iVar12,iVar7)" identifier (argument_list "(iVar12,iVar7)" ( identifier , identifier ))) != (call_expression "SBORROW4(iVar12 - iVar7,uVar11)" identifier (argument_list "(iVar12 - iVar7,uVar11)" ( (binary_expression "iVar12 - iVar7" identifier - identifier) , identifier )))) )) != (binary_expression "(int)((iVar12 - iVar7) - uVar11) < 0" (cast_expression "(int)((iVar12 - iVar7) - uVar11)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((iVar12 - iVar7) - uVar11)" ( (binary_expression "(iVar12 - iVar7) - uVar11" (parenthesized_expression "(iVar12 - iVar7)" ( (binary_expression "iVar12 - iVar7" identifier - identifier) )) - identifier) ))) < number_literal)) )) (goto_statement "goto LAB_00030e0f;" goto statement_identifier ;)) (expression_statement "_Var14 = lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0);" (assignment_expression "_Var14 = lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0)" identifier = (call_expression "lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0)" identifier (argument_list "(__fildes,*(__off64_t *)(piVar3 + 0x16),0)" ( identifier , (pointer_expression "*(__off64_t *)(piVar3 + 0x16)" * (cast_expression "(__off64_t *)(piVar3 + 0x16)" ( (type_descriptor "__off64_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 0x16)" ( (binary_expression "piVar3 + 0x16" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "uVar11 = piVar3[0x16];" (assignment_expression "uVar11 = piVar3[0x16]" identifier = (subscript_expression "piVar3[0x16]" identifier [ number_literal ])) ;) (if_statement "if (_Var14 != *(longlong *)(piVar3 + 0x16)) goto LAB_00030e0f;" if (parenthesized_expression "(_Var14 != *(longlong *)(piVar3 + 0x16))" ( (binary_expression "_Var14 != *(longlong *)(piVar3 + 0x16)" identifier != (pointer_expression "*(longlong *)(piVar3 + 0x16)" * (cast_expression "(longlong *)(piVar3 + 0x16)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 0x16)" ( (binary_expression "piVar3 + 0x16" identifier + number_literal) ))))) )) (goto_statement "goto LAB_00030e0f;" goto statement_identifier ;)) (expression_statement "uVar8 = piVar3[0x18] - uVar11;" (assignment_expression "uVar8 = piVar3[0x18] - uVar11" identifier = (binary_expression "piVar3[0x18] - uVar11" (subscript_expression "piVar3[0x18]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "piVar3[0x1a] = uVar8 + 1;" (assignment_expression "piVar3[0x1a] = uVar8 + 1" (subscript_expression "piVar3[0x1a]" identifier [ number_literal ]) = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) (expression_statement "piVar3[0x1b] = ((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +\n                     (uint)(0xfffffffe < uVar8);" (assignment_expression "piVar3[0x1b] = ((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +\n                     (uint)(0xfffffffe < uVar8)" (subscript_expression "piVar3[0x1b]" identifier [ number_literal ]) = (binary_expression "((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +\n                     (uint)(0xfffffffe < uVar8)" (parenthesized_expression "((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11))" ( (binary_expression "(piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)" (parenthesized_expression "(piVar3[0x19] - piVar3[0x17])" ( (binary_expression "piVar3[0x19] - piVar3[0x17]" (subscript_expression "piVar3[0x19]" identifier [ number_literal ]) - (subscript_expression "piVar3[0x17]" identifier [ number_literal ])) )) - (call_expression "(uint)((uint)piVar3[0x18] < uVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)piVar3[0x18] < uVar11)" ( (binary_expression "(uint)piVar3[0x18] < uVar11" (cast_expression "(uint)piVar3[0x18]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar3[0x18]" identifier [ number_literal ])) < identifier) )))) )) + (call_expression "(uint)(0xfffffffe < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffffffe < uVar8)" ( (binary_expression "0xfffffffe < uVar8" number_literal < identifier) ))))) ;) (expression_statement "FUN_00030f43();" (call_expression "FUN_00030f43()" identifier (argument_list "()" ( ))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "pcVar6 = ".txt.h.c.cc.cpp";" (assignment_expression "pcVar6 = ".txt.h.c.cc.cpp"" identifier = (string_literal "".txt.h.c.cc.cpp"" " string_content ")) ;) (do_statement "do {\n    sVar5 = strlen(pcVar6);\n    __s = pcVar6 + sVar5 + 1;\n    pcVar6 = strstr(pcVar6,pcVar4);\n    if (pcVar6 != (char *)0x0) {\n      sVar5 = strlen(pcVar4);\n      if (pcVar6[sVar5] == '\0') {\n        piVar3[10] = (int)__s;\n      }\n      else {\n        if (pcVar6[sVar5] != '.') break;\n        piVar3[10] = (int)__s;\n      }\n      puVar1 = (undefined4 *)piVar3[0x1d];\n      goto joined_r0x00030f1b;\n    }\n    sVar5 = strlen(__s);\n    pcVar6 = __s + sVar5 + 1;\n  } while (*pcVar6 != '\0');" do (compound_statement "{\n    sVar5 = strlen(pcVar6);\n    __s = pcVar6 + sVar5 + 1;\n    pcVar6 = strstr(pcVar6,pcVar4);\n    if (pcVar6 != (char *)0x0) {\n      sVar5 = strlen(pcVar4);\n      if (pcVar6[sVar5] == '\0') {\n        piVar3[10] = (int)__s;\n      }\n      else {\n        if (pcVar6[sVar5] != '.') break;\n        piVar3[10] = (int)__s;\n      }\n      puVar1 = (undefined4 *)piVar3[0x1d];\n      goto joined_r0x00030f1b;\n    }\n    sVar5 = strlen(__s);\n    pcVar6 = __s + sVar5 + 1;\n  }" { (expression_statement "sVar5 = strlen(pcVar6);" (assignment_expression "sVar5 = strlen(pcVar6)" identifier = (call_expression "strlen(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier )))) ;) (expression_statement "__s = pcVar6 + sVar5 + 1;" (assignment_expression "__s = pcVar6 + sVar5 + 1" identifier = (binary_expression "pcVar6 + sVar5 + 1" (binary_expression "pcVar6 + sVar5" identifier + identifier) + number_literal)) ;) (expression_statement "pcVar6 = strstr(pcVar6,pcVar4);" (assignment_expression "pcVar6 = strstr(pcVar6,pcVar4)" identifier = (call_expression "strstr(pcVar6,pcVar4)" identifier (argument_list "(pcVar6,pcVar4)" ( identifier , identifier )))) ;) (if_statement "if (pcVar6 != (char *)0x0) {\n      sVar5 = strlen(pcVar4);\n      if (pcVar6[sVar5] == '\0') {\n        piVar3[10] = (int)__s;\n      }\n      else {\n        if (pcVar6[sVar5] != '.') break;\n        piVar3[10] = (int)__s;\n      }\n      puVar1 = (undefined4 *)piVar3[0x1d];\n      goto joined_r0x00030f1b;\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      sVar5 = strlen(pcVar4);\n      if (pcVar6[sVar5] == '\0') {\n        piVar3[10] = (int)__s;\n      }\n      else {\n        if (pcVar6[sVar5] != '.') break;\n        piVar3[10] = (int)__s;\n      }\n      puVar1 = (undefined4 *)piVar3[0x1d];\n      goto joined_r0x00030f1b;\n    }" { (expression_statement "sVar5 = strlen(pcVar4);" (assignment_expression "sVar5 = strlen(pcVar4)" identifier = (call_expression "strlen(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier )))) ;) (if_statement "if (pcVar6[sVar5] == '\0') {\n        piVar3[10] = (int)__s;\n      }\n      else {\n        if (pcVar6[sVar5] != '.') break;\n        piVar3[10] = (int)__s;\n      }" if (parenthesized_expression "(pcVar6[sVar5] == '\0')" ( (binary_expression "pcVar6[sVar5] == '\0'" (subscript_expression "pcVar6[sVar5]" identifier [ identifier ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        piVar3[10] = (int)__s;\n      }" { (expression_statement "piVar3[10] = (int)__s;" (assignment_expression "piVar3[10] = (int)__s" (subscript_expression "piVar3[10]" identifier [ number_literal ]) = (cast_expression "(int)__s" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n        if (pcVar6[sVar5] != '.') break;\n        piVar3[10] = (int)__s;\n      }" else (compound_statement "{\n        if (pcVar6[sVar5] != '.') break;\n        piVar3[10] = (int)__s;\n      }" { (if_statement "if (pcVar6[sVar5] != '.') break;" if (parenthesized_expression "(pcVar6[sVar5] != '.')" ( (binary_expression "pcVar6[sVar5] != '.'" (subscript_expression "pcVar6[sVar5]" identifier [ identifier ]) != (char_literal "'.'" ' character ')) )) (break_statement "break;" break ;)) (expression_statement "piVar3[10] = (int)__s;" (assignment_expression "piVar3[10] = (int)__s" (subscript_expression "piVar3[10]" identifier [ number_literal ]) = (cast_expression "(int)__s" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) (expression_statement "puVar1 = (undefined4 *)piVar3[0x1d];" (assignment_expression "puVar1 = (undefined4 *)piVar3[0x1d]" identifier = (cast_expression "(undefined4 *)piVar3[0x1d]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[0x1d]" identifier [ number_literal ]))) ;) (goto_statement "goto joined_r0x00030f1b;" goto statement_identifier ;) })) (expression_statement "sVar5 = strlen(__s);" (assignment_expression "sVar5 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "pcVar6 = __s + sVar5 + 1;" (assignment_expression "pcVar6 = __s + sVar5 + 1" identifier = (binary_expression "__s + sVar5 + 1" (binary_expression "__s + sVar5" identifier + identifier) + number_literal)) ;) }) while (parenthesized_expression "(*pcVar6 != '\0')" ( (binary_expression "*pcVar6 != '\0'" (pointer_expression "*pcVar6" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "puVar1 = (undefined4 *)piVar3[0x1d];" (assignment_expression "puVar1 = (undefined4 *)piVar3[0x1d]" identifier = (cast_expression "(undefined4 *)piVar3[0x1d]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[0x1d]" identifier [ number_literal ]))) ;) (labeled_statement "joined_r0x00030f1b:\n  do {\n    if (puVar1 == (undefined4 *)0x0) goto LAB_00030c9c;\n    iVar7 = strcmp((char *)(puVar1 + 2),pcVar4);\n    if (iVar7 == 0) {\n      piVar3[10] = puVar1[1];\n      goto LAB_00030c9c;\n    }\n    puVar1 = (undefined4 *)*puVar1;\n  } while( true );" statement_identifier : (do_statement "do {\n    if (puVar1 == (undefined4 *)0x0) goto LAB_00030c9c;\n    iVar7 = strcmp((char *)(puVar1 + 2),pcVar4);\n    if (iVar7 == 0) {\n      piVar3[10] = puVar1[1];\n      goto LAB_00030c9c;\n    }\n    puVar1 = (undefined4 *)*puVar1;\n  } while( true );" do (compound_statement "{\n    if (puVar1 == (undefined4 *)0x0) goto LAB_00030c9c;\n    iVar7 = strcmp((char *)(puVar1 + 2),pcVar4);\n    if (iVar7 == 0) {\n      piVar3[10] = puVar1[1];\n      goto LAB_00030c9c;\n    }\n    puVar1 = (undefined4 *)*puVar1;\n  }" { (if_statement "if (puVar1 == (undefined4 *)0x0) goto LAB_00030c9c;" if (parenthesized_expression "(puVar1 == (undefined4 *)0x0)" ( (binary_expression "puVar1 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030c9c;" goto statement_identifier ;)) (expression_statement "iVar7 = strcmp((char *)(puVar1 + 2),pcVar4);" (assignment_expression "iVar7 = strcmp((char *)(puVar1 + 2),pcVar4)" identifier = (call_expression "strcmp((char *)(puVar1 + 2),pcVar4)" identifier (argument_list "((char *)(puVar1 + 2),pcVar4)" ( (cast_expression "(char *)(puVar1 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 2)" ( (binary_expression "puVar1 + 2" identifier + number_literal) ))) , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n      piVar3[10] = puVar1[1];\n      goto LAB_00030c9c;\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      piVar3[10] = puVar1[1];\n      goto LAB_00030c9c;\n    }" { (expression_statement "piVar3[10] = puVar1[1];" (assignment_expression "piVar3[10] = puVar1[1]" (subscript_expression "piVar3[10]" identifier [ number_literal ]) = (subscript_expression "puVar1[1]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00030c9c;" goto statement_identifier ;) })) (expression_statement "puVar1 = (undefined4 *)*puVar1;" (assignment_expression "puVar1 = (undefined4 *)*puVar1" identifier = (cast_expression "(undefined4 *)*puVar1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier))) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) (labeled_statement "LAB_00030e0f:\n  lseek64(__fildes,0,0);" statement_identifier : (expression_statement "lseek64(__fildes,0,0);" (call_expression "lseek64(__fildes,0,0)" identifier (argument_list "(__fildes,0,0)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "piVar3[0x16] = -1;" (assignment_expression "piVar3[0x16] = -1" (subscript_expression "piVar3[0x16]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar3[0x17] = -1;" (assignment_expression "piVar3[0x17] = -1" (subscript_expression "piVar3[0x17]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto joined_r0x00030cc8;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid send_file_and_exit(char *url,int what)\n\n{\n  stat sb;\n  \n}\n\n" comment (function_definition "void send_file_and_exit(char *url,int what)\n\n{\n  stat sb;\n  \n}" primitive_type (function_declarator "send_file_and_exit(char *url,int what)" identifier (parameter_list "(char *url,int what)" ( (parameter_declaration "char *url" primitive_type (pointer_declarator "*url" * identifier)) , (parameter_declaration "int what" primitive_type identifier) ))) (compound_statement "{\n  stat sb;\n  \n}" { (declaration "stat sb;" type_identifier identifier ;) })))
(translation_unit "void __regparm3 FUN_00030b39(char *param_1,stat64 *param_2)\n\n{\n  char *__s;\n  undefined4 *puVar1;\n  int iVar2;\n  int *piVar3;\n  char *pcVar4;\n  int __fildes;\n  size_t sVar5;\n  char *pcVar6;\n  int iVar7;\n  uint uVar8;\n  stat64 *psVar9;\n  stat64 *extraout_ECX;\n  stat64 *psVar10;\n  uint uVar11;\n  int iVar12;\n  stat64 *psVar13;\n  int in_GS_OFFSET;\n  __off64_t _Var14;\n  stat64 *local_a0;\n  stat64 local_84;\n  undefined4 local_20;\n  \n  piVar3 = DAT_000d1700;\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (*(char *)((int)DAT_000d1700 + 5) == '\0') goto LAB_00030bfa;\n  pcVar4 = (char *)FUN_00019fd7("%s.gz",param_1);\n  __fildes = open64(pcVar4,0);\n  free(pcVar4);\n  if (__fildes == -1) goto LAB_00030bf6;\n  __fxstat64(3,__fildes,&local_84);\n  piVar3[0x14] = (int)local_84.st_size;\n  piVar3[0x15] = local_84.st_size._4_4_;\n  piVar3[3] = local_84.st_mtim.tv_sec;\n  while (local_a0 = param_2, __fildes < 0) {\n    if (param_2 == (stat64 *)0x2) goto LAB_00030d9e;\n    *(undefined1 *)((int)piVar3 + 5) = 0;\n    FUN_00030f43();\n    FUN_00030829();\nLAB_00030bf6:\n    *(undefined1 *)((int)piVar3 + 5) = 0;\nLAB_00030bfa:\n    __fildes = open64(param_1,0);\n  }\n  signal(0xd,(__sighandler_t)0x1);\n  pcVar4 = strrchr(param_1,0x2e);\n  if (pcVar4 == (char *)0x0) {\nLAB_00030c9c:\n    if (param_2 != (stat64 *)0x2) goto LAB_00030da3;\nLAB_00030ca7:\n    piVar3[0x16] = -1;\n    piVar3[0x17] = -1;\n    piVar3[0x1a] = -1;\n    piVar3[0x1b] = 0x7fffffff;\njoined_r0x00030cc8:\n    if (((uint)local_a0 & 1) != 0) {\n      FUN_00030f43();\n    }\n    do {\n      local_84.st_dev._0_4_ = piVar3[0x16];\n      local_84.st_dev._4_4_ = piVar3[0x17];\n      uVar11 = piVar3[0x1a];\n      iVar7 = piVar3[0x1b];\n      local_a0 = &local_84;\n      do {\n        if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {\n          uVar11 = 0x7fff0000;\n        }\n        uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);\n        if ((int)uVar8 < 0) {\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }\n        uVar11 = piVar3[0x1a] - uVar8;\n        iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);\n        piVar3[0x1a] = uVar11;\n        piVar3[0x1b] = iVar7;\n        if (uVar8 == 0) goto LAB_00030d9e;\n      } while (iVar7 != 0 || uVar11 != 0);\n      FUN_00030829();\n      psVar13 = (stat64 *)0x0;\n      psVar10 = extraout_ECX;\n      do {\n        iVar12 = piVar3[0x1a] - (int)psVar10;\n        iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);\n        piVar3[0x1a] = iVar12;\n        piVar3[0x1b] = iVar7;\n        if (iVar7 == 0 && iVar12 == 0) break;\nLAB_00030d32:\n        local_a0 = (stat64 *)FUN_0001ac64();\n        if ((int)local_a0 < 1) break;\n        uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);\n        iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);\n        if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0) {\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }\n        psVar9 = (stat64 *)FUN_0001ac14();\n        psVar10 = local_a0;\n        psVar13 = local_a0;\n      } while (local_a0 == psVar9);\n      if ((int)local_a0 < 0) {\nLAB_00030d87:\n        if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }\n      }\nLAB_00030d9e:\n      FUN_00030829();\nLAB_00030da3:\n      if (*(char *)((int)piVar3 + 5) != '\0') goto LAB_00030ca7;\n      iVar7 = piVar3[0x17];\n      piVar3[0x1a] = -1;\n      piVar3[0x1b] = 0x7fffffff;\n      if (iVar7 < 0) goto joined_r0x00030cc8;\n      uVar11 = piVar3[0x18];\n      iVar12 = piVar3[0x19];\n      uVar8 = piVar3[0x14];\n      iVar2 = piVar3[0x15];\n      if ((iVar12 == 0 && uVar11 == 0) ||\n         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)) {\n        uVar11 = uVar8 - 1;\n        iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);\n        piVar3[0x18] = uVar11;\n        piVar3[0x19] = iVar12;\n      }\n      uVar11 = (uint)(uVar11 < (uint)piVar3[0x16]);\n      if ((SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=\n          (int)((iVar12 - iVar7) - uVar11) < 0) goto LAB_00030e0f;\n      _Var14 = lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0);\n      uVar11 = piVar3[0x16];\n      if (_Var14 != *(longlong *)(piVar3 + 0x16)) goto LAB_00030e0f;\n      uVar8 = piVar3[0x18] - uVar11;\n      piVar3[0x1a] = uVar8 + 1;\n      piVar3[0x1b] = ((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +\n                     (uint)(0xfffffffe < uVar8);\n      FUN_00030f43();\n    } while( true );\n  }\n  pcVar6 = ".txt.h.c.cc.cpp";\n  do {\n    sVar5 = strlen(pcVar6);\n    __s = pcVar6 + sVar5 + 1;\n    pcVar6 = strstr(pcVar6,pcVar4);\n    if (pcVar6 != (char *)0x0) {\n      sVar5 = strlen(pcVar4);\n      if (pcVar6[sVar5] == '\0') {\n        piVar3[10] = (int)__s;\n      }\n      else {\n        if (pcVar6[sVar5] != '.') break;\n        piVar3[10] = (int)__s;\n      }\n      puVar1 = (undefined4 *)piVar3[0x1d];\n      goto joined_r0x00030f1b;\n    }\n    sVar5 = strlen(__s);\n    pcVar6 = __s + sVar5 + 1;\n  } while (*pcVar6 != '\0');\n  puVar1 = (undefined4 *)piVar3[0x1d];\njoined_r0x00030f1b:\n  do {\n    if (puVar1 == (undefined4 *)0x0) goto LAB_00030c9c;\n    iVar7 = strcmp((char *)(puVar1 + 2),pcVar4);\n    if (iVar7 == 0) {\n      piVar3[10] = puVar1[1];\n      goto LAB_00030c9c;\n    }\n    puVar1 = (undefined4 *)*puVar1;\n  } while( true );\nLAB_00030e0f:\n  lseek64(__fildes,0,0);\n  piVar3[0x16] = -1;\n  piVar3[0x17] = -1;\n  goto joined_r0x00030cc8;\n}\n\n" (function_definition "void __regparm3 FUN_00030b39(char *param_1,stat64 *param_2)\n\n{\n  char *__s;\n  undefined4 *puVar1;\n  int iVar2;\n  int *piVar3;\n  char *pcVar4;\n  int __fildes;\n  size_t sVar5;\n  char *pcVar6;\n  int iVar7;\n  uint uVar8;\n  stat64 *psVar9;\n  stat64 *extraout_ECX;\n  stat64 *psVar10;\n  uint uVar11;\n  int iVar12;\n  stat64 *psVar13;\n  int in_GS_OFFSET;\n  __off64_t _Var14;\n  stat64 *local_a0;\n  stat64 local_84;\n  undefined4 local_20;\n  \n  piVar3 = DAT_000d1700;\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (*(char *)((int)DAT_000d1700 + 5) == '\0') goto LAB_00030bfa;\n  pcVar4 = (char *)FUN_00019fd7("%s.gz",param_1);\n  __fildes = open64(pcVar4,0);\n  free(pcVar4);\n  if (__fildes == -1) goto LAB_00030bf6;\n  __fxstat64(3,__fildes,&local_84);\n  piVar3[0x14] = (int)local_84.st_size;\n  piVar3[0x15] = local_84.st_size._4_4_;\n  piVar3[3] = local_84.st_mtim.tv_sec;\n  while (local_a0 = param_2, __fildes < 0) {\n    if (param_2 == (stat64 *)0x2) goto LAB_00030d9e;\n    *(undefined1 *)((int)piVar3 + 5) = 0;\n    FUN_00030f43();\n    FUN_00030829();\nLAB_00030bf6:\n    *(undefined1 *)((int)piVar3 + 5) = 0;\nLAB_00030bfa:\n    __fildes = open64(param_1,0);\n  }\n  signal(0xd,(__sighandler_t)0x1);\n  pcVar4 = strrchr(param_1,0x2e);\n  if (pcVar4 == (char *)0x0) {\nLAB_00030c9c:\n    if (param_2 != (stat64 *)0x2) goto LAB_00030da3;\nLAB_00030ca7:\n    piVar3[0x16] = -1;\n    piVar3[0x17] = -1;\n    piVar3[0x1a] = -1;\n    piVar3[0x1b] = 0x7fffffff;\njoined_r0x00030cc8:\n    if (((uint)local_a0 & 1) != 0) {\n      FUN_00030f43();\n    }\n    do {\n      local_84.st_dev._0_4_ = piVar3[0x16];\n      local_84.st_dev._4_4_ = piVar3[0x17];\n      uVar11 = piVar3[0x1a];\n      iVar7 = piVar3[0x1b];\n      local_a0 = &local_84;\n      do {\n        if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {\n          uVar11 = 0x7fff0000;\n        }\n        uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);\n        if ((int)uVar8 < 0) {\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }\n        uVar11 = piVar3[0x1a] - uVar8;\n        iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);\n        piVar3[0x1a] = uVar11;\n        piVar3[0x1b] = iVar7;\n        if (uVar8 == 0) goto LAB_00030d9e;\n      } while (iVar7 != 0 || uVar11 != 0);\n      FUN_00030829();\n      psVar13 = (stat64 *)0x0;\n      psVar10 = extraout_ECX;\n      do {\n        iVar12 = piVar3[0x1a] - (int)psVar10;\n        iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);\n        piVar3[0x1a] = iVar12;\n        piVar3[0x1b] = iVar7;\n        if (iVar7 == 0 && iVar12 == 0) break;\nLAB_00030d32:\n        local_a0 = (stat64 *)FUN_0001ac64();\n        if ((int)local_a0 < 1) break;\n        uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);\n        iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);\n        if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0) {\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }\n        psVar9 = (stat64 *)FUN_0001ac14();\n        psVar10 = local_a0;\n        psVar13 = local_a0;\n      } while (local_a0 == psVar9);\n      if ((int)local_a0 < 0) {\nLAB_00030d87:\n        if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }\n      }\nLAB_00030d9e:\n      FUN_00030829();\nLAB_00030da3:\n      if (*(char *)((int)piVar3 + 5) != '\0') goto LAB_00030ca7;\n      iVar7 = piVar3[0x17];\n      piVar3[0x1a] = -1;\n      piVar3[0x1b] = 0x7fffffff;\n      if (iVar7 < 0) goto joined_r0x00030cc8;\n      uVar11 = piVar3[0x18];\n      iVar12 = piVar3[0x19];\n      uVar8 = piVar3[0x14];\n      iVar2 = piVar3[0x15];\n      if ((iVar12 == 0 && uVar11 == 0) ||\n         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)) {\n        uVar11 = uVar8 - 1;\n        iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);\n        piVar3[0x18] = uVar11;\n        piVar3[0x19] = iVar12;\n      }\n      uVar11 = (uint)(uVar11 < (uint)piVar3[0x16]);\n      if ((SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=\n          (int)((iVar12 - iVar7) - uVar11) < 0) goto LAB_00030e0f;\n      _Var14 = lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0);\n      uVar11 = piVar3[0x16];\n      if (_Var14 != *(longlong *)(piVar3 + 0x16)) goto LAB_00030e0f;\n      uVar8 = piVar3[0x18] - uVar11;\n      piVar3[0x1a] = uVar8 + 1;\n      piVar3[0x1b] = ((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +\n                     (uint)(0xfffffffe < uVar8);\n      FUN_00030f43();\n    } while( true );\n  }\n  pcVar6 = ".txt.h.c.cc.cpp";\n  do {\n    sVar5 = strlen(pcVar6);\n    __s = pcVar6 + sVar5 + 1;\n    pcVar6 = strstr(pcVar6,pcVar4);\n    if (pcVar6 != (char *)0x0) {\n      sVar5 = strlen(pcVar4);\n      if (pcVar6[sVar5] == '\0') {\n        piVar3[10] = (int)__s;\n      }\n      else {\n        if (pcVar6[sVar5] != '.') break;\n        piVar3[10] = (int)__s;\n      }\n      puVar1 = (undefined4 *)piVar3[0x1d];\n      goto joined_r0x00030f1b;\n    }\n    sVar5 = strlen(__s);\n    pcVar6 = __s + sVar5 + 1;\n  } while (*pcVar6 != '\0');\n  puVar1 = (undefined4 *)piVar3[0x1d];\njoined_r0x00030f1b:\n  do {\n    if (puVar1 == (undefined4 *)0x0) goto LAB_00030c9c;\n    iVar7 = strcmp((char *)(puVar1 + 2),pcVar4);\n    if (iVar7 == 0) {\n      piVar3[10] = puVar1[1];\n      goto LAB_00030c9c;\n    }\n    puVar1 = (undefined4 *)*puVar1;\n  } while( true );\nLAB_00030e0f:\n  lseek64(__fildes,0,0);\n  piVar3[0x16] = -1;\n  piVar3[0x17] = -1;\n  goto joined_r0x00030cc8;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00030b39(char *param_1,stat64 *param_2)" identifier (parameter_list "(char *param_1,stat64 *param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "stat64 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  char *__s;\n  undefined4 *puVar1;\n  int iVar2;\n  int *piVar3;\n  char *pcVar4;\n  int __fildes;\n  size_t sVar5;\n  char *pcVar6;\n  int iVar7;\n  uint uVar8;\n  stat64 *psVar9;\n  stat64 *extraout_ECX;\n  stat64 *psVar10;\n  uint uVar11;\n  int iVar12;\n  stat64 *psVar13;\n  int in_GS_OFFSET;\n  __off64_t _Var14;\n  stat64 *local_a0;\n  stat64 local_84;\n  undefined4 local_20;\n  \n  piVar3 = DAT_000d1700;\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (*(char *)((int)DAT_000d1700 + 5) == '\0') goto LAB_00030bfa;\n  pcVar4 = (char *)FUN_00019fd7("%s.gz",param_1);\n  __fildes = open64(pcVar4,0);\n  free(pcVar4);\n  if (__fildes == -1) goto LAB_00030bf6;\n  __fxstat64(3,__fildes,&local_84);\n  piVar3[0x14] = (int)local_84.st_size;\n  piVar3[0x15] = local_84.st_size._4_4_;\n  piVar3[3] = local_84.st_mtim.tv_sec;\n  while (local_a0 = param_2, __fildes < 0) {\n    if (param_2 == (stat64 *)0x2) goto LAB_00030d9e;\n    *(undefined1 *)((int)piVar3 + 5) = 0;\n    FUN_00030f43();\n    FUN_00030829();\nLAB_00030bf6:\n    *(undefined1 *)((int)piVar3 + 5) = 0;\nLAB_00030bfa:\n    __fildes = open64(param_1,0);\n  }\n  signal(0xd,(__sighandler_t)0x1);\n  pcVar4 = strrchr(param_1,0x2e);\n  if (pcVar4 == (char *)0x0) {\nLAB_00030c9c:\n    if (param_2 != (stat64 *)0x2) goto LAB_00030da3;\nLAB_00030ca7:\n    piVar3[0x16] = -1;\n    piVar3[0x17] = -1;\n    piVar3[0x1a] = -1;\n    piVar3[0x1b] = 0x7fffffff;\njoined_r0x00030cc8:\n    if (((uint)local_a0 & 1) != 0) {\n      FUN_00030f43();\n    }\n    do {\n      local_84.st_dev._0_4_ = piVar3[0x16];\n      local_84.st_dev._4_4_ = piVar3[0x17];\n      uVar11 = piVar3[0x1a];\n      iVar7 = piVar3[0x1b];\n      local_a0 = &local_84;\n      do {\n        if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {\n          uVar11 = 0x7fff0000;\n        }\n        uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);\n        if ((int)uVar8 < 0) {\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }\n        uVar11 = piVar3[0x1a] - uVar8;\n        iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);\n        piVar3[0x1a] = uVar11;\n        piVar3[0x1b] = iVar7;\n        if (uVar8 == 0) goto LAB_00030d9e;\n      } while (iVar7 != 0 || uVar11 != 0);\n      FUN_00030829();\n      psVar13 = (stat64 *)0x0;\n      psVar10 = extraout_ECX;\n      do {\n        iVar12 = piVar3[0x1a] - (int)psVar10;\n        iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);\n        piVar3[0x1a] = iVar12;\n        piVar3[0x1b] = iVar7;\n        if (iVar7 == 0 && iVar12 == 0) break;\nLAB_00030d32:\n        local_a0 = (stat64 *)FUN_0001ac64();\n        if ((int)local_a0 < 1) break;\n        uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);\n        iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);\n        if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0) {\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }\n        psVar9 = (stat64 *)FUN_0001ac14();\n        psVar10 = local_a0;\n        psVar13 = local_a0;\n      } while (local_a0 == psVar9);\n      if ((int)local_a0 < 0) {\nLAB_00030d87:\n        if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }\n      }\nLAB_00030d9e:\n      FUN_00030829();\nLAB_00030da3:\n      if (*(char *)((int)piVar3 + 5) != '\0') goto LAB_00030ca7;\n      iVar7 = piVar3[0x17];\n      piVar3[0x1a] = -1;\n      piVar3[0x1b] = 0x7fffffff;\n      if (iVar7 < 0) goto joined_r0x00030cc8;\n      uVar11 = piVar3[0x18];\n      iVar12 = piVar3[0x19];\n      uVar8 = piVar3[0x14];\n      iVar2 = piVar3[0x15];\n      if ((iVar12 == 0 && uVar11 == 0) ||\n         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)) {\n        uVar11 = uVar8 - 1;\n        iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);\n        piVar3[0x18] = uVar11;\n        piVar3[0x19] = iVar12;\n      }\n      uVar11 = (uint)(uVar11 < (uint)piVar3[0x16]);\n      if ((SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=\n          (int)((iVar12 - iVar7) - uVar11) < 0) goto LAB_00030e0f;\n      _Var14 = lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0);\n      uVar11 = piVar3[0x16];\n      if (_Var14 != *(longlong *)(piVar3 + 0x16)) goto LAB_00030e0f;\n      uVar8 = piVar3[0x18] - uVar11;\n      piVar3[0x1a] = uVar8 + 1;\n      piVar3[0x1b] = ((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +\n                     (uint)(0xfffffffe < uVar8);\n      FUN_00030f43();\n    } while( true );\n  }\n  pcVar6 = ".txt.h.c.cc.cpp";\n  do {\n    sVar5 = strlen(pcVar6);\n    __s = pcVar6 + sVar5 + 1;\n    pcVar6 = strstr(pcVar6,pcVar4);\n    if (pcVar6 != (char *)0x0) {\n      sVar5 = strlen(pcVar4);\n      if (pcVar6[sVar5] == '\0') {\n        piVar3[10] = (int)__s;\n      }\n      else {\n        if (pcVar6[sVar5] != '.') break;\n        piVar3[10] = (int)__s;\n      }\n      puVar1 = (undefined4 *)piVar3[0x1d];\n      goto joined_r0x00030f1b;\n    }\n    sVar5 = strlen(__s);\n    pcVar6 = __s + sVar5 + 1;\n  } while (*pcVar6 != '\0');\n  puVar1 = (undefined4 *)piVar3[0x1d];\njoined_r0x00030f1b:\n  do {\n    if (puVar1 == (undefined4 *)0x0) goto LAB_00030c9c;\n    iVar7 = strcmp((char *)(puVar1 + 2),pcVar4);\n    if (iVar7 == 0) {\n      piVar3[10] = puVar1[1];\n      goto LAB_00030c9c;\n    }\n    puVar1 = (undefined4 *)*puVar1;\n  } while( true );\nLAB_00030e0f:\n  lseek64(__fildes,0,0);\n  piVar3[0x16] = -1;\n  piVar3[0x17] = -1;\n  goto joined_r0x00030cc8;\n}" { (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int __fildes;" primitive_type identifier ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "stat64 *psVar9;" type_identifier (pointer_declarator "*psVar9" * identifier) ;) (declaration "stat64 *extraout_ECX;" type_identifier (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "stat64 *psVar10;" type_identifier (pointer_declarator "*psVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "stat64 *psVar13;" type_identifier (pointer_declarator "*psVar13" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "__off64_t _Var14;" type_identifier identifier ;) (declaration "stat64 *local_a0;" type_identifier (pointer_declarator "*local_a0" * identifier) ;) (declaration "stat64 local_84;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (expression_statement "piVar3 = DAT_000d1700;" (assignment_expression "piVar3 = DAT_000d1700" identifier = identifier) ;) (expression_statement "local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(undefined4 *)(in_GS_OFFSET + 0x14)" * (cast_expression "(undefined4 *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)((int)DAT_000d1700 + 5) == '\0') goto LAB_00030bfa;" if (parenthesized_expression "(*(char *)((int)DAT_000d1700 + 5) == '\0')" ( (binary_expression "*(char *)((int)DAT_000d1700 + 5) == '\0'" (pointer_expression "*(char *)((int)DAT_000d1700 + 5)" * (cast_expression "(char *)((int)DAT_000d1700 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)DAT_000d1700 + 5)" ( (binary_expression "(int)DAT_000d1700 + 5" (cast_expression "(int)DAT_000d1700" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00030bfa;" goto statement_identifier ;)) (expression_statement "pcVar4 = (char *)FUN_00019fd7("%s.gz",param_1);" (assignment_expression "pcVar4 = (char *)FUN_00019fd7("%s.gz",param_1)" identifier = (cast_expression "(char *)FUN_00019fd7("%s.gz",param_1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00019fd7("%s.gz",param_1)" identifier (argument_list "("%s.gz",param_1)" ( (string_literal ""%s.gz"" " string_content ") , identifier ))))) ;) (expression_statement "__fildes = open64(pcVar4,0);" (assignment_expression "__fildes = open64(pcVar4,0)" identifier = (call_expression "open64(pcVar4,0)" identifier (argument_list "(pcVar4,0)" ( identifier , number_literal )))) ;) (expression_statement "free(pcVar4);" (call_expression "free(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (if_statement "if (__fildes == -1) goto LAB_00030bf6;" if (parenthesized_expression "(__fildes == -1)" ( (binary_expression "__fildes == -1" identifier == number_literal) )) (goto_statement "goto LAB_00030bf6;" goto statement_identifier ;)) (expression_statement "__fxstat64(3,__fildes,&local_84);" (call_expression "__fxstat64(3,__fildes,&local_84)" identifier (argument_list "(3,__fildes,&local_84)" ( number_literal , identifier , (pointer_expression "&local_84" & identifier) ))) ;) (expression_statement "piVar3[0x14] = (int)local_84.st_size;" (assignment_expression "piVar3[0x14] = (int)local_84.st_size" (subscript_expression "piVar3[0x14]" identifier [ number_literal ]) = (cast_expression "(int)local_84.st_size" ( (type_descriptor "int" primitive_type) ) (field_expression "local_84.st_size" identifier . field_identifier))) ;) (expression_statement "piVar3[0x15] = local_84.st_size._4_4_;" (assignment_expression "piVar3[0x15] = local_84.st_size._4_4_" (subscript_expression "piVar3[0x15]" identifier [ number_literal ]) = (field_expression "local_84.st_size._4_4_" (field_expression "local_84.st_size" identifier . field_identifier) . field_identifier)) ;) (expression_statement "piVar3[3] = local_84.st_mtim.tv_sec;" (assignment_expression "piVar3[3] = local_84.st_mtim.tv_sec" (subscript_expression "piVar3[3]" identifier [ number_literal ]) = (field_expression "local_84.st_mtim.tv_sec" (field_expression "local_84.st_mtim" identifier . field_identifier) . field_identifier)) ;) (while_statement "while (local_a0 = param_2, __fildes < 0) {\n    if (param_2 == (stat64 *)0x2) goto LAB_00030d9e;\n    *(undefined1 *)((int)piVar3 + 5) = 0;\n    FUN_00030f43();\n    FUN_00030829();\nLAB_00030bf6:\n    *(undefined1 *)((int)piVar3 + 5) = 0;\nLAB_00030bfa:\n    __fildes = open64(param_1,0);\n  }" while (parenthesized_expression "(local_a0 = param_2, __fildes < 0)" ( (comma_expression "local_a0 = param_2, __fildes < 0" (assignment_expression "local_a0 = param_2" identifier = identifier) , (binary_expression "__fildes < 0" identifier < number_literal)) )) (compound_statement "{\n    if (param_2 == (stat64 *)0x2) goto LAB_00030d9e;\n    *(undefined1 *)((int)piVar3 + 5) = 0;\n    FUN_00030f43();\n    FUN_00030829();\nLAB_00030bf6:\n    *(undefined1 *)((int)piVar3 + 5) = 0;\nLAB_00030bfa:\n    __fildes = open64(param_1,0);\n  }" { (if_statement "if (param_2 == (stat64 *)0x2) goto LAB_00030d9e;" if (parenthesized_expression "(param_2 == (stat64 *)0x2)" ( (binary_expression "param_2 == (stat64 *)0x2" identifier == (cast_expression "(stat64 *)0x2" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030d9e;" goto statement_identifier ;)) (expression_statement "*(undefined1 *)((int)piVar3 + 5) = 0;" (assignment_expression "*(undefined1 *)((int)piVar3 + 5) = 0" (pointer_expression "*(undefined1 *)((int)piVar3 + 5)" * (cast_expression "(undefined1 *)((int)piVar3 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 5)" ( (binary_expression "(int)piVar3 + 5" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00030f43();" (call_expression "FUN_00030f43()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00030829();" (call_expression "FUN_00030829()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_00030bf6:\n    *(undefined1 *)((int)piVar3 + 5) = 0;" statement_identifier : (expression_statement "*(undefined1 *)((int)piVar3 + 5) = 0;" (assignment_expression "*(undefined1 *)((int)piVar3 + 5) = 0" (pointer_expression "*(undefined1 *)((int)piVar3 + 5)" * (cast_expression "(undefined1 *)((int)piVar3 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 5)" ( (binary_expression "(int)piVar3 + 5" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;)) (labeled_statement "LAB_00030bfa:\n    __fildes = open64(param_1,0);" statement_identifier : (expression_statement "__fildes = open64(param_1,0);" (assignment_expression "__fildes = open64(param_1,0)" identifier = (call_expression "open64(param_1,0)" identifier (argument_list "(param_1,0)" ( identifier , number_literal )))) ;)) })) (expression_statement "signal(0xd,(__sighandler_t)0x1);" (call_expression "signal(0xd,(__sighandler_t)0x1)" identifier (argument_list "(0xd,(__sighandler_t)0x1)" ( number_literal , (cast_expression "(__sighandler_t)0x1" ( (type_descriptor "__sighandler_t" type_identifier) ) number_literal) ))) ;) (expression_statement "pcVar4 = strrchr(param_1,0x2e);" (assignment_expression "pcVar4 = strrchr(param_1,0x2e)" identifier = (call_expression "strrchr(param_1,0x2e)" identifier (argument_list "(param_1,0x2e)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar4 == (char *)0x0) {\nLAB_00030c9c:\n    if (param_2 != (stat64 *)0x2) goto LAB_00030da3;\nLAB_00030ca7:\n    piVar3[0x16] = -1;\n    piVar3[0x17] = -1;\n    piVar3[0x1a] = -1;\n    piVar3[0x1b] = 0x7fffffff;\njoined_r0x00030cc8:\n    if (((uint)local_a0 & 1) != 0) {\n      FUN_00030f43();\n    }\n    do {\n      local_84.st_dev._0_4_ = piVar3[0x16];\n      local_84.st_dev._4_4_ = piVar3[0x17];\n      uVar11 = piVar3[0x1a];\n      iVar7 = piVar3[0x1b];\n      local_a0 = &local_84;\n      do {\n        if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {\n          uVar11 = 0x7fff0000;\n        }\n        uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);\n        if ((int)uVar8 < 0) {\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }\n        uVar11 = piVar3[0x1a] - uVar8;\n        iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);\n        piVar3[0x1a] = uVar11;\n        piVar3[0x1b] = iVar7;\n        if (uVar8 == 0) goto LAB_00030d9e;\n      } while (iVar7 != 0 || uVar11 != 0);\n      FUN_00030829();\n      psVar13 = (stat64 *)0x0;\n      psVar10 = extraout_ECX;\n      do {\n        iVar12 = piVar3[0x1a] - (int)psVar10;\n        iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);\n        piVar3[0x1a] = iVar12;\n        piVar3[0x1b] = iVar7;\n        if (iVar7 == 0 && iVar12 == 0) break;\nLAB_00030d32:\n        local_a0 = (stat64 *)FUN_0001ac64();\n        if ((int)local_a0 < 1) break;\n        uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);\n        iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);\n        if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0) {\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }\n        psVar9 = (stat64 *)FUN_0001ac14();\n        psVar10 = local_a0;\n        psVar13 = local_a0;\n      } while (local_a0 == psVar9);\n      if ((int)local_a0 < 0) {\nLAB_00030d87:\n        if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }\n      }\nLAB_00030d9e:\n      FUN_00030829();\nLAB_00030da3:\n      if (*(char *)((int)piVar3 + 5) != '\0') goto LAB_00030ca7;\n      iVar7 = piVar3[0x17];\n      piVar3[0x1a] = -1;\n      piVar3[0x1b] = 0x7fffffff;\n      if (iVar7 < 0) goto joined_r0x00030cc8;\n      uVar11 = piVar3[0x18];\n      iVar12 = piVar3[0x19];\n      uVar8 = piVar3[0x14];\n      iVar2 = piVar3[0x15];\n      if ((iVar12 == 0 && uVar11 == 0) ||\n         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)) {\n        uVar11 = uVar8 - 1;\n        iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);\n        piVar3[0x18] = uVar11;\n        piVar3[0x19] = iVar12;\n      }\n      uVar11 = (uint)(uVar11 < (uint)piVar3[0x16]);\n      if ((SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=\n          (int)((iVar12 - iVar7) - uVar11) < 0) goto LAB_00030e0f;\n      _Var14 = lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0);\n      uVar11 = piVar3[0x16];\n      if (_Var14 != *(longlong *)(piVar3 + 0x16)) goto LAB_00030e0f;\n      uVar8 = piVar3[0x18] - uVar11;\n      piVar3[0x1a] = uVar8 + 1;\n      piVar3[0x1b] = ((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +\n                     (uint)(0xfffffffe < uVar8);\n      FUN_00030f43();\n    } while( true );\n  }" if (parenthesized_expression "(pcVar4 == (char *)0x0)" ( (binary_expression "pcVar4 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00030c9c:\n    if (param_2 != (stat64 *)0x2) goto LAB_00030da3;\nLAB_00030ca7:\n    piVar3[0x16] = -1;\n    piVar3[0x17] = -1;\n    piVar3[0x1a] = -1;\n    piVar3[0x1b] = 0x7fffffff;\njoined_r0x00030cc8:\n    if (((uint)local_a0 & 1) != 0) {\n      FUN_00030f43();\n    }\n    do {\n      local_84.st_dev._0_4_ = piVar3[0x16];\n      local_84.st_dev._4_4_ = piVar3[0x17];\n      uVar11 = piVar3[0x1a];\n      iVar7 = piVar3[0x1b];\n      local_a0 = &local_84;\n      do {\n        if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {\n          uVar11 = 0x7fff0000;\n        }\n        uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);\n        if ((int)uVar8 < 0) {\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }\n        uVar11 = piVar3[0x1a] - uVar8;\n        iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);\n        piVar3[0x1a] = uVar11;\n        piVar3[0x1b] = iVar7;\n        if (uVar8 == 0) goto LAB_00030d9e;\n      } while (iVar7 != 0 || uVar11 != 0);\n      FUN_00030829();\n      psVar13 = (stat64 *)0x0;\n      psVar10 = extraout_ECX;\n      do {\n        iVar12 = piVar3[0x1a] - (int)psVar10;\n        iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);\n        piVar3[0x1a] = iVar12;\n        piVar3[0x1b] = iVar7;\n        if (iVar7 == 0 && iVar12 == 0) break;\nLAB_00030d32:\n        local_a0 = (stat64 *)FUN_0001ac64();\n        if ((int)local_a0 < 1) break;\n        uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);\n        iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);\n        if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0) {\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }\n        psVar9 = (stat64 *)FUN_0001ac14();\n        psVar10 = local_a0;\n        psVar13 = local_a0;\n      } while (local_a0 == psVar9);\n      if ((int)local_a0 < 0) {\nLAB_00030d87:\n        if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }\n      }\nLAB_00030d9e:\n      FUN_00030829();\nLAB_00030da3:\n      if (*(char *)((int)piVar3 + 5) != '\0') goto LAB_00030ca7;\n      iVar7 = piVar3[0x17];\n      piVar3[0x1a] = -1;\n      piVar3[0x1b] = 0x7fffffff;\n      if (iVar7 < 0) goto joined_r0x00030cc8;\n      uVar11 = piVar3[0x18];\n      iVar12 = piVar3[0x19];\n      uVar8 = piVar3[0x14];\n      iVar2 = piVar3[0x15];\n      if ((iVar12 == 0 && uVar11 == 0) ||\n         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)) {\n        uVar11 = uVar8 - 1;\n        iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);\n        piVar3[0x18] = uVar11;\n        piVar3[0x19] = iVar12;\n      }\n      uVar11 = (uint)(uVar11 < (uint)piVar3[0x16]);\n      if ((SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=\n          (int)((iVar12 - iVar7) - uVar11) < 0) goto LAB_00030e0f;\n      _Var14 = lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0);\n      uVar11 = piVar3[0x16];\n      if (_Var14 != *(longlong *)(piVar3 + 0x16)) goto LAB_00030e0f;\n      uVar8 = piVar3[0x18] - uVar11;\n      piVar3[0x1a] = uVar8 + 1;\n      piVar3[0x1b] = ((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +\n                     (uint)(0xfffffffe < uVar8);\n      FUN_00030f43();\n    } while( true );\n  }" { (labeled_statement "LAB_00030c9c:\n    if (param_2 != (stat64 *)0x2) goto LAB_00030da3;" statement_identifier : (if_statement "if (param_2 != (stat64 *)0x2) goto LAB_00030da3;" if (parenthesized_expression "(param_2 != (stat64 *)0x2)" ( (binary_expression "param_2 != (stat64 *)0x2" identifier != (cast_expression "(stat64 *)0x2" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030da3;" goto statement_identifier ;))) (labeled_statement "LAB_00030ca7:\n    piVar3[0x16] = -1;" statement_identifier : (expression_statement "piVar3[0x16] = -1;" (assignment_expression "piVar3[0x16] = -1" (subscript_expression "piVar3[0x16]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "piVar3[0x17] = -1;" (assignment_expression "piVar3[0x17] = -1" (subscript_expression "piVar3[0x17]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar3[0x1a] = -1;" (assignment_expression "piVar3[0x1a] = -1" (subscript_expression "piVar3[0x1a]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar3[0x1b] = 0x7fffffff;" (assignment_expression "piVar3[0x1b] = 0x7fffffff" (subscript_expression "piVar3[0x1b]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "joined_r0x00030cc8:\n    if (((uint)local_a0 & 1) != 0) {\n      FUN_00030f43();\n    }" statement_identifier : (if_statement "if (((uint)local_a0 & 1) != 0) {\n      FUN_00030f43();\n    }" if (parenthesized_expression "(((uint)local_a0 & 1) != 0)" ( (binary_expression "((uint)local_a0 & 1) != 0" (parenthesized_expression "((uint)local_a0 & 1)" ( (binary_expression "(uint)local_a0 & 1" (cast_expression "(uint)local_a0" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      FUN_00030f43();\n    }" { (expression_statement "FUN_00030f43();" (call_expression "FUN_00030f43()" identifier (argument_list "()" ( ))) ;) }))) (do_statement "do {\n      local_84.st_dev._0_4_ = piVar3[0x16];\n      local_84.st_dev._4_4_ = piVar3[0x17];\n      uVar11 = piVar3[0x1a];\n      iVar7 = piVar3[0x1b];\n      local_a0 = &local_84;\n      do {\n        if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {\n          uVar11 = 0x7fff0000;\n        }\n        uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);\n        if ((int)uVar8 < 0) {\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }\n        uVar11 = piVar3[0x1a] - uVar8;\n        iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);\n        piVar3[0x1a] = uVar11;\n        piVar3[0x1b] = iVar7;\n        if (uVar8 == 0) goto LAB_00030d9e;\n      } while (iVar7 != 0 || uVar11 != 0);\n      FUN_00030829();\n      psVar13 = (stat64 *)0x0;\n      psVar10 = extraout_ECX;\n      do {\n        iVar12 = piVar3[0x1a] - (int)psVar10;\n        iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);\n        piVar3[0x1a] = iVar12;\n        piVar3[0x1b] = iVar7;\n        if (iVar7 == 0 && iVar12 == 0) break;\nLAB_00030d32:\n        local_a0 = (stat64 *)FUN_0001ac64();\n        if ((int)local_a0 < 1) break;\n        uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);\n        iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);\n        if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0) {\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }\n        psVar9 = (stat64 *)FUN_0001ac14();\n        psVar10 = local_a0;\n        psVar13 = local_a0;\n      } while (local_a0 == psVar9);\n      if ((int)local_a0 < 0) {\nLAB_00030d87:\n        if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }\n      }\nLAB_00030d9e:\n      FUN_00030829();\nLAB_00030da3:\n      if (*(char *)((int)piVar3 + 5) != '\0') goto LAB_00030ca7;\n      iVar7 = piVar3[0x17];\n      piVar3[0x1a] = -1;\n      piVar3[0x1b] = 0x7fffffff;\n      if (iVar7 < 0) goto joined_r0x00030cc8;\n      uVar11 = piVar3[0x18];\n      iVar12 = piVar3[0x19];\n      uVar8 = piVar3[0x14];\n      iVar2 = piVar3[0x15];\n      if ((iVar12 == 0 && uVar11 == 0) ||\n         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)) {\n        uVar11 = uVar8 - 1;\n        iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);\n        piVar3[0x18] = uVar11;\n        piVar3[0x19] = iVar12;\n      }\n      uVar11 = (uint)(uVar11 < (uint)piVar3[0x16]);\n      if ((SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=\n          (int)((iVar12 - iVar7) - uVar11) < 0) goto LAB_00030e0f;\n      _Var14 = lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0);\n      uVar11 = piVar3[0x16];\n      if (_Var14 != *(longlong *)(piVar3 + 0x16)) goto LAB_00030e0f;\n      uVar8 = piVar3[0x18] - uVar11;\n      piVar3[0x1a] = uVar8 + 1;\n      piVar3[0x1b] = ((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +\n                     (uint)(0xfffffffe < uVar8);\n      FUN_00030f43();\n    } while( true );" do (compound_statement "{\n      local_84.st_dev._0_4_ = piVar3[0x16];\n      local_84.st_dev._4_4_ = piVar3[0x17];\n      uVar11 = piVar3[0x1a];\n      iVar7 = piVar3[0x1b];\n      local_a0 = &local_84;\n      do {\n        if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {\n          uVar11 = 0x7fff0000;\n        }\n        uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);\n        if ((int)uVar8 < 0) {\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }\n        uVar11 = piVar3[0x1a] - uVar8;\n        iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);\n        piVar3[0x1a] = uVar11;\n        piVar3[0x1b] = iVar7;\n        if (uVar8 == 0) goto LAB_00030d9e;\n      } while (iVar7 != 0 || uVar11 != 0);\n      FUN_00030829();\n      psVar13 = (stat64 *)0x0;\n      psVar10 = extraout_ECX;\n      do {\n        iVar12 = piVar3[0x1a] - (int)psVar10;\n        iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);\n        piVar3[0x1a] = iVar12;\n        piVar3[0x1b] = iVar7;\n        if (iVar7 == 0 && iVar12 == 0) break;\nLAB_00030d32:\n        local_a0 = (stat64 *)FUN_0001ac64();\n        if ((int)local_a0 < 1) break;\n        uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);\n        iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);\n        if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0) {\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }\n        psVar9 = (stat64 *)FUN_0001ac14();\n        psVar10 = local_a0;\n        psVar13 = local_a0;\n      } while (local_a0 == psVar9);\n      if ((int)local_a0 < 0) {\nLAB_00030d87:\n        if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }\n      }\nLAB_00030d9e:\n      FUN_00030829();\nLAB_00030da3:\n      if (*(char *)((int)piVar3 + 5) != '\0') goto LAB_00030ca7;\n      iVar7 = piVar3[0x17];\n      piVar3[0x1a] = -1;\n      piVar3[0x1b] = 0x7fffffff;\n      if (iVar7 < 0) goto joined_r0x00030cc8;\n      uVar11 = piVar3[0x18];\n      iVar12 = piVar3[0x19];\n      uVar8 = piVar3[0x14];\n      iVar2 = piVar3[0x15];\n      if ((iVar12 == 0 && uVar11 == 0) ||\n         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)) {\n        uVar11 = uVar8 - 1;\n        iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);\n        piVar3[0x18] = uVar11;\n        piVar3[0x19] = iVar12;\n      }\n      uVar11 = (uint)(uVar11 < (uint)piVar3[0x16]);\n      if ((SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=\n          (int)((iVar12 - iVar7) - uVar11) < 0) goto LAB_00030e0f;\n      _Var14 = lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0);\n      uVar11 = piVar3[0x16];\n      if (_Var14 != *(longlong *)(piVar3 + 0x16)) goto LAB_00030e0f;\n      uVar8 = piVar3[0x18] - uVar11;\n      piVar3[0x1a] = uVar8 + 1;\n      piVar3[0x1b] = ((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +\n                     (uint)(0xfffffffe < uVar8);\n      FUN_00030f43();\n    }" { (expression_statement "local_84.st_dev._0_4_ = piVar3[0x16];" (assignment_expression "local_84.st_dev._0_4_ = piVar3[0x16]" (field_expression "local_84.st_dev._0_4_" (field_expression "local_84.st_dev" identifier . field_identifier) . field_identifier) = (subscript_expression "piVar3[0x16]" identifier [ number_literal ])) ;) (expression_statement "local_84.st_dev._4_4_ = piVar3[0x17];" (assignment_expression "local_84.st_dev._4_4_ = piVar3[0x17]" (field_expression "local_84.st_dev._4_4_" (field_expression "local_84.st_dev" identifier . field_identifier) . field_identifier) = (subscript_expression "piVar3[0x17]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = piVar3[0x1a];" (assignment_expression "uVar11 = piVar3[0x1a]" identifier = (subscript_expression "piVar3[0x1a]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = piVar3[0x1b];" (assignment_expression "iVar7 = piVar3[0x1b]" identifier = (subscript_expression "piVar3[0x1b]" identifier [ number_literal ])) ;) (expression_statement "local_a0 = &local_84;" (assignment_expression "local_a0 = &local_84" identifier = (pointer_expression "&local_84" & identifier)) ;) (do_statement "do {\n        if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {\n          uVar11 = 0x7fff0000;\n        }\n        uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);\n        if ((int)uVar8 < 0) {\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }\n        uVar11 = piVar3[0x1a] - uVar8;\n        iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);\n        piVar3[0x1a] = uVar11;\n        piVar3[0x1b] = iVar7;\n        if (uVar8 == 0) goto LAB_00030d9e;\n      } while (iVar7 != 0 || uVar11 != 0);" do (compound_statement "{\n        if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {\n          uVar11 = 0x7fff0000;\n        }\n        uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);\n        if ((int)uVar8 < 0) {\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }\n        uVar11 = piVar3[0x1a] - uVar8;\n        iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);\n        piVar3[0x1a] = uVar11;\n        piVar3[0x1b] = iVar7;\n        if (uVar8 == 0) goto LAB_00030d9e;\n      }" { (if_statement "if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {\n          uVar11 = 0x7fff0000;\n        }" if (parenthesized_expression "(-iVar7 < (int)(uint)(0x7ffeffff < uVar11))" ( (binary_expression "-iVar7 < (int)(uint)(0x7ffeffff < uVar11)" (unary_expression "-iVar7" - identifier) < (cast_expression "(int)(uint)(0x7ffeffff < uVar11)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(0x7ffeffff < uVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x7ffeffff < uVar11)" ( (binary_expression "0x7ffeffff < uVar11" number_literal < identifier) ))))) )) (compound_statement "{\n          uVar11 = 0x7fff0000;\n        }" { (expression_statement "uVar11 = 0x7fff0000;" (assignment_expression "uVar11 = 0x7fff0000" identifier = number_literal) ;) })) (expression_statement "uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);" (assignment_expression "uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11)" identifier = (call_expression "sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11)" identifier (argument_list "(1,__fildes,(__off64_t *)local_a0,uVar11)" ( number_literal , identifier , (cast_expression "(__off64_t *)local_a0" ( (type_descriptor "__off64_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if ((int)uVar8 < 0) {\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }" if (parenthesized_expression "((int)uVar8 < 0)" ( (binary_expression "(int)uVar8 < 0" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }" { (if_statement "if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;" if (parenthesized_expression "(piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)" ( (binary_expression "piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev" (binary_expression "piVar3[0x17] == local_84.st_dev._4_4_" (subscript_expression "piVar3[0x17]" identifier [ number_literal ]) == (field_expression "local_84.st_dev._4_4_" (field_expression "local_84.st_dev" identifier . field_identifier) . field_identifier)) && (binary_expression "piVar3[0x16] == (int)local_84.st_dev" (subscript_expression "piVar3[0x16]" identifier [ number_literal ]) == (cast_expression "(int)local_84.st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "local_84.st_dev" identifier . field_identifier)))) )) (goto_statement "goto LAB_00030d32;" goto statement_identifier ;)) (goto_statement "goto LAB_00030d87;" goto statement_identifier ;) })) (expression_statement "uVar11 = piVar3[0x1a] - uVar8;" (assignment_expression "uVar11 = piVar3[0x1a] - uVar8" identifier = (binary_expression "piVar3[0x1a] - uVar8" (subscript_expression "piVar3[0x1a]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);" (assignment_expression "iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8)" identifier = (binary_expression "(piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8)" (parenthesized_expression "(piVar3[0x1b] - ((int)uVar8 >> 0x1f))" ( (binary_expression "piVar3[0x1b] - ((int)uVar8 >> 0x1f)" (subscript_expression "piVar3[0x1b]" identifier [ number_literal ]) - (parenthesized_expression "((int)uVar8 >> 0x1f)" ( (binary_expression "(int)uVar8 >> 0x1f" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) )) - (call_expression "(uint)((uint)piVar3[0x1a] < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)piVar3[0x1a] < uVar8)" ( (binary_expression "(uint)piVar3[0x1a] < uVar8" (cast_expression "(uint)piVar3[0x1a]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar3[0x1a]" identifier [ number_literal ])) < identifier) ))))) ;) (expression_statement "piVar3[0x1a] = uVar11;" (assignment_expression "piVar3[0x1a] = uVar11" (subscript_expression "piVar3[0x1a]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3[0x1b] = iVar7;" (assignment_expression "piVar3[0x1b] = iVar7" (subscript_expression "piVar3[0x1b]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar8 == 0) goto LAB_00030d9e;" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00030d9e;" goto statement_identifier ;)) }) while (parenthesized_expression "(iVar7 != 0 || uVar11 != 0)" ( (binary_expression "iVar7 != 0 || uVar11 != 0" (binary_expression "iVar7 != 0" identifier != number_literal) || (binary_expression "uVar11 != 0" identifier != number_literal)) )) ;) (expression_statement "FUN_00030829();" (call_expression "FUN_00030829()" identifier (argument_list "()" ( ))) ;) (expression_statement "psVar13 = (stat64 *)0x0;" (assignment_expression "psVar13 = (stat64 *)0x0" identifier = (cast_expression "(stat64 *)0x0" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "psVar10 = extraout_ECX;" (assignment_expression "psVar10 = extraout_ECX" identifier = identifier) ;) (do_statement "do {\n        iVar12 = piVar3[0x1a] - (int)psVar10;\n        iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);\n        piVar3[0x1a] = iVar12;\n        piVar3[0x1b] = iVar7;\n        if (iVar7 == 0 && iVar12 == 0) break;\nLAB_00030d32:\n        local_a0 = (stat64 *)FUN_0001ac64();\n        if ((int)local_a0 < 1) break;\n        uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);\n        iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);\n        if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0) {\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }\n        psVar9 = (stat64 *)FUN_0001ac14();\n        psVar10 = local_a0;\n        psVar13 = local_a0;\n      } while (local_a0 == psVar9);" do (compound_statement "{\n        iVar12 = piVar3[0x1a] - (int)psVar10;\n        iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);\n        piVar3[0x1a] = iVar12;\n        piVar3[0x1b] = iVar7;\n        if (iVar7 == 0 && iVar12 == 0) break;\nLAB_00030d32:\n        local_a0 = (stat64 *)FUN_0001ac64();\n        if ((int)local_a0 < 1) break;\n        uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);\n        iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);\n        if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0) {\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }\n        psVar9 = (stat64 *)FUN_0001ac14();\n        psVar10 = local_a0;\n        psVar13 = local_a0;\n      }" { (expression_statement "iVar12 = piVar3[0x1a] - (int)psVar10;" (assignment_expression "iVar12 = piVar3[0x1a] - (int)psVar10" identifier = (binary_expression "piVar3[0x1a] - (int)psVar10" (subscript_expression "piVar3[0x1a]" identifier [ number_literal ]) - (cast_expression "(int)psVar10" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);" (assignment_expression "iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10)" identifier = (binary_expression "(piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10)" (parenthesized_expression "(piVar3[0x1b] - ((int)psVar13 >> 0x1f))" ( (binary_expression "piVar3[0x1b] - ((int)psVar13 >> 0x1f)" (subscript_expression "piVar3[0x1b]" identifier [ number_literal ]) - (parenthesized_expression "((int)psVar13 >> 0x1f)" ( (binary_expression "(int)psVar13 >> 0x1f" (cast_expression "(int)psVar13" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) )) - (call_expression "(uint)((stat64 *)piVar3[0x1a] < psVar10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((stat64 *)piVar3[0x1a] < psVar10)" ( (binary_expression "(stat64 *)piVar3[0x1a] < psVar10" (cast_expression "(stat64 *)piVar3[0x1a]" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[0x1a]" identifier [ number_literal ])) < identifier) ))))) ;) (expression_statement "piVar3[0x1a] = iVar12;" (assignment_expression "piVar3[0x1a] = iVar12" (subscript_expression "piVar3[0x1a]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3[0x1b] = iVar7;" (assignment_expression "piVar3[0x1b] = iVar7" (subscript_expression "piVar3[0x1b]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar7 == 0 && iVar12 == 0) break;" if (parenthesized_expression "(iVar7 == 0 && iVar12 == 0)" ( (binary_expression "iVar7 == 0 && iVar12 == 0" (binary_expression "iVar7 == 0" identifier == number_literal) && (binary_expression "iVar12 == 0" identifier == number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00030d32:\n        local_a0 = (stat64 *)FUN_0001ac64();" statement_identifier : (expression_statement "local_a0 = (stat64 *)FUN_0001ac64();" (assignment_expression "local_a0 = (stat64 *)FUN_0001ac64()" identifier = (cast_expression "(stat64 *)FUN_0001ac64()" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ac64()" identifier (argument_list "()" ( ))))) ;)) (if_statement "if ((int)local_a0 < 1) break;" if (parenthesized_expression "((int)local_a0 < 1)" ( (binary_expression "(int)local_a0 < 1" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);" (assignment_expression "uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0)" identifier = (call_expression "(uint)((stat64 *)piVar3[0x1a] < local_a0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((stat64 *)piVar3[0x1a] < local_a0)" ( (binary_expression "(stat64 *)piVar3[0x1a] < local_a0" (cast_expression "(stat64 *)piVar3[0x1a]" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[0x1a]" identifier [ number_literal ])) < identifier) )))) ;) (expression_statement "iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);" (assignment_expression "iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f)" identifier = (binary_expression "piVar3[0x1b] - ((int)local_a0 >> 0x1f)" (subscript_expression "piVar3[0x1b]" identifier [ number_literal ]) - (parenthesized_expression "((int)local_a0 >> 0x1f)" ( (binary_expression "(int)local_a0 >> 0x1f" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (if_statement "if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0) {\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }" if (parenthesized_expression "((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0)" ( (binary_expression "(SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0" (parenthesized_expression "(SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11))" ( (binary_expression "SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)" (call_expression "SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f)" identifier (argument_list "(piVar3[0x1b],(int)local_a0 >> 0x1f)" ( (subscript_expression "piVar3[0x1b]" identifier [ number_literal ]) , (binary_expression "(int)local_a0 >> 0x1f" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) != (call_expression "SBORROW4(iVar7,uVar11)" identifier (argument_list "(iVar7,uVar11)" ( identifier , identifier )))) )) != (binary_expression "(int)(iVar7 - uVar11) < 0" (cast_expression "(int)(iVar7 - uVar11)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar7 - uVar11)" ( (binary_expression "iVar7 - uVar11" identifier - identifier) ))) < number_literal)) )) (compound_statement "{\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }" { (expression_statement "local_a0 = (stat64 *)piVar3[0x1a];" (assignment_expression "local_a0 = (stat64 *)piVar3[0x1a]" identifier = (cast_expression "(stat64 *)piVar3[0x1a]" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[0x1a]" identifier [ number_literal ]))) ;) })) (expression_statement "psVar9 = (stat64 *)FUN_0001ac14();" (assignment_expression "psVar9 = (stat64 *)FUN_0001ac14()" identifier = (cast_expression "(stat64 *)FUN_0001ac14()" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ac14()" identifier (argument_list "()" ( ))))) ;) (expression_statement "psVar10 = local_a0;" (assignment_expression "psVar10 = local_a0" identifier = identifier) ;) (expression_statement "psVar13 = local_a0;" (assignment_expression "psVar13 = local_a0" identifier = identifier) ;) }) while (parenthesized_expression "(local_a0 == psVar9)" ( (binary_expression "local_a0 == psVar9" identifier == identifier) )) ;) (if_statement "if ((int)local_a0 < 0) {\nLAB_00030d87:\n        if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }\n      }" if (parenthesized_expression "((int)local_a0 < 0)" ( (binary_expression "(int)local_a0 < 0" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\nLAB_00030d87:\n        if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }\n      }" { (labeled_statement "LAB_00030d87:\n        if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }" statement_identifier : (if_statement "if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }" if (parenthesized_expression "(1 < *piVar3)" ( (binary_expression "1 < *piVar3" number_literal < (pointer_expression "*piVar3" * identifier)) )) (compound_statement "{\n          FUN_00018e3c("error");\n        }" { (expression_statement "FUN_00018e3c("error");" (call_expression "FUN_00018e3c("error")" identifier (argument_list "("error")" ( (string_literal ""error"" " string_content ") ))) ;) }))) })) (labeled_statement "LAB_00030d9e:\n      FUN_00030829();" statement_identifier : (expression_statement "FUN_00030829();" (call_expression "FUN_00030829()" identifier (argument_list "()" ( ))) ;)) (labeled_statement "LAB_00030da3:\n      if (*(char *)((int)piVar3 + 5) != '\0') goto LAB_00030ca7;" statement_identifier : (if_statement "if (*(char *)((int)piVar3 + 5) != '\0') goto LAB_00030ca7;" if (parenthesized_expression "(*(char *)((int)piVar3 + 5) != '\0')" ( (binary_expression "*(char *)((int)piVar3 + 5) != '\0'" (pointer_expression "*(char *)((int)piVar3 + 5)" * (cast_expression "(char *)((int)piVar3 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 5)" ( (binary_expression "(int)piVar3 + 5" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00030ca7;" goto statement_identifier ;))) (expression_statement "iVar7 = piVar3[0x17];" (assignment_expression "iVar7 = piVar3[0x17]" identifier = (subscript_expression "piVar3[0x17]" identifier [ number_literal ])) ;) (expression_statement "piVar3[0x1a] = -1;" (assignment_expression "piVar3[0x1a] = -1" (subscript_expression "piVar3[0x1a]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar3[0x1b] = 0x7fffffff;" (assignment_expression "piVar3[0x1b] = 0x7fffffff" (subscript_expression "piVar3[0x1b]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (iVar7 < 0) goto joined_r0x00030cc8;" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (goto_statement "goto joined_r0x00030cc8;" goto statement_identifier ;)) (expression_statement "uVar11 = piVar3[0x18];" (assignment_expression "uVar11 = piVar3[0x18]" identifier = (subscript_expression "piVar3[0x18]" identifier [ number_literal ])) ;) (expression_statement "iVar12 = piVar3[0x19];" (assignment_expression "iVar12 = piVar3[0x19]" identifier = (subscript_expression "piVar3[0x19]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = piVar3[0x14];" (assignment_expression "uVar8 = piVar3[0x14]" identifier = (subscript_expression "piVar3[0x14]" identifier [ number_literal ])) ;) (expression_statement "iVar2 = piVar3[0x15];" (assignment_expression "iVar2 = piVar3[0x15]" identifier = (subscript_expression "piVar3[0x15]" identifier [ number_literal ])) ;) (if_statement "if ((iVar12 == 0 && uVar11 == 0) ||\n         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)) {\n        uVar11 = uVar8 - 1;\n        iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);\n        piVar3[0x18] = uVar11;\n        piVar3[0x19] = iVar12;\n      }" if (parenthesized_expression "((iVar12 == 0 && uVar11 == 0) ||\n         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0))" ( (binary_expression "(iVar12 == 0 && uVar11 == 0) ||\n         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)" (parenthesized_expression "(iVar12 == 0 && uVar11 == 0)" ( (binary_expression "iVar12 == 0 && uVar11 == 0" (binary_expression "iVar12 == 0" identifier == number_literal) && (binary_expression "uVar11 == 0" identifier == number_literal)) )) || (parenthesized_expression "((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)" ( (binary_expression "(SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0" (parenthesized_expression "(SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8)))" ( (binary_expression "SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))" (call_expression "SBORROW4(iVar12,iVar2)" identifier (argument_list "(iVar12,iVar2)" ( identifier , identifier ))) != (call_expression "SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))" identifier (argument_list "(iVar12 - iVar2,(uint)(uVar11 < uVar8))" ( (binary_expression "iVar12 - iVar2" identifier - identifier) , (call_expression "(uint)(uVar11 < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar11 < uVar8)" ( (binary_expression "uVar11 < uVar8" identifier < identifier) ))) )))) )) == (binary_expression "(int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0" (cast_expression "(int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((iVar12 - iVar2) - (uint)(uVar11 < uVar8))" ( (binary_expression "(iVar12 - iVar2) - (uint)(uVar11 < uVar8)" (parenthesized_expression "(iVar12 - iVar2)" ( (binary_expression "iVar12 - iVar2" identifier - identifier) )) - (call_expression "(uint)(uVar11 < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar11 < uVar8)" ( (binary_expression "uVar11 < uVar8" identifier < identifier) )))) ))) < number_literal)) ))) )) (compound_statement "{\n        uVar11 = uVar8 - 1;\n        iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);\n        piVar3[0x18] = uVar11;\n        piVar3[0x19] = iVar12;\n      }" { (expression_statement "uVar11 = uVar8 - 1;" (assignment_expression "uVar11 = uVar8 - 1" identifier = (binary_expression "uVar8 - 1" identifier - number_literal)) ;) (expression_statement "iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);" (assignment_expression "iVar12 = iVar2 + -1 + (uint)(uVar8 != 0)" identifier = (binary_expression "iVar2 + -1 + (uint)(uVar8 != 0)" (binary_expression "iVar2 + -1" identifier + number_literal) + (call_expression "(uint)(uVar8 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) ))))) ;) (expression_statement "piVar3[0x18] = uVar11;" (assignment_expression "piVar3[0x18] = uVar11" (subscript_expression "piVar3[0x18]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3[0x19] = iVar12;" (assignment_expression "piVar3[0x19] = iVar12" (subscript_expression "piVar3[0x19]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "uVar11 = (uint)(uVar11 < (uint)piVar3[0x16]);" (assignment_expression "uVar11 = (uint)(uVar11 < (uint)piVar3[0x16])" identifier = (call_expression "(uint)(uVar11 < (uint)piVar3[0x16])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar11 < (uint)piVar3[0x16])" ( (binary_expression "uVar11 < (uint)piVar3[0x16]" identifier < (cast_expression "(uint)piVar3[0x16]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar3[0x16]" identifier [ number_literal ]))) )))) ;) (if_statement "if ((SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=\n          (int)((iVar12 - iVar7) - uVar11) < 0) goto LAB_00030e0f;" if (parenthesized_expression "((SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=\n          (int)((iVar12 - iVar7) - uVar11) < 0)" ( (binary_expression "(SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=\n          (int)((iVar12 - iVar7) - uVar11) < 0" (parenthesized_expression "(SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11))" ( (binary_expression "SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)" (call_expression "SBORROW4(iVar12,iVar7)" identifier (argument_list "(iVar12,iVar7)" ( identifier , identifier ))) != (call_expression "SBORROW4(iVar12 - iVar7,uVar11)" identifier (argument_list "(iVar12 - iVar7,uVar11)" ( (binary_expression "iVar12 - iVar7" identifier - identifier) , identifier )))) )) != (binary_expression "(int)((iVar12 - iVar7) - uVar11) < 0" (cast_expression "(int)((iVar12 - iVar7) - uVar11)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((iVar12 - iVar7) - uVar11)" ( (binary_expression "(iVar12 - iVar7) - uVar11" (parenthesized_expression "(iVar12 - iVar7)" ( (binary_expression "iVar12 - iVar7" identifier - identifier) )) - identifier) ))) < number_literal)) )) (goto_statement "goto LAB_00030e0f;" goto statement_identifier ;)) (expression_statement "_Var14 = lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0);" (assignment_expression "_Var14 = lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0)" identifier = (call_expression "lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0)" identifier (argument_list "(__fildes,*(__off64_t *)(piVar3 + 0x16),0)" ( identifier , (pointer_expression "*(__off64_t *)(piVar3 + 0x16)" * (cast_expression "(__off64_t *)(piVar3 + 0x16)" ( (type_descriptor "__off64_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 0x16)" ( (binary_expression "piVar3 + 0x16" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "uVar11 = piVar3[0x16];" (assignment_expression "uVar11 = piVar3[0x16]" identifier = (subscript_expression "piVar3[0x16]" identifier [ number_literal ])) ;) (if_statement "if (_Var14 != *(longlong *)(piVar3 + 0x16)) goto LAB_00030e0f;" if (parenthesized_expression "(_Var14 != *(longlong *)(piVar3 + 0x16))" ( (binary_expression "_Var14 != *(longlong *)(piVar3 + 0x16)" identifier != (pointer_expression "*(longlong *)(piVar3 + 0x16)" * (cast_expression "(longlong *)(piVar3 + 0x16)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 0x16)" ( (binary_expression "piVar3 + 0x16" identifier + number_literal) ))))) )) (goto_statement "goto LAB_00030e0f;" goto statement_identifier ;)) (expression_statement "uVar8 = piVar3[0x18] - uVar11;" (assignment_expression "uVar8 = piVar3[0x18] - uVar11" identifier = (binary_expression "piVar3[0x18] - uVar11" (subscript_expression "piVar3[0x18]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "piVar3[0x1a] = uVar8 + 1;" (assignment_expression "piVar3[0x1a] = uVar8 + 1" (subscript_expression "piVar3[0x1a]" identifier [ number_literal ]) = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) (expression_statement "piVar3[0x1b] = ((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +\n                     (uint)(0xfffffffe < uVar8);" (assignment_expression "piVar3[0x1b] = ((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +\n                     (uint)(0xfffffffe < uVar8)" (subscript_expression "piVar3[0x1b]" identifier [ number_literal ]) = (binary_expression "((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +\n                     (uint)(0xfffffffe < uVar8)" (parenthesized_expression "((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11))" ( (binary_expression "(piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)" (parenthesized_expression "(piVar3[0x19] - piVar3[0x17])" ( (binary_expression "piVar3[0x19] - piVar3[0x17]" (subscript_expression "piVar3[0x19]" identifier [ number_literal ]) - (subscript_expression "piVar3[0x17]" identifier [ number_literal ])) )) - (call_expression "(uint)((uint)piVar3[0x18] < uVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)piVar3[0x18] < uVar11)" ( (binary_expression "(uint)piVar3[0x18] < uVar11" (cast_expression "(uint)piVar3[0x18]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar3[0x18]" identifier [ number_literal ])) < identifier) )))) )) + (call_expression "(uint)(0xfffffffe < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffffffe < uVar8)" ( (binary_expression "0xfffffffe < uVar8" number_literal < identifier) ))))) ;) (expression_statement "FUN_00030f43();" (call_expression "FUN_00030f43()" identifier (argument_list "()" ( ))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "pcVar6 = ".txt.h.c.cc.cpp";" (assignment_expression "pcVar6 = ".txt.h.c.cc.cpp"" identifier = (string_literal "".txt.h.c.cc.cpp"" " string_content ")) ;) (do_statement "do {\n    sVar5 = strlen(pcVar6);\n    __s = pcVar6 + sVar5 + 1;\n    pcVar6 = strstr(pcVar6,pcVar4);\n    if (pcVar6 != (char *)0x0) {\n      sVar5 = strlen(pcVar4);\n      if (pcVar6[sVar5] == '\0') {\n        piVar3[10] = (int)__s;\n      }\n      else {\n        if (pcVar6[sVar5] != '.') break;\n        piVar3[10] = (int)__s;\n      }\n      puVar1 = (undefined4 *)piVar3[0x1d];\n      goto joined_r0x00030f1b;\n    }\n    sVar5 = strlen(__s);\n    pcVar6 = __s + sVar5 + 1;\n  } while (*pcVar6 != '\0');" do (compound_statement "{\n    sVar5 = strlen(pcVar6);\n    __s = pcVar6 + sVar5 + 1;\n    pcVar6 = strstr(pcVar6,pcVar4);\n    if (pcVar6 != (char *)0x0) {\n      sVar5 = strlen(pcVar4);\n      if (pcVar6[sVar5] == '\0') {\n        piVar3[10] = (int)__s;\n      }\n      else {\n        if (pcVar6[sVar5] != '.') break;\n        piVar3[10] = (int)__s;\n      }\n      puVar1 = (undefined4 *)piVar3[0x1d];\n      goto joined_r0x00030f1b;\n    }\n    sVar5 = strlen(__s);\n    pcVar6 = __s + sVar5 + 1;\n  }" { (expression_statement "sVar5 = strlen(pcVar6);" (assignment_expression "sVar5 = strlen(pcVar6)" identifier = (call_expression "strlen(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier )))) ;) (expression_statement "__s = pcVar6 + sVar5 + 1;" (assignment_expression "__s = pcVar6 + sVar5 + 1" identifier = (binary_expression "pcVar6 + sVar5 + 1" (binary_expression "pcVar6 + sVar5" identifier + identifier) + number_literal)) ;) (expression_statement "pcVar6 = strstr(pcVar6,pcVar4);" (assignment_expression "pcVar6 = strstr(pcVar6,pcVar4)" identifier = (call_expression "strstr(pcVar6,pcVar4)" identifier (argument_list "(pcVar6,pcVar4)" ( identifier , identifier )))) ;) (if_statement "if (pcVar6 != (char *)0x0) {\n      sVar5 = strlen(pcVar4);\n      if (pcVar6[sVar5] == '\0') {\n        piVar3[10] = (int)__s;\n      }\n      else {\n        if (pcVar6[sVar5] != '.') break;\n        piVar3[10] = (int)__s;\n      }\n      puVar1 = (undefined4 *)piVar3[0x1d];\n      goto joined_r0x00030f1b;\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      sVar5 = strlen(pcVar4);\n      if (pcVar6[sVar5] == '\0') {\n        piVar3[10] = (int)__s;\n      }\n      else {\n        if (pcVar6[sVar5] != '.') break;\n        piVar3[10] = (int)__s;\n      }\n      puVar1 = (undefined4 *)piVar3[0x1d];\n      goto joined_r0x00030f1b;\n    }" { (expression_statement "sVar5 = strlen(pcVar4);" (assignment_expression "sVar5 = strlen(pcVar4)" identifier = (call_expression "strlen(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier )))) ;) (if_statement "if (pcVar6[sVar5] == '\0') {\n        piVar3[10] = (int)__s;\n      }\n      else {\n        if (pcVar6[sVar5] != '.') break;\n        piVar3[10] = (int)__s;\n      }" if (parenthesized_expression "(pcVar6[sVar5] == '\0')" ( (binary_expression "pcVar6[sVar5] == '\0'" (subscript_expression "pcVar6[sVar5]" identifier [ identifier ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        piVar3[10] = (int)__s;\n      }" { (expression_statement "piVar3[10] = (int)__s;" (assignment_expression "piVar3[10] = (int)__s" (subscript_expression "piVar3[10]" identifier [ number_literal ]) = (cast_expression "(int)__s" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n        if (pcVar6[sVar5] != '.') break;\n        piVar3[10] = (int)__s;\n      }" else (compound_statement "{\n        if (pcVar6[sVar5] != '.') break;\n        piVar3[10] = (int)__s;\n      }" { (if_statement "if (pcVar6[sVar5] != '.') break;" if (parenthesized_expression "(pcVar6[sVar5] != '.')" ( (binary_expression "pcVar6[sVar5] != '.'" (subscript_expression "pcVar6[sVar5]" identifier [ identifier ]) != (char_literal "'.'" ' character ')) )) (break_statement "break;" break ;)) (expression_statement "piVar3[10] = (int)__s;" (assignment_expression "piVar3[10] = (int)__s" (subscript_expression "piVar3[10]" identifier [ number_literal ]) = (cast_expression "(int)__s" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) (expression_statement "puVar1 = (undefined4 *)piVar3[0x1d];" (assignment_expression "puVar1 = (undefined4 *)piVar3[0x1d]" identifier = (cast_expression "(undefined4 *)piVar3[0x1d]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[0x1d]" identifier [ number_literal ]))) ;) (goto_statement "goto joined_r0x00030f1b;" goto statement_identifier ;) })) (expression_statement "sVar5 = strlen(__s);" (assignment_expression "sVar5 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "pcVar6 = __s + sVar5 + 1;" (assignment_expression "pcVar6 = __s + sVar5 + 1" identifier = (binary_expression "__s + sVar5 + 1" (binary_expression "__s + sVar5" identifier + identifier) + number_literal)) ;) }) while (parenthesized_expression "(*pcVar6 != '\0')" ( (binary_expression "*pcVar6 != '\0'" (pointer_expression "*pcVar6" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "puVar1 = (undefined4 *)piVar3[0x1d];" (assignment_expression "puVar1 = (undefined4 *)piVar3[0x1d]" identifier = (cast_expression "(undefined4 *)piVar3[0x1d]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[0x1d]" identifier [ number_literal ]))) ;) (labeled_statement "joined_r0x00030f1b:\n  do {\n    if (puVar1 == (undefined4 *)0x0) goto LAB_00030c9c;\n    iVar7 = strcmp((char *)(puVar1 + 2),pcVar4);\n    if (iVar7 == 0) {\n      piVar3[10] = puVar1[1];\n      goto LAB_00030c9c;\n    }\n    puVar1 = (undefined4 *)*puVar1;\n  } while( true );" statement_identifier : (do_statement "do {\n    if (puVar1 == (undefined4 *)0x0) goto LAB_00030c9c;\n    iVar7 = strcmp((char *)(puVar1 + 2),pcVar4);\n    if (iVar7 == 0) {\n      piVar3[10] = puVar1[1];\n      goto LAB_00030c9c;\n    }\n    puVar1 = (undefined4 *)*puVar1;\n  } while( true );" do (compound_statement "{\n    if (puVar1 == (undefined4 *)0x0) goto LAB_00030c9c;\n    iVar7 = strcmp((char *)(puVar1 + 2),pcVar4);\n    if (iVar7 == 0) {\n      piVar3[10] = puVar1[1];\n      goto LAB_00030c9c;\n    }\n    puVar1 = (undefined4 *)*puVar1;\n  }" { (if_statement "if (puVar1 == (undefined4 *)0x0) goto LAB_00030c9c;" if (parenthesized_expression "(puVar1 == (undefined4 *)0x0)" ( (binary_expression "puVar1 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030c9c;" goto statement_identifier ;)) (expression_statement "iVar7 = strcmp((char *)(puVar1 + 2),pcVar4);" (assignment_expression "iVar7 = strcmp((char *)(puVar1 + 2),pcVar4)" identifier = (call_expression "strcmp((char *)(puVar1 + 2),pcVar4)" identifier (argument_list "((char *)(puVar1 + 2),pcVar4)" ( (cast_expression "(char *)(puVar1 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 2)" ( (binary_expression "puVar1 + 2" identifier + number_literal) ))) , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n      piVar3[10] = puVar1[1];\n      goto LAB_00030c9c;\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      piVar3[10] = puVar1[1];\n      goto LAB_00030c9c;\n    }" { (expression_statement "piVar3[10] = puVar1[1];" (assignment_expression "piVar3[10] = puVar1[1]" (subscript_expression "piVar3[10]" identifier [ number_literal ]) = (subscript_expression "puVar1[1]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00030c9c;" goto statement_identifier ;) })) (expression_statement "puVar1 = (undefined4 *)*puVar1;" (assignment_expression "puVar1 = (undefined4 *)*puVar1" identifier = (cast_expression "(undefined4 *)*puVar1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier))) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) (labeled_statement "LAB_00030e0f:\n  lseek64(__fildes,0,0);" statement_identifier : (expression_statement "lseek64(__fildes,0,0);" (call_expression "lseek64(__fildes,0,0)" identifier (argument_list "(__fildes,0,0)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "piVar3[0x16] = -1;" (assignment_expression "piVar3[0x16] = -1" (subscript_expression "piVar3[0x16]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar3[0x17] = -1;" (assignment_expression "piVar3[0x17] = -1" (subscript_expression "piVar3[0x17]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto joined_r0x00030cc8;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (field_expression (field_expression IDENT . field_identifier) . field_identifier)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (field_expression (field_expression IDENT . field_identifier) . field_identifier)) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT < LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;)) })) (expression_statement (call_expression IDENT (argument_list ( LIT , (cast_expression ( (type_descriptor TYPE) ) LIT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 : (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 (subscript_expression IDENT [ LIT ]) = LIT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (do_statement do (compound_statement { (expression_statement (assignment_expression (field_expression (field_expression IDENT . field_identifier) . field_identifier) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (field_expression (field_expression IDENT . field_identifier) . field_identifier) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (unary_expression - IDENT) < (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == (field_expression (field_expression IDENT . field_identifier) . field_identifier)) && (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < IDENT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < IDENT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) != (call_expression IDENT (argument_list ( IDENT , IDENT )))) )) != (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) < LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT == IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) }))) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) != (call_expression IDENT (argument_list ( (binary_expression IDENT - IDENT) , (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) )))) )) == (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) ))) < LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) != (call_expression IDENT (argument_list ( (binary_expression IDENT - IDENT) , IDENT )))) )) != (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - IDENT) ))) < LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < IDENT) )))) )) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) != (char_literal ' character ')) )) (break_statement break ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }) while (parenthesized_expression ( BOOL )) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "void __regparm3 FUN_00030b39(char *param_1,stat64 *param_2)\n\n{\n  char *__s;\n  undefined4 *puVar1;\n  int iVar2;\n  int *piVar3;\n  char *pcVar4;\n  int __fildes;\n  size_t sVar5;\n  char *pcVar6;\n  int iVar7;\n  uint uVar8;\n  stat64 *psVar9;\n  stat64 *extraout_ECX;\n  stat64 *psVar10;\n  uint uVar11;\n  int iVar12;\n  stat64 *psVar13;\n  int in_GS_OFFSET;\n  __off64_t _Var14;\n  stat64 *local_a0;\n  stat64 local_84;\n  undefined4 local_20;\n  \n  piVar3 = DAT_000d1700;\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (*(char *)((int)DAT_000d1700 + 5) == '\0') goto LAB_00030bfa;\n  pcVar4 = (char *)FUN_00019fd7("%s.gz",param_1);\n  __fildes = open64(pcVar4,0);\n  free(pcVar4);\n  if (__fildes == -1) goto LAB_00030bf6;\n  __fxstat64(3,__fildes,&local_84);\n  piVar3[0x14] = (int)local_84.st_size;\n  piVar3[0x15] = local_84.st_size._4_4_;\n  piVar3[3] = local_84.st_mtim.tv_sec;\n  while (local_a0 = param_2, __fildes < 0) {\n    if (param_2 == (stat64 *)0x2) goto LAB_00030d9e;\n    *(undefined1 *)((int)piVar3 + 5) = 0;\n    FUN_00030f43();\n    FUN_00030829();\nLAB_00030bf6:\n    *(undefined1 *)((int)piVar3 + 5) = 0;\nLAB_00030bfa:\n    __fildes = open64(param_1,0);\n  }\n  signal(0xd,(__sighandler_t)0x1);\n  pcVar4 = strrchr(param_1,0x2e);\n  if (pcVar4 == (char *)0x0) {\nLAB_00030c9c:\n    if (param_2 != (stat64 *)0x2) goto LAB_00030da3;\nLAB_00030ca7:\n    piVar3[0x16] = -1;\n    piVar3[0x17] = -1;\n    piVar3[0x1a] = -1;\n    piVar3[0x1b] = 0x7fffffff;\njoined_r0x00030cc8:\n    if (((uint)local_a0 & 1) != 0) {\n      FUN_00030f43();\n    }\n    do {\n      local_84.st_dev._0_4_ = piVar3[0x16];\n      local_84.st_dev._4_4_ = piVar3[0x17];\n      uVar11 = piVar3[0x1a];\n      iVar7 = piVar3[0x1b];\n      local_a0 = &local_84;\n      do {\n        if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {\n          uVar11 = 0x7fff0000;\n        }\n        uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);\n        if ((int)uVar8 < 0) {\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }\n        uVar11 = piVar3[0x1a] - uVar8;\n        iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);\n        piVar3[0x1a] = uVar11;\n        piVar3[0x1b] = iVar7;\n        if (uVar8 == 0) goto LAB_00030d9e;\n      } while (iVar7 != 0 || uVar11 != 0);\n      FUN_00030829();\n      psVar13 = (stat64 *)0x0;\n      psVar10 = extraout_ECX;\n      do {\n        iVar12 = piVar3[0x1a] - (int)psVar10;\n        iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);\n        piVar3[0x1a] = iVar12;\n        piVar3[0x1b] = iVar7;\n        if (iVar7 == 0 && iVar12 == 0) break;\nLAB_00030d32:\n        local_a0 = (stat64 *)FUN_0001ac64();\n        if ((int)local_a0 < 1) break;\n        uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);\n        iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);\n        if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0) {\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }\n        psVar9 = (stat64 *)FUN_0001ac14();\n        psVar10 = local_a0;\n        psVar13 = local_a0;\n      } while (local_a0 == psVar9);\n      if ((int)local_a0 < 0) {\nLAB_00030d87:\n        if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }\n      }\nLAB_00030d9e:\n      FUN_00030829();\nLAB_00030da3:\n      if (*(char *)((int)piVar3 + 5) != '\0') goto LAB_00030ca7;\n      iVar7 = piVar3[0x17];\n      piVar3[0x1a] = -1;\n      piVar3[0x1b] = 0x7fffffff;\n      if (iVar7 < 0) goto joined_r0x00030cc8;\n      uVar11 = piVar3[0x18];\n      iVar12 = piVar3[0x19];\n      uVar8 = piVar3[0x14];\n      iVar2 = piVar3[0x15];\n      if ((iVar12 == 0 && uVar11 == 0) ||\n         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)) {\n        uVar11 = uVar8 - 1;\n        iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);\n        piVar3[0x18] = uVar11;\n        piVar3[0x19] = iVar12;\n      }\n      uVar11 = (uint)(uVar11 < (uint)piVar3[0x16]);\n      if ((SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=\n          (int)((iVar12 - iVar7) - uVar11) < 0) goto LAB_00030e0f;\n      _Var14 = lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0);\n      uVar11 = piVar3[0x16];\n      if (_Var14 != *(longlong *)(piVar3 + 0x16)) goto LAB_00030e0f;\n      uVar8 = piVar3[0x18] - uVar11;\n      piVar3[0x1a] = uVar8 + 1;\n      piVar3[0x1b] = ((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +\n                     (uint)(0xfffffffe < uVar8);\n      FUN_00030f43();\n    } while( true );\n  }\n  pcVar6 = ".txt.h.c.cc.cpp";\n  do {\n    sVar5 = strlen(pcVar6);\n    __s = pcVar6 + sVar5 + 1;\n    pcVar6 = strstr(pcVar6,pcVar4);\n    if (pcVar6 != (char *)0x0) {\n      sVar5 = strlen(pcVar4);\n      if (pcVar6[sVar5] == '\0') {\n        piVar3[10] = (int)__s;\n      }\n      else {\n        if (pcVar6[sVar5] != '.') break;\n        piVar3[10] = (int)__s;\n      }\n      puVar1 = (undefined4 *)piVar3[0x1d];\n      goto joined_r0x00030f1b;\n    }\n    sVar5 = strlen(__s);\n    pcVar6 = __s + sVar5 + 1;\n  } while (*pcVar6 != '\0');\n  puVar1 = (undefined4 *)piVar3[0x1d];\njoined_r0x00030f1b:\n  do {\n    if (puVar1 == (undefined4 *)0x0) goto LAB_00030c9c;\n    iVar7 = strcmp((char *)(puVar1 + 2),pcVar4);\n    if (iVar7 == 0) {\n      piVar3[10] = puVar1[1];\n      goto LAB_00030c9c;\n    }\n    puVar1 = (undefined4 *)*puVar1;\n  } while( true );\nLAB_00030e0f:\n  lseek64(__fildes,0,0);\n  piVar3[0x16] = -1;\n  piVar3[0x17] = -1;\n  goto joined_r0x00030cc8;\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00030b39(char *param_1,stat64 *param_2)" (identifier "FUN_00030b39") (parameter_list "(char *param_1,stat64 *param_2)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "stat64 *param_2" (type_identifier "stat64") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  char *__s;\n  undefined4 *puVar1;\n  int iVar2;\n  int *piVar3;\n  char *pcVar4;\n  int __fildes;\n  size_t sVar5;\n  char *pcVar6;\n  int iVar7;\n  uint uVar8;\n  stat64 *psVar9;\n  stat64 *extraout_ECX;\n  stat64 *psVar10;\n  uint uVar11;\n  int iVar12;\n  stat64 *psVar13;\n  int in_GS_OFFSET;\n  __off64_t _Var14;\n  stat64 *local_a0;\n  stat64 local_84;\n  undefined4 local_20;\n  \n  piVar3 = DAT_000d1700;\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (*(char *)((int)DAT_000d1700 + 5) == '\0') goto LAB_00030bfa;\n  pcVar4 = (char *)FUN_00019fd7("%s.gz",param_1);\n  __fildes = open64(pcVar4,0);\n  free(pcVar4);\n  if (__fildes == -1) goto LAB_00030bf6;\n  __fxstat64(3,__fildes,&local_84);\n  piVar3[0x14] = (int)local_84.st_size;\n  piVar3[0x15] = local_84.st_size._4_4_;\n  piVar3[3] = local_84.st_mtim.tv_sec;\n  while (local_a0 = param_2, __fildes < 0) {\n    if (param_2 == (stat64 *)0x2) goto LAB_00030d9e;\n    *(undefined1 *)((int)piVar3 + 5) = 0;\n    FUN_00030f43();\n    FUN_00030829();\nLAB_00030bf6:\n    *(undefined1 *)((int)piVar3 + 5) = 0;\nLAB_00030bfa:\n    __fildes = open64(param_1,0);\n  }\n  signal(0xd,(__sighandler_t)0x1);\n  pcVar4 = strrchr(param_1,0x2e);\n  if (pcVar4 == (char *)0x0) {\nLAB_00030c9c:\n    if (param_2 != (stat64 *)0x2) goto LAB_00030da3;\nLAB_00030ca7:\n    piVar3[0x16] = -1;\n    piVar3[0x17] = -1;\n    piVar3[0x1a] = -1;\n    piVar3[0x1b] = 0x7fffffff;\njoined_r0x00030cc8:\n    if (((uint)local_a0 & 1) != 0) {\n      FUN_00030f43();\n    }\n    do {\n      local_84.st_dev._0_4_ = piVar3[0x16];\n      local_84.st_dev._4_4_ = piVar3[0x17];\n      uVar11 = piVar3[0x1a];\n      iVar7 = piVar3[0x1b];\n      local_a0 = &local_84;\n      do {\n        if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {\n          uVar11 = 0x7fff0000;\n        }\n        uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);\n        if ((int)uVar8 < 0) {\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }\n        uVar11 = piVar3[0x1a] - uVar8;\n        iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);\n        piVar3[0x1a] = uVar11;\n        piVar3[0x1b] = iVar7;\n        if (uVar8 == 0) goto LAB_00030d9e;\n      } while (iVar7 != 0 || uVar11 != 0);\n      FUN_00030829();\n      psVar13 = (stat64 *)0x0;\n      psVar10 = extraout_ECX;\n      do {\n        iVar12 = piVar3[0x1a] - (int)psVar10;\n        iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);\n        piVar3[0x1a] = iVar12;\n        piVar3[0x1b] = iVar7;\n        if (iVar7 == 0 && iVar12 == 0) break;\nLAB_00030d32:\n        local_a0 = (stat64 *)FUN_0001ac64();\n        if ((int)local_a0 < 1) break;\n        uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);\n        iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);\n        if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0) {\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }\n        psVar9 = (stat64 *)FUN_0001ac14();\n        psVar10 = local_a0;\n        psVar13 = local_a0;\n      } while (local_a0 == psVar9);\n      if ((int)local_a0 < 0) {\nLAB_00030d87:\n        if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }\n      }\nLAB_00030d9e:\n      FUN_00030829();\nLAB_00030da3:\n      if (*(char *)((int)piVar3 + 5) != '\0') goto LAB_00030ca7;\n      iVar7 = piVar3[0x17];\n      piVar3[0x1a] = -1;\n      piVar3[0x1b] = 0x7fffffff;\n      if (iVar7 < 0) goto joined_r0x00030cc8;\n      uVar11 = piVar3[0x18];\n      iVar12 = piVar3[0x19];\n      uVar8 = piVar3[0x14];\n      iVar2 = piVar3[0x15];\n      if ((iVar12 == 0 && uVar11 == 0) ||\n         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)) {\n        uVar11 = uVar8 - 1;\n        iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);\n        piVar3[0x18] = uVar11;\n        piVar3[0x19] = iVar12;\n      }\n      uVar11 = (uint)(uVar11 < (uint)piVar3[0x16]);\n      if ((SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=\n          (int)((iVar12 - iVar7) - uVar11) < 0) goto LAB_00030e0f;\n      _Var14 = lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0);\n      uVar11 = piVar3[0x16];\n      if (_Var14 != *(longlong *)(piVar3 + 0x16)) goto LAB_00030e0f;\n      uVar8 = piVar3[0x18] - uVar11;\n      piVar3[0x1a] = uVar8 + 1;\n      piVar3[0x1b] = ((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +\n                     (uint)(0xfffffffe < uVar8);\n      FUN_00030f43();\n    } while( true );\n  }\n  pcVar6 = ".txt.h.c.cc.cpp";\n  do {\n    sVar5 = strlen(pcVar6);\n    __s = pcVar6 + sVar5 + 1;\n    pcVar6 = strstr(pcVar6,pcVar4);\n    if (pcVar6 != (char *)0x0) {\n      sVar5 = strlen(pcVar4);\n      if (pcVar6[sVar5] == '\0') {\n        piVar3[10] = (int)__s;\n      }\n      else {\n        if (pcVar6[sVar5] != '.') break;\n        piVar3[10] = (int)__s;\n      }\n      puVar1 = (undefined4 *)piVar3[0x1d];\n      goto joined_r0x00030f1b;\n    }\n    sVar5 = strlen(__s);\n    pcVar6 = __s + sVar5 + 1;\n  } while (*pcVar6 != '\0');\n  puVar1 = (undefined4 *)piVar3[0x1d];\njoined_r0x00030f1b:\n  do {\n    if (puVar1 == (undefined4 *)0x0) goto LAB_00030c9c;\n    iVar7 = strcmp((char *)(puVar1 + 2),pcVar4);\n    if (iVar7 == 0) {\n      piVar3[10] = puVar1[1];\n      goto LAB_00030c9c;\n    }\n    puVar1 = (undefined4 *)*puVar1;\n  } while( true );\nLAB_00030e0f:\n  lseek64(__fildes,0,0);\n  piVar3[0x16] = -1;\n  piVar3[0x17] = -1;\n  goto joined_r0x00030cc8;\n}" ({ "{") (declaration "char *__s;" (primitive_type "char") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "char *pcVar4;" (primitive_type "char") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "int __fildes;" (primitive_type "int") (identifier "__fildes") (; ";")) (declaration "size_t sVar5;" (primitive_type "size_t") (identifier "sVar5") (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "stat64 *psVar9;" (type_identifier "stat64") (pointer_declarator "*psVar9" (* "*") (identifier "psVar9")) (; ";")) (declaration "stat64 *extraout_ECX;" (type_identifier "stat64") (pointer_declarator "*extraout_ECX" (* "*") (identifier "extraout_ECX")) (; ";")) (declaration "stat64 *psVar10;" (type_identifier "stat64") (pointer_declarator "*psVar10" (* "*") (identifier "psVar10")) (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "stat64 *psVar13;" (type_identifier "stat64") (pointer_declarator "*psVar13" (* "*") (identifier "psVar13")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "__off64_t _Var14;" (type_identifier "__off64_t") (identifier "_Var14") (; ";")) (declaration "stat64 *local_a0;" (type_identifier "stat64") (pointer_declarator "*local_a0" (* "*") (identifier "local_a0")) (; ";")) (declaration "stat64 local_84;" (type_identifier "stat64") (identifier "local_84") (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (expression_statement "piVar3 = DAT_000d1700;" (assignment_expression "piVar3 = DAT_000d1700" (identifier "piVar3") (= "=") (identifier "DAT_000d1700")) (; ";")) (expression_statement "local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(undefined4 *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(undefined4 *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (*(char *)((int)DAT_000d1700 + 5) == '\0') goto LAB_00030bfa;" (if "if") (parenthesized_expression "(*(char *)((int)DAT_000d1700 + 5) == '\0')" (( "(") (binary_expression "*(char *)((int)DAT_000d1700 + 5) == '\0'" (pointer_expression "*(char *)((int)DAT_000d1700 + 5)" (* "*") (cast_expression "(char *)((int)DAT_000d1700 + 5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)DAT_000d1700 + 5)" (( "(") (binary_expression "(int)DAT_000d1700 + 5" (cast_expression "(int)DAT_000d1700" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_000d1700")) (+ "+") (number_literal "5")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00030bfa;" (goto "goto") (statement_identifier "LAB_00030bfa") (; ";"))) (expression_statement "pcVar4 = (char *)FUN_00019fd7("%s.gz",param_1);" (assignment_expression "pcVar4 = (char *)FUN_00019fd7("%s.gz",param_1)" (identifier "pcVar4") (= "=") (cast_expression "(char *)FUN_00019fd7("%s.gz",param_1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00019fd7("%s.gz",param_1)" (identifier "FUN_00019fd7") (argument_list "("%s.gz",param_1)" (( "(") (string_literal ""%s.gz"" (" """) (string_content "%s.gz") (" """)) (, ",") (identifier "param_1") () ")"))))) (; ";")) (expression_statement "__fildes = open64(pcVar4,0);" (assignment_expression "__fildes = open64(pcVar4,0)" (identifier "__fildes") (= "=") (call_expression "open64(pcVar4,0)" (identifier "open64") (argument_list "(pcVar4,0)" (( "(") (identifier "pcVar4") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "free(pcVar4);" (call_expression "free(pcVar4)" (identifier "free") (argument_list "(pcVar4)" (( "(") (identifier "pcVar4") () ")"))) (; ";")) (if_statement "if (__fildes == -1) goto LAB_00030bf6;" (if "if") (parenthesized_expression "(__fildes == -1)" (( "(") (binary_expression "__fildes == -1" (identifier "__fildes") (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_00030bf6;" (goto "goto") (statement_identifier "LAB_00030bf6") (; ";"))) (expression_statement "__fxstat64(3,__fildes,&local_84);" (call_expression "__fxstat64(3,__fildes,&local_84)" (identifier "__fxstat64") (argument_list "(3,__fildes,&local_84)" (( "(") (number_literal "3") (, ",") (identifier "__fildes") (, ",") (pointer_expression "&local_84" (& "&") (identifier "local_84")) () ")"))) (; ";")) (expression_statement "piVar3[0x14] = (int)local_84.st_size;" (assignment_expression "piVar3[0x14] = (int)local_84.st_size" (subscript_expression "piVar3[0x14]" (identifier "piVar3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (cast_expression "(int)local_84.st_size" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "local_84.st_size" (identifier "local_84") (. ".") (field_identifier "st_size")))) (; ";")) (expression_statement "piVar3[0x15] = local_84.st_size._4_4_;" (assignment_expression "piVar3[0x15] = local_84.st_size._4_4_" (subscript_expression "piVar3[0x15]" (identifier "piVar3") ([ "[") (number_literal "0x15") (] "]")) (= "=") (field_expression "local_84.st_size._4_4_" (field_expression "local_84.st_size" (identifier "local_84") (. ".") (field_identifier "st_size")) (. ".") (field_identifier "_4_4_"))) (; ";")) (expression_statement "piVar3[3] = local_84.st_mtim.tv_sec;" (assignment_expression "piVar3[3] = local_84.st_mtim.tv_sec" (subscript_expression "piVar3[3]" (identifier "piVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (field_expression "local_84.st_mtim.tv_sec" (field_expression "local_84.st_mtim" (identifier "local_84") (. ".") (field_identifier "st_mtim")) (. ".") (field_identifier "tv_sec"))) (; ";")) (while_statement "while (local_a0 = param_2, __fildes < 0) {\n    if (param_2 == (stat64 *)0x2) goto LAB_00030d9e;\n    *(undefined1 *)((int)piVar3 + 5) = 0;\n    FUN_00030f43();\n    FUN_00030829();\nLAB_00030bf6:\n    *(undefined1 *)((int)piVar3 + 5) = 0;\nLAB_00030bfa:\n    __fildes = open64(param_1,0);\n  }" (while "while") (parenthesized_expression "(local_a0 = param_2, __fildes < 0)" (( "(") (comma_expression "local_a0 = param_2, __fildes < 0" (assignment_expression "local_a0 = param_2" (identifier "local_a0") (= "=") (identifier "param_2")) (, ",") (binary_expression "__fildes < 0" (identifier "__fildes") (< "<") (number_literal "0"))) () ")")) (compound_statement "{\n    if (param_2 == (stat64 *)0x2) goto LAB_00030d9e;\n    *(undefined1 *)((int)piVar3 + 5) = 0;\n    FUN_00030f43();\n    FUN_00030829();\nLAB_00030bf6:\n    *(undefined1 *)((int)piVar3 + 5) = 0;\nLAB_00030bfa:\n    __fildes = open64(param_1,0);\n  }" ({ "{") (if_statement "if (param_2 == (stat64 *)0x2) goto LAB_00030d9e;" (if "if") (parenthesized_expression "(param_2 == (stat64 *)0x2)" (( "(") (binary_expression "param_2 == (stat64 *)0x2" (identifier "param_2") (== "==") (cast_expression "(stat64 *)0x2" (( "(") (type_descriptor "stat64 *" (type_identifier "stat64") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (goto_statement "goto LAB_00030d9e;" (goto "goto") (statement_identifier "LAB_00030d9e") (; ";"))) (expression_statement "*(undefined1 *)((int)piVar3 + 5) = 0;" (assignment_expression "*(undefined1 *)((int)piVar3 + 5) = 0" (pointer_expression "*(undefined1 *)((int)piVar3 + 5)" (* "*") (cast_expression "(undefined1 *)((int)piVar3 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar3 + 5)" (( "(") (binary_expression "(int)piVar3 + 5" (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3")) (+ "+") (number_literal "5")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00030f43();" (call_expression "FUN_00030f43()" (identifier "FUN_00030f43") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00030829();" (call_expression "FUN_00030829()" (identifier "FUN_00030829") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_00030bf6:\n    *(undefined1 *)((int)piVar3 + 5) = 0;" (statement_identifier "LAB_00030bf6") (: ":") (expression_statement "*(undefined1 *)((int)piVar3 + 5) = 0;" (assignment_expression "*(undefined1 *)((int)piVar3 + 5) = 0" (pointer_expression "*(undefined1 *)((int)piVar3 + 5)" (* "*") (cast_expression "(undefined1 *)((int)piVar3 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar3 + 5)" (( "(") (binary_expression "(int)piVar3 + 5" (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3")) (+ "+") (number_literal "5")) () ")")))) (= "=") (number_literal "0")) (; ";"))) (labeled_statement "LAB_00030bfa:\n    __fildes = open64(param_1,0);" (statement_identifier "LAB_00030bfa") (: ":") (expression_statement "__fildes = open64(param_1,0);" (assignment_expression "__fildes = open64(param_1,0)" (identifier "__fildes") (= "=") (call_expression "open64(param_1,0)" (identifier "open64") (argument_list "(param_1,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") () ")")))) (; ";"))) (} "}"))) (expression_statement "signal(0xd,(__sighandler_t)0x1);" (call_expression "signal(0xd,(__sighandler_t)0x1)" (identifier "signal") (argument_list "(0xd,(__sighandler_t)0x1)" (( "(") (number_literal "0xd") (, ",") (cast_expression "(__sighandler_t)0x1" (( "(") (type_descriptor "__sighandler_t" (type_identifier "__sighandler_t")) () ")") (number_literal "0x1")) () ")"))) (; ";")) (expression_statement "pcVar4 = strrchr(param_1,0x2e);" (assignment_expression "pcVar4 = strrchr(param_1,0x2e)" (identifier "pcVar4") (= "=") (call_expression "strrchr(param_1,0x2e)" (identifier "strrchr") (argument_list "(param_1,0x2e)" (( "(") (identifier "param_1") (, ",") (number_literal "0x2e") () ")")))) (; ";")) (if_statement "if (pcVar4 == (char *)0x0) {\nLAB_00030c9c:\n    if (param_2 != (stat64 *)0x2) goto LAB_00030da3;\nLAB_00030ca7:\n    piVar3[0x16] = -1;\n    piVar3[0x17] = -1;\n    piVar3[0x1a] = -1;\n    piVar3[0x1b] = 0x7fffffff;\njoined_r0x00030cc8:\n    if (((uint)local_a0 & 1) != 0) {\n      FUN_00030f43();\n    }\n    do {\n      local_84.st_dev._0_4_ = piVar3[0x16];\n      local_84.st_dev._4_4_ = piVar3[0x17];\n      uVar11 = piVar3[0x1a];\n      iVar7 = piVar3[0x1b];\n      local_a0 = &local_84;\n      do {\n        if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {\n          uVar11 = 0x7fff0000;\n        }\n        uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);\n        if ((int)uVar8 < 0) {\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }\n        uVar11 = piVar3[0x1a] - uVar8;\n        iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);\n        piVar3[0x1a] = uVar11;\n        piVar3[0x1b] = iVar7;\n        if (uVar8 == 0) goto LAB_00030d9e;\n      } while (iVar7 != 0 || uVar11 != 0);\n      FUN_00030829();\n      psVar13 = (stat64 *)0x0;\n      psVar10 = extraout_ECX;\n      do {\n        iVar12 = piVar3[0x1a] - (int)psVar10;\n        iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);\n        piVar3[0x1a] = iVar12;\n        piVar3[0x1b] = iVar7;\n        if (iVar7 == 0 && iVar12 == 0) break;\nLAB_00030d32:\n        local_a0 = (stat64 *)FUN_0001ac64();\n        if ((int)local_a0 < 1) break;\n        uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);\n        iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);\n        if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0) {\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }\n        psVar9 = (stat64 *)FUN_0001ac14();\n        psVar10 = local_a0;\n        psVar13 = local_a0;\n      } while (local_a0 == psVar9);\n      if ((int)local_a0 < 0) {\nLAB_00030d87:\n        if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }\n      }\nLAB_00030d9e:\n      FUN_00030829();\nLAB_00030da3:\n      if (*(char *)((int)piVar3 + 5) != '\0') goto LAB_00030ca7;\n      iVar7 = piVar3[0x17];\n      piVar3[0x1a] = -1;\n      piVar3[0x1b] = 0x7fffffff;\n      if (iVar7 < 0) goto joined_r0x00030cc8;\n      uVar11 = piVar3[0x18];\n      iVar12 = piVar3[0x19];\n      uVar8 = piVar3[0x14];\n      iVar2 = piVar3[0x15];\n      if ((iVar12 == 0 && uVar11 == 0) ||\n         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)) {\n        uVar11 = uVar8 - 1;\n        iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);\n        piVar3[0x18] = uVar11;\n        piVar3[0x19] = iVar12;\n      }\n      uVar11 = (uint)(uVar11 < (uint)piVar3[0x16]);\n      if ((SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=\n          (int)((iVar12 - iVar7) - uVar11) < 0) goto LAB_00030e0f;\n      _Var14 = lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0);\n      uVar11 = piVar3[0x16];\n      if (_Var14 != *(longlong *)(piVar3 + 0x16)) goto LAB_00030e0f;\n      uVar8 = piVar3[0x18] - uVar11;\n      piVar3[0x1a] = uVar8 + 1;\n      piVar3[0x1b] = ((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +\n                     (uint)(0xfffffffe < uVar8);\n      FUN_00030f43();\n    } while( true );\n  }" (if "if") (parenthesized_expression "(pcVar4 == (char *)0x0)" (( "(") (binary_expression "pcVar4 == (char *)0x0" (identifier "pcVar4") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00030c9c:\n    if (param_2 != (stat64 *)0x2) goto LAB_00030da3;\nLAB_00030ca7:\n    piVar3[0x16] = -1;\n    piVar3[0x17] = -1;\n    piVar3[0x1a] = -1;\n    piVar3[0x1b] = 0x7fffffff;\njoined_r0x00030cc8:\n    if (((uint)local_a0 & 1) != 0) {\n      FUN_00030f43();\n    }\n    do {\n      local_84.st_dev._0_4_ = piVar3[0x16];\n      local_84.st_dev._4_4_ = piVar3[0x17];\n      uVar11 = piVar3[0x1a];\n      iVar7 = piVar3[0x1b];\n      local_a0 = &local_84;\n      do {\n        if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {\n          uVar11 = 0x7fff0000;\n        }\n        uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);\n        if ((int)uVar8 < 0) {\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }\n        uVar11 = piVar3[0x1a] - uVar8;\n        iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);\n        piVar3[0x1a] = uVar11;\n        piVar3[0x1b] = iVar7;\n        if (uVar8 == 0) goto LAB_00030d9e;\n      } while (iVar7 != 0 || uVar11 != 0);\n      FUN_00030829();\n      psVar13 = (stat64 *)0x0;\n      psVar10 = extraout_ECX;\n      do {\n        iVar12 = piVar3[0x1a] - (int)psVar10;\n        iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);\n        piVar3[0x1a] = iVar12;\n        piVar3[0x1b] = iVar7;\n        if (iVar7 == 0 && iVar12 == 0) break;\nLAB_00030d32:\n        local_a0 = (stat64 *)FUN_0001ac64();\n        if ((int)local_a0 < 1) break;\n        uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);\n        iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);\n        if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0) {\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }\n        psVar9 = (stat64 *)FUN_0001ac14();\n        psVar10 = local_a0;\n        psVar13 = local_a0;\n      } while (local_a0 == psVar9);\n      if ((int)local_a0 < 0) {\nLAB_00030d87:\n        if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }\n      }\nLAB_00030d9e:\n      FUN_00030829();\nLAB_00030da3:\n      if (*(char *)((int)piVar3 + 5) != '\0') goto LAB_00030ca7;\n      iVar7 = piVar3[0x17];\n      piVar3[0x1a] = -1;\n      piVar3[0x1b] = 0x7fffffff;\n      if (iVar7 < 0) goto joined_r0x00030cc8;\n      uVar11 = piVar3[0x18];\n      iVar12 = piVar3[0x19];\n      uVar8 = piVar3[0x14];\n      iVar2 = piVar3[0x15];\n      if ((iVar12 == 0 && uVar11 == 0) ||\n         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)) {\n        uVar11 = uVar8 - 1;\n        iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);\n        piVar3[0x18] = uVar11;\n        piVar3[0x19] = iVar12;\n      }\n      uVar11 = (uint)(uVar11 < (uint)piVar3[0x16]);\n      if ((SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=\n          (int)((iVar12 - iVar7) - uVar11) < 0) goto LAB_00030e0f;\n      _Var14 = lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0);\n      uVar11 = piVar3[0x16];\n      if (_Var14 != *(longlong *)(piVar3 + 0x16)) goto LAB_00030e0f;\n      uVar8 = piVar3[0x18] - uVar11;\n      piVar3[0x1a] = uVar8 + 1;\n      piVar3[0x1b] = ((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +\n                     (uint)(0xfffffffe < uVar8);\n      FUN_00030f43();\n    } while( true );\n  }" ({ "{") (labeled_statement "LAB_00030c9c:\n    if (param_2 != (stat64 *)0x2) goto LAB_00030da3;" (statement_identifier "LAB_00030c9c") (: ":") (if_statement "if (param_2 != (stat64 *)0x2) goto LAB_00030da3;" (if "if") (parenthesized_expression "(param_2 != (stat64 *)0x2)" (( "(") (binary_expression "param_2 != (stat64 *)0x2" (identifier "param_2") (!= "!=") (cast_expression "(stat64 *)0x2" (( "(") (type_descriptor "stat64 *" (type_identifier "stat64") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (goto_statement "goto LAB_00030da3;" (goto "goto") (statement_identifier "LAB_00030da3") (; ";")))) (labeled_statement "LAB_00030ca7:\n    piVar3[0x16] = -1;" (statement_identifier "LAB_00030ca7") (: ":") (expression_statement "piVar3[0x16] = -1;" (assignment_expression "piVar3[0x16] = -1" (subscript_expression "piVar3[0x16]" (identifier "piVar3") ([ "[") (number_literal "0x16") (] "]")) (= "=") (number_literal "-1")) (; ";"))) (expression_statement "piVar3[0x17] = -1;" (assignment_expression "piVar3[0x17] = -1" (subscript_expression "piVar3[0x17]" (identifier "piVar3") ([ "[") (number_literal "0x17") (] "]")) (= "=") (number_literal "-1")) (; ";")) (expression_statement "piVar3[0x1a] = -1;" (assignment_expression "piVar3[0x1a] = -1" (subscript_expression "piVar3[0x1a]" (identifier "piVar3") ([ "[") (number_literal "0x1a") (] "]")) (= "=") (number_literal "-1")) (; ";")) (expression_statement "piVar3[0x1b] = 0x7fffffff;" (assignment_expression "piVar3[0x1b] = 0x7fffffff" (subscript_expression "piVar3[0x1b]" (identifier "piVar3") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (number_literal "0x7fffffff")) (; ";")) (labeled_statement "joined_r0x00030cc8:\n    if (((uint)local_a0 & 1) != 0) {\n      FUN_00030f43();\n    }" (statement_identifier "joined_r0x00030cc8") (: ":") (if_statement "if (((uint)local_a0 & 1) != 0) {\n      FUN_00030f43();\n    }" (if "if") (parenthesized_expression "(((uint)local_a0 & 1) != 0)" (( "(") (binary_expression "((uint)local_a0 & 1) != 0" (parenthesized_expression "((uint)local_a0 & 1)" (( "(") (binary_expression "(uint)local_a0 & 1" (cast_expression "(uint)local_a0" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_a0")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00030f43();\n    }" ({ "{") (expression_statement "FUN_00030f43();" (call_expression "FUN_00030f43()" (identifier "FUN_00030f43") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (do_statement "do {\n      local_84.st_dev._0_4_ = piVar3[0x16];\n      local_84.st_dev._4_4_ = piVar3[0x17];\n      uVar11 = piVar3[0x1a];\n      iVar7 = piVar3[0x1b];\n      local_a0 = &local_84;\n      do {\n        if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {\n          uVar11 = 0x7fff0000;\n        }\n        uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);\n        if ((int)uVar8 < 0) {\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }\n        uVar11 = piVar3[0x1a] - uVar8;\n        iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);\n        piVar3[0x1a] = uVar11;\n        piVar3[0x1b] = iVar7;\n        if (uVar8 == 0) goto LAB_00030d9e;\n      } while (iVar7 != 0 || uVar11 != 0);\n      FUN_00030829();\n      psVar13 = (stat64 *)0x0;\n      psVar10 = extraout_ECX;\n      do {\n        iVar12 = piVar3[0x1a] - (int)psVar10;\n        iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);\n        piVar3[0x1a] = iVar12;\n        piVar3[0x1b] = iVar7;\n        if (iVar7 == 0 && iVar12 == 0) break;\nLAB_00030d32:\n        local_a0 = (stat64 *)FUN_0001ac64();\n        if ((int)local_a0 < 1) break;\n        uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);\n        iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);\n        if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0) {\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }\n        psVar9 = (stat64 *)FUN_0001ac14();\n        psVar10 = local_a0;\n        psVar13 = local_a0;\n      } while (local_a0 == psVar9);\n      if ((int)local_a0 < 0) {\nLAB_00030d87:\n        if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }\n      }\nLAB_00030d9e:\n      FUN_00030829();\nLAB_00030da3:\n      if (*(char *)((int)piVar3 + 5) != '\0') goto LAB_00030ca7;\n      iVar7 = piVar3[0x17];\n      piVar3[0x1a] = -1;\n      piVar3[0x1b] = 0x7fffffff;\n      if (iVar7 < 0) goto joined_r0x00030cc8;\n      uVar11 = piVar3[0x18];\n      iVar12 = piVar3[0x19];\n      uVar8 = piVar3[0x14];\n      iVar2 = piVar3[0x15];\n      if ((iVar12 == 0 && uVar11 == 0) ||\n         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)) {\n        uVar11 = uVar8 - 1;\n        iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);\n        piVar3[0x18] = uVar11;\n        piVar3[0x19] = iVar12;\n      }\n      uVar11 = (uint)(uVar11 < (uint)piVar3[0x16]);\n      if ((SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=\n          (int)((iVar12 - iVar7) - uVar11) < 0) goto LAB_00030e0f;\n      _Var14 = lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0);\n      uVar11 = piVar3[0x16];\n      if (_Var14 != *(longlong *)(piVar3 + 0x16)) goto LAB_00030e0f;\n      uVar8 = piVar3[0x18] - uVar11;\n      piVar3[0x1a] = uVar8 + 1;\n      piVar3[0x1b] = ((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +\n                     (uint)(0xfffffffe < uVar8);\n      FUN_00030f43();\n    } while( true );" (do "do") (compound_statement "{\n      local_84.st_dev._0_4_ = piVar3[0x16];\n      local_84.st_dev._4_4_ = piVar3[0x17];\n      uVar11 = piVar3[0x1a];\n      iVar7 = piVar3[0x1b];\n      local_a0 = &local_84;\n      do {\n        if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {\n          uVar11 = 0x7fff0000;\n        }\n        uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);\n        if ((int)uVar8 < 0) {\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }\n        uVar11 = piVar3[0x1a] - uVar8;\n        iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);\n        piVar3[0x1a] = uVar11;\n        piVar3[0x1b] = iVar7;\n        if (uVar8 == 0) goto LAB_00030d9e;\n      } while (iVar7 != 0 || uVar11 != 0);\n      FUN_00030829();\n      psVar13 = (stat64 *)0x0;\n      psVar10 = extraout_ECX;\n      do {\n        iVar12 = piVar3[0x1a] - (int)psVar10;\n        iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);\n        piVar3[0x1a] = iVar12;\n        piVar3[0x1b] = iVar7;\n        if (iVar7 == 0 && iVar12 == 0) break;\nLAB_00030d32:\n        local_a0 = (stat64 *)FUN_0001ac64();\n        if ((int)local_a0 < 1) break;\n        uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);\n        iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);\n        if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0) {\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }\n        psVar9 = (stat64 *)FUN_0001ac14();\n        psVar10 = local_a0;\n        psVar13 = local_a0;\n      } while (local_a0 == psVar9);\n      if ((int)local_a0 < 0) {\nLAB_00030d87:\n        if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }\n      }\nLAB_00030d9e:\n      FUN_00030829();\nLAB_00030da3:\n      if (*(char *)((int)piVar3 + 5) != '\0') goto LAB_00030ca7;\n      iVar7 = piVar3[0x17];\n      piVar3[0x1a] = -1;\n      piVar3[0x1b] = 0x7fffffff;\n      if (iVar7 < 0) goto joined_r0x00030cc8;\n      uVar11 = piVar3[0x18];\n      iVar12 = piVar3[0x19];\n      uVar8 = piVar3[0x14];\n      iVar2 = piVar3[0x15];\n      if ((iVar12 == 0 && uVar11 == 0) ||\n         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)) {\n        uVar11 = uVar8 - 1;\n        iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);\n        piVar3[0x18] = uVar11;\n        piVar3[0x19] = iVar12;\n      }\n      uVar11 = (uint)(uVar11 < (uint)piVar3[0x16]);\n      if ((SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=\n          (int)((iVar12 - iVar7) - uVar11) < 0) goto LAB_00030e0f;\n      _Var14 = lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0);\n      uVar11 = piVar3[0x16];\n      if (_Var14 != *(longlong *)(piVar3 + 0x16)) goto LAB_00030e0f;\n      uVar8 = piVar3[0x18] - uVar11;\n      piVar3[0x1a] = uVar8 + 1;\n      piVar3[0x1b] = ((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +\n                     (uint)(0xfffffffe < uVar8);\n      FUN_00030f43();\n    }" ({ "{") (expression_statement "local_84.st_dev._0_4_ = piVar3[0x16];" (assignment_expression "local_84.st_dev._0_4_ = piVar3[0x16]" (field_expression "local_84.st_dev._0_4_" (field_expression "local_84.st_dev" (identifier "local_84") (. ".") (field_identifier "st_dev")) (. ".") (field_identifier "_0_4_")) (= "=") (subscript_expression "piVar3[0x16]" (identifier "piVar3") ([ "[") (number_literal "0x16") (] "]"))) (; ";")) (expression_statement "local_84.st_dev._4_4_ = piVar3[0x17];" (assignment_expression "local_84.st_dev._4_4_ = piVar3[0x17]" (field_expression "local_84.st_dev._4_4_" (field_expression "local_84.st_dev" (identifier "local_84") (. ".") (field_identifier "st_dev")) (. ".") (field_identifier "_4_4_")) (= "=") (subscript_expression "piVar3[0x17]" (identifier "piVar3") ([ "[") (number_literal "0x17") (] "]"))) (; ";")) (expression_statement "uVar11 = piVar3[0x1a];" (assignment_expression "uVar11 = piVar3[0x1a]" (identifier "uVar11") (= "=") (subscript_expression "piVar3[0x1a]" (identifier "piVar3") ([ "[") (number_literal "0x1a") (] "]"))) (; ";")) (expression_statement "iVar7 = piVar3[0x1b];" (assignment_expression "iVar7 = piVar3[0x1b]" (identifier "iVar7") (= "=") (subscript_expression "piVar3[0x1b]" (identifier "piVar3") ([ "[") (number_literal "0x1b") (] "]"))) (; ";")) (expression_statement "local_a0 = &local_84;" (assignment_expression "local_a0 = &local_84" (identifier "local_a0") (= "=") (pointer_expression "&local_84" (& "&") (identifier "local_84"))) (; ";")) (do_statement "do {\n        if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {\n          uVar11 = 0x7fff0000;\n        }\n        uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);\n        if ((int)uVar8 < 0) {\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }\n        uVar11 = piVar3[0x1a] - uVar8;\n        iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);\n        piVar3[0x1a] = uVar11;\n        piVar3[0x1b] = iVar7;\n        if (uVar8 == 0) goto LAB_00030d9e;\n      } while (iVar7 != 0 || uVar11 != 0);" (do "do") (compound_statement "{\n        if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {\n          uVar11 = 0x7fff0000;\n        }\n        uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);\n        if ((int)uVar8 < 0) {\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }\n        uVar11 = piVar3[0x1a] - uVar8;\n        iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);\n        piVar3[0x1a] = uVar11;\n        piVar3[0x1b] = iVar7;\n        if (uVar8 == 0) goto LAB_00030d9e;\n      }" ({ "{") (if_statement "if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {\n          uVar11 = 0x7fff0000;\n        }" (if "if") (parenthesized_expression "(-iVar7 < (int)(uint)(0x7ffeffff < uVar11))" (( "(") (binary_expression "-iVar7 < (int)(uint)(0x7ffeffff < uVar11)" (unary_expression "-iVar7" (- "-") (identifier "iVar7")) (< "<") (cast_expression "(int)(uint)(0x7ffeffff < uVar11)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "(uint)(0x7ffeffff < uVar11)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0x7ffeffff < uVar11)" (( "(") (binary_expression "0x7ffeffff < uVar11" (number_literal "0x7ffeffff") (< "<") (identifier "uVar11")) () ")"))))) () ")")) (compound_statement "{\n          uVar11 = 0x7fff0000;\n        }" ({ "{") (expression_statement "uVar11 = 0x7fff0000;" (assignment_expression "uVar11 = 0x7fff0000" (identifier "uVar11") (= "=") (number_literal "0x7fff0000")) (; ";")) (} "}"))) (expression_statement "uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);" (assignment_expression "uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11)" (identifier "uVar8") (= "=") (call_expression "sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11)" (identifier "sendfile64") (argument_list "(1,__fildes,(__off64_t *)local_a0,uVar11)" (( "(") (number_literal "1") (, ",") (identifier "__fildes") (, ",") (cast_expression "(__off64_t *)local_a0" (( "(") (type_descriptor "__off64_t *" (type_identifier "__off64_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_a0")) (, ",") (identifier "uVar11") () ")")))) (; ";")) (if_statement "if ((int)uVar8 < 0) {\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }" (if "if") (parenthesized_expression "((int)uVar8 < 0)" (( "(") (binary_expression "(int)uVar8 < 0" (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;\n          goto LAB_00030d87;\n        }" ({ "{") (if_statement "if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)\n          goto LAB_00030d32;" (if "if") (parenthesized_expression "(piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)" (( "(") (binary_expression "piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev" (binary_expression "piVar3[0x17] == local_84.st_dev._4_4_" (subscript_expression "piVar3[0x17]" (identifier "piVar3") ([ "[") (number_literal "0x17") (] "]")) (== "==") (field_expression "local_84.st_dev._4_4_" (field_expression "local_84.st_dev" (identifier "local_84") (. ".") (field_identifier "st_dev")) (. ".") (field_identifier "_4_4_"))) (&& "&&") (binary_expression "piVar3[0x16] == (int)local_84.st_dev" (subscript_expression "piVar3[0x16]" (identifier "piVar3") ([ "[") (number_literal "0x16") (] "]")) (== "==") (cast_expression "(int)local_84.st_dev" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "local_84.st_dev" (identifier "local_84") (. ".") (field_identifier "st_dev"))))) () ")")) (goto_statement "goto LAB_00030d32;" (goto "goto") (statement_identifier "LAB_00030d32") (; ";"))) (goto_statement "goto LAB_00030d87;" (goto "goto") (statement_identifier "LAB_00030d87") (; ";")) (} "}"))) (expression_statement "uVar11 = piVar3[0x1a] - uVar8;" (assignment_expression "uVar11 = piVar3[0x1a] - uVar8" (identifier "uVar11") (= "=") (binary_expression "piVar3[0x1a] - uVar8" (subscript_expression "piVar3[0x1a]" (identifier "piVar3") ([ "[") (number_literal "0x1a") (] "]")) (- "-") (identifier "uVar8"))) (; ";")) (expression_statement "iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);" (assignment_expression "iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8)" (identifier "iVar7") (= "=") (binary_expression "(piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8)" (parenthesized_expression "(piVar3[0x1b] - ((int)uVar8 >> 0x1f))" (( "(") (binary_expression "piVar3[0x1b] - ((int)uVar8 >> 0x1f)" (subscript_expression "piVar3[0x1b]" (identifier "piVar3") ([ "[") (number_literal "0x1b") (] "]")) (- "-") (parenthesized_expression "((int)uVar8 >> 0x1f)" (( "(") (binary_expression "(int)uVar8 >> 0x1f" (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8")) (>> ">>") (number_literal "0x1f")) () ")"))) () ")")) (- "-") (call_expression "(uint)((uint)piVar3[0x1a] < uVar8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)piVar3[0x1a] < uVar8)" (( "(") (binary_expression "(uint)piVar3[0x1a] < uVar8" (cast_expression "(uint)piVar3[0x1a]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar3[0x1a]" (identifier "piVar3") ([ "[") (number_literal "0x1a") (] "]"))) (< "<") (identifier "uVar8")) () ")"))))) (; ";")) (expression_statement "piVar3[0x1a] = uVar11;" (assignment_expression "piVar3[0x1a] = uVar11" (subscript_expression "piVar3[0x1a]" (identifier "piVar3") ([ "[") (number_literal "0x1a") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "piVar3[0x1b] = iVar7;" (assignment_expression "piVar3[0x1b] = iVar7" (subscript_expression "piVar3[0x1b]" (identifier "piVar3") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (if_statement "if (uVar8 == 0) goto LAB_00030d9e;" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00030d9e;" (goto "goto") (statement_identifier "LAB_00030d9e") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(iVar7 != 0 || uVar11 != 0)" (( "(") (binary_expression "iVar7 != 0 || uVar11 != 0" (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "uVar11 != 0" (identifier "uVar11") (!= "!=") (number_literal "0"))) () ")")) (; ";")) (expression_statement "FUN_00030829();" (call_expression "FUN_00030829()" (identifier "FUN_00030829") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "psVar13 = (stat64 *)0x0;" (assignment_expression "psVar13 = (stat64 *)0x0" (identifier "psVar13") (= "=") (cast_expression "(stat64 *)0x0" (( "(") (type_descriptor "stat64 *" (type_identifier "stat64") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "psVar10 = extraout_ECX;" (assignment_expression "psVar10 = extraout_ECX" (identifier "psVar10") (= "=") (identifier "extraout_ECX")) (; ";")) (do_statement "do {\n        iVar12 = piVar3[0x1a] - (int)psVar10;\n        iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);\n        piVar3[0x1a] = iVar12;\n        piVar3[0x1b] = iVar7;\n        if (iVar7 == 0 && iVar12 == 0) break;\nLAB_00030d32:\n        local_a0 = (stat64 *)FUN_0001ac64();\n        if ((int)local_a0 < 1) break;\n        uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);\n        iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);\n        if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0) {\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }\n        psVar9 = (stat64 *)FUN_0001ac14();\n        psVar10 = local_a0;\n        psVar13 = local_a0;\n      } while (local_a0 == psVar9);" (do "do") (compound_statement "{\n        iVar12 = piVar3[0x1a] - (int)psVar10;\n        iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);\n        piVar3[0x1a] = iVar12;\n        piVar3[0x1b] = iVar7;\n        if (iVar7 == 0 && iVar12 == 0) break;\nLAB_00030d32:\n        local_a0 = (stat64 *)FUN_0001ac64();\n        if ((int)local_a0 < 1) break;\n        uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);\n        iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);\n        if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0) {\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }\n        psVar9 = (stat64 *)FUN_0001ac14();\n        psVar10 = local_a0;\n        psVar13 = local_a0;\n      }" ({ "{") (expression_statement "iVar12 = piVar3[0x1a] - (int)psVar10;" (assignment_expression "iVar12 = piVar3[0x1a] - (int)psVar10" (identifier "iVar12") (= "=") (binary_expression "piVar3[0x1a] - (int)psVar10" (subscript_expression "piVar3[0x1a]" (identifier "piVar3") ([ "[") (number_literal "0x1a") (] "]")) (- "-") (cast_expression "(int)psVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "psVar10")))) (; ";")) (expression_statement "iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);" (assignment_expression "iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10)" (identifier "iVar7") (= "=") (binary_expression "(piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10)" (parenthesized_expression "(piVar3[0x1b] - ((int)psVar13 >> 0x1f))" (( "(") (binary_expression "piVar3[0x1b] - ((int)psVar13 >> 0x1f)" (subscript_expression "piVar3[0x1b]" (identifier "piVar3") ([ "[") (number_literal "0x1b") (] "]")) (- "-") (parenthesized_expression "((int)psVar13 >> 0x1f)" (( "(") (binary_expression "(int)psVar13 >> 0x1f" (cast_expression "(int)psVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "psVar13")) (>> ">>") (number_literal "0x1f")) () ")"))) () ")")) (- "-") (call_expression "(uint)((stat64 *)piVar3[0x1a] < psVar10)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((stat64 *)piVar3[0x1a] < psVar10)" (( "(") (binary_expression "(stat64 *)piVar3[0x1a] < psVar10" (cast_expression "(stat64 *)piVar3[0x1a]" (( "(") (type_descriptor "stat64 *" (type_identifier "stat64") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar3[0x1a]" (identifier "piVar3") ([ "[") (number_literal "0x1a") (] "]"))) (< "<") (identifier "psVar10")) () ")"))))) (; ";")) (expression_statement "piVar3[0x1a] = iVar12;" (assignment_expression "piVar3[0x1a] = iVar12" (subscript_expression "piVar3[0x1a]" (identifier "piVar3") ([ "[") (number_literal "0x1a") (] "]")) (= "=") (identifier "iVar12")) (; ";")) (expression_statement "piVar3[0x1b] = iVar7;" (assignment_expression "piVar3[0x1b] = iVar7" (subscript_expression "piVar3[0x1b]" (identifier "piVar3") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (if_statement "if (iVar7 == 0 && iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar7 == 0 && iVar12 == 0)" (( "(") (binary_expression "iVar7 == 0 && iVar12 == 0" (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) (&& "&&") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_00030d32:\n        local_a0 = (stat64 *)FUN_0001ac64();" (statement_identifier "LAB_00030d32") (: ":") (expression_statement "local_a0 = (stat64 *)FUN_0001ac64();" (assignment_expression "local_a0 = (stat64 *)FUN_0001ac64()" (identifier "local_a0") (= "=") (cast_expression "(stat64 *)FUN_0001ac64()" (( "(") (type_descriptor "stat64 *" (type_identifier "stat64") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001ac64()" (identifier "FUN_0001ac64") (argument_list "()" (( "(") () ")"))))) (; ";"))) (if_statement "if ((int)local_a0 < 1) break;" (if "if") (parenthesized_expression "((int)local_a0 < 1)" (( "(") (binary_expression "(int)local_a0 < 1" (cast_expression "(int)local_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a0")) (< "<") (number_literal "1")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);" (assignment_expression "uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0)" (identifier "uVar11") (= "=") (call_expression "(uint)((stat64 *)piVar3[0x1a] < local_a0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((stat64 *)piVar3[0x1a] < local_a0)" (( "(") (binary_expression "(stat64 *)piVar3[0x1a] < local_a0" (cast_expression "(stat64 *)piVar3[0x1a]" (( "(") (type_descriptor "stat64 *" (type_identifier "stat64") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar3[0x1a]" (identifier "piVar3") ([ "[") (number_literal "0x1a") (] "]"))) (< "<") (identifier "local_a0")) () ")")))) (; ";")) (expression_statement "iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);" (assignment_expression "iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f)" (identifier "iVar7") (= "=") (binary_expression "piVar3[0x1b] - ((int)local_a0 >> 0x1f)" (subscript_expression "piVar3[0x1b]" (identifier "piVar3") ([ "[") (number_literal "0x1b") (] "]")) (- "-") (parenthesized_expression "((int)local_a0 >> 0x1f)" (( "(") (binary_expression "(int)local_a0 >> 0x1f" (cast_expression "(int)local_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a0")) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (if_statement "if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0) {\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }" (if "if") (parenthesized_expression "((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0)" (( "(") (binary_expression "(SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=\n            (int)(iVar7 - uVar11) < 0" (parenthesized_expression "(SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11))" (( "(") (binary_expression "SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)" (call_expression "SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f)" (identifier "SBORROW4") (argument_list "(piVar3[0x1b],(int)local_a0 >> 0x1f)" (( "(") (subscript_expression "piVar3[0x1b]" (identifier "piVar3") ([ "[") (number_literal "0x1b") (] "]")) (, ",") (binary_expression "(int)local_a0 >> 0x1f" (cast_expression "(int)local_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a0")) (>> ">>") (number_literal "0x1f")) () ")"))) (!= "!=") (call_expression "SBORROW4(iVar7,uVar11)" (identifier "SBORROW4") (argument_list "(iVar7,uVar11)" (( "(") (identifier "iVar7") (, ",") (identifier "uVar11") () ")")))) () ")")) (!= "!=") (binary_expression "(int)(iVar7 - uVar11) < 0" (cast_expression "(int)(iVar7 - uVar11)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(iVar7 - uVar11)" (( "(") (binary_expression "iVar7 - uVar11" (identifier "iVar7") (- "-") (identifier "uVar11")) () ")"))) (< "<") (number_literal "0"))) () ")")) (compound_statement "{\n          local_a0 = (stat64 *)piVar3[0x1a];\n        }" ({ "{") (expression_statement "local_a0 = (stat64 *)piVar3[0x1a];" (assignment_expression "local_a0 = (stat64 *)piVar3[0x1a]" (identifier "local_a0") (= "=") (cast_expression "(stat64 *)piVar3[0x1a]" (( "(") (type_descriptor "stat64 *" (type_identifier "stat64") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar3[0x1a]" (identifier "piVar3") ([ "[") (number_literal "0x1a") (] "]")))) (; ";")) (} "}"))) (expression_statement "psVar9 = (stat64 *)FUN_0001ac14();" (assignment_expression "psVar9 = (stat64 *)FUN_0001ac14()" (identifier "psVar9") (= "=") (cast_expression "(stat64 *)FUN_0001ac14()" (( "(") (type_descriptor "stat64 *" (type_identifier "stat64") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001ac14()" (identifier "FUN_0001ac14") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "psVar10 = local_a0;" (assignment_expression "psVar10 = local_a0" (identifier "psVar10") (= "=") (identifier "local_a0")) (; ";")) (expression_statement "psVar13 = local_a0;" (assignment_expression "psVar13 = local_a0" (identifier "psVar13") (= "=") (identifier "local_a0")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_a0 == psVar9)" (( "(") (binary_expression "local_a0 == psVar9" (identifier "local_a0") (== "==") (identifier "psVar9")) () ")")) (; ";")) (if_statement "if ((int)local_a0 < 0) {\nLAB_00030d87:\n        if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }\n      }" (if "if") (parenthesized_expression "((int)local_a0 < 0)" (( "(") (binary_expression "(int)local_a0 < 0" (cast_expression "(int)local_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a0")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00030d87:\n        if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }\n      }" ({ "{") (labeled_statement "LAB_00030d87:\n        if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }" (statement_identifier "LAB_00030d87") (: ":") (if_statement "if (1 < *piVar3) {\n          FUN_00018e3c("error");\n        }" (if "if") (parenthesized_expression "(1 < *piVar3)" (( "(") (binary_expression "1 < *piVar3" (number_literal "1") (< "<") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) () ")")) (compound_statement "{\n          FUN_00018e3c("error");\n        }" ({ "{") (expression_statement "FUN_00018e3c("error");" (call_expression "FUN_00018e3c("error")" (identifier "FUN_00018e3c") (argument_list "("error")" (( "(") (string_literal ""error"" (" """) (string_content "error") (" """)) () ")"))) (; ";")) (} "}")))) (} "}"))) (labeled_statement "LAB_00030d9e:\n      FUN_00030829();" (statement_identifier "LAB_00030d9e") (: ":") (expression_statement "FUN_00030829();" (call_expression "FUN_00030829()" (identifier "FUN_00030829") (argument_list "()" (( "(") () ")"))) (; ";"))) (labeled_statement "LAB_00030da3:\n      if (*(char *)((int)piVar3 + 5) != '\0') goto LAB_00030ca7;" (statement_identifier "LAB_00030da3") (: ":") (if_statement "if (*(char *)((int)piVar3 + 5) != '\0') goto LAB_00030ca7;" (if "if") (parenthesized_expression "(*(char *)((int)piVar3 + 5) != '\0')" (( "(") (binary_expression "*(char *)((int)piVar3 + 5) != '\0'" (pointer_expression "*(char *)((int)piVar3 + 5)" (* "*") (cast_expression "(char *)((int)piVar3 + 5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar3 + 5)" (( "(") (binary_expression "(int)piVar3 + 5" (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3")) (+ "+") (number_literal "5")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00030ca7;" (goto "goto") (statement_identifier "LAB_00030ca7") (; ";")))) (expression_statement "iVar7 = piVar3[0x17];" (assignment_expression "iVar7 = piVar3[0x17]" (identifier "iVar7") (= "=") (subscript_expression "piVar3[0x17]" (identifier "piVar3") ([ "[") (number_literal "0x17") (] "]"))) (; ";")) (expression_statement "piVar3[0x1a] = -1;" (assignment_expression "piVar3[0x1a] = -1" (subscript_expression "piVar3[0x1a]" (identifier "piVar3") ([ "[") (number_literal "0x1a") (] "]")) (= "=") (number_literal "-1")) (; ";")) (expression_statement "piVar3[0x1b] = 0x7fffffff;" (assignment_expression "piVar3[0x1b] = 0x7fffffff" (subscript_expression "piVar3[0x1b]" (identifier "piVar3") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (number_literal "0x7fffffff")) (; ";")) (if_statement "if (iVar7 < 0) goto joined_r0x00030cc8;" (if "if") (parenthesized_expression "(iVar7 < 0)" (( "(") (binary_expression "iVar7 < 0" (identifier "iVar7") (< "<") (number_literal "0")) () ")")) (goto_statement "goto joined_r0x00030cc8;" (goto "goto") (statement_identifier "joined_r0x00030cc8") (; ";"))) (expression_statement "uVar11 = piVar3[0x18];" (assignment_expression "uVar11 = piVar3[0x18]" (identifier "uVar11") (= "=") (subscript_expression "piVar3[0x18]" (identifier "piVar3") ([ "[") (number_literal "0x18") (] "]"))) (; ";")) (expression_statement "iVar12 = piVar3[0x19];" (assignment_expression "iVar12 = piVar3[0x19]" (identifier "iVar12") (= "=") (subscript_expression "piVar3[0x19]" (identifier "piVar3") ([ "[") (number_literal "0x19") (] "]"))) (; ";")) (expression_statement "uVar8 = piVar3[0x14];" (assignment_expression "uVar8 = piVar3[0x14]" (identifier "uVar8") (= "=") (subscript_expression "piVar3[0x14]" (identifier "piVar3") ([ "[") (number_literal "0x14") (] "]"))) (; ";")) (expression_statement "iVar2 = piVar3[0x15];" (assignment_expression "iVar2 = piVar3[0x15]" (identifier "iVar2") (= "=") (subscript_expression "piVar3[0x15]" (identifier "piVar3") ([ "[") (number_literal "0x15") (] "]"))) (; ";")) (if_statement "if ((iVar12 == 0 && uVar11 == 0) ||\n         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)) {\n        uVar11 = uVar8 - 1;\n        iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);\n        piVar3[0x18] = uVar11;\n        piVar3[0x19] = iVar12;\n      }" (if "if") (parenthesized_expression "((iVar12 == 0 && uVar11 == 0) ||\n         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0))" (( "(") (binary_expression "(iVar12 == 0 && uVar11 == 0) ||\n         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)" (parenthesized_expression "(iVar12 == 0 && uVar11 == 0)" (( "(") (binary_expression "iVar12 == 0 && uVar11 == 0" (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) (&& "&&") (binary_expression "uVar11 == 0" (identifier "uVar11") (== "==") (number_literal "0"))) () ")")) (|| "||") (parenthesized_expression "((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)" (( "(") (binary_expression "(SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==\n          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0" (parenthesized_expression "(SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8)))" (( "(") (binary_expression "SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))" (call_expression "SBORROW4(iVar12,iVar2)" (identifier "SBORROW4") (argument_list "(iVar12,iVar2)" (( "(") (identifier "iVar12") (, ",") (identifier "iVar2") () ")"))) (!= "!=") (call_expression "SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))" (identifier "SBORROW4") (argument_list "(iVar12 - iVar2,(uint)(uVar11 < uVar8))" (( "(") (binary_expression "iVar12 - iVar2" (identifier "iVar12") (- "-") (identifier "iVar2")) (, ",") (call_expression "(uint)(uVar11 < uVar8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar11 < uVar8)" (( "(") (binary_expression "uVar11 < uVar8" (identifier "uVar11") (< "<") (identifier "uVar8")) () ")"))) () ")")))) () ")")) (== "==") (binary_expression "(int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0" (cast_expression "(int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((iVar12 - iVar2) - (uint)(uVar11 < uVar8))" (( "(") (binary_expression "(iVar12 - iVar2) - (uint)(uVar11 < uVar8)" (parenthesized_expression "(iVar12 - iVar2)" (( "(") (binary_expression "iVar12 - iVar2" (identifier "iVar12") (- "-") (identifier "iVar2")) () ")")) (- "-") (call_expression "(uint)(uVar11 < uVar8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar11 < uVar8)" (( "(") (binary_expression "uVar11 < uVar8" (identifier "uVar11") (< "<") (identifier "uVar8")) () ")")))) () ")"))) (< "<") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        uVar11 = uVar8 - 1;\n        iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);\n        piVar3[0x18] = uVar11;\n        piVar3[0x19] = iVar12;\n      }" ({ "{") (expression_statement "uVar11 = uVar8 - 1;" (assignment_expression "uVar11 = uVar8 - 1" (identifier "uVar11") (= "=") (binary_expression "uVar8 - 1" (identifier "uVar8") (- "-") (number_literal "1"))) (; ";")) (expression_statement "iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);" (assignment_expression "iVar12 = iVar2 + -1 + (uint)(uVar8 != 0)" (identifier "iVar12") (= "=") (binary_expression "iVar2 + -1 + (uint)(uVar8 != 0)" (binary_expression "iVar2 + -1" (identifier "iVar2") (+ "+") (number_literal "-1")) (+ "+") (call_expression "(uint)(uVar8 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar8 != 0)" (( "(") (binary_expression "uVar8 != 0" (identifier "uVar8") (!= "!=") (number_literal "0")) () ")"))))) (; ";")) (expression_statement "piVar3[0x18] = uVar11;" (assignment_expression "piVar3[0x18] = uVar11" (subscript_expression "piVar3[0x18]" (identifier "piVar3") ([ "[") (number_literal "0x18") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "piVar3[0x19] = iVar12;" (assignment_expression "piVar3[0x19] = iVar12" (subscript_expression "piVar3[0x19]" (identifier "piVar3") ([ "[") (number_literal "0x19") (] "]")) (= "=") (identifier "iVar12")) (; ";")) (} "}"))) (expression_statement "uVar11 = (uint)(uVar11 < (uint)piVar3[0x16]);" (assignment_expression "uVar11 = (uint)(uVar11 < (uint)piVar3[0x16])" (identifier "uVar11") (= "=") (call_expression "(uint)(uVar11 < (uint)piVar3[0x16])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar11 < (uint)piVar3[0x16])" (( "(") (binary_expression "uVar11 < (uint)piVar3[0x16]" (identifier "uVar11") (< "<") (cast_expression "(uint)piVar3[0x16]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar3[0x16]" (identifier "piVar3") ([ "[") (number_literal "0x16") (] "]")))) () ")")))) (; ";")) (if_statement "if ((SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=\n          (int)((iVar12 - iVar7) - uVar11) < 0) goto LAB_00030e0f;" (if "if") (parenthesized_expression "((SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=\n          (int)((iVar12 - iVar7) - uVar11) < 0)" (( "(") (binary_expression "(SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=\n          (int)((iVar12 - iVar7) - uVar11) < 0" (parenthesized_expression "(SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11))" (( "(") (binary_expression "SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)" (call_expression "SBORROW4(iVar12,iVar7)" (identifier "SBORROW4") (argument_list "(iVar12,iVar7)" (( "(") (identifier "iVar12") (, ",") (identifier "iVar7") () ")"))) (!= "!=") (call_expression "SBORROW4(iVar12 - iVar7,uVar11)" (identifier "SBORROW4") (argument_list "(iVar12 - iVar7,uVar11)" (( "(") (binary_expression "iVar12 - iVar7" (identifier "iVar12") (- "-") (identifier "iVar7")) (, ",") (identifier "uVar11") () ")")))) () ")")) (!= "!=") (binary_expression "(int)((iVar12 - iVar7) - uVar11) < 0" (cast_expression "(int)((iVar12 - iVar7) - uVar11)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((iVar12 - iVar7) - uVar11)" (( "(") (binary_expression "(iVar12 - iVar7) - uVar11" (parenthesized_expression "(iVar12 - iVar7)" (( "(") (binary_expression "iVar12 - iVar7" (identifier "iVar12") (- "-") (identifier "iVar7")) () ")")) (- "-") (identifier "uVar11")) () ")"))) (< "<") (number_literal "0"))) () ")")) (goto_statement "goto LAB_00030e0f;" (goto "goto") (statement_identifier "LAB_00030e0f") (; ";"))) (expression_statement "_Var14 = lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0);" (assignment_expression "_Var14 = lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0)" (identifier "_Var14") (= "=") (call_expression "lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0)" (identifier "lseek64") (argument_list "(__fildes,*(__off64_t *)(piVar3 + 0x16),0)" (( "(") (identifier "__fildes") (, ",") (pointer_expression "*(__off64_t *)(piVar3 + 0x16)" (* "*") (cast_expression "(__off64_t *)(piVar3 + 0x16)" (( "(") (type_descriptor "__off64_t *" (type_identifier "__off64_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 0x16)" (( "(") (binary_expression "piVar3 + 0x16" (identifier "piVar3") (+ "+") (number_literal "0x16")) () ")")))) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uVar11 = piVar3[0x16];" (assignment_expression "uVar11 = piVar3[0x16]" (identifier "uVar11") (= "=") (subscript_expression "piVar3[0x16]" (identifier "piVar3") ([ "[") (number_literal "0x16") (] "]"))) (; ";")) (if_statement "if (_Var14 != *(longlong *)(piVar3 + 0x16)) goto LAB_00030e0f;" (if "if") (parenthesized_expression "(_Var14 != *(longlong *)(piVar3 + 0x16))" (( "(") (binary_expression "_Var14 != *(longlong *)(piVar3 + 0x16)" (identifier "_Var14") (!= "!=") (pointer_expression "*(longlong *)(piVar3 + 0x16)" (* "*") (cast_expression "(longlong *)(piVar3 + 0x16)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 0x16)" (( "(") (binary_expression "piVar3 + 0x16" (identifier "piVar3") (+ "+") (number_literal "0x16")) () ")"))))) () ")")) (goto_statement "goto LAB_00030e0f;" (goto "goto") (statement_identifier "LAB_00030e0f") (; ";"))) (expression_statement "uVar8 = piVar3[0x18] - uVar11;" (assignment_expression "uVar8 = piVar3[0x18] - uVar11" (identifier "uVar8") (= "=") (binary_expression "piVar3[0x18] - uVar11" (subscript_expression "piVar3[0x18]" (identifier "piVar3") ([ "[") (number_literal "0x18") (] "]")) (- "-") (identifier "uVar11"))) (; ";")) (expression_statement "piVar3[0x1a] = uVar8 + 1;" (assignment_expression "piVar3[0x1a] = uVar8 + 1" (subscript_expression "piVar3[0x1a]" (identifier "piVar3") ([ "[") (number_literal "0x1a") (] "]")) (= "=") (binary_expression "uVar8 + 1" (identifier "uVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar3[0x1b] = ((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +\n                     (uint)(0xfffffffe < uVar8);" (assignment_expression "piVar3[0x1b] = ((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +\n                     (uint)(0xfffffffe < uVar8)" (subscript_expression "piVar3[0x1b]" (identifier "piVar3") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (binary_expression "((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +\n                     (uint)(0xfffffffe < uVar8)" (parenthesized_expression "((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11))" (( "(") (binary_expression "(piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)" (parenthesized_expression "(piVar3[0x19] - piVar3[0x17])" (( "(") (binary_expression "piVar3[0x19] - piVar3[0x17]" (subscript_expression "piVar3[0x19]" (identifier "piVar3") ([ "[") (number_literal "0x19") (] "]")) (- "-") (subscript_expression "piVar3[0x17]" (identifier "piVar3") ([ "[") (number_literal "0x17") (] "]"))) () ")")) (- "-") (call_expression "(uint)((uint)piVar3[0x18] < uVar11)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)piVar3[0x18] < uVar11)" (( "(") (binary_expression "(uint)piVar3[0x18] < uVar11" (cast_expression "(uint)piVar3[0x18]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar3[0x18]" (identifier "piVar3") ([ "[") (number_literal "0x18") (] "]"))) (< "<") (identifier "uVar11")) () ")")))) () ")")) (+ "+") (call_expression "(uint)(0xfffffffe < uVar8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0xfffffffe < uVar8)" (( "(") (binary_expression "0xfffffffe < uVar8" (number_literal "0xfffffffe") (< "<") (identifier "uVar8")) () ")"))))) (; ";")) (expression_statement "FUN_00030f43();" (call_expression "FUN_00030f43()" (identifier "FUN_00030f43") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "pcVar6 = ".txt.h.c.cc.cpp";" (assignment_expression "pcVar6 = ".txt.h.c.cc.cpp"" (identifier "pcVar6") (= "=") (string_literal "".txt.h.c.cc.cpp"" (" """) (string_content ".txt.h.c.cc.cpp") (" """))) (; ";")) (do_statement "do {\n    sVar5 = strlen(pcVar6);\n    __s = pcVar6 + sVar5 + 1;\n    pcVar6 = strstr(pcVar6,pcVar4);\n    if (pcVar6 != (char *)0x0) {\n      sVar5 = strlen(pcVar4);\n      if (pcVar6[sVar5] == '\0') {\n        piVar3[10] = (int)__s;\n      }\n      else {\n        if (pcVar6[sVar5] != '.') break;\n        piVar3[10] = (int)__s;\n      }\n      puVar1 = (undefined4 *)piVar3[0x1d];\n      goto joined_r0x00030f1b;\n    }\n    sVar5 = strlen(__s);\n    pcVar6 = __s + sVar5 + 1;\n  } while (*pcVar6 != '\0');" (do "do") (compound_statement "{\n    sVar5 = strlen(pcVar6);\n    __s = pcVar6 + sVar5 + 1;\n    pcVar6 = strstr(pcVar6,pcVar4);\n    if (pcVar6 != (char *)0x0) {\n      sVar5 = strlen(pcVar4);\n      if (pcVar6[sVar5] == '\0') {\n        piVar3[10] = (int)__s;\n      }\n      else {\n        if (pcVar6[sVar5] != '.') break;\n        piVar3[10] = (int)__s;\n      }\n      puVar1 = (undefined4 *)piVar3[0x1d];\n      goto joined_r0x00030f1b;\n    }\n    sVar5 = strlen(__s);\n    pcVar6 = __s + sVar5 + 1;\n  }" ({ "{") (expression_statement "sVar5 = strlen(pcVar6);" (assignment_expression "sVar5 = strlen(pcVar6)" (identifier "sVar5") (= "=") (call_expression "strlen(pcVar6)" (identifier "strlen") (argument_list "(pcVar6)" (( "(") (identifier "pcVar6") () ")")))) (; ";")) (expression_statement "__s = pcVar6 + sVar5 + 1;" (assignment_expression "__s = pcVar6 + sVar5 + 1" (identifier "__s") (= "=") (binary_expression "pcVar6 + sVar5 + 1" (binary_expression "pcVar6 + sVar5" (identifier "pcVar6") (+ "+") (identifier "sVar5")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar6 = strstr(pcVar6,pcVar4);" (assignment_expression "pcVar6 = strstr(pcVar6,pcVar4)" (identifier "pcVar6") (= "=") (call_expression "strstr(pcVar6,pcVar4)" (identifier "strstr") (argument_list "(pcVar6,pcVar4)" (( "(") (identifier "pcVar6") (, ",") (identifier "pcVar4") () ")")))) (; ";")) (if_statement "if (pcVar6 != (char *)0x0) {\n      sVar5 = strlen(pcVar4);\n      if (pcVar6[sVar5] == '\0') {\n        piVar3[10] = (int)__s;\n      }\n      else {\n        if (pcVar6[sVar5] != '.') break;\n        piVar3[10] = (int)__s;\n      }\n      puVar1 = (undefined4 *)piVar3[0x1d];\n      goto joined_r0x00030f1b;\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      sVar5 = strlen(pcVar4);\n      if (pcVar6[sVar5] == '\0') {\n        piVar3[10] = (int)__s;\n      }\n      else {\n        if (pcVar6[sVar5] != '.') break;\n        piVar3[10] = (int)__s;\n      }\n      puVar1 = (undefined4 *)piVar3[0x1d];\n      goto joined_r0x00030f1b;\n    }" ({ "{") (expression_statement "sVar5 = strlen(pcVar4);" (assignment_expression "sVar5 = strlen(pcVar4)" (identifier "sVar5") (= "=") (call_expression "strlen(pcVar4)" (identifier "strlen") (argument_list "(pcVar4)" (( "(") (identifier "pcVar4") () ")")))) (; ";")) (if_statement "if (pcVar6[sVar5] == '\0') {\n        piVar3[10] = (int)__s;\n      }\n      else {\n        if (pcVar6[sVar5] != '.') break;\n        piVar3[10] = (int)__s;\n      }" (if "if") (parenthesized_expression "(pcVar6[sVar5] == '\0')" (( "(") (binary_expression "pcVar6[sVar5] == '\0'" (subscript_expression "pcVar6[sVar5]" (identifier "pcVar6") ([ "[") (identifier "sVar5") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        piVar3[10] = (int)__s;\n      }" ({ "{") (expression_statement "piVar3[10] = (int)__s;" (assignment_expression "piVar3[10] = (int)__s" (subscript_expression "piVar3[10]" (identifier "piVar3") ([ "[") (number_literal "10") (] "]")) (= "=") (cast_expression "(int)__s" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__s"))) (; ";")) (} "}")) (else_clause "else {\n        if (pcVar6[sVar5] != '.') break;\n        piVar3[10] = (int)__s;\n      }" (else "else") (compound_statement "{\n        if (pcVar6[sVar5] != '.') break;\n        piVar3[10] = (int)__s;\n      }" ({ "{") (if_statement "if (pcVar6[sVar5] != '.') break;" (if "if") (parenthesized_expression "(pcVar6[sVar5] != '.')" (( "(") (binary_expression "pcVar6[sVar5] != '.'" (subscript_expression "pcVar6[sVar5]" (identifier "pcVar6") ([ "[") (identifier "sVar5") (] "]")) (!= "!=") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "piVar3[10] = (int)__s;" (assignment_expression "piVar3[10] = (int)__s" (subscript_expression "piVar3[10]" (identifier "piVar3") ([ "[") (number_literal "10") (] "]")) (= "=") (cast_expression "(int)__s" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__s"))) (; ";")) (} "}")))) (expression_statement "puVar1 = (undefined4 *)piVar3[0x1d];" (assignment_expression "puVar1 = (undefined4 *)piVar3[0x1d]" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)piVar3[0x1d]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar3[0x1d]" (identifier "piVar3") ([ "[") (number_literal "0x1d") (] "]")))) (; ";")) (goto_statement "goto joined_r0x00030f1b;" (goto "goto") (statement_identifier "joined_r0x00030f1b") (; ";")) (} "}"))) (expression_statement "sVar5 = strlen(__s);" (assignment_expression "sVar5 = strlen(__s)" (identifier "sVar5") (= "=") (call_expression "strlen(__s)" (identifier "strlen") (argument_list "(__s)" (( "(") (identifier "__s") () ")")))) (; ";")) (expression_statement "pcVar6 = __s + sVar5 + 1;" (assignment_expression "pcVar6 = __s + sVar5 + 1" (identifier "pcVar6") (= "=") (binary_expression "__s + sVar5 + 1" (binary_expression "__s + sVar5" (identifier "__s") (+ "+") (identifier "sVar5")) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*pcVar6 != '\0')" (( "(") (binary_expression "*pcVar6 != '\0'" (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "puVar1 = (undefined4 *)piVar3[0x1d];" (assignment_expression "puVar1 = (undefined4 *)piVar3[0x1d]" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)piVar3[0x1d]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar3[0x1d]" (identifier "piVar3") ([ "[") (number_literal "0x1d") (] "]")))) (; ";")) (labeled_statement "joined_r0x00030f1b:\n  do {\n    if (puVar1 == (undefined4 *)0x0) goto LAB_00030c9c;\n    iVar7 = strcmp((char *)(puVar1 + 2),pcVar4);\n    if (iVar7 == 0) {\n      piVar3[10] = puVar1[1];\n      goto LAB_00030c9c;\n    }\n    puVar1 = (undefined4 *)*puVar1;\n  } while( true );" (statement_identifier "joined_r0x00030f1b") (: ":") (do_statement "do {\n    if (puVar1 == (undefined4 *)0x0) goto LAB_00030c9c;\n    iVar7 = strcmp((char *)(puVar1 + 2),pcVar4);\n    if (iVar7 == 0) {\n      piVar3[10] = puVar1[1];\n      goto LAB_00030c9c;\n    }\n    puVar1 = (undefined4 *)*puVar1;\n  } while( true );" (do "do") (compound_statement "{\n    if (puVar1 == (undefined4 *)0x0) goto LAB_00030c9c;\n    iVar7 = strcmp((char *)(puVar1 + 2),pcVar4);\n    if (iVar7 == 0) {\n      piVar3[10] = puVar1[1];\n      goto LAB_00030c9c;\n    }\n    puVar1 = (undefined4 *)*puVar1;\n  }" ({ "{") (if_statement "if (puVar1 == (undefined4 *)0x0) goto LAB_00030c9c;" (if "if") (parenthesized_expression "(puVar1 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar1 == (undefined4 *)0x0" (identifier "puVar1") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00030c9c;" (goto "goto") (statement_identifier "LAB_00030c9c") (; ";"))) (expression_statement "iVar7 = strcmp((char *)(puVar1 + 2),pcVar4);" (assignment_expression "iVar7 = strcmp((char *)(puVar1 + 2),pcVar4)" (identifier "iVar7") (= "=") (call_expression "strcmp((char *)(puVar1 + 2),pcVar4)" (identifier "strcmp") (argument_list "((char *)(puVar1 + 2),pcVar4)" (( "(") (cast_expression "(char *)(puVar1 + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 2)" (( "(") (binary_expression "puVar1 + 2" (identifier "puVar1") (+ "+") (number_literal "2")) () ")"))) (, ",") (identifier "pcVar4") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n      piVar3[10] = puVar1[1];\n      goto LAB_00030c9c;\n    }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      piVar3[10] = puVar1[1];\n      goto LAB_00030c9c;\n    }" ({ "{") (expression_statement "piVar3[10] = puVar1[1];" (assignment_expression "piVar3[10] = puVar1[1]" (subscript_expression "piVar3[10]" (identifier "piVar3") ([ "[") (number_literal "10") (] "]")) (= "=") (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (goto_statement "goto LAB_00030c9c;" (goto "goto") (statement_identifier "LAB_00030c9c") (; ";")) (} "}"))) (expression_statement "puVar1 = (undefined4 *)*puVar1;" (assignment_expression "puVar1 = (undefined4 *)*puVar1" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)*puVar1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar1" (* "*") (identifier "puVar1")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (labeled_statement "LAB_00030e0f:\n  lseek64(__fildes,0,0);" (statement_identifier "LAB_00030e0f") (: ":") (expression_statement "lseek64(__fildes,0,0);" (call_expression "lseek64(__fildes,0,0)" (identifier "lseek64") (argument_list "(__fildes,0,0)" (( "(") (identifier "__fildes") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";"))) (expression_statement "piVar3[0x16] = -1;" (assignment_expression "piVar3[0x16] = -1" (subscript_expression "piVar3[0x16]" (identifier "piVar3") ([ "[") (number_literal "0x16") (] "]")) (= "=") (number_literal "-1")) (; ";")) (expression_statement "piVar3[0x17] = -1;" (assignment_expression "piVar3[0x17] = -1" (subscript_expression "piVar3[0x17]" (identifier "piVar3") ([ "[") (number_literal "0x17") (] "]")) (= "=") (number_literal "-1")) (; ";")) (goto_statement "goto joined_r0x00030cc8;" (goto "goto") (statement_identifier "joined_r0x00030cc8") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void function_1(char *url,int what)

{
  type_1 sb;
  
}


(translation_unit (function_definition type: (primitive_type) (ERROR (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) 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: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (field_expression argument: (identifier) field: (field_identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal))))) (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (number_literal) right: (identifier))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier))) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (field_expression argument: (identifier) field: (field_identifier)))))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (break_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: (call_expression function: (identifier) arguments: (argument_list)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (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: (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)))))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))) right: (number_literal)))))) consequence: (compound_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: (binary_expression left: (identifier) right: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (identifier))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (identifier)))) right: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (number_literal) right: (identifier))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) condition: (parenthesized_expression (true))))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (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: (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 (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (char_literal (character)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (labeled_statement label: (statement_identifier) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) condition: (parenthesized_expression (true)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (goto_statement label: (statement_identifier)))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void __regparm3 MASKED(char *param_1,stat64 *param_2)

{
  char *__s;
  undefined4 *puVar1;
  int iVar2;
  int *piVar3;
  char *pcVar4;
  int __fildes;
  size_t sVar5;
  char *pcVar6;
  int iVar7;
  uint uVar8;
  stat64 *psVar9;
  stat64 *extraout_ECX;
  stat64 *psVar10;
  uint uVar11;
  int iVar12;
  stat64 *psVar13;
  int in_GS_OFFSET;
  __off64_t _Var14;
  stat64 *local_a0;
  stat64 local_84;
  undefined4 local_20;
  
  piVar3 = DAT_000d1700;
  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);
  if (*(char *)((int)DAT_000d1700 + 5) == '\0') goto LAB_00030bfa;
  pcVar4 = (char *)FUN_00019fd7("%s.gz",param_1);
  __fildes = open64(pcVar4,0);
  free(pcVar4);
  if (__fildes == -1) goto LAB_00030bf6;
  __fxstat64(3,__fildes,&local_84);
  piVar3[0x14] = (int)local_84.st_size;
  piVar3[0x15] = local_84.st_size._4_4_;
  piVar3[3] = local_84.st_mtim.tv_sec;
  while (local_a0 = param_2, __fildes < 0) {
    if (param_2 == (stat64 *)0x2) goto LAB_00030d9e;
    *(undefined1 *)((int)piVar3 + 5) = 0;
    FUN_00030f43();
    FUN_00030829();
LAB_00030bf6:
    *(undefined1 *)((int)piVar3 + 5) = 0;
LAB_00030bfa:
    __fildes = open64(param_1,0);
  }
  signal(0xd,(__sighandler_t)0x1);
  pcVar4 = strrchr(param_1,0x2e);
  if (pcVar4 == (char *)0x0) {
LAB_00030c9c:
    if (param_2 != (stat64 *)0x2) goto LAB_00030da3;
LAB_00030ca7:
    piVar3[0x16] = -1;
    piVar3[0x17] = -1;
    piVar3[0x1a] = -1;
    piVar3[0x1b] = 0x7fffffff;
joined_r0x00030cc8:
    if (((uint)local_a0 & 1) != 0) {
      FUN_00030f43();
    }
    do {
      local_84.st_dev._0_4_ = piVar3[0x16];
      local_84.st_dev._4_4_ = piVar3[0x17];
      uVar11 = piVar3[0x1a];
      iVar7 = piVar3[0x1b];
      local_a0 = &local_84;
      do {
        if (-iVar7 < (int)(uint)(0x7ffeffff < uVar11)) {
          uVar11 = 0x7fff0000;
        }
        uVar8 = sendfile64(1,__fildes,(__off64_t *)local_a0,uVar11);
        if ((int)uVar8 < 0) {
          if (piVar3[0x17] == local_84.st_dev._4_4_ && piVar3[0x16] == (int)local_84.st_dev)
          goto LAB_00030d32;
          goto LAB_00030d87;
        }
        uVar11 = piVar3[0x1a] - uVar8;
        iVar7 = (piVar3[0x1b] - ((int)uVar8 >> 0x1f)) - (uint)((uint)piVar3[0x1a] < uVar8);
        piVar3[0x1a] = uVar11;
        piVar3[0x1b] = iVar7;
        if (uVar8 == 0) goto LAB_00030d9e;
      } while (iVar7 != 0 || uVar11 != 0);
      FUN_00030829();
      psVar13 = (stat64 *)0x0;
      psVar10 = extraout_ECX;
      do {
        iVar12 = piVar3[0x1a] - (int)psVar10;
        iVar7 = (piVar3[0x1b] - ((int)psVar13 >> 0x1f)) - (uint)((stat64 *)piVar3[0x1a] < psVar10);
        piVar3[0x1a] = iVar12;
        piVar3[0x1b] = iVar7;
        if (iVar7 == 0 && iVar12 == 0) break;
LAB_00030d32:
        local_a0 = (stat64 *)FUN_0001ac64();
        if ((int)local_a0 < 1) break;
        uVar11 = (uint)((stat64 *)piVar3[0x1a] < local_a0);
        iVar7 = piVar3[0x1b] - ((int)local_a0 >> 0x1f);
        if ((SBORROW4(piVar3[0x1b],(int)local_a0 >> 0x1f) != SBORROW4(iVar7,uVar11)) !=
            (int)(iVar7 - uVar11) < 0) {
          local_a0 = (stat64 *)piVar3[0x1a];
        }
        psVar9 = (stat64 *)FUN_0001ac14();
        psVar10 = local_a0;
        psVar13 = local_a0;
      } while (local_a0 == psVar9);
      if ((int)local_a0 < 0) {
LAB_00030d87:
        if (1 < *piVar3) {
          FUN_00018e3c("error");
        }
      }
LAB_00030d9e:
      FUN_00030829();
LAB_00030da3:
      if (*(char *)((int)piVar3 + 5) != '\0') goto LAB_00030ca7;
      iVar7 = piVar3[0x17];
      piVar3[0x1a] = -1;
      piVar3[0x1b] = 0x7fffffff;
      if (iVar7 < 0) goto joined_r0x00030cc8;
      uVar11 = piVar3[0x18];
      iVar12 = piVar3[0x19];
      uVar8 = piVar3[0x14];
      iVar2 = piVar3[0x15];
      if ((iVar12 == 0 && uVar11 == 0) ||
         ((SBORROW4(iVar12,iVar2) != SBORROW4(iVar12 - iVar2,(uint)(uVar11 < uVar8))) ==
          (int)((iVar12 - iVar2) - (uint)(uVar11 < uVar8)) < 0)) {
        uVar11 = uVar8 - 1;
        iVar12 = iVar2 + -1 + (uint)(uVar8 != 0);
        piVar3[0x18] = uVar11;
        piVar3[0x19] = iVar12;
      }
      uVar11 = (uint)(uVar11 < (uint)piVar3[0x16]);
      if ((SBORROW4(iVar12,iVar7) != SBORROW4(iVar12 - iVar7,uVar11)) !=
          (int)((iVar12 - iVar7) - uVar11) < 0) goto LAB_00030e0f;
      _Var14 = lseek64(__fildes,*(__off64_t *)(piVar3 + 0x16),0);
      uVar11 = piVar3[0x16];
      if (_Var14 != *(longlong *)(piVar3 + 0x16)) goto LAB_00030e0f;
      uVar8 = piVar3[0x18] - uVar11;
      piVar3[0x1a] = uVar8 + 1;
      piVar3[0x1b] = ((piVar3[0x19] - piVar3[0x17]) - (uint)((uint)piVar3[0x18] < uVar11)) +
                     (uint)(0xfffffffe < uVar8);
      FUN_00030f43();
    } while( true );
  }
  pcVar6 = ".txt.h.c.cc.cpp";
  do {
    sVar5 = strlen(pcVar6);
    __s = pcVar6 + sVar5 + 1;
    pcVar6 = strstr(pcVar6,pcVar4);
    if (pcVar6 != (char *)0x0) {
      sVar5 = strlen(pcVar4);
      if (pcVar6[sVar5] == '\0') {
        piVar3[10] = (int)__s;
      }
      else {
        if (pcVar6[sVar5] != '.') break;
        piVar3[10] = (int)__s;
      }
      puVar1 = (undefined4 *)piVar3[0x1d];
      goto joined_r0x00030f1b;
    }
    sVar5 = strlen(__s);
    pcVar6 = __s + sVar5 + 1;
  } while (*pcVar6 != '\0');
  puVar1 = (undefined4 *)piVar3[0x1d];
joined_r0x00030f1b:
  do {
    if (puVar1 == (undefined4 *)0x0) goto LAB_00030c9c;
    iVar7 = strcmp((char *)(puVar1 + 2),pcVar4);
    if (iVar7 == 0) {
      piVar3[10] = puVar1[1];
      goto LAB_00030c9c;
    }
    puVar1 = (undefined4 *)*puVar1;
  } while( true );
LAB_00030e0f:
  lseek64(__fildes,0,0);
  piVar3[0x16] = -1;
  piVar3[0x17] = -1;
  goto joined_r0x00030cc8;
}

