
/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */

int read_line_input(line_input_t *st,char *prompt,char *command,int maxsize)

{
  smallint lastWasTab;
  wchar_t wc;
  termios initial_settings;
  termios new_settings;
  char unicode_buf [7];
  char read_key_buffer [16];
  
}



/* WARNING: Removing unreachable block (ram,0x000acaba) */
/* WARNING: Removing unreachable block (ram,0x000aca12) */

size_t FUN_000ac5a2(void)

{
  undefined4 *__dest;
  int *piVar1;
  int iVar2;
  byte *pbVar3;
  int *piVar4;
  int iVar5;
  char *pcVar6;
  __uid_t __uid;
  passwd *ppVar7;
  int iVar8;
  uint uVar9;
  undefined4 uVar10;
  size_t sVar11;
  uint *puVar12;
  int unaff_EBP;
  uint uVar13;
  int in_GS_OFFSET;
  undefined8 uVar14;
  int unaff_retaddr;
  int local_f4;
  char *local_f0;
  uint local_ec;
  uint local_a8;
  byte local_a3;
  byte local_9f;
  undefined1 local_3b [7];
  undefined1 local_34;
  int local_24;
  undefined4 local_20;
  
  pbVar3 = (byte *)FUN_00026ff7();
  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);
  piVar4 = (int *)FUN_00019b89();
  *(int **)(&DAT_0002516f + unaff_EBP) = piVar4;
  piVar4[1] = 0x50;
  piVar4[0xc] = unaff_EBP + 0x215a2;
  iVar5 = FUN_00019879(1);
  if ((iVar5 == 0) && ((local_a8 & 10) != 2)) {
    FUN_000b24de();
    if (unaff_retaddr < 0x401) {
      piVar4[7] = unaff_retaddr;
      local_f4 = unaff_retaddr;
    }
    else {
      local_f4 = 0x400;
      piVar4[7] = 0x400;
    }
    if (pbVar3 == (byte *)0x0) {
      pbVar3 = (byte *)(unaff_EBP + 0xa2a3);
      *piVar4 = (int)pbVar3;
    }
    else {
      *piVar4 = (int)pbVar3;
    }
    if ((*pbVar3 & 1) != 0) {
      *(undefined4 *)(pbVar3 + 0x10) = *(undefined4 *)(pbVar3 + 0xc);
    }
    piVar4[3] = 0;
    piVar4[6] = 0;
    iVar5 = FUN_00019b89();
    piVar4[8] = iVar5;
    FUN_0001985b();
    __uid = geteuid();
    ppVar7 = getpwuid(__uid);
    if (ppVar7 != (passwd *)0x0) {
      iVar5 = FUN_00019ba3();
      piVar4[0xb] = iVar5;
      iVar5 = FUN_00019ba3();
      piVar4[0xc] = iVar5;
    }
    iVar5 = FUN_00019828();
    piVar4[1] = iVar5;
    FUN_000aaf0c();
    iVar5 = FUN_000b181c();
    if (iVar5 == 0) {
      *(undefined1 *)((int)piVar4 + 0x45) = 1;
      fwrite_unlocked((void *)(unaff_EBP + 0x18192),1,4,
                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP));
      FUN_00019f78();
    }
    piVar4[0x12] = unaff_EBP + -0x85d;
    piVar4[0x33] = 0x10000000;
    sigaction(0x1c,(sigaction *)(piVar4 + 0x12),(sigaction *)(piVar4 + 0x12));
    local_34 = 0;
    piVar1 = *(int **)(&DAT_0002514b + unaff_EBP);
    iVar5 = piVar4[0x10];
    if (piVar4[0xf] != iVar5) goto LAB_000acddf;
LAB_000ac7c7:
    FUN_00019f78();
    iVar5 = 0;
LAB_000ac7e1:
    do {
      *(undefined1 *)(piVar4 + 0x11) = 1;
      uVar14 = FUN_000b0821();
      uVar13 = (uint)uVar14;
      *(undefined1 *)(piVar4 + 0x11) = 0;
      iVar8 = *piVar1;
      if (iVar8 != 0) {
        if ((iVar8 != 0xb) || (iVar5 == 0)) {
joined_r0x000acdd4:
          uVar9 = uVar13 + 0x45;
          if (uVar9 < 0xc5) {
LAB_000ac8f0:
                    /* WARNING: Could not recover jumptable at 0x000ac8f9. Too many branches */
                    /* WARNING: Treating indirect jump as call */
            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();
            return sVar11;
          }
          goto LAB_000ac830;
        }
        break;
      }
      if (uVar13 == 0xffffff00) {
        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;
        *(undefined1 *)((int)piVar4 + 0x45) = 0;
        if ((piVar4[5] == 0) &&
           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {
          uVar9 = iVar8 + piVar4[2];
          piVar4[2] = uVar9;
          uVar13 = piVar4[1];
          if (uVar13 <= uVar9) {
            iVar8 = piVar4[3];
            do {
              uVar9 = uVar9 - uVar13;
              iVar8 = iVar8 + 1;
            } while (uVar13 <= uVar9);
            piVar4[2] = uVar9;
            piVar4[3] = iVar8;
          }
        }
        goto LAB_000ac7e1;
      }
      if (((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)) goto joined_r0x000acdd4;
      iVar8 = iVar5 + 1;
      local_3b[iVar5] = (char)uVar14;
      local_3b[iVar5 + 1] = 0;
      iVar5 = FUN_000b2670();
      if (iVar5 == 1) {
        uVar9 = 0x45;
        goto LAB_000ac8f0;
      }
      iVar5 = iVar8;
    } while (iVar8 < 6);
    FUN_000b0b18();
    uVar13 = 0x3f;
LAB_000ac830:
    if ((local_a3 != 0) && (local_a3 == uVar13)) {
      piVar4[6] = 0;
      goto LAB_000ac96b;
    }
LAB_000acba3:
    if ((local_9f == 0) || (local_9f != uVar13)) {
      if ((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)) {
        piVar4[6] = iVar5 + 1;
        iVar2 = piVar4[5];
        iVar8 = iVar2 * 4;
        puVar12 = (uint *)(iVar8 + piVar4[8]);
        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);
        if (iVar2 == iVar5) {
          *puVar12 = uVar13;
          *__dest = 0;
          FUN_000aba58();
        }
        else {
          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);
          *(uint *)(piVar4[8] + iVar8) = uVar13;
          if ((uint)piVar4[5] < (uint)piVar4[6]) {
            do {
              FUN_000aba58();
            } while ((uint)piVar4[5] < (uint)piVar4[6]);
          }
          FUN_000ab35c();
        }
      }
    }
    else {
      if (piVar4[6] == 0) goto code_r0x000acbc3;
      FUN_000abd91();
    }
    if (uVar13 != 9) goto LAB_000ac923;
    iVar5 = piVar4[0x10];
    if (piVar4[0xf] != iVar5) goto LAB_000acddf;
    goto LAB_000ac7c7;
  }
  FUN_000aaf0c();
  FUN_00019f78();
  pcVar6 = fgets_unlocked(local_f0,unaff_retaddr,
                          (FILE *)**(undefined4 **)(&DAT_000249fb + unaff_EBP));
  sVar11 = 0xffffffff;
  if (pcVar6 != (char *)0x0) {
    sVar11 = strlen(local_f0);
  }
LAB_000ac9e9:
  FUN_000aaa67();
  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_00017e10();
  }
  return sVar11;
code_r0x000acbc3:
  *piVar1 = 0;
  piVar4[6] = -1;
LAB_000ac96b:
  if (*(char *)((int)piVar4 + 0x45) != '\0') {
    usleep(20000);
  }
  *local_f0 = '\0';
  if (0 < piVar4[6]) {
    iVar5 = FUN_000abe42();
    piVar4[6] = iVar5;
  }
  free((void *)piVar4[8]);
  if (0 < piVar4[6]) {
    puVar12 = (uint *)*piVar4;
    uVar13 = *puVar12 & 1;
    if (((uVar13 != 0) && (*local_f0 != '\0')) &&
       ((local_ec = puVar12[3], local_ec == 0 ||
        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)))) {
      free((void *)puVar12[puVar12[5] + 6]);
      iVar5 = *piVar4;
      iVar8 = *(int *)(iVar5 + 0x14);
      *(undefined4 *)(iVar5 + 0x18 + iVar8 * 4) = 0;
      if ((int)local_ec < iVar8) {
        uVar13 = local_ec + 1;
      }
      else {
        free(*(void **)(iVar5 + 0x18));
        iVar5 = *piVar4;
        iVar8 = *(int *)(iVar5 + 0x14);
        local_ec = 0;
        if (1 < iVar8) {
          local_ec = 0;
          do {
            uVar13 = local_ec;
            local_ec = uVar13 + 1;
            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =
                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);
          } while (local_ec != iVar8 - 1U);
          uVar13 = uVar13 + 2;
        }
      }
      uVar10 = FUN_00019ba3();
      *(undefined4 *)(iVar5 + 0x18 + local_ec * 4) = uVar10;
      iVar5 = *piVar4;
      *(uint *)(iVar5 + 0x10) = uVar13;
      *(uint *)(iVar5 + 0xc) = uVar13;
    }
  }
  FUN_000aaa10();
  FUN_0001985b();
  FUN_0001ada5();
  FUN_00019f78();
  sVar11 = piVar4[6];
  goto LAB_000ac9e9;
LAB_000ac923:
  iVar5 = piVar4[0x10];
  if (piVar4[0xf] != iVar5) {
LAB_000acddf:
    piVar4[0xf] = iVar5;
    FUN_000abd02();
  }
  goto LAB_000ac7c7;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0xec
CALL 0x00026ff7
ADD EBP,0x2446f
MOV EBX,EAX
MOV dword ptr [ESP + 0x1c],EDX
MOV dword ptr [ESP + 0x10],ECX
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0xdc],EAX
XOR EAX,EAX
MOV byte ptr [ESP + 0x43],0x0
MOV EAX,0xd4
CALL 0x00019b89
MOV EDI,EAX
LEA EAX,[EBP + 0xd00]
MOV dword ptr [EAX],EDI
MOV dword ptr [EDI + 0x4],0x50
LEA EAX,[EBP + 0xffffd133]
MOV dword ptr [EDI + 0x30],EAX
LEA EAX,[ESP + 0x4c]
MOV dword ptr [ESP + 0x3c],EAX
LEA ESI,[ESP + 0x88]
SUB ESP,0xc
PUSH 0x1
MOV ECX,EAX
MOV EDX,ESI
XOR EAX,EAX
CALL 0x00019879
MOV dword ptr [ESP + 0x20],EAX
ADD ESP,0xc
TEST EAX,EAX
JZ 0x000ac672
MOV EAX,dword ptr [ESP + 0x1c]
CALL 0x000aaf0c
CALL 0x00019f78
PUSH ECX
MOV EAX,dword ptr [EBP + 0x58c]
PUSH dword ptr [EAX]
PUSH dword ptr [ESP + 0x108]
MOV ESI,dword ptr [ESP + 0x1c]
PUSH ESI
MOV EBX,EBP
CALL 0x00016c30
ADD ESP,0x10
MOV EBX,0xffffffff
TEST EAX,EAX
JZ 0x000ac9e9
SUB ESP,0xc
PUSH ESI
MOV EBX,EBP
CALL 0x00016b40
ADD ESP,0x10
MOV EBX,EAX
JMP 0x000ac9e9
MOV EAX,dword ptr [ESP + 0x58]
AND EAX,0xa
CMP EAX,0x2
JZ 0x000ac623
CALL 0x000b24de
MOV EAX,dword ptr [ESP + 0x100]
MOV dword ptr [ESP + 0xc],EAX
CMP EAX,0x400
JG 0x000ac856
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [EDI + 0x1c],EAX
TEST EBX,EBX
JNZ 0x000acdec
LEA EBX,[EBP + 0xfffe5e34]
MOV dword ptr [EDI],EBX
MOV dword ptr [ESP + 0x18],0xffffffff
TEST byte ptr [EBX],0x1
JZ 0x000ac6c3
MOV EAX,dword ptr [EBX + 0xc]
MOV dword ptr [EBX + 0x10],EAX
MOV dword ptr [EDI + 0xc],0x0
MOV dword ptr [EDI + 0x18],0x0
MOV EAX,dword ptr [ESP + 0xc]
SHL EAX,0x2
CALL 0x00019b89
MOV dword ptr [EDI + 0x20],EAX
MOV EAX,ESI
CALL 0x0001985b
MOV EBX,EBP
CALL 0x000165c0
SUB ESP,0xc
PUSH EAX
CALL 0x000161b0
MOV EBX,EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000ac715
MOV EAX,dword ptr [EAX]
CALL 0x00019ba3
MOV dword ptr [EDI + 0x2c],EAX
MOV EAX,dword ptr [EBX + 0x14]
CALL 0x00019ba3
MOV dword ptr [EDI + 0x30],EAX
XOR EAX,EAX
CALL 0x00019828
MOV dword ptr [EDI + 0x4],EAX
MOV EAX,dword ptr [ESP + 0x1c]
CALL 0x000aaf0c
MOV dword ptr [ESP + 0x44],0x0
MOV word ptr [ESP + 0x48],0x1
LEA EAX,[ESP + 0x44]
MOV dword ptr [ESP + 0x38],EAX
XOR ECX,ECX
MOV EDX,0x1
CALL 0x000b181c
TEST EAX,EAX
JNZ 0x000ac775
MOV byte ptr [EDI + 0x45],0x1
MOV EAX,dword ptr [EBP + 0x594]
PUSH dword ptr [EAX]
PUSH 0x4
PUSH 0x1
LEA EAX,[EBP + 0xffff3d23]
PUSH EAX
MOV EBX,EBP
CALL 0x00016f00
CALL 0x00019f78
ADD ESP,0x10
LEA EAX,[EBP + 0xfffdb334]
MOV dword ptr [EDI + 0x48],EAX
MOV dword ptr [EDI + 0xcc],0x10000000
LEA EAX,[EDI + 0x48]
MOV dword ptr [ESP + 0x2c],EAX
PUSH EDX
PUSH EAX
PUSH EAX
PUSH 0x1c
MOV EBX,EBP
CALL 0x00017380
MOV byte ptr [ESP + 0xdc],0x0
MOV EAX,dword ptr [EBP + 0xcdc]
MOV dword ptr [ESP + 0x30],EAX
ADD ESP,0x10
LEA EAX,[ESP + 0xcc]
MOV dword ptr [ESP + 0x28],EAX
MOV EAX,dword ptr [EDI + 0x40]
CMP dword ptr [EDI + 0x3c],EAX
JNZ 0x000acddf
CALL 0x00019f78
XOR EBX,EBX
MOV EAX,dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0x1c],EAX
LEA EAX,[ESP + 0xc5]
MOV dword ptr [ESP + 0x24],EAX
MOV byte ptr [EDI + 0x44],0x1
MOV ECX,dword ptr [ESP + 0x1c]
MOV EDX,dword ptr [ESP + 0x28]
XOR EAX,EAX
CALL 0x000b0821
MOV byte ptr [EDI + 0x44],0x0
MOV ESI,dword ptr [ESP + 0x20]
MOV ECX,dword ptr [ESI]
TEST ECX,ECX
JZ 0x000ac872
CMP ECX,0xb
JNZ 0x000acdc9
TEST EBX,EBX
JZ 0x000acdc9
DEC EBX
LEA EDX,[ESP + 0xc6]
MOV ECX,EBX
MOV EAX,dword ptr [ESP + 0x28]
CALL 0x000b0b18
MOV ESI,0x3f
MOV EAX,0x3f
MOVZX ECX,byte ptr [ESP + 0x5d]
TEST CL,CL
JZ 0x000acba3
CMP ECX,ESI
JNZ 0x000acba3
MOV dword ptr [EDI + 0x18],0x0
MOV byte ptr [ESP + 0x18],0xff
JMP 0x000ac96b
MOV dword ptr [ESP + 0xc],0x400
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [EDI + 0x1c],EAX
TEST EBX,EBX
JNZ 0x000acdec
JMP 0x000ac6a8
MOV ESI,EAX
CMP EAX,0xffffff00
JNZ 0x000ac8d0
CMP byte ptr [EDI + 0x45],0x0
JZ 0x000acba3
MOV byte ptr [EDI + 0x45],0x0
MOV ESI,dword ptr [EDI + 0x14]
TEST ESI,ESI
JNZ 0x000ac7e1
MOV ECX,dword ptr [EDI + 0x10]
NOT ECX
MOV EAX,EDX
AND EAX,0x7fff
ADD EAX,ECX
TEST EAX,EAX
JLE 0x000ac7e1
ADD EAX,dword ptr [EDI + 0x8]
MOV dword ptr [EDI + 0x8],EAX
MOV ECX,dword ptr [EDI + 0x4]
CMP EAX,ECX
JC 0x000ac7e1
MOV EDX,dword ptr [EDI + 0xc]
SUB EAX,ECX
INC EDX
CMP EAX,ECX
JNC 0x000ac8be
MOV dword ptr [EDI + 0x8],EAX
MOV dword ptr [EDI + 0xc],EDX
JMP 0x000ac7e1
CMP byte ptr [EBP + 0xd08],0x2
JNZ 0x000ac8e1
TEST EAX,EAX
JNS 0x000accb2
LEA ECX,[ESI + 0x45]
CMP ECX,0xc4
JA 0x000ac830
MOV EBX,dword ptr [EBP + ECX*0x4 + 0xfffec884]
ADD EBX,EBP
JMP EBX
MOV byte ptr [ESP + 0x43],0x0
MOV EAX,dword ptr [EDI + 0x40]
CMP dword ptr [EDI + 0x3c],EAX
JZ 0x000ac7c7
JMP 0x000acddf
CMP byte ptr [EDI + 0x45],0x0
JZ 0x000ac983
SUB ESP,0xc
PUSH 0x4e20
MOV EBX,EBP
CALL 0x00016760
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x10]
MOV byte ptr [EAX],0x0
MOV EDX,dword ptr [EDI + 0x18]
TEST EDX,EDX
JLE 0x000ac99e
MOV EDX,dword ptr [ESP + 0xc]
DEC EDX
CALL 0x000abe42
MOV dword ptr [EDI + 0x18],EAX
SUB ESP,0xc
PUSH dword ptr [EDI + 0x20]
MOV EBX,EBP
CALL 0x000175a0
ADD ESP,0x10
MOV EAX,dword ptr [EDI + 0x18]
TEST EAX,EAX
JLE 0x000ac9be
MOV EDX,dword ptr [EDI]
MOV ESI,dword ptr [EDX]
AND ESI,0x1
JNZ 0x000aca2a
CMP byte ptr [ESP + 0x18],0x1
JZ 0x000aca12
CALL 0x000aaa10
MOV EAX,dword ptr [ESP + 0x3c]
CALL 0x0001985b
MOV EDX,dword ptr [ESP + 0x2c]
MOV EAX,0x1c
CALL 0x0001ada5
CALL 0x00019f78
MOV EBX,dword ptr [EDI + 0x18]
CALL 0x000aaa67
MOV EAX,EBX
MOV ESI,dword ptr [ESP + 0xdc]
XOR ESI,dword ptr GS:[0x14]
JNZ 0x000aca0d
ADD ESP,0xec
POP EBX
POP ESI
POP EDI
POP EBP
RET 0x4
CALL 0x00017e10
MOV EDX,dword ptr [EDI + 0x18]
LEA EAX,[EDX + 0x1]
MOV dword ptr [EDI + 0x18],EAX
MOV ESI,dword ptr [ESP + 0x10]
MOV byte ptr [ESI + EDX*0x1],0xa
MOV byte ptr [ESI + EDX*0x1 + 0x1],0x0
JMP 0x000ac9c5
MOV EAX,dword ptr [ESP + 0x10]
CMP byte ptr [EAX],0x0
JZ 0x000ac9be
MOV ECX,dword ptr [EDX + 0xc]
TEST ECX,ECX
JZ 0x000aca62
SUB ESP,0x8
PUSH EAX
PUSH dword ptr [EDX + ECX*0x4 + 0x14]
MOV dword ptr [ESP + 0x2c],EDX
MOV dword ptr [ESP + 0x1c],ECX
CALL 0x00016140
ADD ESP,0x10
TEST EAX,EAX
MOV ECX,dword ptr [ESP + 0xc]
MOV EDX,dword ptr [ESP + 0x1c]
JZ 0x000ac9be
MOV dword ptr [ESP + 0xc],ECX
SUB ESP,0xc
MOV EAX,dword ptr [EDX + 0x14]
PUSH dword ptr [EDX + EAX*0x4 + 0x18]
MOV EBX,EBP
CALL 0x000175a0
MOV EBX,dword ptr [EDI]
MOV EAX,dword ptr [EBX + 0x14]
MOV dword ptr [EBX + EAX*0x4 + 0x18],0x0
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0xc]
CMP ECX,EAX
JGE 0x000acabf
LEA ESI,[ECX + 0x1]
MOV dword ptr [ESP + 0x14],ECX
MOV EAX,dword ptr [ESP + 0x10]
CALL 0x00019ba3
MOV ECX,dword ptr [ESP + 0x14]
MOV dword ptr [EBX + ECX*0x4 + 0x18],EAX
MOV EAX,dword ptr [EDI]
MOV dword ptr [EAX + 0x10],ESI
MOV dword ptr [EAX + 0xc],ESI
CMP byte ptr [ESP + 0x18],0x1
JNZ 0x000ac9c5
JMP 0x000aca12
SUB ESP,0xc
PUSH dword ptr [EBX + 0x18]
MOV EBX,EBP
CALL 0x000175a0
MOV EBX,dword ptr [EDI]
MOV EAX,dword ptr [EBX + 0x14]
ADD ESP,0x10
CMP EAX,0x1
JLE 0x000aca96
DEC EAX
XOR ESI,ESI
MOV EDX,dword ptr [ESP + 0x14]
INC EDX
MOV ECX,dword ptr [EBX + EDX*0x4 + 0x18]
MOV dword ptr [EBX + EDX*0x4 + 0x14],ECX
CMP EDX,EAX
JZ 0x000acaf1
MOV ESI,EDX
JMP 0x000acae0
MOV dword ptr [ESP + 0x14],EDX
ADD ESI,0x2
JMP 0x000aca96
CMP ESI,0x9
JNZ 0x000ac923
MOV EAX,dword ptr [EDI + 0x40]
CMP dword ptr [EDI + 0x3c],EAX
JZ 0x000ac7c7
JMP 0x000acddf
MOVZX ECX,byte ptr [ESP + 0x61]
TEST CL,CL
JZ 0x000acd0b
CMP ECX,ESI
JNZ 0x000acd0b
MOV EAX,dword ptr [EDI + 0x18]
TEST EAX,EAX
JNZ 0x000acdbf
MOV EAX,dword ptr [ESP + 0x20]
MOV dword ptr [EAX],0x0
MOV dword ptr [EDI + 0x18],0xffffffff
MOV byte ptr [ESP + 0x18],0xff
JMP 0x000ac96b
LEA ESI,[EBX + 0x1]
MOV byte ptr [ESP + EBX*0x1 + 0xc5],AL
MOV byte ptr [ESP + EBX*0x1 + 0xc6],0x0
MOV ECX,0x1
MOV EDX,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [ESP + 0x38]
CALL 0x000b2670
DEC EAX
JZ 0x000accf1
CMP ESI,0x5
JG 0x000ac814
MOV EBX,ESI
MOV dword ptr [ESP + 0x1c],0x32
JMP 0x000ac7e1
MOV ESI,dword ptr [ESP + 0x44]
MOV EAX,ESI
LEA ECX,[ESI + 0x45]
CMP ECX,0xc4
JA 0x000ac830
JMP 0x000ac8f0
LEA EDX,[EAX + -0x20]
CMP EDX,0x3fffffdf
JA 0x000acb19
MOV EDX,dword ptr [EDI + 0x18]
MOV EAX,dword ptr [ESP + 0xc]
SUB EAX,0x2
CMP EDX,EAX
JGE 0x000acb19
LEA EAX,[EDX + 0x1]
MOV dword ptr [ESP + 0x30],EAX
MOV dword ptr [EDI + 0x18],EAX
MOV EAX,dword ptr [EDI + 0x14]
MOV ECX,dword ptr [EDI + 0x20]
LEA EBX,[EAX*0x4 + 0x0]
MOV dword ptr [ESP + 0x24],EBX
ADD EBX,ECX
MOV dword ptr [ESP + 0x1c],EBX
LEA EBX,[EAX + 0x1]
MOV dword ptr [ESP + 0x34],EBX
MOV EBX,dword ptr [ESP + 0x24]
LEA ECX,[ECX + EBX*0x1 + 0x4]
CMP EAX,EDX
JNZ 0x000acd76
MOV EAX,dword ptr [ESP + 0x1c]
MOV dword ptr [EAX],ESI
MOV dword ptr [ECX],0x0
CALL 0x000aba58
JMP 0x000acb19
PUSH EBX
MOV EDX,dword ptr [ESP + 0x34]
SUB EDX,EAX
MOV EAX,EDX
SHL EAX,0x2
PUSH EAX
PUSH dword ptr [ESP + 0x24]
PUSH ECX
MOV EBX,EBP
CALL 0x00016260
MOV EAX,dword ptr [EDI + 0x20]
MOV ECX,dword ptr [ESP + 0x34]
MOV dword ptr [EAX + ECX*0x1],ESI
MOV EAX,dword ptr [EDI + 0x14]
ADD ESP,0x10
CMP dword ptr [EDI + 0x18],EAX
JBE 0x000acdb1
CALL 0x000aba58
MOV EAX,dword ptr [EDI + 0x14]
CMP EAX,dword ptr [EDI + 0x18]
JC 0x000acda4
SUB EAX,dword ptr [ESP + 0x34]
CALL 0x000ab35c
JMP 0x000acb19
CALL 0x000abd91
JMP 0x000acb19
MOV ESI,EAX
LEA ECX,[ESI + 0x45]
CMP ECX,0xc4
JA 0x000ac830
JMP 0x000ac8f0
MOV dword ptr [EDI + 0x3c],EAX
CALL 0x000abd02
JMP 0x000ac7c7
MOV dword ptr [EDI],EBX
MOV EAX,dword ptr [EBX + 0x4]
MOV dword ptr [ESP + 0x18],EAX
JMP 0x000ac6b8
(translation_unit "/* WARNING: Removing unreachable block (ram,0x000acaba) */\n/* WARNING: Removing unreachable block (ram,0x000aca12) */\n\nsize_t FUN_000ac5a2(void)\n\n{\n  undefined4 *__dest;\n  int *piVar1;\n  int iVar2;\n  byte *pbVar3;\n  int *piVar4;\n  int iVar5;\n  char *pcVar6;\n  __uid_t __uid;\n  passwd *ppVar7;\n  int iVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  size_t sVar11;\n  uint *puVar12;\n  int unaff_EBP;\n  uint uVar13;\n  int in_GS_OFFSET;\n  undefined8 uVar14;\n  int unaff_retaddr;\n  int local_f4;\n  char *local_f0;\n  uint local_ec;\n  uint local_a8;\n  byte local_a3;\n  byte local_9f;\n  undefined1 local_3b [7];\n  undefined1 local_34;\n  int local_24;\n  undefined4 local_20;\n  \n  pbVar3 = (byte *)FUN_00026ff7();\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  piVar4 = (int *)FUN_00019b89();\n  *(int **)(&DAT_0002516f + unaff_EBP) = piVar4;\n  piVar4[1] = 0x50;\n  piVar4[0xc] = unaff_EBP + 0x215a2;\n  iVar5 = FUN_00019879(1);\n  if ((iVar5 == 0) && ((local_a8 & 10) != 2)) {\n    FUN_000b24de();\n    if (unaff_retaddr < 0x401) {\n      piVar4[7] = unaff_retaddr;\n      local_f4 = unaff_retaddr;\n    }\n    else {\n      local_f4 = 0x400;\n      piVar4[7] = 0x400;\n    }\n    if (pbVar3 == (byte *)0x0) {\n      pbVar3 = (byte *)(unaff_EBP + 0xa2a3);\n      *piVar4 = (int)pbVar3;\n    }\n    else {\n      *piVar4 = (int)pbVar3;\n    }\n    if ((*pbVar3 & 1) != 0) {\n      *(undefined4 *)(pbVar3 + 0x10) = *(undefined4 *)(pbVar3 + 0xc);\n    }\n    piVar4[3] = 0;\n    piVar4[6] = 0;\n    iVar5 = FUN_00019b89();\n    piVar4[8] = iVar5;\n    FUN_0001985b();\n    __uid = geteuid();\n    ppVar7 = getpwuid(__uid);\n    if (ppVar7 != (passwd *)0x0) {\n      iVar5 = FUN_00019ba3();\n      piVar4[0xb] = iVar5;\n      iVar5 = FUN_00019ba3();\n      piVar4[0xc] = iVar5;\n    }\n    iVar5 = FUN_00019828();\n    piVar4[1] = iVar5;\n    FUN_000aaf0c();\n    iVar5 = FUN_000b181c();\n    if (iVar5 == 0) {\n      *(undefined1 *)((int)piVar4 + 0x45) = 1;\n      fwrite_unlocked((void *)(unaff_EBP + 0x18192),1,4,\n                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP));\n      FUN_00019f78();\n    }\n    piVar4[0x12] = unaff_EBP + -0x85d;\n    piVar4[0x33] = 0x10000000;\n    sigaction(0x1c,(sigaction *)(piVar4 + 0x12),(sigaction *)(piVar4 + 0x12));\n    local_34 = 0;\n    piVar1 = *(int **)(&DAT_0002514b + unaff_EBP);\n    iVar5 = piVar4[0x10];\n    if (piVar4[0xf] != iVar5) goto LAB_000acddf;\nLAB_000ac7c7:\n    FUN_00019f78();\n    iVar5 = 0;\nLAB_000ac7e1:\n    do {\n      *(undefined1 *)(piVar4 + 0x11) = 1;\n      uVar14 = FUN_000b0821();\n      uVar13 = (uint)uVar14;\n      *(undefined1 *)(piVar4 + 0x11) = 0;\n      iVar8 = *piVar1;\n      if (iVar8 != 0) {\n        if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    /* WARNING: Could not recover jumptable at 0x000ac8f9. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }\n        break;\n      }\n      if (uVar13 == 0xffffff00) {\n        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;\n        *(undefined1 *)((int)piVar4 + 0x45) = 0;\n        if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }\n        goto LAB_000ac7e1;\n      }\n      if (((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)) goto joined_r0x000acdd4;\n      iVar8 = iVar5 + 1;\n      local_3b[iVar5] = (char)uVar14;\n      local_3b[iVar5 + 1] = 0;\n      iVar5 = FUN_000b2670();\n      if (iVar5 == 1) {\n        uVar9 = 0x45;\n        goto LAB_000ac8f0;\n      }\n      iVar5 = iVar8;\n    } while (iVar8 < 6);\n    FUN_000b0b18();\n    uVar13 = 0x3f;\nLAB_000ac830:\n    if ((local_a3 != 0) && (local_a3 == uVar13)) {\n      piVar4[6] = 0;\n      goto LAB_000ac96b;\n    }\nLAB_000acba3:\n    if ((local_9f == 0) || (local_9f != uVar13)) {\n      if ((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)) {\n        piVar4[6] = iVar5 + 1;\n        iVar2 = piVar4[5];\n        iVar8 = iVar2 * 4;\n        puVar12 = (uint *)(iVar8 + piVar4[8]);\n        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);\n        if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }\n      }\n    }\n    else {\n      if (piVar4[6] == 0) goto code_r0x000acbc3;\n      FUN_000abd91();\n    }\n    if (uVar13 != 9) goto LAB_000ac923;\n    iVar5 = piVar4[0x10];\n    if (piVar4[0xf] != iVar5) goto LAB_000acddf;\n    goto LAB_000ac7c7;\n  }\n  FUN_000aaf0c();\n  FUN_00019f78();\n  pcVar6 = fgets_unlocked(local_f0,unaff_retaddr,\n                          (FILE *)**(undefined4 **)(&DAT_000249fb + unaff_EBP));\n  sVar11 = 0xffffffff;\n  if (pcVar6 != (char *)0x0) {\n    sVar11 = strlen(local_f0);\n  }\nLAB_000ac9e9:\n  FUN_000aaa67();\n  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00017e10();\n  }\n  return sVar11;\ncode_r0x000acbc3:\n  *piVar1 = 0;\n  piVar4[6] = -1;\nLAB_000ac96b:\n  if (*(char *)((int)piVar4 + 0x45) != '\0') {\n    usleep(20000);\n  }\n  *local_f0 = '\0';\n  if (0 < piVar4[6]) {\n    iVar5 = FUN_000abe42();\n    piVar4[6] = iVar5;\n  }\n  free((void *)piVar4[8]);\n  if (0 < piVar4[6]) {\n    puVar12 = (uint *)*piVar4;\n    uVar13 = *puVar12 & 1;\n    if (((uVar13 != 0) && (*local_f0 != '\0')) &&\n       ((local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)))) {\n      free((void *)puVar12[puVar12[5] + 6]);\n      iVar5 = *piVar4;\n      iVar8 = *(int *)(iVar5 + 0x14);\n      *(undefined4 *)(iVar5 + 0x18 + iVar8 * 4) = 0;\n      if ((int)local_ec < iVar8) {\n        uVar13 = local_ec + 1;\n      }\n      else {\n        free(*(void **)(iVar5 + 0x18));\n        iVar5 = *piVar4;\n        iVar8 = *(int *)(iVar5 + 0x14);\n        local_ec = 0;\n        if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }\n      }\n      uVar10 = FUN_00019ba3();\n      *(undefined4 *)(iVar5 + 0x18 + local_ec * 4) = uVar10;\n      iVar5 = *piVar4;\n      *(uint *)(iVar5 + 0x10) = uVar13;\n      *(uint *)(iVar5 + 0xc) = uVar13;\n    }\n  }\n  FUN_000aaa10();\n  FUN_0001985b();\n  FUN_0001ada5();\n  FUN_00019f78();\n  sVar11 = piVar4[6];\n  goto LAB_000ac9e9;\nLAB_000ac923:\n  iVar5 = piVar4[0x10];\n  if (piVar4[0xf] != iVar5) {\nLAB_000acddf:\n    piVar4[0xf] = iVar5;\n    FUN_000abd02();\n  }\n  goto LAB_000ac7c7;\n}\n\n" comment comment (function_definition "size_t FUN_000ac5a2(void)\n\n{\n  undefined4 *__dest;\n  int *piVar1;\n  int iVar2;\n  byte *pbVar3;\n  int *piVar4;\n  int iVar5;\n  char *pcVar6;\n  __uid_t __uid;\n  passwd *ppVar7;\n  int iVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  size_t sVar11;\n  uint *puVar12;\n  int unaff_EBP;\n  uint uVar13;\n  int in_GS_OFFSET;\n  undefined8 uVar14;\n  int unaff_retaddr;\n  int local_f4;\n  char *local_f0;\n  uint local_ec;\n  uint local_a8;\n  byte local_a3;\n  byte local_9f;\n  undefined1 local_3b [7];\n  undefined1 local_34;\n  int local_24;\n  undefined4 local_20;\n  \n  pbVar3 = (byte *)FUN_00026ff7();\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  piVar4 = (int *)FUN_00019b89();\n  *(int **)(&DAT_0002516f + unaff_EBP) = piVar4;\n  piVar4[1] = 0x50;\n  piVar4[0xc] = unaff_EBP + 0x215a2;\n  iVar5 = FUN_00019879(1);\n  if ((iVar5 == 0) && ((local_a8 & 10) != 2)) {\n    FUN_000b24de();\n    if (unaff_retaddr < 0x401) {\n      piVar4[7] = unaff_retaddr;\n      local_f4 = unaff_retaddr;\n    }\n    else {\n      local_f4 = 0x400;\n      piVar4[7] = 0x400;\n    }\n    if (pbVar3 == (byte *)0x0) {\n      pbVar3 = (byte *)(unaff_EBP + 0xa2a3);\n      *piVar4 = (int)pbVar3;\n    }\n    else {\n      *piVar4 = (int)pbVar3;\n    }\n    if ((*pbVar3 & 1) != 0) {\n      *(undefined4 *)(pbVar3 + 0x10) = *(undefined4 *)(pbVar3 + 0xc);\n    }\n    piVar4[3] = 0;\n    piVar4[6] = 0;\n    iVar5 = FUN_00019b89();\n    piVar4[8] = iVar5;\n    FUN_0001985b();\n    __uid = geteuid();\n    ppVar7 = getpwuid(__uid);\n    if (ppVar7 != (passwd *)0x0) {\n      iVar5 = FUN_00019ba3();\n      piVar4[0xb] = iVar5;\n      iVar5 = FUN_00019ba3();\n      piVar4[0xc] = iVar5;\n    }\n    iVar5 = FUN_00019828();\n    piVar4[1] = iVar5;\n    FUN_000aaf0c();\n    iVar5 = FUN_000b181c();\n    if (iVar5 == 0) {\n      *(undefined1 *)((int)piVar4 + 0x45) = 1;\n      fwrite_unlocked((void *)(unaff_EBP + 0x18192),1,4,\n                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP));\n      FUN_00019f78();\n    }\n    piVar4[0x12] = unaff_EBP + -0x85d;\n    piVar4[0x33] = 0x10000000;\n    sigaction(0x1c,(sigaction *)(piVar4 + 0x12),(sigaction *)(piVar4 + 0x12));\n    local_34 = 0;\n    piVar1 = *(int **)(&DAT_0002514b + unaff_EBP);\n    iVar5 = piVar4[0x10];\n    if (piVar4[0xf] != iVar5) goto LAB_000acddf;\nLAB_000ac7c7:\n    FUN_00019f78();\n    iVar5 = 0;\nLAB_000ac7e1:\n    do {\n      *(undefined1 *)(piVar4 + 0x11) = 1;\n      uVar14 = FUN_000b0821();\n      uVar13 = (uint)uVar14;\n      *(undefined1 *)(piVar4 + 0x11) = 0;\n      iVar8 = *piVar1;\n      if (iVar8 != 0) {\n        if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    /* WARNING: Could not recover jumptable at 0x000ac8f9. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }\n        break;\n      }\n      if (uVar13 == 0xffffff00) {\n        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;\n        *(undefined1 *)((int)piVar4 + 0x45) = 0;\n        if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }\n        goto LAB_000ac7e1;\n      }\n      if (((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)) goto joined_r0x000acdd4;\n      iVar8 = iVar5 + 1;\n      local_3b[iVar5] = (char)uVar14;\n      local_3b[iVar5 + 1] = 0;\n      iVar5 = FUN_000b2670();\n      if (iVar5 == 1) {\n        uVar9 = 0x45;\n        goto LAB_000ac8f0;\n      }\n      iVar5 = iVar8;\n    } while (iVar8 < 6);\n    FUN_000b0b18();\n    uVar13 = 0x3f;\nLAB_000ac830:\n    if ((local_a3 != 0) && (local_a3 == uVar13)) {\n      piVar4[6] = 0;\n      goto LAB_000ac96b;\n    }\nLAB_000acba3:\n    if ((local_9f == 0) || (local_9f != uVar13)) {\n      if ((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)) {\n        piVar4[6] = iVar5 + 1;\n        iVar2 = piVar4[5];\n        iVar8 = iVar2 * 4;\n        puVar12 = (uint *)(iVar8 + piVar4[8]);\n        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);\n        if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }\n      }\n    }\n    else {\n      if (piVar4[6] == 0) goto code_r0x000acbc3;\n      FUN_000abd91();\n    }\n    if (uVar13 != 9) goto LAB_000ac923;\n    iVar5 = piVar4[0x10];\n    if (piVar4[0xf] != iVar5) goto LAB_000acddf;\n    goto LAB_000ac7c7;\n  }\n  FUN_000aaf0c();\n  FUN_00019f78();\n  pcVar6 = fgets_unlocked(local_f0,unaff_retaddr,\n                          (FILE *)**(undefined4 **)(&DAT_000249fb + unaff_EBP));\n  sVar11 = 0xffffffff;\n  if (pcVar6 != (char *)0x0) {\n    sVar11 = strlen(local_f0);\n  }\nLAB_000ac9e9:\n  FUN_000aaa67();\n  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00017e10();\n  }\n  return sVar11;\ncode_r0x000acbc3:\n  *piVar1 = 0;\n  piVar4[6] = -1;\nLAB_000ac96b:\n  if (*(char *)((int)piVar4 + 0x45) != '\0') {\n    usleep(20000);\n  }\n  *local_f0 = '\0';\n  if (0 < piVar4[6]) {\n    iVar5 = FUN_000abe42();\n    piVar4[6] = iVar5;\n  }\n  free((void *)piVar4[8]);\n  if (0 < piVar4[6]) {\n    puVar12 = (uint *)*piVar4;\n    uVar13 = *puVar12 & 1;\n    if (((uVar13 != 0) && (*local_f0 != '\0')) &&\n       ((local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)))) {\n      free((void *)puVar12[puVar12[5] + 6]);\n      iVar5 = *piVar4;\n      iVar8 = *(int *)(iVar5 + 0x14);\n      *(undefined4 *)(iVar5 + 0x18 + iVar8 * 4) = 0;\n      if ((int)local_ec < iVar8) {\n        uVar13 = local_ec + 1;\n      }\n      else {\n        free(*(void **)(iVar5 + 0x18));\n        iVar5 = *piVar4;\n        iVar8 = *(int *)(iVar5 + 0x14);\n        local_ec = 0;\n        if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }\n      }\n      uVar10 = FUN_00019ba3();\n      *(undefined4 *)(iVar5 + 0x18 + local_ec * 4) = uVar10;\n      iVar5 = *piVar4;\n      *(uint *)(iVar5 + 0x10) = uVar13;\n      *(uint *)(iVar5 + 0xc) = uVar13;\n    }\n  }\n  FUN_000aaa10();\n  FUN_0001985b();\n  FUN_0001ada5();\n  FUN_00019f78();\n  sVar11 = piVar4[6];\n  goto LAB_000ac9e9;\nLAB_000ac923:\n  iVar5 = piVar4[0x10];\n  if (piVar4[0xf] != iVar5) {\nLAB_000acddf:\n    piVar4[0xf] = iVar5;\n    FUN_000abd02();\n  }\n  goto LAB_000ac7c7;\n}" primitive_type (function_declarator "FUN_000ac5a2(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined4 *__dest;\n  int *piVar1;\n  int iVar2;\n  byte *pbVar3;\n  int *piVar4;\n  int iVar5;\n  char *pcVar6;\n  __uid_t __uid;\n  passwd *ppVar7;\n  int iVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  size_t sVar11;\n  uint *puVar12;\n  int unaff_EBP;\n  uint uVar13;\n  int in_GS_OFFSET;\n  undefined8 uVar14;\n  int unaff_retaddr;\n  int local_f4;\n  char *local_f0;\n  uint local_ec;\n  uint local_a8;\n  byte local_a3;\n  byte local_9f;\n  undefined1 local_3b [7];\n  undefined1 local_34;\n  int local_24;\n  undefined4 local_20;\n  \n  pbVar3 = (byte *)FUN_00026ff7();\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  piVar4 = (int *)FUN_00019b89();\n  *(int **)(&DAT_0002516f + unaff_EBP) = piVar4;\n  piVar4[1] = 0x50;\n  piVar4[0xc] = unaff_EBP + 0x215a2;\n  iVar5 = FUN_00019879(1);\n  if ((iVar5 == 0) && ((local_a8 & 10) != 2)) {\n    FUN_000b24de();\n    if (unaff_retaddr < 0x401) {\n      piVar4[7] = unaff_retaddr;\n      local_f4 = unaff_retaddr;\n    }\n    else {\n      local_f4 = 0x400;\n      piVar4[7] = 0x400;\n    }\n    if (pbVar3 == (byte *)0x0) {\n      pbVar3 = (byte *)(unaff_EBP + 0xa2a3);\n      *piVar4 = (int)pbVar3;\n    }\n    else {\n      *piVar4 = (int)pbVar3;\n    }\n    if ((*pbVar3 & 1) != 0) {\n      *(undefined4 *)(pbVar3 + 0x10) = *(undefined4 *)(pbVar3 + 0xc);\n    }\n    piVar4[3] = 0;\n    piVar4[6] = 0;\n    iVar5 = FUN_00019b89();\n    piVar4[8] = iVar5;\n    FUN_0001985b();\n    __uid = geteuid();\n    ppVar7 = getpwuid(__uid);\n    if (ppVar7 != (passwd *)0x0) {\n      iVar5 = FUN_00019ba3();\n      piVar4[0xb] = iVar5;\n      iVar5 = FUN_00019ba3();\n      piVar4[0xc] = iVar5;\n    }\n    iVar5 = FUN_00019828();\n    piVar4[1] = iVar5;\n    FUN_000aaf0c();\n    iVar5 = FUN_000b181c();\n    if (iVar5 == 0) {\n      *(undefined1 *)((int)piVar4 + 0x45) = 1;\n      fwrite_unlocked((void *)(unaff_EBP + 0x18192),1,4,\n                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP));\n      FUN_00019f78();\n    }\n    piVar4[0x12] = unaff_EBP + -0x85d;\n    piVar4[0x33] = 0x10000000;\n    sigaction(0x1c,(sigaction *)(piVar4 + 0x12),(sigaction *)(piVar4 + 0x12));\n    local_34 = 0;\n    piVar1 = *(int **)(&DAT_0002514b + unaff_EBP);\n    iVar5 = piVar4[0x10];\n    if (piVar4[0xf] != iVar5) goto LAB_000acddf;\nLAB_000ac7c7:\n    FUN_00019f78();\n    iVar5 = 0;\nLAB_000ac7e1:\n    do {\n      *(undefined1 *)(piVar4 + 0x11) = 1;\n      uVar14 = FUN_000b0821();\n      uVar13 = (uint)uVar14;\n      *(undefined1 *)(piVar4 + 0x11) = 0;\n      iVar8 = *piVar1;\n      if (iVar8 != 0) {\n        if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    /* WARNING: Could not recover jumptable at 0x000ac8f9. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }\n        break;\n      }\n      if (uVar13 == 0xffffff00) {\n        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;\n        *(undefined1 *)((int)piVar4 + 0x45) = 0;\n        if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }\n        goto LAB_000ac7e1;\n      }\n      if (((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)) goto joined_r0x000acdd4;\n      iVar8 = iVar5 + 1;\n      local_3b[iVar5] = (char)uVar14;\n      local_3b[iVar5 + 1] = 0;\n      iVar5 = FUN_000b2670();\n      if (iVar5 == 1) {\n        uVar9 = 0x45;\n        goto LAB_000ac8f0;\n      }\n      iVar5 = iVar8;\n    } while (iVar8 < 6);\n    FUN_000b0b18();\n    uVar13 = 0x3f;\nLAB_000ac830:\n    if ((local_a3 != 0) && (local_a3 == uVar13)) {\n      piVar4[6] = 0;\n      goto LAB_000ac96b;\n    }\nLAB_000acba3:\n    if ((local_9f == 0) || (local_9f != uVar13)) {\n      if ((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)) {\n        piVar4[6] = iVar5 + 1;\n        iVar2 = piVar4[5];\n        iVar8 = iVar2 * 4;\n        puVar12 = (uint *)(iVar8 + piVar4[8]);\n        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);\n        if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }\n      }\n    }\n    else {\n      if (piVar4[6] == 0) goto code_r0x000acbc3;\n      FUN_000abd91();\n    }\n    if (uVar13 != 9) goto LAB_000ac923;\n    iVar5 = piVar4[0x10];\n    if (piVar4[0xf] != iVar5) goto LAB_000acddf;\n    goto LAB_000ac7c7;\n  }\n  FUN_000aaf0c();\n  FUN_00019f78();\n  pcVar6 = fgets_unlocked(local_f0,unaff_retaddr,\n                          (FILE *)**(undefined4 **)(&DAT_000249fb + unaff_EBP));\n  sVar11 = 0xffffffff;\n  if (pcVar6 != (char *)0x0) {\n    sVar11 = strlen(local_f0);\n  }\nLAB_000ac9e9:\n  FUN_000aaa67();\n  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00017e10();\n  }\n  return sVar11;\ncode_r0x000acbc3:\n  *piVar1 = 0;\n  piVar4[6] = -1;\nLAB_000ac96b:\n  if (*(char *)((int)piVar4 + 0x45) != '\0') {\n    usleep(20000);\n  }\n  *local_f0 = '\0';\n  if (0 < piVar4[6]) {\n    iVar5 = FUN_000abe42();\n    piVar4[6] = iVar5;\n  }\n  free((void *)piVar4[8]);\n  if (0 < piVar4[6]) {\n    puVar12 = (uint *)*piVar4;\n    uVar13 = *puVar12 & 1;\n    if (((uVar13 != 0) && (*local_f0 != '\0')) &&\n       ((local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)))) {\n      free((void *)puVar12[puVar12[5] + 6]);\n      iVar5 = *piVar4;\n      iVar8 = *(int *)(iVar5 + 0x14);\n      *(undefined4 *)(iVar5 + 0x18 + iVar8 * 4) = 0;\n      if ((int)local_ec < iVar8) {\n        uVar13 = local_ec + 1;\n      }\n      else {\n        free(*(void **)(iVar5 + 0x18));\n        iVar5 = *piVar4;\n        iVar8 = *(int *)(iVar5 + 0x14);\n        local_ec = 0;\n        if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }\n      }\n      uVar10 = FUN_00019ba3();\n      *(undefined4 *)(iVar5 + 0x18 + local_ec * 4) = uVar10;\n      iVar5 = *piVar4;\n      *(uint *)(iVar5 + 0x10) = uVar13;\n      *(uint *)(iVar5 + 0xc) = uVar13;\n    }\n  }\n  FUN_000aaa10();\n  FUN_0001985b();\n  FUN_0001ada5();\n  FUN_00019f78();\n  sVar11 = piVar4[6];\n  goto LAB_000ac9e9;\nLAB_000ac923:\n  iVar5 = piVar4[0x10];\n  if (piVar4[0xf] != iVar5) {\nLAB_000acddf:\n    piVar4[0xf] = iVar5;\n    FUN_000abd02();\n  }\n  goto LAB_000ac7c7;\n}" { (declaration "undefined4 *__dest;" type_identifier (pointer_declarator "*__dest" * identifier) ;) (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "__uid_t __uid;" type_identifier identifier ;) (declaration "passwd *ppVar7;" type_identifier (pointer_declarator "*ppVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "size_t sVar11;" primitive_type identifier ;) (declaration "uint *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined8 uVar14;" type_identifier identifier ;) (declaration "int unaff_retaddr;" primitive_type identifier ;) (declaration "int local_f4;" primitive_type identifier ;) (declaration "char *local_f0;" primitive_type (pointer_declarator "*local_f0" * identifier) ;) (declaration "uint local_ec;" type_identifier identifier ;) (declaration "uint local_a8;" type_identifier identifier ;) (declaration "byte local_a3;" type_identifier identifier ;) (declaration "byte local_9f;" type_identifier identifier ;) (declaration "undefined1 local_3b [7];" type_identifier (array_declarator "local_3b [7]" identifier [ number_literal ]) ;) (declaration "undefined1 local_34;" type_identifier identifier ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (expression_statement "pbVar3 = (byte *)FUN_00026ff7();" (assignment_expression "pbVar3 = (byte *)FUN_00026ff7()" identifier = (cast_expression "(byte *)FUN_00026ff7()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00026ff7()" identifier (argument_list "()" ( ))))) ;) (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) ))))) ;) (expression_statement "piVar4 = (int *)FUN_00019b89();" (assignment_expression "piVar4 = (int *)FUN_00019b89()" identifier = (cast_expression "(int *)FUN_00019b89()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00019b89()" identifier (argument_list "()" ( ))))) ;) (expression_statement "*(int **)(&DAT_0002516f + unaff_EBP) = piVar4;" (assignment_expression "*(int **)(&DAT_0002516f + unaff_EBP) = piVar4" (pointer_expression "*(int **)(&DAT_0002516f + unaff_EBP)" * (cast_expression "(int **)(&DAT_0002516f + unaff_EBP)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_0002516f + unaff_EBP)" ( (binary_expression "&DAT_0002516f + unaff_EBP" (pointer_expression "&DAT_0002516f" & identifier) + identifier) )))) = identifier) ;) (expression_statement "piVar4[1] = 0x50;" (assignment_expression "piVar4[1] = 0x50" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar4[0xc] = unaff_EBP + 0x215a2;" (assignment_expression "piVar4[0xc] = unaff_EBP + 0x215a2" (subscript_expression "piVar4[0xc]" identifier [ number_literal ]) = (binary_expression "unaff_EBP + 0x215a2" identifier + number_literal)) ;) (expression_statement "iVar5 = FUN_00019879(1);" (assignment_expression "iVar5 = FUN_00019879(1)" identifier = (call_expression "FUN_00019879(1)" identifier (argument_list "(1)" ( number_literal )))) ;) (if_statement "if ((iVar5 == 0) && ((local_a8 & 10) != 2)) {\n    FUN_000b24de();\n    if (unaff_retaddr < 0x401) {\n      piVar4[7] = unaff_retaddr;\n      local_f4 = unaff_retaddr;\n    }\n    else {\n      local_f4 = 0x400;\n      piVar4[7] = 0x400;\n    }\n    if (pbVar3 == (byte *)0x0) {\n      pbVar3 = (byte *)(unaff_EBP + 0xa2a3);\n      *piVar4 = (int)pbVar3;\n    }\n    else {\n      *piVar4 = (int)pbVar3;\n    }\n    if ((*pbVar3 & 1) != 0) {\n      *(undefined4 *)(pbVar3 + 0x10) = *(undefined4 *)(pbVar3 + 0xc);\n    }\n    piVar4[3] = 0;\n    piVar4[6] = 0;\n    iVar5 = FUN_00019b89();\n    piVar4[8] = iVar5;\n    FUN_0001985b();\n    __uid = geteuid();\n    ppVar7 = getpwuid(__uid);\n    if (ppVar7 != (passwd *)0x0) {\n      iVar5 = FUN_00019ba3();\n      piVar4[0xb] = iVar5;\n      iVar5 = FUN_00019ba3();\n      piVar4[0xc] = iVar5;\n    }\n    iVar5 = FUN_00019828();\n    piVar4[1] = iVar5;\n    FUN_000aaf0c();\n    iVar5 = FUN_000b181c();\n    if (iVar5 == 0) {\n      *(undefined1 *)((int)piVar4 + 0x45) = 1;\n      fwrite_unlocked((void *)(unaff_EBP + 0x18192),1,4,\n                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP));\n      FUN_00019f78();\n    }\n    piVar4[0x12] = unaff_EBP + -0x85d;\n    piVar4[0x33] = 0x10000000;\n    sigaction(0x1c,(sigaction *)(piVar4 + 0x12),(sigaction *)(piVar4 + 0x12));\n    local_34 = 0;\n    piVar1 = *(int **)(&DAT_0002514b + unaff_EBP);\n    iVar5 = piVar4[0x10];\n    if (piVar4[0xf] != iVar5) goto LAB_000acddf;\nLAB_000ac7c7:\n    FUN_00019f78();\n    iVar5 = 0;\nLAB_000ac7e1:\n    do {\n      *(undefined1 *)(piVar4 + 0x11) = 1;\n      uVar14 = FUN_000b0821();\n      uVar13 = (uint)uVar14;\n      *(undefined1 *)(piVar4 + 0x11) = 0;\n      iVar8 = *piVar1;\n      if (iVar8 != 0) {\n        if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    /* WARNING: Could not recover jumptable at 0x000ac8f9. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }\n        break;\n      }\n      if (uVar13 == 0xffffff00) {\n        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;\n        *(undefined1 *)((int)piVar4 + 0x45) = 0;\n        if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }\n        goto LAB_000ac7e1;\n      }\n      if (((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)) goto joined_r0x000acdd4;\n      iVar8 = iVar5 + 1;\n      local_3b[iVar5] = (char)uVar14;\n      local_3b[iVar5 + 1] = 0;\n      iVar5 = FUN_000b2670();\n      if (iVar5 == 1) {\n        uVar9 = 0x45;\n        goto LAB_000ac8f0;\n      }\n      iVar5 = iVar8;\n    } while (iVar8 < 6);\n    FUN_000b0b18();\n    uVar13 = 0x3f;\nLAB_000ac830:\n    if ((local_a3 != 0) && (local_a3 == uVar13)) {\n      piVar4[6] = 0;\n      goto LAB_000ac96b;\n    }\nLAB_000acba3:\n    if ((local_9f == 0) || (local_9f != uVar13)) {\n      if ((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)) {\n        piVar4[6] = iVar5 + 1;\n        iVar2 = piVar4[5];\n        iVar8 = iVar2 * 4;\n        puVar12 = (uint *)(iVar8 + piVar4[8]);\n        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);\n        if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }\n      }\n    }\n    else {\n      if (piVar4[6] == 0) goto code_r0x000acbc3;\n      FUN_000abd91();\n    }\n    if (uVar13 != 9) goto LAB_000ac923;\n    iVar5 = piVar4[0x10];\n    if (piVar4[0xf] != iVar5) goto LAB_000acddf;\n    goto LAB_000ac7c7;\n  }" if (parenthesized_expression "((iVar5 == 0) && ((local_a8 & 10) != 2))" ( (binary_expression "(iVar5 == 0) && ((local_a8 & 10) != 2)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) && (parenthesized_expression "((local_a8 & 10) != 2)" ( (binary_expression "(local_a8 & 10) != 2" (parenthesized_expression "(local_a8 & 10)" ( (binary_expression "local_a8 & 10" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    FUN_000b24de();\n    if (unaff_retaddr < 0x401) {\n      piVar4[7] = unaff_retaddr;\n      local_f4 = unaff_retaddr;\n    }\n    else {\n      local_f4 = 0x400;\n      piVar4[7] = 0x400;\n    }\n    if (pbVar3 == (byte *)0x0) {\n      pbVar3 = (byte *)(unaff_EBP + 0xa2a3);\n      *piVar4 = (int)pbVar3;\n    }\n    else {\n      *piVar4 = (int)pbVar3;\n    }\n    if ((*pbVar3 & 1) != 0) {\n      *(undefined4 *)(pbVar3 + 0x10) = *(undefined4 *)(pbVar3 + 0xc);\n    }\n    piVar4[3] = 0;\n    piVar4[6] = 0;\n    iVar5 = FUN_00019b89();\n    piVar4[8] = iVar5;\n    FUN_0001985b();\n    __uid = geteuid();\n    ppVar7 = getpwuid(__uid);\n    if (ppVar7 != (passwd *)0x0) {\n      iVar5 = FUN_00019ba3();\n      piVar4[0xb] = iVar5;\n      iVar5 = FUN_00019ba3();\n      piVar4[0xc] = iVar5;\n    }\n    iVar5 = FUN_00019828();\n    piVar4[1] = iVar5;\n    FUN_000aaf0c();\n    iVar5 = FUN_000b181c();\n    if (iVar5 == 0) {\n      *(undefined1 *)((int)piVar4 + 0x45) = 1;\n      fwrite_unlocked((void *)(unaff_EBP + 0x18192),1,4,\n                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP));\n      FUN_00019f78();\n    }\n    piVar4[0x12] = unaff_EBP + -0x85d;\n    piVar4[0x33] = 0x10000000;\n    sigaction(0x1c,(sigaction *)(piVar4 + 0x12),(sigaction *)(piVar4 + 0x12));\n    local_34 = 0;\n    piVar1 = *(int **)(&DAT_0002514b + unaff_EBP);\n    iVar5 = piVar4[0x10];\n    if (piVar4[0xf] != iVar5) goto LAB_000acddf;\nLAB_000ac7c7:\n    FUN_00019f78();\n    iVar5 = 0;\nLAB_000ac7e1:\n    do {\n      *(undefined1 *)(piVar4 + 0x11) = 1;\n      uVar14 = FUN_000b0821();\n      uVar13 = (uint)uVar14;\n      *(undefined1 *)(piVar4 + 0x11) = 0;\n      iVar8 = *piVar1;\n      if (iVar8 != 0) {\n        if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    /* WARNING: Could not recover jumptable at 0x000ac8f9. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }\n        break;\n      }\n      if (uVar13 == 0xffffff00) {\n        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;\n        *(undefined1 *)((int)piVar4 + 0x45) = 0;\n        if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }\n        goto LAB_000ac7e1;\n      }\n      if (((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)) goto joined_r0x000acdd4;\n      iVar8 = iVar5 + 1;\n      local_3b[iVar5] = (char)uVar14;\n      local_3b[iVar5 + 1] = 0;\n      iVar5 = FUN_000b2670();\n      if (iVar5 == 1) {\n        uVar9 = 0x45;\n        goto LAB_000ac8f0;\n      }\n      iVar5 = iVar8;\n    } while (iVar8 < 6);\n    FUN_000b0b18();\n    uVar13 = 0x3f;\nLAB_000ac830:\n    if ((local_a3 != 0) && (local_a3 == uVar13)) {\n      piVar4[6] = 0;\n      goto LAB_000ac96b;\n    }\nLAB_000acba3:\n    if ((local_9f == 0) || (local_9f != uVar13)) {\n      if ((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)) {\n        piVar4[6] = iVar5 + 1;\n        iVar2 = piVar4[5];\n        iVar8 = iVar2 * 4;\n        puVar12 = (uint *)(iVar8 + piVar4[8]);\n        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);\n        if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }\n      }\n    }\n    else {\n      if (piVar4[6] == 0) goto code_r0x000acbc3;\n      FUN_000abd91();\n    }\n    if (uVar13 != 9) goto LAB_000ac923;\n    iVar5 = piVar4[0x10];\n    if (piVar4[0xf] != iVar5) goto LAB_000acddf;\n    goto LAB_000ac7c7;\n  }" { (expression_statement "FUN_000b24de();" (call_expression "FUN_000b24de()" identifier (argument_list "()" ( ))) ;) (if_statement "if (unaff_retaddr < 0x401) {\n      piVar4[7] = unaff_retaddr;\n      local_f4 = unaff_retaddr;\n    }\n    else {\n      local_f4 = 0x400;\n      piVar4[7] = 0x400;\n    }" if (parenthesized_expression "(unaff_retaddr < 0x401)" ( (binary_expression "unaff_retaddr < 0x401" identifier < number_literal) )) (compound_statement "{\n      piVar4[7] = unaff_retaddr;\n      local_f4 = unaff_retaddr;\n    }" { (expression_statement "piVar4[7] = unaff_retaddr;" (assignment_expression "piVar4[7] = unaff_retaddr" (subscript_expression "piVar4[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_f4 = unaff_retaddr;" (assignment_expression "local_f4 = unaff_retaddr" identifier = identifier) ;) }) (else_clause "else {\n      local_f4 = 0x400;\n      piVar4[7] = 0x400;\n    }" else (compound_statement "{\n      local_f4 = 0x400;\n      piVar4[7] = 0x400;\n    }" { (expression_statement "local_f4 = 0x400;" (assignment_expression "local_f4 = 0x400" identifier = number_literal) ;) (expression_statement "piVar4[7] = 0x400;" (assignment_expression "piVar4[7] = 0x400" (subscript_expression "piVar4[7]" identifier [ number_literal ]) = number_literal) ;) }))) (if_statement "if (pbVar3 == (byte *)0x0) {\n      pbVar3 = (byte *)(unaff_EBP + 0xa2a3);\n      *piVar4 = (int)pbVar3;\n    }\n    else {\n      *piVar4 = (int)pbVar3;\n    }" if (parenthesized_expression "(pbVar3 == (byte *)0x0)" ( (binary_expression "pbVar3 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbVar3 = (byte *)(unaff_EBP + 0xa2a3);\n      *piVar4 = (int)pbVar3;\n    }" { (expression_statement "pbVar3 = (byte *)(unaff_EBP + 0xa2a3);" (assignment_expression "pbVar3 = (byte *)(unaff_EBP + 0xa2a3)" identifier = (cast_expression "(byte *)(unaff_EBP + 0xa2a3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xa2a3)" ( (binary_expression "unaff_EBP + 0xa2a3" identifier + number_literal) )))) ;) (expression_statement "*piVar4 = (int)pbVar3;" (assignment_expression "*piVar4 = (int)pbVar3" (pointer_expression "*piVar4" * identifier) = (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n      *piVar4 = (int)pbVar3;\n    }" else (compound_statement "{\n      *piVar4 = (int)pbVar3;\n    }" { (expression_statement "*piVar4 = (int)pbVar3;" (assignment_expression "*piVar4 = (int)pbVar3" (pointer_expression "*piVar4" * identifier) = (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) (if_statement "if ((*pbVar3 & 1) != 0) {\n      *(undefined4 *)(pbVar3 + 0x10) = *(undefined4 *)(pbVar3 + 0xc);\n    }" if (parenthesized_expression "((*pbVar3 & 1) != 0)" ( (binary_expression "(*pbVar3 & 1) != 0" (parenthesized_expression "(*pbVar3 & 1)" ( (binary_expression "*pbVar3 & 1" (pointer_expression "*pbVar3" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      *(undefined4 *)(pbVar3 + 0x10) = *(undefined4 *)(pbVar3 + 0xc);\n    }" { (expression_statement "*(undefined4 *)(pbVar3 + 0x10) = *(undefined4 *)(pbVar3 + 0xc);" (assignment_expression "*(undefined4 *)(pbVar3 + 0x10) = *(undefined4 *)(pbVar3 + 0xc)" (pointer_expression "*(undefined4 *)(pbVar3 + 0x10)" * (cast_expression "(undefined4 *)(pbVar3 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0x10)" ( (binary_expression "pbVar3 + 0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(pbVar3 + 0xc)" * (cast_expression "(undefined4 *)(pbVar3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) ))))) ;) })) (expression_statement "piVar4[3] = 0;" (assignment_expression "piVar4[3] = 0" (subscript_expression "piVar4[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar4[6] = 0;" (assignment_expression "piVar4[6] = 0" (subscript_expression "piVar4[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar5 = FUN_00019b89();" (assignment_expression "iVar5 = FUN_00019b89()" identifier = (call_expression "FUN_00019b89()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar4[8] = iVar5;" (assignment_expression "piVar4[8] = iVar5" (subscript_expression "piVar4[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_0001985b();" (call_expression "FUN_0001985b()" identifier (argument_list "()" ( ))) ;) (expression_statement "__uid = geteuid();" (assignment_expression "__uid = geteuid()" identifier = (call_expression "geteuid()" identifier (argument_list "()" ( )))) ;) (expression_statement "ppVar7 = getpwuid(__uid);" (assignment_expression "ppVar7 = getpwuid(__uid)" identifier = (call_expression "getpwuid(__uid)" identifier (argument_list "(__uid)" ( identifier )))) ;) (if_statement "if (ppVar7 != (passwd *)0x0) {\n      iVar5 = FUN_00019ba3();\n      piVar4[0xb] = iVar5;\n      iVar5 = FUN_00019ba3();\n      piVar4[0xc] = iVar5;\n    }" if (parenthesized_expression "(ppVar7 != (passwd *)0x0)" ( (binary_expression "ppVar7 != (passwd *)0x0" identifier != (cast_expression "(passwd *)0x0" ( (type_descriptor "passwd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar5 = FUN_00019ba3();\n      piVar4[0xb] = iVar5;\n      iVar5 = FUN_00019ba3();\n      piVar4[0xc] = iVar5;\n    }" { (expression_statement "iVar5 = FUN_00019ba3();" (assignment_expression "iVar5 = FUN_00019ba3()" identifier = (call_expression "FUN_00019ba3()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar4[0xb] = iVar5;" (assignment_expression "piVar4[0xb] = iVar5" (subscript_expression "piVar4[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar5 = FUN_00019ba3();" (assignment_expression "iVar5 = FUN_00019ba3()" identifier = (call_expression "FUN_00019ba3()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar4[0xc] = iVar5;" (assignment_expression "piVar4[0xc] = iVar5" (subscript_expression "piVar4[0xc]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "iVar5 = FUN_00019828();" (assignment_expression "iVar5 = FUN_00019828()" identifier = (call_expression "FUN_00019828()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar4[1] = iVar5;" (assignment_expression "piVar4[1] = iVar5" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_000aaf0c();" (call_expression "FUN_000aaf0c()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = FUN_000b181c();" (assignment_expression "iVar5 = FUN_000b181c()" identifier = (call_expression "FUN_000b181c()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 0) {\n      *(undefined1 *)((int)piVar4 + 0x45) = 1;\n      fwrite_unlocked((void *)(unaff_EBP + 0x18192),1,4,\n                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP));\n      FUN_00019f78();\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      *(undefined1 *)((int)piVar4 + 0x45) = 1;\n      fwrite_unlocked((void *)(unaff_EBP + 0x18192),1,4,\n                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP));\n      FUN_00019f78();\n    }" { (expression_statement "*(undefined1 *)((int)piVar4 + 0x45) = 1;" (assignment_expression "*(undefined1 *)((int)piVar4 + 0x45) = 1" (pointer_expression "*(undefined1 *)((int)piVar4 + 0x45)" * (cast_expression "(undefined1 *)((int)piVar4 + 0x45)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + 0x45)" ( (binary_expression "(int)piVar4 + 0x45" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "fwrite_unlocked((void *)(unaff_EBP + 0x18192),1,4,\n                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP));" (call_expression "fwrite_unlocked((void *)(unaff_EBP + 0x18192),1,4,\n                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP))" identifier (argument_list "((void *)(unaff_EBP + 0x18192),1,4,\n                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP))" ( (cast_expression "(void *)(unaff_EBP + 0x18192)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x18192)" ( (binary_expression "unaff_EBP + 0x18192" identifier + number_literal) ))) , number_literal , number_literal , (cast_expression "(FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(&DAT_00024a03 + unaff_EBP)" * (pointer_expression "*(undefined4 **)(&DAT_00024a03 + unaff_EBP)" * (cast_expression "(undefined4 **)(&DAT_00024a03 + unaff_EBP)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00024a03 + unaff_EBP)" ( (binary_expression "&DAT_00024a03 + unaff_EBP" (pointer_expression "&DAT_00024a03" & identifier) + identifier) )))))) ))) ;) (expression_statement "FUN_00019f78();" (call_expression "FUN_00019f78()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "piVar4[0x12] = unaff_EBP + -0x85d;" (assignment_expression "piVar4[0x12] = unaff_EBP + -0x85d" (subscript_expression "piVar4[0x12]" identifier [ number_literal ]) = (binary_expression "unaff_EBP + -0x85d" identifier + number_literal)) ;) (expression_statement "piVar4[0x33] = 0x10000000;" (assignment_expression "piVar4[0x33] = 0x10000000" (subscript_expression "piVar4[0x33]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "sigaction(0x1c,(sigaction *)(piVar4 + 0x12),(sigaction *)(piVar4 + 0x12));" (call_expression "sigaction(0x1c,(sigaction *)(piVar4 + 0x12),(sigaction *)(piVar4 + 0x12))" identifier (argument_list "(0x1c,(sigaction *)(piVar4 + 0x12),(sigaction *)(piVar4 + 0x12))" ( number_literal , (cast_expression "(sigaction *)(piVar4 + 0x12)" ( (type_descriptor "sigaction *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 0x12)" ( (binary_expression "piVar4 + 0x12" identifier + number_literal) ))) , (cast_expression "(sigaction *)(piVar4 + 0x12)" ( (type_descriptor "sigaction *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 0x12)" ( (binary_expression "piVar4 + 0x12" identifier + number_literal) ))) ))) ;) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "piVar1 = *(int **)(&DAT_0002514b + unaff_EBP);" (assignment_expression "piVar1 = *(int **)(&DAT_0002514b + unaff_EBP)" identifier = (pointer_expression "*(int **)(&DAT_0002514b + unaff_EBP)" * (cast_expression "(int **)(&DAT_0002514b + unaff_EBP)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_0002514b + unaff_EBP)" ( (binary_expression "&DAT_0002514b + unaff_EBP" (pointer_expression "&DAT_0002514b" & identifier) + identifier) ))))) ;) (expression_statement "iVar5 = piVar4[0x10];" (assignment_expression "iVar5 = piVar4[0x10]" identifier = (subscript_expression "piVar4[0x10]" identifier [ number_literal ])) ;) (if_statement "if (piVar4[0xf] != iVar5) goto LAB_000acddf;" if (parenthesized_expression "(piVar4[0xf] != iVar5)" ( (binary_expression "piVar4[0xf] != iVar5" (subscript_expression "piVar4[0xf]" identifier [ number_literal ]) != identifier) )) (goto_statement "goto LAB_000acddf;" goto statement_identifier ;)) (labeled_statement "LAB_000ac7c7:\n    FUN_00019f78();" statement_identifier : (expression_statement "FUN_00019f78();" (call_expression "FUN_00019f78()" identifier (argument_list "()" ( ))) ;)) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000ac7e1:\n    do {\n      *(undefined1 *)(piVar4 + 0x11) = 1;\n      uVar14 = FUN_000b0821();\n      uVar13 = (uint)uVar14;\n      *(undefined1 *)(piVar4 + 0x11) = 0;\n      iVar8 = *piVar1;\n      if (iVar8 != 0) {\n        if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    /* WARNING: Could not recover jumptable at 0x000ac8f9. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }\n        break;\n      }\n      if (uVar13 == 0xffffff00) {\n        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;\n        *(undefined1 *)((int)piVar4 + 0x45) = 0;\n        if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }\n        goto LAB_000ac7e1;\n      }\n      if (((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)) goto joined_r0x000acdd4;\n      iVar8 = iVar5 + 1;\n      local_3b[iVar5] = (char)uVar14;\n      local_3b[iVar5 + 1] = 0;\n      iVar5 = FUN_000b2670();\n      if (iVar5 == 1) {\n        uVar9 = 0x45;\n        goto LAB_000ac8f0;\n      }\n      iVar5 = iVar8;\n    } while (iVar8 < 6);" statement_identifier : (do_statement "do {\n      *(undefined1 *)(piVar4 + 0x11) = 1;\n      uVar14 = FUN_000b0821();\n      uVar13 = (uint)uVar14;\n      *(undefined1 *)(piVar4 + 0x11) = 0;\n      iVar8 = *piVar1;\n      if (iVar8 != 0) {\n        if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    /* WARNING: Could not recover jumptable at 0x000ac8f9. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }\n        break;\n      }\n      if (uVar13 == 0xffffff00) {\n        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;\n        *(undefined1 *)((int)piVar4 + 0x45) = 0;\n        if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }\n        goto LAB_000ac7e1;\n      }\n      if (((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)) goto joined_r0x000acdd4;\n      iVar8 = iVar5 + 1;\n      local_3b[iVar5] = (char)uVar14;\n      local_3b[iVar5 + 1] = 0;\n      iVar5 = FUN_000b2670();\n      if (iVar5 == 1) {\n        uVar9 = 0x45;\n        goto LAB_000ac8f0;\n      }\n      iVar5 = iVar8;\n    } while (iVar8 < 6);" do (compound_statement "{\n      *(undefined1 *)(piVar4 + 0x11) = 1;\n      uVar14 = FUN_000b0821();\n      uVar13 = (uint)uVar14;\n      *(undefined1 *)(piVar4 + 0x11) = 0;\n      iVar8 = *piVar1;\n      if (iVar8 != 0) {\n        if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    /* WARNING: Could not recover jumptable at 0x000ac8f9. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }\n        break;\n      }\n      if (uVar13 == 0xffffff00) {\n        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;\n        *(undefined1 *)((int)piVar4 + 0x45) = 0;\n        if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }\n        goto LAB_000ac7e1;\n      }\n      if (((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)) goto joined_r0x000acdd4;\n      iVar8 = iVar5 + 1;\n      local_3b[iVar5] = (char)uVar14;\n      local_3b[iVar5 + 1] = 0;\n      iVar5 = FUN_000b2670();\n      if (iVar5 == 1) {\n        uVar9 = 0x45;\n        goto LAB_000ac8f0;\n      }\n      iVar5 = iVar8;\n    }" { (expression_statement "*(undefined1 *)(piVar4 + 0x11) = 1;" (assignment_expression "*(undefined1 *)(piVar4 + 0x11) = 1" (pointer_expression "*(undefined1 *)(piVar4 + 0x11)" * (cast_expression "(undefined1 *)(piVar4 + 0x11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 0x11)" ( (binary_expression "piVar4 + 0x11" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar14 = FUN_000b0821();" (assignment_expression "uVar14 = FUN_000b0821()" identifier = (call_expression "FUN_000b0821()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar13 = (uint)uVar14;" (assignment_expression "uVar13 = (uint)uVar14" identifier = (cast_expression "(uint)uVar14" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(undefined1 *)(piVar4 + 0x11) = 0;" (assignment_expression "*(undefined1 *)(piVar4 + 0x11) = 0" (pointer_expression "*(undefined1 *)(piVar4 + 0x11)" * (cast_expression "(undefined1 *)(piVar4 + 0x11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 0x11)" ( (binary_expression "piVar4 + 0x11" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar8 = *piVar1;" (assignment_expression "iVar8 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (if_statement "if (iVar8 != 0) {\n        if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    /* WARNING: Could not recover jumptable at 0x000ac8f9. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }\n        break;\n      }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    /* WARNING: Could not recover jumptable at 0x000ac8f9. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }\n        break;\n      }" { (if_statement "if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    /* WARNING: Could not recover jumptable at 0x000ac8f9. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }" if (parenthesized_expression "((iVar8 != 0xb) || (iVar5 == 0))" ( (binary_expression "(iVar8 != 0xb) || (iVar5 == 0)" (parenthesized_expression "(iVar8 != 0xb)" ( (binary_expression "iVar8 != 0xb" identifier != number_literal) )) || (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) ))) )) (compound_statement "{\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    /* WARNING: Could not recover jumptable at 0x000ac8f9. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }" { (labeled_statement "joined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;" statement_identifier : (expression_statement "uVar9 = uVar13 + 0x45;" (assignment_expression "uVar9 = uVar13 + 0x45" identifier = (binary_expression "uVar13 + 0x45" identifier + number_literal)) ;)) (if_statement "if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    /* WARNING: Could not recover jumptable at 0x000ac8f9. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }" if (parenthesized_expression "(uVar9 < 0xc5)" ( (binary_expression "uVar9 < 0xc5" identifier < number_literal) )) (compound_statement "{\nLAB_000ac8f0:\n                    /* WARNING: Could not recover jumptable at 0x000ac8f9. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }" { (labeled_statement "LAB_000ac8f0:\n                    /* WARNING: Could not recover jumptable at 0x000ac8f9. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();" statement_identifier : comment comment (expression_statement "sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();" (assignment_expression "sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))()" identifier = (call_expression "(*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))" ( (pointer_expression "*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f)" * (cast_expression "(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f)" ( (binary_expression "*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f" (binary_expression "*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP" (pointer_expression "*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4)" * (cast_expression "(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x10cf3 + uVar9 * 4)" ( (binary_expression "unaff_EBP + 0x10cf3 + uVar9 * 4" (binary_expression "unaff_EBP + 0x10cf3" identifier + number_literal) + (binary_expression "uVar9 * 4" identifier * number_literal)) )))) + identifier) + number_literal) )))) )) (argument_list "()" ( )))) ;)) (return_statement "return sVar11;" return identifier ;) })) (goto_statement "goto LAB_000ac830;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (if_statement "if (uVar13 == 0xffffff00) {\n        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;\n        *(undefined1 *)((int)piVar4 + 0x45) = 0;\n        if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }\n        goto LAB_000ac7e1;\n      }" if (parenthesized_expression "(uVar13 == 0xffffff00)" ( (binary_expression "uVar13 == 0xffffff00" identifier == number_literal) )) (compound_statement "{\n        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;\n        *(undefined1 *)((int)piVar4 + 0x45) = 0;\n        if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }\n        goto LAB_000ac7e1;\n      }" { (if_statement "if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;" if (parenthesized_expression "(*(char *)((int)piVar4 + 0x45) == '\0')" ( (binary_expression "*(char *)((int)piVar4 + 0x45) == '\0'" (pointer_expression "*(char *)((int)piVar4 + 0x45)" * (cast_expression "(char *)((int)piVar4 + 0x45)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + 0x45)" ( (binary_expression "(int)piVar4 + 0x45" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000acba3;" goto statement_identifier ;)) (expression_statement "*(undefined1 *)((int)piVar4 + 0x45) = 0;" (assignment_expression "*(undefined1 *)((int)piVar4 + 0x45) = 0" (pointer_expression "*(undefined1 *)((int)piVar4 + 0x45)" * (cast_expression "(undefined1 *)((int)piVar4 + 0x45)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + 0x45)" ( (binary_expression "(int)piVar4 + 0x45" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (if_statement "if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }" if (parenthesized_expression "((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8))" ( (binary_expression "(piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)" (parenthesized_expression "(piVar4[5] == 0)" ( (binary_expression "piVar4[5] == 0" (subscript_expression "piVar4[5]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)" ( (comma_expression "iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8" (assignment_expression "iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4]" identifier = (binary_expression "((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4]" (parenthesized_expression "((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff)" ( (binary_expression "(uint)((ulonglong)uVar14 >> 0x20) & 0x7fff" (call_expression "(uint)((ulonglong)uVar14 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar14 >> 0x20)" ( (binary_expression "(ulonglong)uVar14 >> 0x20" (cast_expression "(ulonglong)uVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & number_literal) )) + (unary_expression "~piVar4[4]" ~ (subscript_expression "piVar4[4]" identifier [ number_literal ])))) , (binary_expression "0 < iVar8" number_literal < identifier)) ))) )) (compound_statement "{\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }" { (expression_statement "uVar9 = iVar8 + piVar4[2];" (assignment_expression "uVar9 = iVar8 + piVar4[2]" identifier = (binary_expression "iVar8 + piVar4[2]" identifier + (subscript_expression "piVar4[2]" identifier [ number_literal ]))) ;) (expression_statement "piVar4[2] = uVar9;" (assignment_expression "piVar4[2] = uVar9" (subscript_expression "piVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar13 = piVar4[1];" (assignment_expression "uVar13 = piVar4[1]" identifier = (subscript_expression "piVar4[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }" if (parenthesized_expression "(uVar13 <= uVar9)" ( (binary_expression "uVar13 <= uVar9" identifier <= identifier) )) (compound_statement "{\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }" { (expression_statement "iVar8 = piVar4[3];" (assignment_expression "iVar8 = piVar4[3]" identifier = (subscript_expression "piVar4[3]" identifier [ number_literal ])) ;) (do_statement "do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);" do (compound_statement "{\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            }" { (expression_statement "uVar9 = uVar9 - uVar13;" (assignment_expression "uVar9 = uVar9 - uVar13" identifier = (binary_expression "uVar9 - uVar13" identifier - identifier)) ;) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar13 <= uVar9)" ( (binary_expression "uVar13 <= uVar9" identifier <= identifier) )) ;) (expression_statement "piVar4[2] = uVar9;" (assignment_expression "piVar4[2] = uVar9" (subscript_expression "piVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar4[3] = iVar8;" (assignment_expression "piVar4[3] = iVar8" (subscript_expression "piVar4[3]" identifier [ number_literal ]) = identifier) ;) })) })) (goto_statement "goto LAB_000ac7e1;" goto statement_identifier ;) })) (if_statement "if (((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)) goto joined_r0x000acdd4;" if (parenthesized_expression "(((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0))" ( (binary_expression "((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)" (parenthesized_expression "((&LAB_00025177)[unaff_EBP] != '\x02')" ( (binary_expression "(&LAB_00025177)[unaff_EBP] != '\x02'" (subscript_expression "(&LAB_00025177)[unaff_EBP]" (parenthesized_expression "(&LAB_00025177)" ( (pointer_expression "&LAB_00025177" & identifier) )) [ identifier ]) != (char_literal "'\x02'" ' escape_sequence ')) )) || (parenthesized_expression "((int)uVar13 < 0)" ( (binary_expression "(int)uVar13 < 0" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))) )) (goto_statement "goto joined_r0x000acdd4;" goto statement_identifier ;)) (expression_statement "iVar8 = iVar5 + 1;" (assignment_expression "iVar8 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "local_3b[iVar5] = (char)uVar14;" (assignment_expression "local_3b[iVar5] = (char)uVar14" (subscript_expression "local_3b[iVar5]" identifier [ identifier ]) = (cast_expression "(char)uVar14" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "local_3b[iVar5 + 1] = 0;" (assignment_expression "local_3b[iVar5 + 1] = 0" (subscript_expression "local_3b[iVar5 + 1]" identifier [ (binary_expression "iVar5 + 1" identifier + number_literal) ]) = number_literal) ;) (expression_statement "iVar5 = FUN_000b2670();" (assignment_expression "iVar5 = FUN_000b2670()" identifier = (call_expression "FUN_000b2670()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 1) {\n        uVar9 = 0x45;\n        goto LAB_000ac8f0;\n      }" if (parenthesized_expression "(iVar5 == 1)" ( (binary_expression "iVar5 == 1" identifier == number_literal) )) (compound_statement "{\n        uVar9 = 0x45;\n        goto LAB_000ac8f0;\n      }" { (expression_statement "uVar9 = 0x45;" (assignment_expression "uVar9 = 0x45" identifier = number_literal) ;) (goto_statement "goto LAB_000ac8f0;" goto statement_identifier ;) })) (expression_statement "iVar5 = iVar8;" (assignment_expression "iVar5 = iVar8" identifier = identifier) ;) }) while (parenthesized_expression "(iVar8 < 6)" ( (binary_expression "iVar8 < 6" identifier < number_literal) )) ;)) (expression_statement "FUN_000b0b18();" (call_expression "FUN_000b0b18()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar13 = 0x3f;" (assignment_expression "uVar13 = 0x3f" identifier = number_literal) ;) (labeled_statement "LAB_000ac830:\n    if ((local_a3 != 0) && (local_a3 == uVar13)) {\n      piVar4[6] = 0;\n      goto LAB_000ac96b;\n    }" statement_identifier : (if_statement "if ((local_a3 != 0) && (local_a3 == uVar13)) {\n      piVar4[6] = 0;\n      goto LAB_000ac96b;\n    }" if (parenthesized_expression "((local_a3 != 0) && (local_a3 == uVar13))" ( (binary_expression "(local_a3 != 0) && (local_a3 == uVar13)" (parenthesized_expression "(local_a3 != 0)" ( (binary_expression "local_a3 != 0" identifier != number_literal) )) && (parenthesized_expression "(local_a3 == uVar13)" ( (binary_expression "local_a3 == uVar13" identifier == identifier) ))) )) (compound_statement "{\n      piVar4[6] = 0;\n      goto LAB_000ac96b;\n    }" { (expression_statement "piVar4[6] = 0;" (assignment_expression "piVar4[6] = 0" (subscript_expression "piVar4[6]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_000ac96b;" goto statement_identifier ;) }))) (labeled_statement "LAB_000acba3:\n    if ((local_9f == 0) || (local_9f != uVar13)) {\n      if ((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)) {\n        piVar4[6] = iVar5 + 1;\n        iVar2 = piVar4[5];\n        iVar8 = iVar2 * 4;\n        puVar12 = (uint *)(iVar8 + piVar4[8]);\n        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);\n        if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }\n      }\n    }\n    else {\n      if (piVar4[6] == 0) goto code_r0x000acbc3;\n      FUN_000abd91();\n    }" statement_identifier : (if_statement "if ((local_9f == 0) || (local_9f != uVar13)) {\n      if ((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)) {\n        piVar4[6] = iVar5 + 1;\n        iVar2 = piVar4[5];\n        iVar8 = iVar2 * 4;\n        puVar12 = (uint *)(iVar8 + piVar4[8]);\n        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);\n        if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }\n      }\n    }\n    else {\n      if (piVar4[6] == 0) goto code_r0x000acbc3;\n      FUN_000abd91();\n    }" if (parenthesized_expression "((local_9f == 0) || (local_9f != uVar13))" ( (binary_expression "(local_9f == 0) || (local_9f != uVar13)" (parenthesized_expression "(local_9f == 0)" ( (binary_expression "local_9f == 0" identifier == number_literal) )) || (parenthesized_expression "(local_9f != uVar13)" ( (binary_expression "local_9f != uVar13" identifier != identifier) ))) )) (compound_statement "{\n      if ((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)) {\n        piVar4[6] = iVar5 + 1;\n        iVar2 = piVar4[5];\n        iVar8 = iVar2 * 4;\n        puVar12 = (uint *)(iVar8 + piVar4[8]);\n        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);\n        if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }\n      }\n    }" { (if_statement "if ((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)) {\n        piVar4[6] = iVar5 + 1;\n        iVar2 = piVar4[5];\n        iVar8 = iVar2 * 4;\n        puVar12 = (uint *)(iVar8 + piVar4[8]);\n        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);\n        if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }\n      }" if (parenthesized_expression "((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2))" ( (binary_expression "(uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)" (parenthesized_expression "(uVar13 - 0x20 < 0x3fffffe0)" ( (binary_expression "uVar13 - 0x20 < 0x3fffffe0" (binary_expression "uVar13 - 0x20" identifier - number_literal) < number_literal) )) && (parenthesized_expression "(iVar5 = piVar4[6], iVar5 < local_f4 + -2)" ( (comma_expression "iVar5 = piVar4[6], iVar5 < local_f4 + -2" (assignment_expression "iVar5 = piVar4[6]" identifier = (subscript_expression "piVar4[6]" identifier [ number_literal ])) , (binary_expression "iVar5 < local_f4 + -2" identifier < (binary_expression "local_f4 + -2" identifier + number_literal))) ))) )) (compound_statement "{\n        piVar4[6] = iVar5 + 1;\n        iVar2 = piVar4[5];\n        iVar8 = iVar2 * 4;\n        puVar12 = (uint *)(iVar8 + piVar4[8]);\n        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);\n        if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }\n      }" { (expression_statement "piVar4[6] = iVar5 + 1;" (assignment_expression "piVar4[6] = iVar5 + 1" (subscript_expression "piVar4[6]" identifier [ number_literal ]) = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "iVar2 = piVar4[5];" (assignment_expression "iVar2 = piVar4[5]" identifier = (subscript_expression "piVar4[5]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = iVar2 * 4;" (assignment_expression "iVar8 = iVar2 * 4" identifier = (binary_expression "iVar2 * 4" identifier * number_literal)) ;) (expression_statement "puVar12 = (uint *)(iVar8 + piVar4[8]);" (assignment_expression "puVar12 = (uint *)(iVar8 + piVar4[8])" identifier = (cast_expression "(uint *)(iVar8 + piVar4[8])" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + piVar4[8])" ( (binary_expression "iVar8 + piVar4[8]" identifier + (subscript_expression "piVar4[8]" identifier [ number_literal ])) )))) ;) (expression_statement "__dest = (undefined4 *)(piVar4[8] + 4 + iVar8);" (assignment_expression "__dest = (undefined4 *)(piVar4[8] + 4 + iVar8)" identifier = (cast_expression "(undefined4 *)(piVar4[8] + 4 + iVar8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[8] + 4 + iVar8)" ( (binary_expression "piVar4[8] + 4 + iVar8" (binary_expression "piVar4[8] + 4" (subscript_expression "piVar4[8]" identifier [ number_literal ]) + number_literal) + identifier) )))) ;) (if_statement "if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }" if (parenthesized_expression "(iVar2 == iVar5)" ( (binary_expression "iVar2 == iVar5" identifier == identifier) )) (compound_statement "{\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }" { (expression_statement "*puVar12 = uVar13;" (assignment_expression "*puVar12 = uVar13" (pointer_expression "*puVar12" * identifier) = identifier) ;) (expression_statement "*__dest = 0;" (assignment_expression "*__dest = 0" (pointer_expression "*__dest" * identifier) = number_literal) ;) (expression_statement "FUN_000aba58();" (call_expression "FUN_000aba58()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }" else (compound_statement "{\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }" { (expression_statement "memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);" (call_expression "memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4)" identifier (argument_list "(__dest,puVar12,((iVar5 + 1) - iVar2) * 4)" ( identifier , identifier , (binary_expression "((iVar5 + 1) - iVar2) * 4" (parenthesized_expression "((iVar5 + 1) - iVar2)" ( (binary_expression "(iVar5 + 1) - iVar2" (parenthesized_expression "(iVar5 + 1)" ( (binary_expression "iVar5 + 1" identifier + number_literal) )) - identifier) )) * number_literal) ))) ;) (expression_statement "*(uint *)(piVar4[8] + iVar8) = uVar13;" (assignment_expression "*(uint *)(piVar4[8] + iVar8) = uVar13" (pointer_expression "*(uint *)(piVar4[8] + iVar8)" * (cast_expression "(uint *)(piVar4[8] + iVar8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[8] + iVar8)" ( (binary_expression "piVar4[8] + iVar8" (subscript_expression "piVar4[8]" identifier [ number_literal ]) + identifier) )))) = identifier) ;) (if_statement "if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }" if (parenthesized_expression "((uint)piVar4[5] < (uint)piVar4[6])" ( (binary_expression "(uint)piVar4[5] < (uint)piVar4[6]" (cast_expression "(uint)piVar4[5]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar4[5]" identifier [ number_literal ])) < (cast_expression "(uint)piVar4[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar4[6]" identifier [ number_literal ]))) )) (compound_statement "{\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }" { (do_statement "do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);" do (compound_statement "{\n              FUN_000aba58();\n            }" { (expression_statement "FUN_000aba58();" (call_expression "FUN_000aba58()" identifier (argument_list "()" ( ))) ;) }) while (parenthesized_expression "((uint)piVar4[5] < (uint)piVar4[6])" ( (binary_expression "(uint)piVar4[5] < (uint)piVar4[6]" (cast_expression "(uint)piVar4[5]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar4[5]" identifier [ number_literal ])) < (cast_expression "(uint)piVar4[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar4[6]" identifier [ number_literal ]))) )) ;) })) (expression_statement "FUN_000ab35c();" (call_expression "FUN_000ab35c()" identifier (argument_list "()" ( ))) ;) }))) })) }) (else_clause "else {\n      if (piVar4[6] == 0) goto code_r0x000acbc3;\n      FUN_000abd91();\n    }" else (compound_statement "{\n      if (piVar4[6] == 0) goto code_r0x000acbc3;\n      FUN_000abd91();\n    }" { (if_statement "if (piVar4[6] == 0) goto code_r0x000acbc3;" if (parenthesized_expression "(piVar4[6] == 0)" ( (binary_expression "piVar4[6] == 0" (subscript_expression "piVar4[6]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto code_r0x000acbc3;" goto statement_identifier ;)) (expression_statement "FUN_000abd91();" (call_expression "FUN_000abd91()" identifier (argument_list "()" ( ))) ;) })))) (if_statement "if (uVar13 != 9) goto LAB_000ac923;" if (parenthesized_expression "(uVar13 != 9)" ( (binary_expression "uVar13 != 9" identifier != number_literal) )) (goto_statement "goto LAB_000ac923;" goto statement_identifier ;)) (expression_statement "iVar5 = piVar4[0x10];" (assignment_expression "iVar5 = piVar4[0x10]" identifier = (subscript_expression "piVar4[0x10]" identifier [ number_literal ])) ;) (if_statement "if (piVar4[0xf] != iVar5) goto LAB_000acddf;" if (parenthesized_expression "(piVar4[0xf] != iVar5)" ( (binary_expression "piVar4[0xf] != iVar5" (subscript_expression "piVar4[0xf]" identifier [ number_literal ]) != identifier) )) (goto_statement "goto LAB_000acddf;" goto statement_identifier ;)) (goto_statement "goto LAB_000ac7c7;" goto statement_identifier ;) })) (expression_statement "FUN_000aaf0c();" (call_expression "FUN_000aaf0c()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00019f78();" (call_expression "FUN_00019f78()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar6 = fgets_unlocked(local_f0,unaff_retaddr,\n                          (FILE *)**(undefined4 **)(&DAT_000249fb + unaff_EBP));" (assignment_expression "pcVar6 = fgets_unlocked(local_f0,unaff_retaddr,\n                          (FILE *)**(undefined4 **)(&DAT_000249fb + unaff_EBP))" identifier = (call_expression "fgets_unlocked(local_f0,unaff_retaddr,\n                          (FILE *)**(undefined4 **)(&DAT_000249fb + unaff_EBP))" identifier (argument_list "(local_f0,unaff_retaddr,\n                          (FILE *)**(undefined4 **)(&DAT_000249fb + unaff_EBP))" ( identifier , identifier , (cast_expression "(FILE *)**(undefined4 **)(&DAT_000249fb + unaff_EBP)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(&DAT_000249fb + unaff_EBP)" * (pointer_expression "*(undefined4 **)(&DAT_000249fb + unaff_EBP)" * (cast_expression "(undefined4 **)(&DAT_000249fb + unaff_EBP)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_000249fb + unaff_EBP)" ( (binary_expression "&DAT_000249fb + unaff_EBP" (pointer_expression "&DAT_000249fb" & identifier) + identifier) )))))) )))) ;) (expression_statement "sVar11 = 0xffffffff;" (assignment_expression "sVar11 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (pcVar6 != (char *)0x0) {\n    sVar11 = strlen(local_f0);\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    sVar11 = strlen(local_f0);\n  }" { (expression_statement "sVar11 = strlen(local_f0);" (assignment_expression "sVar11 = strlen(local_f0)" identifier = (call_expression "strlen(local_f0)" identifier (argument_list "(local_f0)" ( identifier )))) ;) })) (labeled_statement "LAB_000ac9e9:\n  FUN_000aaa67();" statement_identifier : (expression_statement "FUN_000aaa67();" (call_expression "FUN_000aaa67()" identifier (argument_list "()" ( ))) ;)) (if_statement "if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00017e10();\n  }" if (parenthesized_expression "(local_24 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_24 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00017e10();\n  }" { comment (expression_statement "FUN_00017e10();" (call_expression "FUN_00017e10()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return sVar11;" return identifier ;) (labeled_statement "code_r0x000acbc3:\n  *piVar1 = 0;" statement_identifier : (expression_statement "*piVar1 = 0;" (assignment_expression "*piVar1 = 0" (pointer_expression "*piVar1" * identifier) = number_literal) ;)) (expression_statement "piVar4[6] = -1;" (assignment_expression "piVar4[6] = -1" (subscript_expression "piVar4[6]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_000ac96b:\n  if (*(char *)((int)piVar4 + 0x45) != '\0') {\n    usleep(20000);\n  }" statement_identifier : (if_statement "if (*(char *)((int)piVar4 + 0x45) != '\0') {\n    usleep(20000);\n  }" if (parenthesized_expression "(*(char *)((int)piVar4 + 0x45) != '\0')" ( (binary_expression "*(char *)((int)piVar4 + 0x45) != '\0'" (pointer_expression "*(char *)((int)piVar4 + 0x45)" * (cast_expression "(char *)((int)piVar4 + 0x45)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + 0x45)" ( (binary_expression "(int)piVar4 + 0x45" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    usleep(20000);\n  }" { (expression_statement "usleep(20000);" (call_expression "usleep(20000)" identifier (argument_list "(20000)" ( number_literal ))) ;) }))) (expression_statement "*local_f0 = '\0';" (assignment_expression "*local_f0 = '\0'" (pointer_expression "*local_f0" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (0 < piVar4[6]) {\n    iVar5 = FUN_000abe42();\n    piVar4[6] = iVar5;\n  }" if (parenthesized_expression "(0 < piVar4[6])" ( (binary_expression "0 < piVar4[6]" number_literal < (subscript_expression "piVar4[6]" identifier [ number_literal ])) )) (compound_statement "{\n    iVar5 = FUN_000abe42();\n    piVar4[6] = iVar5;\n  }" { (expression_statement "iVar5 = FUN_000abe42();" (assignment_expression "iVar5 = FUN_000abe42()" identifier = (call_expression "FUN_000abe42()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar4[6] = iVar5;" (assignment_expression "piVar4[6] = iVar5" (subscript_expression "piVar4[6]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "free((void *)piVar4[8]);" (call_expression "free((void *)piVar4[8])" identifier (argument_list "((void *)piVar4[8])" ( (cast_expression "(void *)piVar4[8]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[8]" identifier [ number_literal ])) ))) ;) (if_statement "if (0 < piVar4[6]) {\n    puVar12 = (uint *)*piVar4;\n    uVar13 = *puVar12 & 1;\n    if (((uVar13 != 0) && (*local_f0 != '\0')) &&\n       ((local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)))) {\n      free((void *)puVar12[puVar12[5] + 6]);\n      iVar5 = *piVar4;\n      iVar8 = *(int *)(iVar5 + 0x14);\n      *(undefined4 *)(iVar5 + 0x18 + iVar8 * 4) = 0;\n      if ((int)local_ec < iVar8) {\n        uVar13 = local_ec + 1;\n      }\n      else {\n        free(*(void **)(iVar5 + 0x18));\n        iVar5 = *piVar4;\n        iVar8 = *(int *)(iVar5 + 0x14);\n        local_ec = 0;\n        if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }\n      }\n      uVar10 = FUN_00019ba3();\n      *(undefined4 *)(iVar5 + 0x18 + local_ec * 4) = uVar10;\n      iVar5 = *piVar4;\n      *(uint *)(iVar5 + 0x10) = uVar13;\n      *(uint *)(iVar5 + 0xc) = uVar13;\n    }\n  }" if (parenthesized_expression "(0 < piVar4[6])" ( (binary_expression "0 < piVar4[6]" number_literal < (subscript_expression "piVar4[6]" identifier [ number_literal ])) )) (compound_statement "{\n    puVar12 = (uint *)*piVar4;\n    uVar13 = *puVar12 & 1;\n    if (((uVar13 != 0) && (*local_f0 != '\0')) &&\n       ((local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)))) {\n      free((void *)puVar12[puVar12[5] + 6]);\n      iVar5 = *piVar4;\n      iVar8 = *(int *)(iVar5 + 0x14);\n      *(undefined4 *)(iVar5 + 0x18 + iVar8 * 4) = 0;\n      if ((int)local_ec < iVar8) {\n        uVar13 = local_ec + 1;\n      }\n      else {\n        free(*(void **)(iVar5 + 0x18));\n        iVar5 = *piVar4;\n        iVar8 = *(int *)(iVar5 + 0x14);\n        local_ec = 0;\n        if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }\n      }\n      uVar10 = FUN_00019ba3();\n      *(undefined4 *)(iVar5 + 0x18 + local_ec * 4) = uVar10;\n      iVar5 = *piVar4;\n      *(uint *)(iVar5 + 0x10) = uVar13;\n      *(uint *)(iVar5 + 0xc) = uVar13;\n    }\n  }" { (expression_statement "puVar12 = (uint *)*piVar4;" (assignment_expression "puVar12 = (uint *)*piVar4" identifier = (cast_expression "(uint *)*piVar4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (expression_statement "uVar13 = *puVar12 & 1;" (assignment_expression "uVar13 = *puVar12 & 1" identifier = (binary_expression "*puVar12 & 1" (pointer_expression "*puVar12" * identifier) & number_literal)) ;) (if_statement "if (((uVar13 != 0) && (*local_f0 != '\0')) &&\n       ((local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)))) {\n      free((void *)puVar12[puVar12[5] + 6]);\n      iVar5 = *piVar4;\n      iVar8 = *(int *)(iVar5 + 0x14);\n      *(undefined4 *)(iVar5 + 0x18 + iVar8 * 4) = 0;\n      if ((int)local_ec < iVar8) {\n        uVar13 = local_ec + 1;\n      }\n      else {\n        free(*(void **)(iVar5 + 0x18));\n        iVar5 = *piVar4;\n        iVar8 = *(int *)(iVar5 + 0x14);\n        local_ec = 0;\n        if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }\n      }\n      uVar10 = FUN_00019ba3();\n      *(undefined4 *)(iVar5 + 0x18 + local_ec * 4) = uVar10;\n      iVar5 = *piVar4;\n      *(uint *)(iVar5 + 0x10) = uVar13;\n      *(uint *)(iVar5 + 0xc) = uVar13;\n    }" if (parenthesized_expression "(((uVar13 != 0) && (*local_f0 != '\0')) &&\n       ((local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0))))" ( (binary_expression "((uVar13 != 0) && (*local_f0 != '\0')) &&\n       ((local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)))" (parenthesized_expression "((uVar13 != 0) && (*local_f0 != '\0'))" ( (binary_expression "(uVar13 != 0) && (*local_f0 != '\0')" (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) && (parenthesized_expression "(*local_f0 != '\0')" ( (binary_expression "*local_f0 != '\0'" (pointer_expression "*local_f0" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "((local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)))" ( (parenthesized_expression "(local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0))" ( (comma_expression "local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)" (assignment_expression "local_ec = puVar12[3]" identifier = (subscript_expression "puVar12[3]" identifier [ number_literal ])) , (binary_expression "local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)" (binary_expression "local_ec == 0" identifier == number_literal) || (parenthesized_expression "(iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)" ( (comma_expression "iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0" (assignment_expression "iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0)" identifier = (call_expression "strcmp((char *)puVar12[local_ec + 5],local_f0)" identifier (argument_list "((char *)puVar12[local_ec + 5],local_f0)" ( (cast_expression "(char *)puVar12[local_ec + 5]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[local_ec + 5]" identifier [ (binary_expression "local_ec + 5" identifier + number_literal) ])) , identifier )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) )))) )) ))) )) (compound_statement "{\n      free((void *)puVar12[puVar12[5] + 6]);\n      iVar5 = *piVar4;\n      iVar8 = *(int *)(iVar5 + 0x14);\n      *(undefined4 *)(iVar5 + 0x18 + iVar8 * 4) = 0;\n      if ((int)local_ec < iVar8) {\n        uVar13 = local_ec + 1;\n      }\n      else {\n        free(*(void **)(iVar5 + 0x18));\n        iVar5 = *piVar4;\n        iVar8 = *(int *)(iVar5 + 0x14);\n        local_ec = 0;\n        if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }\n      }\n      uVar10 = FUN_00019ba3();\n      *(undefined4 *)(iVar5 + 0x18 + local_ec * 4) = uVar10;\n      iVar5 = *piVar4;\n      *(uint *)(iVar5 + 0x10) = uVar13;\n      *(uint *)(iVar5 + 0xc) = uVar13;\n    }" { (expression_statement "free((void *)puVar12[puVar12[5] + 6]);" (call_expression "free((void *)puVar12[puVar12[5] + 6])" identifier (argument_list "((void *)puVar12[puVar12[5] + 6])" ( (cast_expression "(void *)puVar12[puVar12[5] + 6]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[puVar12[5] + 6]" identifier [ (binary_expression "puVar12[5] + 6" (subscript_expression "puVar12[5]" identifier [ number_literal ]) + number_literal) ])) ))) ;) (expression_statement "iVar5 = *piVar4;" (assignment_expression "iVar5 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "iVar8 = *(int *)(iVar5 + 0x14);" (assignment_expression "iVar8 = *(int *)(iVar5 + 0x14)" identifier = (pointer_expression "*(int *)(iVar5 + 0x14)" * (cast_expression "(int *)(iVar5 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x18 + iVar8 * 4) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x18 + iVar8 * 4) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x18 + iVar8 * 4)" * (cast_expression "(undefined4 *)(iVar5 + 0x18 + iVar8 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18 + iVar8 * 4)" ( (binary_expression "iVar5 + 0x18 + iVar8 * 4" (binary_expression "iVar5 + 0x18" identifier + number_literal) + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = number_literal) ;) (if_statement "if ((int)local_ec < iVar8) {\n        uVar13 = local_ec + 1;\n      }\n      else {\n        free(*(void **)(iVar5 + 0x18));\n        iVar5 = *piVar4;\n        iVar8 = *(int *)(iVar5 + 0x14);\n        local_ec = 0;\n        if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }\n      }" if (parenthesized_expression "((int)local_ec < iVar8)" ( (binary_expression "(int)local_ec < iVar8" (cast_expression "(int)local_ec" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (compound_statement "{\n        uVar13 = local_ec + 1;\n      }" { (expression_statement "uVar13 = local_ec + 1;" (assignment_expression "uVar13 = local_ec + 1" identifier = (binary_expression "local_ec + 1" identifier + number_literal)) ;) }) (else_clause "else {\n        free(*(void **)(iVar5 + 0x18));\n        iVar5 = *piVar4;\n        iVar8 = *(int *)(iVar5 + 0x14);\n        local_ec = 0;\n        if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }\n      }" else (compound_statement "{\n        free(*(void **)(iVar5 + 0x18));\n        iVar5 = *piVar4;\n        iVar8 = *(int *)(iVar5 + 0x14);\n        local_ec = 0;\n        if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }\n      }" { (expression_statement "free(*(void **)(iVar5 + 0x18));" (call_expression "free(*(void **)(iVar5 + 0x18))" identifier (argument_list "(*(void **)(iVar5 + 0x18))" ( (pointer_expression "*(void **)(iVar5 + 0x18)" * (cast_expression "(void **)(iVar5 + 0x18)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) )))) ))) ;) (expression_statement "iVar5 = *piVar4;" (assignment_expression "iVar5 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "iVar8 = *(int *)(iVar5 + 0x14);" (assignment_expression "iVar8 = *(int *)(iVar5 + 0x14)" identifier = (pointer_expression "*(int *)(iVar5 + 0x14)" * (cast_expression "(int *)(iVar5 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" identifier = number_literal) ;) (if_statement "if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }" if (parenthesized_expression "(1 < iVar8)" ( (binary_expression "1 < iVar8" number_literal < identifier) )) (compound_statement "{\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }" { (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" identifier = number_literal) ;) (do_statement "do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);" do (compound_statement "{\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          }" { (expression_statement "uVar13 = local_ec;" (assignment_expression "uVar13 = local_ec" identifier = identifier) ;) (expression_statement "local_ec = uVar13 + 1;" (assignment_expression "local_ec = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);" (assignment_expression "*(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4)" (pointer_expression "*(undefined4 *)(iVar5 + 0x14 + local_ec * 4)" * (cast_expression "(undefined4 *)(iVar5 + 0x14 + local_ec * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14 + local_ec * 4)" ( (binary_expression "iVar5 + 0x14 + local_ec * 4" (binary_expression "iVar5 + 0x14" identifier + number_literal) + (binary_expression "local_ec * 4" identifier * number_literal)) )))) = (pointer_expression "*(undefined4 *)(iVar5 + 0x18 + local_ec * 4)" * (cast_expression "(undefined4 *)(iVar5 + 0x18 + local_ec * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18 + local_ec * 4)" ( (binary_expression "iVar5 + 0x18 + local_ec * 4" (binary_expression "iVar5 + 0x18" identifier + number_literal) + (binary_expression "local_ec * 4" identifier * number_literal)) ))))) ;) }) while (parenthesized_expression "(local_ec != iVar8 - 1U)" ( (binary_expression "local_ec != iVar8 - 1U" identifier != (binary_expression "iVar8 - 1U" identifier - number_literal)) )) ;) (expression_statement "uVar13 = uVar13 + 2;" (assignment_expression "uVar13 = uVar13 + 2" identifier = (binary_expression "uVar13 + 2" identifier + number_literal)) ;) })) }))) (expression_statement "uVar10 = FUN_00019ba3();" (assignment_expression "uVar10 = FUN_00019ba3()" identifier = (call_expression "FUN_00019ba3()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x18 + local_ec * 4) = uVar10;" (assignment_expression "*(undefined4 *)(iVar5 + 0x18 + local_ec * 4) = uVar10" (pointer_expression "*(undefined4 *)(iVar5 + 0x18 + local_ec * 4)" * (cast_expression "(undefined4 *)(iVar5 + 0x18 + local_ec * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18 + local_ec * 4)" ( (binary_expression "iVar5 + 0x18 + local_ec * 4" (binary_expression "iVar5 + 0x18" identifier + number_literal) + (binary_expression "local_ec * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "iVar5 = *piVar4;" (assignment_expression "iVar5 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "*(uint *)(iVar5 + 0x10) = uVar13;" (assignment_expression "*(uint *)(iVar5 + 0x10) = uVar13" (pointer_expression "*(uint *)(iVar5 + 0x10)" * (cast_expression "(uint *)(iVar5 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar5 + 0xc) = uVar13;" (assignment_expression "*(uint *)(iVar5 + 0xc) = uVar13" (pointer_expression "*(uint *)(iVar5 + 0xc)" * (cast_expression "(uint *)(iVar5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = identifier) ;) })) })) (expression_statement "FUN_000aaa10();" (call_expression "FUN_000aaa10()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001985b();" (call_expression "FUN_0001985b()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001ada5();" (call_expression "FUN_0001ada5()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00019f78();" (call_expression "FUN_00019f78()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar11 = piVar4[6];" (assignment_expression "sVar11 = piVar4[6]" identifier = (subscript_expression "piVar4[6]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_000ac9e9;" goto statement_identifier ;) (labeled_statement "LAB_000ac923:\n  iVar5 = piVar4[0x10];" statement_identifier : (expression_statement "iVar5 = piVar4[0x10];" (assignment_expression "iVar5 = piVar4[0x10]" identifier = (subscript_expression "piVar4[0x10]" identifier [ number_literal ])) ;)) (if_statement "if (piVar4[0xf] != iVar5) {\nLAB_000acddf:\n    piVar4[0xf] = iVar5;\n    FUN_000abd02();\n  }" if (parenthesized_expression "(piVar4[0xf] != iVar5)" ( (binary_expression "piVar4[0xf] != iVar5" (subscript_expression "piVar4[0xf]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\nLAB_000acddf:\n    piVar4[0xf] = iVar5;\n    FUN_000abd02();\n  }" { (labeled_statement "LAB_000acddf:\n    piVar4[0xf] = iVar5;" statement_identifier : (expression_statement "piVar4[0xf] = iVar5;" (assignment_expression "piVar4[0xf] = iVar5" (subscript_expression "piVar4[0xf]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "FUN_000abd02();" (call_expression "FUN_000abd02()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_000ac7c7;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */\n\nint read_line_input(line_input_t *st,char *prompt,char *command,int maxsize)\n\n{\n  smallint lastWasTab;\n  wchar_t wc;\n  termios initial_settings;\n  termios new_settings;\n  char unicode_buf [7];\n  char read_key_buffer [16];\n  \n}\n\n" comment (function_definition "int read_line_input(line_input_t *st,char *prompt,char *command,int maxsize)\n\n{\n  smallint lastWasTab;\n  wchar_t wc;\n  termios initial_settings;\n  termios new_settings;\n  char unicode_buf [7];\n  char read_key_buffer [16];\n  \n}" primitive_type (function_declarator "read_line_input(line_input_t *st,char *prompt,char *command,int maxsize)" identifier (parameter_list "(line_input_t *st,char *prompt,char *command,int maxsize)" ( (parameter_declaration "line_input_t *st" type_identifier (pointer_declarator "*st" * identifier)) , (parameter_declaration "char *prompt" primitive_type (pointer_declarator "*prompt" * identifier)) , (parameter_declaration "char *command" primitive_type (pointer_declarator "*command" * identifier)) , (parameter_declaration "int maxsize" primitive_type identifier) ))) (compound_statement "{\n  smallint lastWasTab;\n  wchar_t wc;\n  termios initial_settings;\n  termios new_settings;\n  char unicode_buf [7];\n  char read_key_buffer [16];\n  \n}" { (declaration "smallint lastWasTab;" type_identifier identifier ;) (declaration "wchar_t wc;" type_identifier identifier ;) (declaration "termios initial_settings;" type_identifier identifier ;) (declaration "termios new_settings;" type_identifier identifier ;) (declaration "char unicode_buf [7];" primitive_type (array_declarator "unicode_buf [7]" identifier [ number_literal ]) ;) (declaration "char read_key_buffer [16];" primitive_type (array_declarator "read_key_buffer [16]" identifier [ number_literal ]) ;) })))
(translation_unit "size_t FUN_000ac5a2(void)\n\n{\n  undefined4 *__dest;\n  int *piVar1;\n  int iVar2;\n  byte *pbVar3;\n  int *piVar4;\n  int iVar5;\n  char *pcVar6;\n  __uid_t __uid;\n  passwd *ppVar7;\n  int iVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  size_t sVar11;\n  uint *puVar12;\n  int unaff_EBP;\n  uint uVar13;\n  int in_GS_OFFSET;\n  undefined8 uVar14;\n  int unaff_retaddr;\n  int local_f4;\n  char *local_f0;\n  uint local_ec;\n  uint local_a8;\n  byte local_a3;\n  byte local_9f;\n  undefined1 local_3b [7];\n  undefined1 local_34;\n  int local_24;\n  undefined4 local_20;\n  \n  pbVar3 = (byte *)FUN_00026ff7();\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  piVar4 = (int *)FUN_00019b89();\n  *(int **)(&DAT_0002516f + unaff_EBP) = piVar4;\n  piVar4[1] = 0x50;\n  piVar4[0xc] = unaff_EBP + 0x215a2;\n  iVar5 = FUN_00019879(1);\n  if ((iVar5 == 0) && ((local_a8 & 10) != 2)) {\n    FUN_000b24de();\n    if (unaff_retaddr < 0x401) {\n      piVar4[7] = unaff_retaddr;\n      local_f4 = unaff_retaddr;\n    }\n    else {\n      local_f4 = 0x400;\n      piVar4[7] = 0x400;\n    }\n    if (pbVar3 == (byte *)0x0) {\n      pbVar3 = (byte *)(unaff_EBP + 0xa2a3);\n      *piVar4 = (int)pbVar3;\n    }\n    else {\n      *piVar4 = (int)pbVar3;\n    }\n    if ((*pbVar3 & 1) != 0) {\n      *(undefined4 *)(pbVar3 + 0x10) = *(undefined4 *)(pbVar3 + 0xc);\n    }\n    piVar4[3] = 0;\n    piVar4[6] = 0;\n    iVar5 = FUN_00019b89();\n    piVar4[8] = iVar5;\n    FUN_0001985b();\n    __uid = geteuid();\n    ppVar7 = getpwuid(__uid);\n    if (ppVar7 != (passwd *)0x0) {\n      iVar5 = FUN_00019ba3();\n      piVar4[0xb] = iVar5;\n      iVar5 = FUN_00019ba3();\n      piVar4[0xc] = iVar5;\n    }\n    iVar5 = FUN_00019828();\n    piVar4[1] = iVar5;\n    FUN_000aaf0c();\n    iVar5 = FUN_000b181c();\n    if (iVar5 == 0) {\n      *(undefined1 *)((int)piVar4 + 0x45) = 1;\n      fwrite_unlocked((void *)(unaff_EBP + 0x18192),1,4,\n                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP));\n      FUN_00019f78();\n    }\n    piVar4[0x12] = unaff_EBP + -0x85d;\n    piVar4[0x33] = 0x10000000;\n    sigaction(0x1c,(sigaction *)(piVar4 + 0x12),(sigaction *)(piVar4 + 0x12));\n    local_34 = 0;\n    piVar1 = *(int **)(&DAT_0002514b + unaff_EBP);\n    iVar5 = piVar4[0x10];\n    if (piVar4[0xf] != iVar5) goto LAB_000acddf;\nLAB_000ac7c7:\n    FUN_00019f78();\n    iVar5 = 0;\nLAB_000ac7e1:\n    do {\n      *(undefined1 *)(piVar4 + 0x11) = 1;\n      uVar14 = FUN_000b0821();\n      uVar13 = (uint)uVar14;\n      *(undefined1 *)(piVar4 + 0x11) = 0;\n      iVar8 = *piVar1;\n      if (iVar8 != 0) {\n        if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    \n                    \n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }\n        break;\n      }\n      if (uVar13 == 0xffffff00) {\n        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;\n        *(undefined1 *)((int)piVar4 + 0x45) = 0;\n        if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }\n        goto LAB_000ac7e1;\n      }\n      if (((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)) goto joined_r0x000acdd4;\n      iVar8 = iVar5 + 1;\n      local_3b[iVar5] = (char)uVar14;\n      local_3b[iVar5 + 1] = 0;\n      iVar5 = FUN_000b2670();\n      if (iVar5 == 1) {\n        uVar9 = 0x45;\n        goto LAB_000ac8f0;\n      }\n      iVar5 = iVar8;\n    } while (iVar8 < 6);\n    FUN_000b0b18();\n    uVar13 = 0x3f;\nLAB_000ac830:\n    if ((local_a3 != 0) && (local_a3 == uVar13)) {\n      piVar4[6] = 0;\n      goto LAB_000ac96b;\n    }\nLAB_000acba3:\n    if ((local_9f == 0) || (local_9f != uVar13)) {\n      if ((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)) {\n        piVar4[6] = iVar5 + 1;\n        iVar2 = piVar4[5];\n        iVar8 = iVar2 * 4;\n        puVar12 = (uint *)(iVar8 + piVar4[8]);\n        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);\n        if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }\n      }\n    }\n    else {\n      if (piVar4[6] == 0) goto code_r0x000acbc3;\n      FUN_000abd91();\n    }\n    if (uVar13 != 9) goto LAB_000ac923;\n    iVar5 = piVar4[0x10];\n    if (piVar4[0xf] != iVar5) goto LAB_000acddf;\n    goto LAB_000ac7c7;\n  }\n  FUN_000aaf0c();\n  FUN_00019f78();\n  pcVar6 = fgets_unlocked(local_f0,unaff_retaddr,\n                          (FILE *)**(undefined4 **)(&DAT_000249fb + unaff_EBP));\n  sVar11 = 0xffffffff;\n  if (pcVar6 != (char *)0x0) {\n    sVar11 = strlen(local_f0);\n  }\nLAB_000ac9e9:\n  FUN_000aaa67();\n  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00017e10();\n  }\n  return sVar11;\ncode_r0x000acbc3:\n  *piVar1 = 0;\n  piVar4[6] = -1;\nLAB_000ac96b:\n  if (*(char *)((int)piVar4 + 0x45) != '\0') {\n    usleep(20000);\n  }\n  *local_f0 = '\0';\n  if (0 < piVar4[6]) {\n    iVar5 = FUN_000abe42();\n    piVar4[6] = iVar5;\n  }\n  free((void *)piVar4[8]);\n  if (0 < piVar4[6]) {\n    puVar12 = (uint *)*piVar4;\n    uVar13 = *puVar12 & 1;\n    if (((uVar13 != 0) && (*local_f0 != '\0')) &&\n       ((local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)))) {\n      free((void *)puVar12[puVar12[5] + 6]);\n      iVar5 = *piVar4;\n      iVar8 = *(int *)(iVar5 + 0x14);\n      *(undefined4 *)(iVar5 + 0x18 + iVar8 * 4) = 0;\n      if ((int)local_ec < iVar8) {\n        uVar13 = local_ec + 1;\n      }\n      else {\n        free(*(void **)(iVar5 + 0x18));\n        iVar5 = *piVar4;\n        iVar8 = *(int *)(iVar5 + 0x14);\n        local_ec = 0;\n        if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }\n      }\n      uVar10 = FUN_00019ba3();\n      *(undefined4 *)(iVar5 + 0x18 + local_ec * 4) = uVar10;\n      iVar5 = *piVar4;\n      *(uint *)(iVar5 + 0x10) = uVar13;\n      *(uint *)(iVar5 + 0xc) = uVar13;\n    }\n  }\n  FUN_000aaa10();\n  FUN_0001985b();\n  FUN_0001ada5();\n  FUN_00019f78();\n  sVar11 = piVar4[6];\n  goto LAB_000ac9e9;\nLAB_000ac923:\n  iVar5 = piVar4[0x10];\n  if (piVar4[0xf] != iVar5) {\nLAB_000acddf:\n    piVar4[0xf] = iVar5;\n    FUN_000abd02();\n  }\n  goto LAB_000ac7c7;\n}\n\n" (function_definition "size_t FUN_000ac5a2(void)\n\n{\n  undefined4 *__dest;\n  int *piVar1;\n  int iVar2;\n  byte *pbVar3;\n  int *piVar4;\n  int iVar5;\n  char *pcVar6;\n  __uid_t __uid;\n  passwd *ppVar7;\n  int iVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  size_t sVar11;\n  uint *puVar12;\n  int unaff_EBP;\n  uint uVar13;\n  int in_GS_OFFSET;\n  undefined8 uVar14;\n  int unaff_retaddr;\n  int local_f4;\n  char *local_f0;\n  uint local_ec;\n  uint local_a8;\n  byte local_a3;\n  byte local_9f;\n  undefined1 local_3b [7];\n  undefined1 local_34;\n  int local_24;\n  undefined4 local_20;\n  \n  pbVar3 = (byte *)FUN_00026ff7();\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  piVar4 = (int *)FUN_00019b89();\n  *(int **)(&DAT_0002516f + unaff_EBP) = piVar4;\n  piVar4[1] = 0x50;\n  piVar4[0xc] = unaff_EBP + 0x215a2;\n  iVar5 = FUN_00019879(1);\n  if ((iVar5 == 0) && ((local_a8 & 10) != 2)) {\n    FUN_000b24de();\n    if (unaff_retaddr < 0x401) {\n      piVar4[7] = unaff_retaddr;\n      local_f4 = unaff_retaddr;\n    }\n    else {\n      local_f4 = 0x400;\n      piVar4[7] = 0x400;\n    }\n    if (pbVar3 == (byte *)0x0) {\n      pbVar3 = (byte *)(unaff_EBP + 0xa2a3);\n      *piVar4 = (int)pbVar3;\n    }\n    else {\n      *piVar4 = (int)pbVar3;\n    }\n    if ((*pbVar3 & 1) != 0) {\n      *(undefined4 *)(pbVar3 + 0x10) = *(undefined4 *)(pbVar3 + 0xc);\n    }\n    piVar4[3] = 0;\n    piVar4[6] = 0;\n    iVar5 = FUN_00019b89();\n    piVar4[8] = iVar5;\n    FUN_0001985b();\n    __uid = geteuid();\n    ppVar7 = getpwuid(__uid);\n    if (ppVar7 != (passwd *)0x0) {\n      iVar5 = FUN_00019ba3();\n      piVar4[0xb] = iVar5;\n      iVar5 = FUN_00019ba3();\n      piVar4[0xc] = iVar5;\n    }\n    iVar5 = FUN_00019828();\n    piVar4[1] = iVar5;\n    FUN_000aaf0c();\n    iVar5 = FUN_000b181c();\n    if (iVar5 == 0) {\n      *(undefined1 *)((int)piVar4 + 0x45) = 1;\n      fwrite_unlocked((void *)(unaff_EBP + 0x18192),1,4,\n                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP));\n      FUN_00019f78();\n    }\n    piVar4[0x12] = unaff_EBP + -0x85d;\n    piVar4[0x33] = 0x10000000;\n    sigaction(0x1c,(sigaction *)(piVar4 + 0x12),(sigaction *)(piVar4 + 0x12));\n    local_34 = 0;\n    piVar1 = *(int **)(&DAT_0002514b + unaff_EBP);\n    iVar5 = piVar4[0x10];\n    if (piVar4[0xf] != iVar5) goto LAB_000acddf;\nLAB_000ac7c7:\n    FUN_00019f78();\n    iVar5 = 0;\nLAB_000ac7e1:\n    do {\n      *(undefined1 *)(piVar4 + 0x11) = 1;\n      uVar14 = FUN_000b0821();\n      uVar13 = (uint)uVar14;\n      *(undefined1 *)(piVar4 + 0x11) = 0;\n      iVar8 = *piVar1;\n      if (iVar8 != 0) {\n        if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    \n                    \n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }\n        break;\n      }\n      if (uVar13 == 0xffffff00) {\n        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;\n        *(undefined1 *)((int)piVar4 + 0x45) = 0;\n        if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }\n        goto LAB_000ac7e1;\n      }\n      if (((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)) goto joined_r0x000acdd4;\n      iVar8 = iVar5 + 1;\n      local_3b[iVar5] = (char)uVar14;\n      local_3b[iVar5 + 1] = 0;\n      iVar5 = FUN_000b2670();\n      if (iVar5 == 1) {\n        uVar9 = 0x45;\n        goto LAB_000ac8f0;\n      }\n      iVar5 = iVar8;\n    } while (iVar8 < 6);\n    FUN_000b0b18();\n    uVar13 = 0x3f;\nLAB_000ac830:\n    if ((local_a3 != 0) && (local_a3 == uVar13)) {\n      piVar4[6] = 0;\n      goto LAB_000ac96b;\n    }\nLAB_000acba3:\n    if ((local_9f == 0) || (local_9f != uVar13)) {\n      if ((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)) {\n        piVar4[6] = iVar5 + 1;\n        iVar2 = piVar4[5];\n        iVar8 = iVar2 * 4;\n        puVar12 = (uint *)(iVar8 + piVar4[8]);\n        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);\n        if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }\n      }\n    }\n    else {\n      if (piVar4[6] == 0) goto code_r0x000acbc3;\n      FUN_000abd91();\n    }\n    if (uVar13 != 9) goto LAB_000ac923;\n    iVar5 = piVar4[0x10];\n    if (piVar4[0xf] != iVar5) goto LAB_000acddf;\n    goto LAB_000ac7c7;\n  }\n  FUN_000aaf0c();\n  FUN_00019f78();\n  pcVar6 = fgets_unlocked(local_f0,unaff_retaddr,\n                          (FILE *)**(undefined4 **)(&DAT_000249fb + unaff_EBP));\n  sVar11 = 0xffffffff;\n  if (pcVar6 != (char *)0x0) {\n    sVar11 = strlen(local_f0);\n  }\nLAB_000ac9e9:\n  FUN_000aaa67();\n  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00017e10();\n  }\n  return sVar11;\ncode_r0x000acbc3:\n  *piVar1 = 0;\n  piVar4[6] = -1;\nLAB_000ac96b:\n  if (*(char *)((int)piVar4 + 0x45) != '\0') {\n    usleep(20000);\n  }\n  *local_f0 = '\0';\n  if (0 < piVar4[6]) {\n    iVar5 = FUN_000abe42();\n    piVar4[6] = iVar5;\n  }\n  free((void *)piVar4[8]);\n  if (0 < piVar4[6]) {\n    puVar12 = (uint *)*piVar4;\n    uVar13 = *puVar12 & 1;\n    if (((uVar13 != 0) && (*local_f0 != '\0')) &&\n       ((local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)))) {\n      free((void *)puVar12[puVar12[5] + 6]);\n      iVar5 = *piVar4;\n      iVar8 = *(int *)(iVar5 + 0x14);\n      *(undefined4 *)(iVar5 + 0x18 + iVar8 * 4) = 0;\n      if ((int)local_ec < iVar8) {\n        uVar13 = local_ec + 1;\n      }\n      else {\n        free(*(void **)(iVar5 + 0x18));\n        iVar5 = *piVar4;\n        iVar8 = *(int *)(iVar5 + 0x14);\n        local_ec = 0;\n        if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }\n      }\n      uVar10 = FUN_00019ba3();\n      *(undefined4 *)(iVar5 + 0x18 + local_ec * 4) = uVar10;\n      iVar5 = *piVar4;\n      *(uint *)(iVar5 + 0x10) = uVar13;\n      *(uint *)(iVar5 + 0xc) = uVar13;\n    }\n  }\n  FUN_000aaa10();\n  FUN_0001985b();\n  FUN_0001ada5();\n  FUN_00019f78();\n  sVar11 = piVar4[6];\n  goto LAB_000ac9e9;\nLAB_000ac923:\n  iVar5 = piVar4[0x10];\n  if (piVar4[0xf] != iVar5) {\nLAB_000acddf:\n    piVar4[0xf] = iVar5;\n    FUN_000abd02();\n  }\n  goto LAB_000ac7c7;\n}" primitive_type (function_declarator "FUN_000ac5a2(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined4 *__dest;\n  int *piVar1;\n  int iVar2;\n  byte *pbVar3;\n  int *piVar4;\n  int iVar5;\n  char *pcVar6;\n  __uid_t __uid;\n  passwd *ppVar7;\n  int iVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  size_t sVar11;\n  uint *puVar12;\n  int unaff_EBP;\n  uint uVar13;\n  int in_GS_OFFSET;\n  undefined8 uVar14;\n  int unaff_retaddr;\n  int local_f4;\n  char *local_f0;\n  uint local_ec;\n  uint local_a8;\n  byte local_a3;\n  byte local_9f;\n  undefined1 local_3b [7];\n  undefined1 local_34;\n  int local_24;\n  undefined4 local_20;\n  \n  pbVar3 = (byte *)FUN_00026ff7();\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  piVar4 = (int *)FUN_00019b89();\n  *(int **)(&DAT_0002516f + unaff_EBP) = piVar4;\n  piVar4[1] = 0x50;\n  piVar4[0xc] = unaff_EBP + 0x215a2;\n  iVar5 = FUN_00019879(1);\n  if ((iVar5 == 0) && ((local_a8 & 10) != 2)) {\n    FUN_000b24de();\n    if (unaff_retaddr < 0x401) {\n      piVar4[7] = unaff_retaddr;\n      local_f4 = unaff_retaddr;\n    }\n    else {\n      local_f4 = 0x400;\n      piVar4[7] = 0x400;\n    }\n    if (pbVar3 == (byte *)0x0) {\n      pbVar3 = (byte *)(unaff_EBP + 0xa2a3);\n      *piVar4 = (int)pbVar3;\n    }\n    else {\n      *piVar4 = (int)pbVar3;\n    }\n    if ((*pbVar3 & 1) != 0) {\n      *(undefined4 *)(pbVar3 + 0x10) = *(undefined4 *)(pbVar3 + 0xc);\n    }\n    piVar4[3] = 0;\n    piVar4[6] = 0;\n    iVar5 = FUN_00019b89();\n    piVar4[8] = iVar5;\n    FUN_0001985b();\n    __uid = geteuid();\n    ppVar7 = getpwuid(__uid);\n    if (ppVar7 != (passwd *)0x0) {\n      iVar5 = FUN_00019ba3();\n      piVar4[0xb] = iVar5;\n      iVar5 = FUN_00019ba3();\n      piVar4[0xc] = iVar5;\n    }\n    iVar5 = FUN_00019828();\n    piVar4[1] = iVar5;\n    FUN_000aaf0c();\n    iVar5 = FUN_000b181c();\n    if (iVar5 == 0) {\n      *(undefined1 *)((int)piVar4 + 0x45) = 1;\n      fwrite_unlocked((void *)(unaff_EBP + 0x18192),1,4,\n                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP));\n      FUN_00019f78();\n    }\n    piVar4[0x12] = unaff_EBP + -0x85d;\n    piVar4[0x33] = 0x10000000;\n    sigaction(0x1c,(sigaction *)(piVar4 + 0x12),(sigaction *)(piVar4 + 0x12));\n    local_34 = 0;\n    piVar1 = *(int **)(&DAT_0002514b + unaff_EBP);\n    iVar5 = piVar4[0x10];\n    if (piVar4[0xf] != iVar5) goto LAB_000acddf;\nLAB_000ac7c7:\n    FUN_00019f78();\n    iVar5 = 0;\nLAB_000ac7e1:\n    do {\n      *(undefined1 *)(piVar4 + 0x11) = 1;\n      uVar14 = FUN_000b0821();\n      uVar13 = (uint)uVar14;\n      *(undefined1 *)(piVar4 + 0x11) = 0;\n      iVar8 = *piVar1;\n      if (iVar8 != 0) {\n        if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    \n                    \n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }\n        break;\n      }\n      if (uVar13 == 0xffffff00) {\n        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;\n        *(undefined1 *)((int)piVar4 + 0x45) = 0;\n        if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }\n        goto LAB_000ac7e1;\n      }\n      if (((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)) goto joined_r0x000acdd4;\n      iVar8 = iVar5 + 1;\n      local_3b[iVar5] = (char)uVar14;\n      local_3b[iVar5 + 1] = 0;\n      iVar5 = FUN_000b2670();\n      if (iVar5 == 1) {\n        uVar9 = 0x45;\n        goto LAB_000ac8f0;\n      }\n      iVar5 = iVar8;\n    } while (iVar8 < 6);\n    FUN_000b0b18();\n    uVar13 = 0x3f;\nLAB_000ac830:\n    if ((local_a3 != 0) && (local_a3 == uVar13)) {\n      piVar4[6] = 0;\n      goto LAB_000ac96b;\n    }\nLAB_000acba3:\n    if ((local_9f == 0) || (local_9f != uVar13)) {\n      if ((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)) {\n        piVar4[6] = iVar5 + 1;\n        iVar2 = piVar4[5];\n        iVar8 = iVar2 * 4;\n        puVar12 = (uint *)(iVar8 + piVar4[8]);\n        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);\n        if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }\n      }\n    }\n    else {\n      if (piVar4[6] == 0) goto code_r0x000acbc3;\n      FUN_000abd91();\n    }\n    if (uVar13 != 9) goto LAB_000ac923;\n    iVar5 = piVar4[0x10];\n    if (piVar4[0xf] != iVar5) goto LAB_000acddf;\n    goto LAB_000ac7c7;\n  }\n  FUN_000aaf0c();\n  FUN_00019f78();\n  pcVar6 = fgets_unlocked(local_f0,unaff_retaddr,\n                          (FILE *)**(undefined4 **)(&DAT_000249fb + unaff_EBP));\n  sVar11 = 0xffffffff;\n  if (pcVar6 != (char *)0x0) {\n    sVar11 = strlen(local_f0);\n  }\nLAB_000ac9e9:\n  FUN_000aaa67();\n  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00017e10();\n  }\n  return sVar11;\ncode_r0x000acbc3:\n  *piVar1 = 0;\n  piVar4[6] = -1;\nLAB_000ac96b:\n  if (*(char *)((int)piVar4 + 0x45) != '\0') {\n    usleep(20000);\n  }\n  *local_f0 = '\0';\n  if (0 < piVar4[6]) {\n    iVar5 = FUN_000abe42();\n    piVar4[6] = iVar5;\n  }\n  free((void *)piVar4[8]);\n  if (0 < piVar4[6]) {\n    puVar12 = (uint *)*piVar4;\n    uVar13 = *puVar12 & 1;\n    if (((uVar13 != 0) && (*local_f0 != '\0')) &&\n       ((local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)))) {\n      free((void *)puVar12[puVar12[5] + 6]);\n      iVar5 = *piVar4;\n      iVar8 = *(int *)(iVar5 + 0x14);\n      *(undefined4 *)(iVar5 + 0x18 + iVar8 * 4) = 0;\n      if ((int)local_ec < iVar8) {\n        uVar13 = local_ec + 1;\n      }\n      else {\n        free(*(void **)(iVar5 + 0x18));\n        iVar5 = *piVar4;\n        iVar8 = *(int *)(iVar5 + 0x14);\n        local_ec = 0;\n        if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }\n      }\n      uVar10 = FUN_00019ba3();\n      *(undefined4 *)(iVar5 + 0x18 + local_ec * 4) = uVar10;\n      iVar5 = *piVar4;\n      *(uint *)(iVar5 + 0x10) = uVar13;\n      *(uint *)(iVar5 + 0xc) = uVar13;\n    }\n  }\n  FUN_000aaa10();\n  FUN_0001985b();\n  FUN_0001ada5();\n  FUN_00019f78();\n  sVar11 = piVar4[6];\n  goto LAB_000ac9e9;\nLAB_000ac923:\n  iVar5 = piVar4[0x10];\n  if (piVar4[0xf] != iVar5) {\nLAB_000acddf:\n    piVar4[0xf] = iVar5;\n    FUN_000abd02();\n  }\n  goto LAB_000ac7c7;\n}" { (declaration "undefined4 *__dest;" type_identifier (pointer_declarator "*__dest" * identifier) ;) (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "__uid_t __uid;" type_identifier identifier ;) (declaration "passwd *ppVar7;" type_identifier (pointer_declarator "*ppVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "size_t sVar11;" primitive_type identifier ;) (declaration "uint *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined8 uVar14;" type_identifier identifier ;) (declaration "int unaff_retaddr;" primitive_type identifier ;) (declaration "int local_f4;" primitive_type identifier ;) (declaration "char *local_f0;" primitive_type (pointer_declarator "*local_f0" * identifier) ;) (declaration "uint local_ec;" type_identifier identifier ;) (declaration "uint local_a8;" type_identifier identifier ;) (declaration "byte local_a3;" type_identifier identifier ;) (declaration "byte local_9f;" type_identifier identifier ;) (declaration "undefined1 local_3b [7];" type_identifier (array_declarator "local_3b [7]" identifier [ number_literal ]) ;) (declaration "undefined1 local_34;" type_identifier identifier ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (expression_statement "pbVar3 = (byte *)FUN_00026ff7();" (assignment_expression "pbVar3 = (byte *)FUN_00026ff7()" identifier = (cast_expression "(byte *)FUN_00026ff7()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00026ff7()" identifier (argument_list "()" ( ))))) ;) (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) ))))) ;) (expression_statement "piVar4 = (int *)FUN_00019b89();" (assignment_expression "piVar4 = (int *)FUN_00019b89()" identifier = (cast_expression "(int *)FUN_00019b89()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00019b89()" identifier (argument_list "()" ( ))))) ;) (expression_statement "*(int **)(&DAT_0002516f + unaff_EBP) = piVar4;" (assignment_expression "*(int **)(&DAT_0002516f + unaff_EBP) = piVar4" (pointer_expression "*(int **)(&DAT_0002516f + unaff_EBP)" * (cast_expression "(int **)(&DAT_0002516f + unaff_EBP)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_0002516f + unaff_EBP)" ( (binary_expression "&DAT_0002516f + unaff_EBP" (pointer_expression "&DAT_0002516f" & identifier) + identifier) )))) = identifier) ;) (expression_statement "piVar4[1] = 0x50;" (assignment_expression "piVar4[1] = 0x50" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar4[0xc] = unaff_EBP + 0x215a2;" (assignment_expression "piVar4[0xc] = unaff_EBP + 0x215a2" (subscript_expression "piVar4[0xc]" identifier [ number_literal ]) = (binary_expression "unaff_EBP + 0x215a2" identifier + number_literal)) ;) (expression_statement "iVar5 = FUN_00019879(1);" (assignment_expression "iVar5 = FUN_00019879(1)" identifier = (call_expression "FUN_00019879(1)" identifier (argument_list "(1)" ( number_literal )))) ;) (if_statement "if ((iVar5 == 0) && ((local_a8 & 10) != 2)) {\n    FUN_000b24de();\n    if (unaff_retaddr < 0x401) {\n      piVar4[7] = unaff_retaddr;\n      local_f4 = unaff_retaddr;\n    }\n    else {\n      local_f4 = 0x400;\n      piVar4[7] = 0x400;\n    }\n    if (pbVar3 == (byte *)0x0) {\n      pbVar3 = (byte *)(unaff_EBP + 0xa2a3);\n      *piVar4 = (int)pbVar3;\n    }\n    else {\n      *piVar4 = (int)pbVar3;\n    }\n    if ((*pbVar3 & 1) != 0) {\n      *(undefined4 *)(pbVar3 + 0x10) = *(undefined4 *)(pbVar3 + 0xc);\n    }\n    piVar4[3] = 0;\n    piVar4[6] = 0;\n    iVar5 = FUN_00019b89();\n    piVar4[8] = iVar5;\n    FUN_0001985b();\n    __uid = geteuid();\n    ppVar7 = getpwuid(__uid);\n    if (ppVar7 != (passwd *)0x0) {\n      iVar5 = FUN_00019ba3();\n      piVar4[0xb] = iVar5;\n      iVar5 = FUN_00019ba3();\n      piVar4[0xc] = iVar5;\n    }\n    iVar5 = FUN_00019828();\n    piVar4[1] = iVar5;\n    FUN_000aaf0c();\n    iVar5 = FUN_000b181c();\n    if (iVar5 == 0) {\n      *(undefined1 *)((int)piVar4 + 0x45) = 1;\n      fwrite_unlocked((void *)(unaff_EBP + 0x18192),1,4,\n                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP));\n      FUN_00019f78();\n    }\n    piVar4[0x12] = unaff_EBP + -0x85d;\n    piVar4[0x33] = 0x10000000;\n    sigaction(0x1c,(sigaction *)(piVar4 + 0x12),(sigaction *)(piVar4 + 0x12));\n    local_34 = 0;\n    piVar1 = *(int **)(&DAT_0002514b + unaff_EBP);\n    iVar5 = piVar4[0x10];\n    if (piVar4[0xf] != iVar5) goto LAB_000acddf;\nLAB_000ac7c7:\n    FUN_00019f78();\n    iVar5 = 0;\nLAB_000ac7e1:\n    do {\n      *(undefined1 *)(piVar4 + 0x11) = 1;\n      uVar14 = FUN_000b0821();\n      uVar13 = (uint)uVar14;\n      *(undefined1 *)(piVar4 + 0x11) = 0;\n      iVar8 = *piVar1;\n      if (iVar8 != 0) {\n        if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    \n                    \n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }\n        break;\n      }\n      if (uVar13 == 0xffffff00) {\n        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;\n        *(undefined1 *)((int)piVar4 + 0x45) = 0;\n        if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }\n        goto LAB_000ac7e1;\n      }\n      if (((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)) goto joined_r0x000acdd4;\n      iVar8 = iVar5 + 1;\n      local_3b[iVar5] = (char)uVar14;\n      local_3b[iVar5 + 1] = 0;\n      iVar5 = FUN_000b2670();\n      if (iVar5 == 1) {\n        uVar9 = 0x45;\n        goto LAB_000ac8f0;\n      }\n      iVar5 = iVar8;\n    } while (iVar8 < 6);\n    FUN_000b0b18();\n    uVar13 = 0x3f;\nLAB_000ac830:\n    if ((local_a3 != 0) && (local_a3 == uVar13)) {\n      piVar4[6] = 0;\n      goto LAB_000ac96b;\n    }\nLAB_000acba3:\n    if ((local_9f == 0) || (local_9f != uVar13)) {\n      if ((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)) {\n        piVar4[6] = iVar5 + 1;\n        iVar2 = piVar4[5];\n        iVar8 = iVar2 * 4;\n        puVar12 = (uint *)(iVar8 + piVar4[8]);\n        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);\n        if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }\n      }\n    }\n    else {\n      if (piVar4[6] == 0) goto code_r0x000acbc3;\n      FUN_000abd91();\n    }\n    if (uVar13 != 9) goto LAB_000ac923;\n    iVar5 = piVar4[0x10];\n    if (piVar4[0xf] != iVar5) goto LAB_000acddf;\n    goto LAB_000ac7c7;\n  }" if (parenthesized_expression "((iVar5 == 0) && ((local_a8 & 10) != 2))" ( (binary_expression "(iVar5 == 0) && ((local_a8 & 10) != 2)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) && (parenthesized_expression "((local_a8 & 10) != 2)" ( (binary_expression "(local_a8 & 10) != 2" (parenthesized_expression "(local_a8 & 10)" ( (binary_expression "local_a8 & 10" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    FUN_000b24de();\n    if (unaff_retaddr < 0x401) {\n      piVar4[7] = unaff_retaddr;\n      local_f4 = unaff_retaddr;\n    }\n    else {\n      local_f4 = 0x400;\n      piVar4[7] = 0x400;\n    }\n    if (pbVar3 == (byte *)0x0) {\n      pbVar3 = (byte *)(unaff_EBP + 0xa2a3);\n      *piVar4 = (int)pbVar3;\n    }\n    else {\n      *piVar4 = (int)pbVar3;\n    }\n    if ((*pbVar3 & 1) != 0) {\n      *(undefined4 *)(pbVar3 + 0x10) = *(undefined4 *)(pbVar3 + 0xc);\n    }\n    piVar4[3] = 0;\n    piVar4[6] = 0;\n    iVar5 = FUN_00019b89();\n    piVar4[8] = iVar5;\n    FUN_0001985b();\n    __uid = geteuid();\n    ppVar7 = getpwuid(__uid);\n    if (ppVar7 != (passwd *)0x0) {\n      iVar5 = FUN_00019ba3();\n      piVar4[0xb] = iVar5;\n      iVar5 = FUN_00019ba3();\n      piVar4[0xc] = iVar5;\n    }\n    iVar5 = FUN_00019828();\n    piVar4[1] = iVar5;\n    FUN_000aaf0c();\n    iVar5 = FUN_000b181c();\n    if (iVar5 == 0) {\n      *(undefined1 *)((int)piVar4 + 0x45) = 1;\n      fwrite_unlocked((void *)(unaff_EBP + 0x18192),1,4,\n                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP));\n      FUN_00019f78();\n    }\n    piVar4[0x12] = unaff_EBP + -0x85d;\n    piVar4[0x33] = 0x10000000;\n    sigaction(0x1c,(sigaction *)(piVar4 + 0x12),(sigaction *)(piVar4 + 0x12));\n    local_34 = 0;\n    piVar1 = *(int **)(&DAT_0002514b + unaff_EBP);\n    iVar5 = piVar4[0x10];\n    if (piVar4[0xf] != iVar5) goto LAB_000acddf;\nLAB_000ac7c7:\n    FUN_00019f78();\n    iVar5 = 0;\nLAB_000ac7e1:\n    do {\n      *(undefined1 *)(piVar4 + 0x11) = 1;\n      uVar14 = FUN_000b0821();\n      uVar13 = (uint)uVar14;\n      *(undefined1 *)(piVar4 + 0x11) = 0;\n      iVar8 = *piVar1;\n      if (iVar8 != 0) {\n        if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    \n                    \n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }\n        break;\n      }\n      if (uVar13 == 0xffffff00) {\n        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;\n        *(undefined1 *)((int)piVar4 + 0x45) = 0;\n        if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }\n        goto LAB_000ac7e1;\n      }\n      if (((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)) goto joined_r0x000acdd4;\n      iVar8 = iVar5 + 1;\n      local_3b[iVar5] = (char)uVar14;\n      local_3b[iVar5 + 1] = 0;\n      iVar5 = FUN_000b2670();\n      if (iVar5 == 1) {\n        uVar9 = 0x45;\n        goto LAB_000ac8f0;\n      }\n      iVar5 = iVar8;\n    } while (iVar8 < 6);\n    FUN_000b0b18();\n    uVar13 = 0x3f;\nLAB_000ac830:\n    if ((local_a3 != 0) && (local_a3 == uVar13)) {\n      piVar4[6] = 0;\n      goto LAB_000ac96b;\n    }\nLAB_000acba3:\n    if ((local_9f == 0) || (local_9f != uVar13)) {\n      if ((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)) {\n        piVar4[6] = iVar5 + 1;\n        iVar2 = piVar4[5];\n        iVar8 = iVar2 * 4;\n        puVar12 = (uint *)(iVar8 + piVar4[8]);\n        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);\n        if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }\n      }\n    }\n    else {\n      if (piVar4[6] == 0) goto code_r0x000acbc3;\n      FUN_000abd91();\n    }\n    if (uVar13 != 9) goto LAB_000ac923;\n    iVar5 = piVar4[0x10];\n    if (piVar4[0xf] != iVar5) goto LAB_000acddf;\n    goto LAB_000ac7c7;\n  }" { (expression_statement "FUN_000b24de();" (call_expression "FUN_000b24de()" identifier (argument_list "()" ( ))) ;) (if_statement "if (unaff_retaddr < 0x401) {\n      piVar4[7] = unaff_retaddr;\n      local_f4 = unaff_retaddr;\n    }\n    else {\n      local_f4 = 0x400;\n      piVar4[7] = 0x400;\n    }" if (parenthesized_expression "(unaff_retaddr < 0x401)" ( (binary_expression "unaff_retaddr < 0x401" identifier < number_literal) )) (compound_statement "{\n      piVar4[7] = unaff_retaddr;\n      local_f4 = unaff_retaddr;\n    }" { (expression_statement "piVar4[7] = unaff_retaddr;" (assignment_expression "piVar4[7] = unaff_retaddr" (subscript_expression "piVar4[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_f4 = unaff_retaddr;" (assignment_expression "local_f4 = unaff_retaddr" identifier = identifier) ;) }) (else_clause "else {\n      local_f4 = 0x400;\n      piVar4[7] = 0x400;\n    }" else (compound_statement "{\n      local_f4 = 0x400;\n      piVar4[7] = 0x400;\n    }" { (expression_statement "local_f4 = 0x400;" (assignment_expression "local_f4 = 0x400" identifier = number_literal) ;) (expression_statement "piVar4[7] = 0x400;" (assignment_expression "piVar4[7] = 0x400" (subscript_expression "piVar4[7]" identifier [ number_literal ]) = number_literal) ;) }))) (if_statement "if (pbVar3 == (byte *)0x0) {\n      pbVar3 = (byte *)(unaff_EBP + 0xa2a3);\n      *piVar4 = (int)pbVar3;\n    }\n    else {\n      *piVar4 = (int)pbVar3;\n    }" if (parenthesized_expression "(pbVar3 == (byte *)0x0)" ( (binary_expression "pbVar3 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbVar3 = (byte *)(unaff_EBP + 0xa2a3);\n      *piVar4 = (int)pbVar3;\n    }" { (expression_statement "pbVar3 = (byte *)(unaff_EBP + 0xa2a3);" (assignment_expression "pbVar3 = (byte *)(unaff_EBP + 0xa2a3)" identifier = (cast_expression "(byte *)(unaff_EBP + 0xa2a3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xa2a3)" ( (binary_expression "unaff_EBP + 0xa2a3" identifier + number_literal) )))) ;) (expression_statement "*piVar4 = (int)pbVar3;" (assignment_expression "*piVar4 = (int)pbVar3" (pointer_expression "*piVar4" * identifier) = (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n      *piVar4 = (int)pbVar3;\n    }" else (compound_statement "{\n      *piVar4 = (int)pbVar3;\n    }" { (expression_statement "*piVar4 = (int)pbVar3;" (assignment_expression "*piVar4 = (int)pbVar3" (pointer_expression "*piVar4" * identifier) = (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) (if_statement "if ((*pbVar3 & 1) != 0) {\n      *(undefined4 *)(pbVar3 + 0x10) = *(undefined4 *)(pbVar3 + 0xc);\n    }" if (parenthesized_expression "((*pbVar3 & 1) != 0)" ( (binary_expression "(*pbVar3 & 1) != 0" (parenthesized_expression "(*pbVar3 & 1)" ( (binary_expression "*pbVar3 & 1" (pointer_expression "*pbVar3" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      *(undefined4 *)(pbVar3 + 0x10) = *(undefined4 *)(pbVar3 + 0xc);\n    }" { (expression_statement "*(undefined4 *)(pbVar3 + 0x10) = *(undefined4 *)(pbVar3 + 0xc);" (assignment_expression "*(undefined4 *)(pbVar3 + 0x10) = *(undefined4 *)(pbVar3 + 0xc)" (pointer_expression "*(undefined4 *)(pbVar3 + 0x10)" * (cast_expression "(undefined4 *)(pbVar3 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0x10)" ( (binary_expression "pbVar3 + 0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(pbVar3 + 0xc)" * (cast_expression "(undefined4 *)(pbVar3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) ))))) ;) })) (expression_statement "piVar4[3] = 0;" (assignment_expression "piVar4[3] = 0" (subscript_expression "piVar4[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar4[6] = 0;" (assignment_expression "piVar4[6] = 0" (subscript_expression "piVar4[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar5 = FUN_00019b89();" (assignment_expression "iVar5 = FUN_00019b89()" identifier = (call_expression "FUN_00019b89()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar4[8] = iVar5;" (assignment_expression "piVar4[8] = iVar5" (subscript_expression "piVar4[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_0001985b();" (call_expression "FUN_0001985b()" identifier (argument_list "()" ( ))) ;) (expression_statement "__uid = geteuid();" (assignment_expression "__uid = geteuid()" identifier = (call_expression "geteuid()" identifier (argument_list "()" ( )))) ;) (expression_statement "ppVar7 = getpwuid(__uid);" (assignment_expression "ppVar7 = getpwuid(__uid)" identifier = (call_expression "getpwuid(__uid)" identifier (argument_list "(__uid)" ( identifier )))) ;) (if_statement "if (ppVar7 != (passwd *)0x0) {\n      iVar5 = FUN_00019ba3();\n      piVar4[0xb] = iVar5;\n      iVar5 = FUN_00019ba3();\n      piVar4[0xc] = iVar5;\n    }" if (parenthesized_expression "(ppVar7 != (passwd *)0x0)" ( (binary_expression "ppVar7 != (passwd *)0x0" identifier != (cast_expression "(passwd *)0x0" ( (type_descriptor "passwd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar5 = FUN_00019ba3();\n      piVar4[0xb] = iVar5;\n      iVar5 = FUN_00019ba3();\n      piVar4[0xc] = iVar5;\n    }" { (expression_statement "iVar5 = FUN_00019ba3();" (assignment_expression "iVar5 = FUN_00019ba3()" identifier = (call_expression "FUN_00019ba3()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar4[0xb] = iVar5;" (assignment_expression "piVar4[0xb] = iVar5" (subscript_expression "piVar4[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar5 = FUN_00019ba3();" (assignment_expression "iVar5 = FUN_00019ba3()" identifier = (call_expression "FUN_00019ba3()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar4[0xc] = iVar5;" (assignment_expression "piVar4[0xc] = iVar5" (subscript_expression "piVar4[0xc]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "iVar5 = FUN_00019828();" (assignment_expression "iVar5 = FUN_00019828()" identifier = (call_expression "FUN_00019828()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar4[1] = iVar5;" (assignment_expression "piVar4[1] = iVar5" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_000aaf0c();" (call_expression "FUN_000aaf0c()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = FUN_000b181c();" (assignment_expression "iVar5 = FUN_000b181c()" identifier = (call_expression "FUN_000b181c()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 0) {\n      *(undefined1 *)((int)piVar4 + 0x45) = 1;\n      fwrite_unlocked((void *)(unaff_EBP + 0x18192),1,4,\n                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP));\n      FUN_00019f78();\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      *(undefined1 *)((int)piVar4 + 0x45) = 1;\n      fwrite_unlocked((void *)(unaff_EBP + 0x18192),1,4,\n                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP));\n      FUN_00019f78();\n    }" { (expression_statement "*(undefined1 *)((int)piVar4 + 0x45) = 1;" (assignment_expression "*(undefined1 *)((int)piVar4 + 0x45) = 1" (pointer_expression "*(undefined1 *)((int)piVar4 + 0x45)" * (cast_expression "(undefined1 *)((int)piVar4 + 0x45)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + 0x45)" ( (binary_expression "(int)piVar4 + 0x45" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "fwrite_unlocked((void *)(unaff_EBP + 0x18192),1,4,\n                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP));" (call_expression "fwrite_unlocked((void *)(unaff_EBP + 0x18192),1,4,\n                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP))" identifier (argument_list "((void *)(unaff_EBP + 0x18192),1,4,\n                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP))" ( (cast_expression "(void *)(unaff_EBP + 0x18192)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x18192)" ( (binary_expression "unaff_EBP + 0x18192" identifier + number_literal) ))) , number_literal , number_literal , (cast_expression "(FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(&DAT_00024a03 + unaff_EBP)" * (pointer_expression "*(undefined4 **)(&DAT_00024a03 + unaff_EBP)" * (cast_expression "(undefined4 **)(&DAT_00024a03 + unaff_EBP)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00024a03 + unaff_EBP)" ( (binary_expression "&DAT_00024a03 + unaff_EBP" (pointer_expression "&DAT_00024a03" & identifier) + identifier) )))))) ))) ;) (expression_statement "FUN_00019f78();" (call_expression "FUN_00019f78()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "piVar4[0x12] = unaff_EBP + -0x85d;" (assignment_expression "piVar4[0x12] = unaff_EBP + -0x85d" (subscript_expression "piVar4[0x12]" identifier [ number_literal ]) = (binary_expression "unaff_EBP + -0x85d" identifier + number_literal)) ;) (expression_statement "piVar4[0x33] = 0x10000000;" (assignment_expression "piVar4[0x33] = 0x10000000" (subscript_expression "piVar4[0x33]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "sigaction(0x1c,(sigaction *)(piVar4 + 0x12),(sigaction *)(piVar4 + 0x12));" (call_expression "sigaction(0x1c,(sigaction *)(piVar4 + 0x12),(sigaction *)(piVar4 + 0x12))" identifier (argument_list "(0x1c,(sigaction *)(piVar4 + 0x12),(sigaction *)(piVar4 + 0x12))" ( number_literal , (cast_expression "(sigaction *)(piVar4 + 0x12)" ( (type_descriptor "sigaction *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 0x12)" ( (binary_expression "piVar4 + 0x12" identifier + number_literal) ))) , (cast_expression "(sigaction *)(piVar4 + 0x12)" ( (type_descriptor "sigaction *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 0x12)" ( (binary_expression "piVar4 + 0x12" identifier + number_literal) ))) ))) ;) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "piVar1 = *(int **)(&DAT_0002514b + unaff_EBP);" (assignment_expression "piVar1 = *(int **)(&DAT_0002514b + unaff_EBP)" identifier = (pointer_expression "*(int **)(&DAT_0002514b + unaff_EBP)" * (cast_expression "(int **)(&DAT_0002514b + unaff_EBP)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_0002514b + unaff_EBP)" ( (binary_expression "&DAT_0002514b + unaff_EBP" (pointer_expression "&DAT_0002514b" & identifier) + identifier) ))))) ;) (expression_statement "iVar5 = piVar4[0x10];" (assignment_expression "iVar5 = piVar4[0x10]" identifier = (subscript_expression "piVar4[0x10]" identifier [ number_literal ])) ;) (if_statement "if (piVar4[0xf] != iVar5) goto LAB_000acddf;" if (parenthesized_expression "(piVar4[0xf] != iVar5)" ( (binary_expression "piVar4[0xf] != iVar5" (subscript_expression "piVar4[0xf]" identifier [ number_literal ]) != identifier) )) (goto_statement "goto LAB_000acddf;" goto statement_identifier ;)) (labeled_statement "LAB_000ac7c7:\n    FUN_00019f78();" statement_identifier : (expression_statement "FUN_00019f78();" (call_expression "FUN_00019f78()" identifier (argument_list "()" ( ))) ;)) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000ac7e1:\n    do {\n      *(undefined1 *)(piVar4 + 0x11) = 1;\n      uVar14 = FUN_000b0821();\n      uVar13 = (uint)uVar14;\n      *(undefined1 *)(piVar4 + 0x11) = 0;\n      iVar8 = *piVar1;\n      if (iVar8 != 0) {\n        if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    \n                    \n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }\n        break;\n      }\n      if (uVar13 == 0xffffff00) {\n        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;\n        *(undefined1 *)((int)piVar4 + 0x45) = 0;\n        if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }\n        goto LAB_000ac7e1;\n      }\n      if (((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)) goto joined_r0x000acdd4;\n      iVar8 = iVar5 + 1;\n      local_3b[iVar5] = (char)uVar14;\n      local_3b[iVar5 + 1] = 0;\n      iVar5 = FUN_000b2670();\n      if (iVar5 == 1) {\n        uVar9 = 0x45;\n        goto LAB_000ac8f0;\n      }\n      iVar5 = iVar8;\n    } while (iVar8 < 6);" statement_identifier : (do_statement "do {\n      *(undefined1 *)(piVar4 + 0x11) = 1;\n      uVar14 = FUN_000b0821();\n      uVar13 = (uint)uVar14;\n      *(undefined1 *)(piVar4 + 0x11) = 0;\n      iVar8 = *piVar1;\n      if (iVar8 != 0) {\n        if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    \n                    \n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }\n        break;\n      }\n      if (uVar13 == 0xffffff00) {\n        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;\n        *(undefined1 *)((int)piVar4 + 0x45) = 0;\n        if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }\n        goto LAB_000ac7e1;\n      }\n      if (((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)) goto joined_r0x000acdd4;\n      iVar8 = iVar5 + 1;\n      local_3b[iVar5] = (char)uVar14;\n      local_3b[iVar5 + 1] = 0;\n      iVar5 = FUN_000b2670();\n      if (iVar5 == 1) {\n        uVar9 = 0x45;\n        goto LAB_000ac8f0;\n      }\n      iVar5 = iVar8;\n    } while (iVar8 < 6);" do (compound_statement "{\n      *(undefined1 *)(piVar4 + 0x11) = 1;\n      uVar14 = FUN_000b0821();\n      uVar13 = (uint)uVar14;\n      *(undefined1 *)(piVar4 + 0x11) = 0;\n      iVar8 = *piVar1;\n      if (iVar8 != 0) {\n        if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    \n                    \n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }\n        break;\n      }\n      if (uVar13 == 0xffffff00) {\n        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;\n        *(undefined1 *)((int)piVar4 + 0x45) = 0;\n        if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }\n        goto LAB_000ac7e1;\n      }\n      if (((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)) goto joined_r0x000acdd4;\n      iVar8 = iVar5 + 1;\n      local_3b[iVar5] = (char)uVar14;\n      local_3b[iVar5 + 1] = 0;\n      iVar5 = FUN_000b2670();\n      if (iVar5 == 1) {\n        uVar9 = 0x45;\n        goto LAB_000ac8f0;\n      }\n      iVar5 = iVar8;\n    }" { (expression_statement "*(undefined1 *)(piVar4 + 0x11) = 1;" (assignment_expression "*(undefined1 *)(piVar4 + 0x11) = 1" (pointer_expression "*(undefined1 *)(piVar4 + 0x11)" * (cast_expression "(undefined1 *)(piVar4 + 0x11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 0x11)" ( (binary_expression "piVar4 + 0x11" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar14 = FUN_000b0821();" (assignment_expression "uVar14 = FUN_000b0821()" identifier = (call_expression "FUN_000b0821()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar13 = (uint)uVar14;" (assignment_expression "uVar13 = (uint)uVar14" identifier = (cast_expression "(uint)uVar14" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(undefined1 *)(piVar4 + 0x11) = 0;" (assignment_expression "*(undefined1 *)(piVar4 + 0x11) = 0" (pointer_expression "*(undefined1 *)(piVar4 + 0x11)" * (cast_expression "(undefined1 *)(piVar4 + 0x11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 0x11)" ( (binary_expression "piVar4 + 0x11" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar8 = *piVar1;" (assignment_expression "iVar8 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (if_statement "if (iVar8 != 0) {\n        if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    \n                    \n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }\n        break;\n      }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    \n                    \n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }\n        break;\n      }" { (if_statement "if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    \n                    \n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }" if (parenthesized_expression "((iVar8 != 0xb) || (iVar5 == 0))" ( (binary_expression "(iVar8 != 0xb) || (iVar5 == 0)" (parenthesized_expression "(iVar8 != 0xb)" ( (binary_expression "iVar8 != 0xb" identifier != number_literal) )) || (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) ))) )) (compound_statement "{\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    \n                    \n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }" { (labeled_statement "joined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;" statement_identifier : (expression_statement "uVar9 = uVar13 + 0x45;" (assignment_expression "uVar9 = uVar13 + 0x45" identifier = (binary_expression "uVar13 + 0x45" identifier + number_literal)) ;)) (if_statement "if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    \n                    \n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }" if (parenthesized_expression "(uVar9 < 0xc5)" ( (binary_expression "uVar9 < 0xc5" identifier < number_literal) )) (compound_statement "{\nLAB_000ac8f0:\n                    \n                    \n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }" { (labeled_statement "LAB_000ac8f0:\n                    \n                    \n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();" statement_identifier : (expression_statement "sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();" (assignment_expression "sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))()" identifier = (call_expression "(*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))" ( (pointer_expression "*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f)" * (cast_expression "(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f)" ( (binary_expression "*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f" (binary_expression "*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP" (pointer_expression "*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4)" * (cast_expression "(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x10cf3 + uVar9 * 4)" ( (binary_expression "unaff_EBP + 0x10cf3 + uVar9 * 4" (binary_expression "unaff_EBP + 0x10cf3" identifier + number_literal) + (binary_expression "uVar9 * 4" identifier * number_literal)) )))) + identifier) + number_literal) )))) )) (argument_list "()" ( )))) ;)) (return_statement "return sVar11;" return identifier ;) })) (goto_statement "goto LAB_000ac830;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (if_statement "if (uVar13 == 0xffffff00) {\n        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;\n        *(undefined1 *)((int)piVar4 + 0x45) = 0;\n        if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }\n        goto LAB_000ac7e1;\n      }" if (parenthesized_expression "(uVar13 == 0xffffff00)" ( (binary_expression "uVar13 == 0xffffff00" identifier == number_literal) )) (compound_statement "{\n        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;\n        *(undefined1 *)((int)piVar4 + 0x45) = 0;\n        if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }\n        goto LAB_000ac7e1;\n      }" { (if_statement "if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;" if (parenthesized_expression "(*(char *)((int)piVar4 + 0x45) == '\0')" ( (binary_expression "*(char *)((int)piVar4 + 0x45) == '\0'" (pointer_expression "*(char *)((int)piVar4 + 0x45)" * (cast_expression "(char *)((int)piVar4 + 0x45)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + 0x45)" ( (binary_expression "(int)piVar4 + 0x45" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000acba3;" goto statement_identifier ;)) (expression_statement "*(undefined1 *)((int)piVar4 + 0x45) = 0;" (assignment_expression "*(undefined1 *)((int)piVar4 + 0x45) = 0" (pointer_expression "*(undefined1 *)((int)piVar4 + 0x45)" * (cast_expression "(undefined1 *)((int)piVar4 + 0x45)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + 0x45)" ( (binary_expression "(int)piVar4 + 0x45" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (if_statement "if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }" if (parenthesized_expression "((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8))" ( (binary_expression "(piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)" (parenthesized_expression "(piVar4[5] == 0)" ( (binary_expression "piVar4[5] == 0" (subscript_expression "piVar4[5]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)" ( (comma_expression "iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8" (assignment_expression "iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4]" identifier = (binary_expression "((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4]" (parenthesized_expression "((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff)" ( (binary_expression "(uint)((ulonglong)uVar14 >> 0x20) & 0x7fff" (call_expression "(uint)((ulonglong)uVar14 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar14 >> 0x20)" ( (binary_expression "(ulonglong)uVar14 >> 0x20" (cast_expression "(ulonglong)uVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & number_literal) )) + (unary_expression "~piVar4[4]" ~ (subscript_expression "piVar4[4]" identifier [ number_literal ])))) , (binary_expression "0 < iVar8" number_literal < identifier)) ))) )) (compound_statement "{\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }" { (expression_statement "uVar9 = iVar8 + piVar4[2];" (assignment_expression "uVar9 = iVar8 + piVar4[2]" identifier = (binary_expression "iVar8 + piVar4[2]" identifier + (subscript_expression "piVar4[2]" identifier [ number_literal ]))) ;) (expression_statement "piVar4[2] = uVar9;" (assignment_expression "piVar4[2] = uVar9" (subscript_expression "piVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar13 = piVar4[1];" (assignment_expression "uVar13 = piVar4[1]" identifier = (subscript_expression "piVar4[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }" if (parenthesized_expression "(uVar13 <= uVar9)" ( (binary_expression "uVar13 <= uVar9" identifier <= identifier) )) (compound_statement "{\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }" { (expression_statement "iVar8 = piVar4[3];" (assignment_expression "iVar8 = piVar4[3]" identifier = (subscript_expression "piVar4[3]" identifier [ number_literal ])) ;) (do_statement "do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);" do (compound_statement "{\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            }" { (expression_statement "uVar9 = uVar9 - uVar13;" (assignment_expression "uVar9 = uVar9 - uVar13" identifier = (binary_expression "uVar9 - uVar13" identifier - identifier)) ;) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar13 <= uVar9)" ( (binary_expression "uVar13 <= uVar9" identifier <= identifier) )) ;) (expression_statement "piVar4[2] = uVar9;" (assignment_expression "piVar4[2] = uVar9" (subscript_expression "piVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar4[3] = iVar8;" (assignment_expression "piVar4[3] = iVar8" (subscript_expression "piVar4[3]" identifier [ number_literal ]) = identifier) ;) })) })) (goto_statement "goto LAB_000ac7e1;" goto statement_identifier ;) })) (if_statement "if (((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)) goto joined_r0x000acdd4;" if (parenthesized_expression "(((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0))" ( (binary_expression "((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)" (parenthesized_expression "((&LAB_00025177)[unaff_EBP] != '\x02')" ( (binary_expression "(&LAB_00025177)[unaff_EBP] != '\x02'" (subscript_expression "(&LAB_00025177)[unaff_EBP]" (parenthesized_expression "(&LAB_00025177)" ( (pointer_expression "&LAB_00025177" & identifier) )) [ identifier ]) != (char_literal "'\x02'" ' escape_sequence ')) )) || (parenthesized_expression "((int)uVar13 < 0)" ( (binary_expression "(int)uVar13 < 0" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))) )) (goto_statement "goto joined_r0x000acdd4;" goto statement_identifier ;)) (expression_statement "iVar8 = iVar5 + 1;" (assignment_expression "iVar8 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "local_3b[iVar5] = (char)uVar14;" (assignment_expression "local_3b[iVar5] = (char)uVar14" (subscript_expression "local_3b[iVar5]" identifier [ identifier ]) = (cast_expression "(char)uVar14" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "local_3b[iVar5 + 1] = 0;" (assignment_expression "local_3b[iVar5 + 1] = 0" (subscript_expression "local_3b[iVar5 + 1]" identifier [ (binary_expression "iVar5 + 1" identifier + number_literal) ]) = number_literal) ;) (expression_statement "iVar5 = FUN_000b2670();" (assignment_expression "iVar5 = FUN_000b2670()" identifier = (call_expression "FUN_000b2670()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 1) {\n        uVar9 = 0x45;\n        goto LAB_000ac8f0;\n      }" if (parenthesized_expression "(iVar5 == 1)" ( (binary_expression "iVar5 == 1" identifier == number_literal) )) (compound_statement "{\n        uVar9 = 0x45;\n        goto LAB_000ac8f0;\n      }" { (expression_statement "uVar9 = 0x45;" (assignment_expression "uVar9 = 0x45" identifier = number_literal) ;) (goto_statement "goto LAB_000ac8f0;" goto statement_identifier ;) })) (expression_statement "iVar5 = iVar8;" (assignment_expression "iVar5 = iVar8" identifier = identifier) ;) }) while (parenthesized_expression "(iVar8 < 6)" ( (binary_expression "iVar8 < 6" identifier < number_literal) )) ;)) (expression_statement "FUN_000b0b18();" (call_expression "FUN_000b0b18()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar13 = 0x3f;" (assignment_expression "uVar13 = 0x3f" identifier = number_literal) ;) (labeled_statement "LAB_000ac830:\n    if ((local_a3 != 0) && (local_a3 == uVar13)) {\n      piVar4[6] = 0;\n      goto LAB_000ac96b;\n    }" statement_identifier : (if_statement "if ((local_a3 != 0) && (local_a3 == uVar13)) {\n      piVar4[6] = 0;\n      goto LAB_000ac96b;\n    }" if (parenthesized_expression "((local_a3 != 0) && (local_a3 == uVar13))" ( (binary_expression "(local_a3 != 0) && (local_a3 == uVar13)" (parenthesized_expression "(local_a3 != 0)" ( (binary_expression "local_a3 != 0" identifier != number_literal) )) && (parenthesized_expression "(local_a3 == uVar13)" ( (binary_expression "local_a3 == uVar13" identifier == identifier) ))) )) (compound_statement "{\n      piVar4[6] = 0;\n      goto LAB_000ac96b;\n    }" { (expression_statement "piVar4[6] = 0;" (assignment_expression "piVar4[6] = 0" (subscript_expression "piVar4[6]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_000ac96b;" goto statement_identifier ;) }))) (labeled_statement "LAB_000acba3:\n    if ((local_9f == 0) || (local_9f != uVar13)) {\n      if ((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)) {\n        piVar4[6] = iVar5 + 1;\n        iVar2 = piVar4[5];\n        iVar8 = iVar2 * 4;\n        puVar12 = (uint *)(iVar8 + piVar4[8]);\n        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);\n        if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }\n      }\n    }\n    else {\n      if (piVar4[6] == 0) goto code_r0x000acbc3;\n      FUN_000abd91();\n    }" statement_identifier : (if_statement "if ((local_9f == 0) || (local_9f != uVar13)) {\n      if ((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)) {\n        piVar4[6] = iVar5 + 1;\n        iVar2 = piVar4[5];\n        iVar8 = iVar2 * 4;\n        puVar12 = (uint *)(iVar8 + piVar4[8]);\n        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);\n        if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }\n      }\n    }\n    else {\n      if (piVar4[6] == 0) goto code_r0x000acbc3;\n      FUN_000abd91();\n    }" if (parenthesized_expression "((local_9f == 0) || (local_9f != uVar13))" ( (binary_expression "(local_9f == 0) || (local_9f != uVar13)" (parenthesized_expression "(local_9f == 0)" ( (binary_expression "local_9f == 0" identifier == number_literal) )) || (parenthesized_expression "(local_9f != uVar13)" ( (binary_expression "local_9f != uVar13" identifier != identifier) ))) )) (compound_statement "{\n      if ((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)) {\n        piVar4[6] = iVar5 + 1;\n        iVar2 = piVar4[5];\n        iVar8 = iVar2 * 4;\n        puVar12 = (uint *)(iVar8 + piVar4[8]);\n        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);\n        if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }\n      }\n    }" { (if_statement "if ((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)) {\n        piVar4[6] = iVar5 + 1;\n        iVar2 = piVar4[5];\n        iVar8 = iVar2 * 4;\n        puVar12 = (uint *)(iVar8 + piVar4[8]);\n        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);\n        if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }\n      }" if (parenthesized_expression "((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2))" ( (binary_expression "(uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)" (parenthesized_expression "(uVar13 - 0x20 < 0x3fffffe0)" ( (binary_expression "uVar13 - 0x20 < 0x3fffffe0" (binary_expression "uVar13 - 0x20" identifier - number_literal) < number_literal) )) && (parenthesized_expression "(iVar5 = piVar4[6], iVar5 < local_f4 + -2)" ( (comma_expression "iVar5 = piVar4[6], iVar5 < local_f4 + -2" (assignment_expression "iVar5 = piVar4[6]" identifier = (subscript_expression "piVar4[6]" identifier [ number_literal ])) , (binary_expression "iVar5 < local_f4 + -2" identifier < (binary_expression "local_f4 + -2" identifier + number_literal))) ))) )) (compound_statement "{\n        piVar4[6] = iVar5 + 1;\n        iVar2 = piVar4[5];\n        iVar8 = iVar2 * 4;\n        puVar12 = (uint *)(iVar8 + piVar4[8]);\n        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);\n        if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }\n      }" { (expression_statement "piVar4[6] = iVar5 + 1;" (assignment_expression "piVar4[6] = iVar5 + 1" (subscript_expression "piVar4[6]" identifier [ number_literal ]) = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "iVar2 = piVar4[5];" (assignment_expression "iVar2 = piVar4[5]" identifier = (subscript_expression "piVar4[5]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = iVar2 * 4;" (assignment_expression "iVar8 = iVar2 * 4" identifier = (binary_expression "iVar2 * 4" identifier * number_literal)) ;) (expression_statement "puVar12 = (uint *)(iVar8 + piVar4[8]);" (assignment_expression "puVar12 = (uint *)(iVar8 + piVar4[8])" identifier = (cast_expression "(uint *)(iVar8 + piVar4[8])" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + piVar4[8])" ( (binary_expression "iVar8 + piVar4[8]" identifier + (subscript_expression "piVar4[8]" identifier [ number_literal ])) )))) ;) (expression_statement "__dest = (undefined4 *)(piVar4[8] + 4 + iVar8);" (assignment_expression "__dest = (undefined4 *)(piVar4[8] + 4 + iVar8)" identifier = (cast_expression "(undefined4 *)(piVar4[8] + 4 + iVar8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[8] + 4 + iVar8)" ( (binary_expression "piVar4[8] + 4 + iVar8" (binary_expression "piVar4[8] + 4" (subscript_expression "piVar4[8]" identifier [ number_literal ]) + number_literal) + identifier) )))) ;) (if_statement "if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }" if (parenthesized_expression "(iVar2 == iVar5)" ( (binary_expression "iVar2 == iVar5" identifier == identifier) )) (compound_statement "{\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }" { (expression_statement "*puVar12 = uVar13;" (assignment_expression "*puVar12 = uVar13" (pointer_expression "*puVar12" * identifier) = identifier) ;) (expression_statement "*__dest = 0;" (assignment_expression "*__dest = 0" (pointer_expression "*__dest" * identifier) = number_literal) ;) (expression_statement "FUN_000aba58();" (call_expression "FUN_000aba58()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }" else (compound_statement "{\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }" { (expression_statement "memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);" (call_expression "memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4)" identifier (argument_list "(__dest,puVar12,((iVar5 + 1) - iVar2) * 4)" ( identifier , identifier , (binary_expression "((iVar5 + 1) - iVar2) * 4" (parenthesized_expression "((iVar5 + 1) - iVar2)" ( (binary_expression "(iVar5 + 1) - iVar2" (parenthesized_expression "(iVar5 + 1)" ( (binary_expression "iVar5 + 1" identifier + number_literal) )) - identifier) )) * number_literal) ))) ;) (expression_statement "*(uint *)(piVar4[8] + iVar8) = uVar13;" (assignment_expression "*(uint *)(piVar4[8] + iVar8) = uVar13" (pointer_expression "*(uint *)(piVar4[8] + iVar8)" * (cast_expression "(uint *)(piVar4[8] + iVar8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[8] + iVar8)" ( (binary_expression "piVar4[8] + iVar8" (subscript_expression "piVar4[8]" identifier [ number_literal ]) + identifier) )))) = identifier) ;) (if_statement "if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }" if (parenthesized_expression "((uint)piVar4[5] < (uint)piVar4[6])" ( (binary_expression "(uint)piVar4[5] < (uint)piVar4[6]" (cast_expression "(uint)piVar4[5]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar4[5]" identifier [ number_literal ])) < (cast_expression "(uint)piVar4[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar4[6]" identifier [ number_literal ]))) )) (compound_statement "{\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }" { (do_statement "do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);" do (compound_statement "{\n              FUN_000aba58();\n            }" { (expression_statement "FUN_000aba58();" (call_expression "FUN_000aba58()" identifier (argument_list "()" ( ))) ;) }) while (parenthesized_expression "((uint)piVar4[5] < (uint)piVar4[6])" ( (binary_expression "(uint)piVar4[5] < (uint)piVar4[6]" (cast_expression "(uint)piVar4[5]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar4[5]" identifier [ number_literal ])) < (cast_expression "(uint)piVar4[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar4[6]" identifier [ number_literal ]))) )) ;) })) (expression_statement "FUN_000ab35c();" (call_expression "FUN_000ab35c()" identifier (argument_list "()" ( ))) ;) }))) })) }) (else_clause "else {\n      if (piVar4[6] == 0) goto code_r0x000acbc3;\n      FUN_000abd91();\n    }" else (compound_statement "{\n      if (piVar4[6] == 0) goto code_r0x000acbc3;\n      FUN_000abd91();\n    }" { (if_statement "if (piVar4[6] == 0) goto code_r0x000acbc3;" if (parenthesized_expression "(piVar4[6] == 0)" ( (binary_expression "piVar4[6] == 0" (subscript_expression "piVar4[6]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto code_r0x000acbc3;" goto statement_identifier ;)) (expression_statement "FUN_000abd91();" (call_expression "FUN_000abd91()" identifier (argument_list "()" ( ))) ;) })))) (if_statement "if (uVar13 != 9) goto LAB_000ac923;" if (parenthesized_expression "(uVar13 != 9)" ( (binary_expression "uVar13 != 9" identifier != number_literal) )) (goto_statement "goto LAB_000ac923;" goto statement_identifier ;)) (expression_statement "iVar5 = piVar4[0x10];" (assignment_expression "iVar5 = piVar4[0x10]" identifier = (subscript_expression "piVar4[0x10]" identifier [ number_literal ])) ;) (if_statement "if (piVar4[0xf] != iVar5) goto LAB_000acddf;" if (parenthesized_expression "(piVar4[0xf] != iVar5)" ( (binary_expression "piVar4[0xf] != iVar5" (subscript_expression "piVar4[0xf]" identifier [ number_literal ]) != identifier) )) (goto_statement "goto LAB_000acddf;" goto statement_identifier ;)) (goto_statement "goto LAB_000ac7c7;" goto statement_identifier ;) })) (expression_statement "FUN_000aaf0c();" (call_expression "FUN_000aaf0c()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00019f78();" (call_expression "FUN_00019f78()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar6 = fgets_unlocked(local_f0,unaff_retaddr,\n                          (FILE *)**(undefined4 **)(&DAT_000249fb + unaff_EBP));" (assignment_expression "pcVar6 = fgets_unlocked(local_f0,unaff_retaddr,\n                          (FILE *)**(undefined4 **)(&DAT_000249fb + unaff_EBP))" identifier = (call_expression "fgets_unlocked(local_f0,unaff_retaddr,\n                          (FILE *)**(undefined4 **)(&DAT_000249fb + unaff_EBP))" identifier (argument_list "(local_f0,unaff_retaddr,\n                          (FILE *)**(undefined4 **)(&DAT_000249fb + unaff_EBP))" ( identifier , identifier , (cast_expression "(FILE *)**(undefined4 **)(&DAT_000249fb + unaff_EBP)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(&DAT_000249fb + unaff_EBP)" * (pointer_expression "*(undefined4 **)(&DAT_000249fb + unaff_EBP)" * (cast_expression "(undefined4 **)(&DAT_000249fb + unaff_EBP)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_000249fb + unaff_EBP)" ( (binary_expression "&DAT_000249fb + unaff_EBP" (pointer_expression "&DAT_000249fb" & identifier) + identifier) )))))) )))) ;) (expression_statement "sVar11 = 0xffffffff;" (assignment_expression "sVar11 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (pcVar6 != (char *)0x0) {\n    sVar11 = strlen(local_f0);\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    sVar11 = strlen(local_f0);\n  }" { (expression_statement "sVar11 = strlen(local_f0);" (assignment_expression "sVar11 = strlen(local_f0)" identifier = (call_expression "strlen(local_f0)" identifier (argument_list "(local_f0)" ( identifier )))) ;) })) (labeled_statement "LAB_000ac9e9:\n  FUN_000aaa67();" statement_identifier : (expression_statement "FUN_000aaa67();" (call_expression "FUN_000aaa67()" identifier (argument_list "()" ( ))) ;)) (if_statement "if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00017e10();\n  }" if (parenthesized_expression "(local_24 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_24 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    FUN_00017e10();\n  }" { (expression_statement "FUN_00017e10();" (call_expression "FUN_00017e10()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return sVar11;" return identifier ;) (labeled_statement "code_r0x000acbc3:\n  *piVar1 = 0;" statement_identifier : (expression_statement "*piVar1 = 0;" (assignment_expression "*piVar1 = 0" (pointer_expression "*piVar1" * identifier) = number_literal) ;)) (expression_statement "piVar4[6] = -1;" (assignment_expression "piVar4[6] = -1" (subscript_expression "piVar4[6]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_000ac96b:\n  if (*(char *)((int)piVar4 + 0x45) != '\0') {\n    usleep(20000);\n  }" statement_identifier : (if_statement "if (*(char *)((int)piVar4 + 0x45) != '\0') {\n    usleep(20000);\n  }" if (parenthesized_expression "(*(char *)((int)piVar4 + 0x45) != '\0')" ( (binary_expression "*(char *)((int)piVar4 + 0x45) != '\0'" (pointer_expression "*(char *)((int)piVar4 + 0x45)" * (cast_expression "(char *)((int)piVar4 + 0x45)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + 0x45)" ( (binary_expression "(int)piVar4 + 0x45" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    usleep(20000);\n  }" { (expression_statement "usleep(20000);" (call_expression "usleep(20000)" identifier (argument_list "(20000)" ( number_literal ))) ;) }))) (expression_statement "*local_f0 = '\0';" (assignment_expression "*local_f0 = '\0'" (pointer_expression "*local_f0" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (0 < piVar4[6]) {\n    iVar5 = FUN_000abe42();\n    piVar4[6] = iVar5;\n  }" if (parenthesized_expression "(0 < piVar4[6])" ( (binary_expression "0 < piVar4[6]" number_literal < (subscript_expression "piVar4[6]" identifier [ number_literal ])) )) (compound_statement "{\n    iVar5 = FUN_000abe42();\n    piVar4[6] = iVar5;\n  }" { (expression_statement "iVar5 = FUN_000abe42();" (assignment_expression "iVar5 = FUN_000abe42()" identifier = (call_expression "FUN_000abe42()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar4[6] = iVar5;" (assignment_expression "piVar4[6] = iVar5" (subscript_expression "piVar4[6]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "free((void *)piVar4[8]);" (call_expression "free((void *)piVar4[8])" identifier (argument_list "((void *)piVar4[8])" ( (cast_expression "(void *)piVar4[8]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[8]" identifier [ number_literal ])) ))) ;) (if_statement "if (0 < piVar4[6]) {\n    puVar12 = (uint *)*piVar4;\n    uVar13 = *puVar12 & 1;\n    if (((uVar13 != 0) && (*local_f0 != '\0')) &&\n       ((local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)))) {\n      free((void *)puVar12[puVar12[5] + 6]);\n      iVar5 = *piVar4;\n      iVar8 = *(int *)(iVar5 + 0x14);\n      *(undefined4 *)(iVar5 + 0x18 + iVar8 * 4) = 0;\n      if ((int)local_ec < iVar8) {\n        uVar13 = local_ec + 1;\n      }\n      else {\n        free(*(void **)(iVar5 + 0x18));\n        iVar5 = *piVar4;\n        iVar8 = *(int *)(iVar5 + 0x14);\n        local_ec = 0;\n        if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }\n      }\n      uVar10 = FUN_00019ba3();\n      *(undefined4 *)(iVar5 + 0x18 + local_ec * 4) = uVar10;\n      iVar5 = *piVar4;\n      *(uint *)(iVar5 + 0x10) = uVar13;\n      *(uint *)(iVar5 + 0xc) = uVar13;\n    }\n  }" if (parenthesized_expression "(0 < piVar4[6])" ( (binary_expression "0 < piVar4[6]" number_literal < (subscript_expression "piVar4[6]" identifier [ number_literal ])) )) (compound_statement "{\n    puVar12 = (uint *)*piVar4;\n    uVar13 = *puVar12 & 1;\n    if (((uVar13 != 0) && (*local_f0 != '\0')) &&\n       ((local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)))) {\n      free((void *)puVar12[puVar12[5] + 6]);\n      iVar5 = *piVar4;\n      iVar8 = *(int *)(iVar5 + 0x14);\n      *(undefined4 *)(iVar5 + 0x18 + iVar8 * 4) = 0;\n      if ((int)local_ec < iVar8) {\n        uVar13 = local_ec + 1;\n      }\n      else {\n        free(*(void **)(iVar5 + 0x18));\n        iVar5 = *piVar4;\n        iVar8 = *(int *)(iVar5 + 0x14);\n        local_ec = 0;\n        if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }\n      }\n      uVar10 = FUN_00019ba3();\n      *(undefined4 *)(iVar5 + 0x18 + local_ec * 4) = uVar10;\n      iVar5 = *piVar4;\n      *(uint *)(iVar5 + 0x10) = uVar13;\n      *(uint *)(iVar5 + 0xc) = uVar13;\n    }\n  }" { (expression_statement "puVar12 = (uint *)*piVar4;" (assignment_expression "puVar12 = (uint *)*piVar4" identifier = (cast_expression "(uint *)*piVar4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (expression_statement "uVar13 = *puVar12 & 1;" (assignment_expression "uVar13 = *puVar12 & 1" identifier = (binary_expression "*puVar12 & 1" (pointer_expression "*puVar12" * identifier) & number_literal)) ;) (if_statement "if (((uVar13 != 0) && (*local_f0 != '\0')) &&\n       ((local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)))) {\n      free((void *)puVar12[puVar12[5] + 6]);\n      iVar5 = *piVar4;\n      iVar8 = *(int *)(iVar5 + 0x14);\n      *(undefined4 *)(iVar5 + 0x18 + iVar8 * 4) = 0;\n      if ((int)local_ec < iVar8) {\n        uVar13 = local_ec + 1;\n      }\n      else {\n        free(*(void **)(iVar5 + 0x18));\n        iVar5 = *piVar4;\n        iVar8 = *(int *)(iVar5 + 0x14);\n        local_ec = 0;\n        if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }\n      }\n      uVar10 = FUN_00019ba3();\n      *(undefined4 *)(iVar5 + 0x18 + local_ec * 4) = uVar10;\n      iVar5 = *piVar4;\n      *(uint *)(iVar5 + 0x10) = uVar13;\n      *(uint *)(iVar5 + 0xc) = uVar13;\n    }" if (parenthesized_expression "(((uVar13 != 0) && (*local_f0 != '\0')) &&\n       ((local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0))))" ( (binary_expression "((uVar13 != 0) && (*local_f0 != '\0')) &&\n       ((local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)))" (parenthesized_expression "((uVar13 != 0) && (*local_f0 != '\0'))" ( (binary_expression "(uVar13 != 0) && (*local_f0 != '\0')" (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) && (parenthesized_expression "(*local_f0 != '\0')" ( (binary_expression "*local_f0 != '\0'" (pointer_expression "*local_f0" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "((local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)))" ( (parenthesized_expression "(local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0))" ( (comma_expression "local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)" (assignment_expression "local_ec = puVar12[3]" identifier = (subscript_expression "puVar12[3]" identifier [ number_literal ])) , (binary_expression "local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)" (binary_expression "local_ec == 0" identifier == number_literal) || (parenthesized_expression "(iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)" ( (comma_expression "iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0" (assignment_expression "iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0)" identifier = (call_expression "strcmp((char *)puVar12[local_ec + 5],local_f0)" identifier (argument_list "((char *)puVar12[local_ec + 5],local_f0)" ( (cast_expression "(char *)puVar12[local_ec + 5]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[local_ec + 5]" identifier [ (binary_expression "local_ec + 5" identifier + number_literal) ])) , identifier )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) )))) )) ))) )) (compound_statement "{\n      free((void *)puVar12[puVar12[5] + 6]);\n      iVar5 = *piVar4;\n      iVar8 = *(int *)(iVar5 + 0x14);\n      *(undefined4 *)(iVar5 + 0x18 + iVar8 * 4) = 0;\n      if ((int)local_ec < iVar8) {\n        uVar13 = local_ec + 1;\n      }\n      else {\n        free(*(void **)(iVar5 + 0x18));\n        iVar5 = *piVar4;\n        iVar8 = *(int *)(iVar5 + 0x14);\n        local_ec = 0;\n        if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }\n      }\n      uVar10 = FUN_00019ba3();\n      *(undefined4 *)(iVar5 + 0x18 + local_ec * 4) = uVar10;\n      iVar5 = *piVar4;\n      *(uint *)(iVar5 + 0x10) = uVar13;\n      *(uint *)(iVar5 + 0xc) = uVar13;\n    }" { (expression_statement "free((void *)puVar12[puVar12[5] + 6]);" (call_expression "free((void *)puVar12[puVar12[5] + 6])" identifier (argument_list "((void *)puVar12[puVar12[5] + 6])" ( (cast_expression "(void *)puVar12[puVar12[5] + 6]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[puVar12[5] + 6]" identifier [ (binary_expression "puVar12[5] + 6" (subscript_expression "puVar12[5]" identifier [ number_literal ]) + number_literal) ])) ))) ;) (expression_statement "iVar5 = *piVar4;" (assignment_expression "iVar5 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "iVar8 = *(int *)(iVar5 + 0x14);" (assignment_expression "iVar8 = *(int *)(iVar5 + 0x14)" identifier = (pointer_expression "*(int *)(iVar5 + 0x14)" * (cast_expression "(int *)(iVar5 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x18 + iVar8 * 4) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x18 + iVar8 * 4) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x18 + iVar8 * 4)" * (cast_expression "(undefined4 *)(iVar5 + 0x18 + iVar8 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18 + iVar8 * 4)" ( (binary_expression "iVar5 + 0x18 + iVar8 * 4" (binary_expression "iVar5 + 0x18" identifier + number_literal) + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = number_literal) ;) (if_statement "if ((int)local_ec < iVar8) {\n        uVar13 = local_ec + 1;\n      }\n      else {\n        free(*(void **)(iVar5 + 0x18));\n        iVar5 = *piVar4;\n        iVar8 = *(int *)(iVar5 + 0x14);\n        local_ec = 0;\n        if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }\n      }" if (parenthesized_expression "((int)local_ec < iVar8)" ( (binary_expression "(int)local_ec < iVar8" (cast_expression "(int)local_ec" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (compound_statement "{\n        uVar13 = local_ec + 1;\n      }" { (expression_statement "uVar13 = local_ec + 1;" (assignment_expression "uVar13 = local_ec + 1" identifier = (binary_expression "local_ec + 1" identifier + number_literal)) ;) }) (else_clause "else {\n        free(*(void **)(iVar5 + 0x18));\n        iVar5 = *piVar4;\n        iVar8 = *(int *)(iVar5 + 0x14);\n        local_ec = 0;\n        if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }\n      }" else (compound_statement "{\n        free(*(void **)(iVar5 + 0x18));\n        iVar5 = *piVar4;\n        iVar8 = *(int *)(iVar5 + 0x14);\n        local_ec = 0;\n        if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }\n      }" { (expression_statement "free(*(void **)(iVar5 + 0x18));" (call_expression "free(*(void **)(iVar5 + 0x18))" identifier (argument_list "(*(void **)(iVar5 + 0x18))" ( (pointer_expression "*(void **)(iVar5 + 0x18)" * (cast_expression "(void **)(iVar5 + 0x18)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) )))) ))) ;) (expression_statement "iVar5 = *piVar4;" (assignment_expression "iVar5 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "iVar8 = *(int *)(iVar5 + 0x14);" (assignment_expression "iVar8 = *(int *)(iVar5 + 0x14)" identifier = (pointer_expression "*(int *)(iVar5 + 0x14)" * (cast_expression "(int *)(iVar5 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" identifier = number_literal) ;) (if_statement "if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }" if (parenthesized_expression "(1 < iVar8)" ( (binary_expression "1 < iVar8" number_literal < identifier) )) (compound_statement "{\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }" { (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" identifier = number_literal) ;) (do_statement "do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);" do (compound_statement "{\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          }" { (expression_statement "uVar13 = local_ec;" (assignment_expression "uVar13 = local_ec" identifier = identifier) ;) (expression_statement "local_ec = uVar13 + 1;" (assignment_expression "local_ec = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);" (assignment_expression "*(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4)" (pointer_expression "*(undefined4 *)(iVar5 + 0x14 + local_ec * 4)" * (cast_expression "(undefined4 *)(iVar5 + 0x14 + local_ec * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14 + local_ec * 4)" ( (binary_expression "iVar5 + 0x14 + local_ec * 4" (binary_expression "iVar5 + 0x14" identifier + number_literal) + (binary_expression "local_ec * 4" identifier * number_literal)) )))) = (pointer_expression "*(undefined4 *)(iVar5 + 0x18 + local_ec * 4)" * (cast_expression "(undefined4 *)(iVar5 + 0x18 + local_ec * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18 + local_ec * 4)" ( (binary_expression "iVar5 + 0x18 + local_ec * 4" (binary_expression "iVar5 + 0x18" identifier + number_literal) + (binary_expression "local_ec * 4" identifier * number_literal)) ))))) ;) }) while (parenthesized_expression "(local_ec != iVar8 - 1U)" ( (binary_expression "local_ec != iVar8 - 1U" identifier != (binary_expression "iVar8 - 1U" identifier - number_literal)) )) ;) (expression_statement "uVar13 = uVar13 + 2;" (assignment_expression "uVar13 = uVar13 + 2" identifier = (binary_expression "uVar13 + 2" identifier + number_literal)) ;) })) }))) (expression_statement "uVar10 = FUN_00019ba3();" (assignment_expression "uVar10 = FUN_00019ba3()" identifier = (call_expression "FUN_00019ba3()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x18 + local_ec * 4) = uVar10;" (assignment_expression "*(undefined4 *)(iVar5 + 0x18 + local_ec * 4) = uVar10" (pointer_expression "*(undefined4 *)(iVar5 + 0x18 + local_ec * 4)" * (cast_expression "(undefined4 *)(iVar5 + 0x18 + local_ec * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18 + local_ec * 4)" ( (binary_expression "iVar5 + 0x18 + local_ec * 4" (binary_expression "iVar5 + 0x18" identifier + number_literal) + (binary_expression "local_ec * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "iVar5 = *piVar4;" (assignment_expression "iVar5 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "*(uint *)(iVar5 + 0x10) = uVar13;" (assignment_expression "*(uint *)(iVar5 + 0x10) = uVar13" (pointer_expression "*(uint *)(iVar5 + 0x10)" * (cast_expression "(uint *)(iVar5 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar5 + 0xc) = uVar13;" (assignment_expression "*(uint *)(iVar5 + 0xc) = uVar13" (pointer_expression "*(uint *)(iVar5 + 0xc)" * (cast_expression "(uint *)(iVar5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = identifier) ;) })) })) (expression_statement "FUN_000aaa10();" (call_expression "FUN_000aaa10()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001985b();" (call_expression "FUN_0001985b()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001ada5();" (call_expression "FUN_0001ada5()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00019f78();" (call_expression "FUN_00019f78()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar11 = piVar4[6];" (assignment_expression "sVar11 = piVar4[6]" identifier = (subscript_expression "piVar4[6]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_000ac9e9;" goto statement_identifier ;) (labeled_statement "LAB_000ac923:\n  iVar5 = piVar4[0x10];" statement_identifier : (expression_statement "iVar5 = piVar4[0x10];" (assignment_expression "iVar5 = piVar4[0x10]" identifier = (subscript_expression "piVar4[0x10]" identifier [ number_literal ])) ;)) (if_statement "if (piVar4[0xf] != iVar5) {\nLAB_000acddf:\n    piVar4[0xf] = iVar5;\n    FUN_000abd02();\n  }" if (parenthesized_expression "(piVar4[0xf] != iVar5)" ( (binary_expression "piVar4[0xf] != iVar5" (subscript_expression "piVar4[0xf]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\nLAB_000acddf:\n    piVar4[0xf] = iVar5;\n    FUN_000abd02();\n  }" { (labeled_statement "LAB_000acddf:\n    piVar4[0xf] = iVar5;" statement_identifier : (expression_statement "piVar4[0xf] = iVar5;" (assignment_expression "piVar4[0xf] = iVar5" (subscript_expression "piVar4[0xf]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "FUN_000abd02();" (call_expression "FUN_000abd02()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_000ac7c7;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , LIT , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) )))) + IDENT) + LIT) )))) )) (argument_list ( )))) ;)) (return_statement return IDENT ;) })) (goto_statement goto statement_identifier ;) })) (break_statement break ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) & LIT) )) + (unary_expression ~ (subscript_expression IDENT [ LIT ])))) , (binary_expression LIT < IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) != (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < LIT) )) ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT == IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (goto_statement goto statement_identifier ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (binary_expression IDENT < (binary_expression IDENT + LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - IDENT) )) * LIT) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))))) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return IDENT ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (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 ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (binary_expression (binary_expression IDENT == LIT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ (binary_expression IDENT + LIT) ])) , IDENT )))) , (binary_expression IDENT != LIT)) )))) )) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ])) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT - LIT)) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (goto_statement goto statement_identifier ;) })))
(function_definition "size_t FUN_000ac5a2(void)\n\n{\n  undefined4 *__dest;\n  int *piVar1;\n  int iVar2;\n  byte *pbVar3;\n  int *piVar4;\n  int iVar5;\n  char *pcVar6;\n  __uid_t __uid;\n  passwd *ppVar7;\n  int iVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  size_t sVar11;\n  uint *puVar12;\n  int unaff_EBP;\n  uint uVar13;\n  int in_GS_OFFSET;\n  undefined8 uVar14;\n  int unaff_retaddr;\n  int local_f4;\n  char *local_f0;\n  uint local_ec;\n  uint local_a8;\n  byte local_a3;\n  byte local_9f;\n  undefined1 local_3b [7];\n  undefined1 local_34;\n  int local_24;\n  undefined4 local_20;\n  \n  pbVar3 = (byte *)FUN_00026ff7();\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  piVar4 = (int *)FUN_00019b89();\n  *(int **)(&DAT_0002516f + unaff_EBP) = piVar4;\n  piVar4[1] = 0x50;\n  piVar4[0xc] = unaff_EBP + 0x215a2;\n  iVar5 = FUN_00019879(1);\n  if ((iVar5 == 0) && ((local_a8 & 10) != 2)) {\n    FUN_000b24de();\n    if (unaff_retaddr < 0x401) {\n      piVar4[7] = unaff_retaddr;\n      local_f4 = unaff_retaddr;\n    }\n    else {\n      local_f4 = 0x400;\n      piVar4[7] = 0x400;\n    }\n    if (pbVar3 == (byte *)0x0) {\n      pbVar3 = (byte *)(unaff_EBP + 0xa2a3);\n      *piVar4 = (int)pbVar3;\n    }\n    else {\n      *piVar4 = (int)pbVar3;\n    }\n    if ((*pbVar3 & 1) != 0) {\n      *(undefined4 *)(pbVar3 + 0x10) = *(undefined4 *)(pbVar3 + 0xc);\n    }\n    piVar4[3] = 0;\n    piVar4[6] = 0;\n    iVar5 = FUN_00019b89();\n    piVar4[8] = iVar5;\n    FUN_0001985b();\n    __uid = geteuid();\n    ppVar7 = getpwuid(__uid);\n    if (ppVar7 != (passwd *)0x0) {\n      iVar5 = FUN_00019ba3();\n      piVar4[0xb] = iVar5;\n      iVar5 = FUN_00019ba3();\n      piVar4[0xc] = iVar5;\n    }\n    iVar5 = FUN_00019828();\n    piVar4[1] = iVar5;\n    FUN_000aaf0c();\n    iVar5 = FUN_000b181c();\n    if (iVar5 == 0) {\n      *(undefined1 *)((int)piVar4 + 0x45) = 1;\n      fwrite_unlocked((void *)(unaff_EBP + 0x18192),1,4,\n                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP));\n      FUN_00019f78();\n    }\n    piVar4[0x12] = unaff_EBP + -0x85d;\n    piVar4[0x33] = 0x10000000;\n    sigaction(0x1c,(sigaction *)(piVar4 + 0x12),(sigaction *)(piVar4 + 0x12));\n    local_34 = 0;\n    piVar1 = *(int **)(&DAT_0002514b + unaff_EBP);\n    iVar5 = piVar4[0x10];\n    if (piVar4[0xf] != iVar5) goto LAB_000acddf;\nLAB_000ac7c7:\n    FUN_00019f78();\n    iVar5 = 0;\nLAB_000ac7e1:\n    do {\n      *(undefined1 *)(piVar4 + 0x11) = 1;\n      uVar14 = FUN_000b0821();\n      uVar13 = (uint)uVar14;\n      *(undefined1 *)(piVar4 + 0x11) = 0;\n      iVar8 = *piVar1;\n      if (iVar8 != 0) {\n        if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    \n                    \n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }\n        break;\n      }\n      if (uVar13 == 0xffffff00) {\n        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;\n        *(undefined1 *)((int)piVar4 + 0x45) = 0;\n        if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }\n        goto LAB_000ac7e1;\n      }\n      if (((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)) goto joined_r0x000acdd4;\n      iVar8 = iVar5 + 1;\n      local_3b[iVar5] = (char)uVar14;\n      local_3b[iVar5 + 1] = 0;\n      iVar5 = FUN_000b2670();\n      if (iVar5 == 1) {\n        uVar9 = 0x45;\n        goto LAB_000ac8f0;\n      }\n      iVar5 = iVar8;\n    } while (iVar8 < 6);\n    FUN_000b0b18();\n    uVar13 = 0x3f;\nLAB_000ac830:\n    if ((local_a3 != 0) && (local_a3 == uVar13)) {\n      piVar4[6] = 0;\n      goto LAB_000ac96b;\n    }\nLAB_000acba3:\n    if ((local_9f == 0) || (local_9f != uVar13)) {\n      if ((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)) {\n        piVar4[6] = iVar5 + 1;\n        iVar2 = piVar4[5];\n        iVar8 = iVar2 * 4;\n        puVar12 = (uint *)(iVar8 + piVar4[8]);\n        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);\n        if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }\n      }\n    }\n    else {\n      if (piVar4[6] == 0) goto code_r0x000acbc3;\n      FUN_000abd91();\n    }\n    if (uVar13 != 9) goto LAB_000ac923;\n    iVar5 = piVar4[0x10];\n    if (piVar4[0xf] != iVar5) goto LAB_000acddf;\n    goto LAB_000ac7c7;\n  }\n  FUN_000aaf0c();\n  FUN_00019f78();\n  pcVar6 = fgets_unlocked(local_f0,unaff_retaddr,\n                          (FILE *)**(undefined4 **)(&DAT_000249fb + unaff_EBP));\n  sVar11 = 0xffffffff;\n  if (pcVar6 != (char *)0x0) {\n    sVar11 = strlen(local_f0);\n  }\nLAB_000ac9e9:\n  FUN_000aaa67();\n  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00017e10();\n  }\n  return sVar11;\ncode_r0x000acbc3:\n  *piVar1 = 0;\n  piVar4[6] = -1;\nLAB_000ac96b:\n  if (*(char *)((int)piVar4 + 0x45) != '\0') {\n    usleep(20000);\n  }\n  *local_f0 = '\0';\n  if (0 < piVar4[6]) {\n    iVar5 = FUN_000abe42();\n    piVar4[6] = iVar5;\n  }\n  free((void *)piVar4[8]);\n  if (0 < piVar4[6]) {\n    puVar12 = (uint *)*piVar4;\n    uVar13 = *puVar12 & 1;\n    if (((uVar13 != 0) && (*local_f0 != '\0')) &&\n       ((local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)))) {\n      free((void *)puVar12[puVar12[5] + 6]);\n      iVar5 = *piVar4;\n      iVar8 = *(int *)(iVar5 + 0x14);\n      *(undefined4 *)(iVar5 + 0x18 + iVar8 * 4) = 0;\n      if ((int)local_ec < iVar8) {\n        uVar13 = local_ec + 1;\n      }\n      else {\n        free(*(void **)(iVar5 + 0x18));\n        iVar5 = *piVar4;\n        iVar8 = *(int *)(iVar5 + 0x14);\n        local_ec = 0;\n        if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }\n      }\n      uVar10 = FUN_00019ba3();\n      *(undefined4 *)(iVar5 + 0x18 + local_ec * 4) = uVar10;\n      iVar5 = *piVar4;\n      *(uint *)(iVar5 + 0x10) = uVar13;\n      *(uint *)(iVar5 + 0xc) = uVar13;\n    }\n  }\n  FUN_000aaa10();\n  FUN_0001985b();\n  FUN_0001ada5();\n  FUN_00019f78();\n  sVar11 = piVar4[6];\n  goto LAB_000ac9e9;\nLAB_000ac923:\n  iVar5 = piVar4[0x10];\n  if (piVar4[0xf] != iVar5) {\nLAB_000acddf:\n    piVar4[0xf] = iVar5;\n    FUN_000abd02();\n  }\n  goto LAB_000ac7c7;\n}" (primitive_type "size_t") (function_declarator "FUN_000ac5a2(void)" (identifier "FUN_000ac5a2") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  undefined4 *__dest;\n  int *piVar1;\n  int iVar2;\n  byte *pbVar3;\n  int *piVar4;\n  int iVar5;\n  char *pcVar6;\n  __uid_t __uid;\n  passwd *ppVar7;\n  int iVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  size_t sVar11;\n  uint *puVar12;\n  int unaff_EBP;\n  uint uVar13;\n  int in_GS_OFFSET;\n  undefined8 uVar14;\n  int unaff_retaddr;\n  int local_f4;\n  char *local_f0;\n  uint local_ec;\n  uint local_a8;\n  byte local_a3;\n  byte local_9f;\n  undefined1 local_3b [7];\n  undefined1 local_34;\n  int local_24;\n  undefined4 local_20;\n  \n  pbVar3 = (byte *)FUN_00026ff7();\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  piVar4 = (int *)FUN_00019b89();\n  *(int **)(&DAT_0002516f + unaff_EBP) = piVar4;\n  piVar4[1] = 0x50;\n  piVar4[0xc] = unaff_EBP + 0x215a2;\n  iVar5 = FUN_00019879(1);\n  if ((iVar5 == 0) && ((local_a8 & 10) != 2)) {\n    FUN_000b24de();\n    if (unaff_retaddr < 0x401) {\n      piVar4[7] = unaff_retaddr;\n      local_f4 = unaff_retaddr;\n    }\n    else {\n      local_f4 = 0x400;\n      piVar4[7] = 0x400;\n    }\n    if (pbVar3 == (byte *)0x0) {\n      pbVar3 = (byte *)(unaff_EBP + 0xa2a3);\n      *piVar4 = (int)pbVar3;\n    }\n    else {\n      *piVar4 = (int)pbVar3;\n    }\n    if ((*pbVar3 & 1) != 0) {\n      *(undefined4 *)(pbVar3 + 0x10) = *(undefined4 *)(pbVar3 + 0xc);\n    }\n    piVar4[3] = 0;\n    piVar4[6] = 0;\n    iVar5 = FUN_00019b89();\n    piVar4[8] = iVar5;\n    FUN_0001985b();\n    __uid = geteuid();\n    ppVar7 = getpwuid(__uid);\n    if (ppVar7 != (passwd *)0x0) {\n      iVar5 = FUN_00019ba3();\n      piVar4[0xb] = iVar5;\n      iVar5 = FUN_00019ba3();\n      piVar4[0xc] = iVar5;\n    }\n    iVar5 = FUN_00019828();\n    piVar4[1] = iVar5;\n    FUN_000aaf0c();\n    iVar5 = FUN_000b181c();\n    if (iVar5 == 0) {\n      *(undefined1 *)((int)piVar4 + 0x45) = 1;\n      fwrite_unlocked((void *)(unaff_EBP + 0x18192),1,4,\n                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP));\n      FUN_00019f78();\n    }\n    piVar4[0x12] = unaff_EBP + -0x85d;\n    piVar4[0x33] = 0x10000000;\n    sigaction(0x1c,(sigaction *)(piVar4 + 0x12),(sigaction *)(piVar4 + 0x12));\n    local_34 = 0;\n    piVar1 = *(int **)(&DAT_0002514b + unaff_EBP);\n    iVar5 = piVar4[0x10];\n    if (piVar4[0xf] != iVar5) goto LAB_000acddf;\nLAB_000ac7c7:\n    FUN_00019f78();\n    iVar5 = 0;\nLAB_000ac7e1:\n    do {\n      *(undefined1 *)(piVar4 + 0x11) = 1;\n      uVar14 = FUN_000b0821();\n      uVar13 = (uint)uVar14;\n      *(undefined1 *)(piVar4 + 0x11) = 0;\n      iVar8 = *piVar1;\n      if (iVar8 != 0) {\n        if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    \n                    \n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }\n        break;\n      }\n      if (uVar13 == 0xffffff00) {\n        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;\n        *(undefined1 *)((int)piVar4 + 0x45) = 0;\n        if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }\n        goto LAB_000ac7e1;\n      }\n      if (((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)) goto joined_r0x000acdd4;\n      iVar8 = iVar5 + 1;\n      local_3b[iVar5] = (char)uVar14;\n      local_3b[iVar5 + 1] = 0;\n      iVar5 = FUN_000b2670();\n      if (iVar5 == 1) {\n        uVar9 = 0x45;\n        goto LAB_000ac8f0;\n      }\n      iVar5 = iVar8;\n    } while (iVar8 < 6);\n    FUN_000b0b18();\n    uVar13 = 0x3f;\nLAB_000ac830:\n    if ((local_a3 != 0) && (local_a3 == uVar13)) {\n      piVar4[6] = 0;\n      goto LAB_000ac96b;\n    }\nLAB_000acba3:\n    if ((local_9f == 0) || (local_9f != uVar13)) {\n      if ((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)) {\n        piVar4[6] = iVar5 + 1;\n        iVar2 = piVar4[5];\n        iVar8 = iVar2 * 4;\n        puVar12 = (uint *)(iVar8 + piVar4[8]);\n        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);\n        if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }\n      }\n    }\n    else {\n      if (piVar4[6] == 0) goto code_r0x000acbc3;\n      FUN_000abd91();\n    }\n    if (uVar13 != 9) goto LAB_000ac923;\n    iVar5 = piVar4[0x10];\n    if (piVar4[0xf] != iVar5) goto LAB_000acddf;\n    goto LAB_000ac7c7;\n  }\n  FUN_000aaf0c();\n  FUN_00019f78();\n  pcVar6 = fgets_unlocked(local_f0,unaff_retaddr,\n                          (FILE *)**(undefined4 **)(&DAT_000249fb + unaff_EBP));\n  sVar11 = 0xffffffff;\n  if (pcVar6 != (char *)0x0) {\n    sVar11 = strlen(local_f0);\n  }\nLAB_000ac9e9:\n  FUN_000aaa67();\n  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00017e10();\n  }\n  return sVar11;\ncode_r0x000acbc3:\n  *piVar1 = 0;\n  piVar4[6] = -1;\nLAB_000ac96b:\n  if (*(char *)((int)piVar4 + 0x45) != '\0') {\n    usleep(20000);\n  }\n  *local_f0 = '\0';\n  if (0 < piVar4[6]) {\n    iVar5 = FUN_000abe42();\n    piVar4[6] = iVar5;\n  }\n  free((void *)piVar4[8]);\n  if (0 < piVar4[6]) {\n    puVar12 = (uint *)*piVar4;\n    uVar13 = *puVar12 & 1;\n    if (((uVar13 != 0) && (*local_f0 != '\0')) &&\n       ((local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)))) {\n      free((void *)puVar12[puVar12[5] + 6]);\n      iVar5 = *piVar4;\n      iVar8 = *(int *)(iVar5 + 0x14);\n      *(undefined4 *)(iVar5 + 0x18 + iVar8 * 4) = 0;\n      if ((int)local_ec < iVar8) {\n        uVar13 = local_ec + 1;\n      }\n      else {\n        free(*(void **)(iVar5 + 0x18));\n        iVar5 = *piVar4;\n        iVar8 = *(int *)(iVar5 + 0x14);\n        local_ec = 0;\n        if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }\n      }\n      uVar10 = FUN_00019ba3();\n      *(undefined4 *)(iVar5 + 0x18 + local_ec * 4) = uVar10;\n      iVar5 = *piVar4;\n      *(uint *)(iVar5 + 0x10) = uVar13;\n      *(uint *)(iVar5 + 0xc) = uVar13;\n    }\n  }\n  FUN_000aaa10();\n  FUN_0001985b();\n  FUN_0001ada5();\n  FUN_00019f78();\n  sVar11 = piVar4[6];\n  goto LAB_000ac9e9;\nLAB_000ac923:\n  iVar5 = piVar4[0x10];\n  if (piVar4[0xf] != iVar5) {\nLAB_000acddf:\n    piVar4[0xf] = iVar5;\n    FUN_000abd02();\n  }\n  goto LAB_000ac7c7;\n}" ({ "{") (declaration "undefined4 *__dest;" (type_identifier "undefined4") (pointer_declarator "*__dest" (* "*") (identifier "__dest")) (; ";")) (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "byte *pbVar3;" (type_identifier "byte") (pointer_declarator "*pbVar3" (* "*") (identifier "pbVar3")) (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "__uid_t __uid;" (type_identifier "__uid_t") (identifier "__uid") (; ";")) (declaration "passwd *ppVar7;" (type_identifier "passwd") (pointer_declarator "*ppVar7" (* "*") (identifier "ppVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "size_t sVar11;" (primitive_type "size_t") (identifier "sVar11") (; ";")) (declaration "uint *puVar12;" (type_identifier "uint") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "int unaff_EBP;" (primitive_type "int") (identifier "unaff_EBP") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "undefined8 uVar14;" (type_identifier "undefined8") (identifier "uVar14") (; ";")) (declaration "int unaff_retaddr;" (primitive_type "int") (identifier "unaff_retaddr") (; ";")) (declaration "int local_f4;" (primitive_type "int") (identifier "local_f4") (; ";")) (declaration "char *local_f0;" (primitive_type "char") (pointer_declarator "*local_f0" (* "*") (identifier "local_f0")) (; ";")) (declaration "uint local_ec;" (type_identifier "uint") (identifier "local_ec") (; ";")) (declaration "uint local_a8;" (type_identifier "uint") (identifier "local_a8") (; ";")) (declaration "byte local_a3;" (type_identifier "byte") (identifier "local_a3") (; ";")) (declaration "byte local_9f;" (type_identifier "byte") (identifier "local_9f") (; ";")) (declaration "undefined1 local_3b [7];" (type_identifier "undefined1") (array_declarator "local_3b [7]" (identifier "local_3b") ([ "[") (number_literal "7") (] "]")) (; ";")) (declaration "undefined1 local_34;" (type_identifier "undefined1") (identifier "local_34") (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (expression_statement "pbVar3 = (byte *)FUN_00026ff7();" (assignment_expression "pbVar3 = (byte *)FUN_00026ff7()" (identifier "pbVar3") (= "=") (cast_expression "(byte *)FUN_00026ff7()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00026ff7()" (identifier "FUN_00026ff7") (argument_list "()" (( "(") () ")"))))) (; ";")) (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")) () ")"))))) (; ";")) (expression_statement "piVar4 = (int *)FUN_00019b89();" (assignment_expression "piVar4 = (int *)FUN_00019b89()" (identifier "piVar4") (= "=") (cast_expression "(int *)FUN_00019b89()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00019b89()" (identifier "FUN_00019b89") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*(int **)(&DAT_0002516f + unaff_EBP) = piVar4;" (assignment_expression "*(int **)(&DAT_0002516f + unaff_EBP) = piVar4" (pointer_expression "*(int **)(&DAT_0002516f + unaff_EBP)" (* "*") (cast_expression "(int **)(&DAT_0002516f + unaff_EBP)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(&DAT_0002516f + unaff_EBP)" (( "(") (binary_expression "&DAT_0002516f + unaff_EBP" (pointer_expression "&DAT_0002516f" (& "&") (identifier "DAT_0002516f")) (+ "+") (identifier "unaff_EBP")) () ")")))) (= "=") (identifier "piVar4")) (; ";")) (expression_statement "piVar4[1] = 0x50;" (assignment_expression "piVar4[1] = 0x50" (subscript_expression "piVar4[1]" (identifier "piVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0x50")) (; ";")) (expression_statement "piVar4[0xc] = unaff_EBP + 0x215a2;" (assignment_expression "piVar4[0xc] = unaff_EBP + 0x215a2" (subscript_expression "piVar4[0xc]" (identifier "piVar4") ([ "[") (number_literal "0xc") (] "]")) (= "=") (binary_expression "unaff_EBP + 0x215a2" (identifier "unaff_EBP") (+ "+") (number_literal "0x215a2"))) (; ";")) (expression_statement "iVar5 = FUN_00019879(1);" (assignment_expression "iVar5 = FUN_00019879(1)" (identifier "iVar5") (= "=") (call_expression "FUN_00019879(1)" (identifier "FUN_00019879") (argument_list "(1)" (( "(") (number_literal "1") () ")")))) (; ";")) (if_statement "if ((iVar5 == 0) && ((local_a8 & 10) != 2)) {\n    FUN_000b24de();\n    if (unaff_retaddr < 0x401) {\n      piVar4[7] = unaff_retaddr;\n      local_f4 = unaff_retaddr;\n    }\n    else {\n      local_f4 = 0x400;\n      piVar4[7] = 0x400;\n    }\n    if (pbVar3 == (byte *)0x0) {\n      pbVar3 = (byte *)(unaff_EBP + 0xa2a3);\n      *piVar4 = (int)pbVar3;\n    }\n    else {\n      *piVar4 = (int)pbVar3;\n    }\n    if ((*pbVar3 & 1) != 0) {\n      *(undefined4 *)(pbVar3 + 0x10) = *(undefined4 *)(pbVar3 + 0xc);\n    }\n    piVar4[3] = 0;\n    piVar4[6] = 0;\n    iVar5 = FUN_00019b89();\n    piVar4[8] = iVar5;\n    FUN_0001985b();\n    __uid = geteuid();\n    ppVar7 = getpwuid(__uid);\n    if (ppVar7 != (passwd *)0x0) {\n      iVar5 = FUN_00019ba3();\n      piVar4[0xb] = iVar5;\n      iVar5 = FUN_00019ba3();\n      piVar4[0xc] = iVar5;\n    }\n    iVar5 = FUN_00019828();\n    piVar4[1] = iVar5;\n    FUN_000aaf0c();\n    iVar5 = FUN_000b181c();\n    if (iVar5 == 0) {\n      *(undefined1 *)((int)piVar4 + 0x45) = 1;\n      fwrite_unlocked((void *)(unaff_EBP + 0x18192),1,4,\n                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP));\n      FUN_00019f78();\n    }\n    piVar4[0x12] = unaff_EBP + -0x85d;\n    piVar4[0x33] = 0x10000000;\n    sigaction(0x1c,(sigaction *)(piVar4 + 0x12),(sigaction *)(piVar4 + 0x12));\n    local_34 = 0;\n    piVar1 = *(int **)(&DAT_0002514b + unaff_EBP);\n    iVar5 = piVar4[0x10];\n    if (piVar4[0xf] != iVar5) goto LAB_000acddf;\nLAB_000ac7c7:\n    FUN_00019f78();\n    iVar5 = 0;\nLAB_000ac7e1:\n    do {\n      *(undefined1 *)(piVar4 + 0x11) = 1;\n      uVar14 = FUN_000b0821();\n      uVar13 = (uint)uVar14;\n      *(undefined1 *)(piVar4 + 0x11) = 0;\n      iVar8 = *piVar1;\n      if (iVar8 != 0) {\n        if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    \n                    \n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }\n        break;\n      }\n      if (uVar13 == 0xffffff00) {\n        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;\n        *(undefined1 *)((int)piVar4 + 0x45) = 0;\n        if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }\n        goto LAB_000ac7e1;\n      }\n      if (((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)) goto joined_r0x000acdd4;\n      iVar8 = iVar5 + 1;\n      local_3b[iVar5] = (char)uVar14;\n      local_3b[iVar5 + 1] = 0;\n      iVar5 = FUN_000b2670();\n      if (iVar5 == 1) {\n        uVar9 = 0x45;\n        goto LAB_000ac8f0;\n      }\n      iVar5 = iVar8;\n    } while (iVar8 < 6);\n    FUN_000b0b18();\n    uVar13 = 0x3f;\nLAB_000ac830:\n    if ((local_a3 != 0) && (local_a3 == uVar13)) {\n      piVar4[6] = 0;\n      goto LAB_000ac96b;\n    }\nLAB_000acba3:\n    if ((local_9f == 0) || (local_9f != uVar13)) {\n      if ((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)) {\n        piVar4[6] = iVar5 + 1;\n        iVar2 = piVar4[5];\n        iVar8 = iVar2 * 4;\n        puVar12 = (uint *)(iVar8 + piVar4[8]);\n        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);\n        if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }\n      }\n    }\n    else {\n      if (piVar4[6] == 0) goto code_r0x000acbc3;\n      FUN_000abd91();\n    }\n    if (uVar13 != 9) goto LAB_000ac923;\n    iVar5 = piVar4[0x10];\n    if (piVar4[0xf] != iVar5) goto LAB_000acddf;\n    goto LAB_000ac7c7;\n  }" (if "if") (parenthesized_expression "((iVar5 == 0) && ((local_a8 & 10) != 2))" (( "(") (binary_expression "(iVar5 == 0) && ((local_a8 & 10) != 2)" (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((local_a8 & 10) != 2)" (( "(") (binary_expression "(local_a8 & 10) != 2" (parenthesized_expression "(local_a8 & 10)" (( "(") (binary_expression "local_a8 & 10" (identifier "local_a8") (& "&") (number_literal "10")) () ")")) (!= "!=") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n    FUN_000b24de();\n    if (unaff_retaddr < 0x401) {\n      piVar4[7] = unaff_retaddr;\n      local_f4 = unaff_retaddr;\n    }\n    else {\n      local_f4 = 0x400;\n      piVar4[7] = 0x400;\n    }\n    if (pbVar3 == (byte *)0x0) {\n      pbVar3 = (byte *)(unaff_EBP + 0xa2a3);\n      *piVar4 = (int)pbVar3;\n    }\n    else {\n      *piVar4 = (int)pbVar3;\n    }\n    if ((*pbVar3 & 1) != 0) {\n      *(undefined4 *)(pbVar3 + 0x10) = *(undefined4 *)(pbVar3 + 0xc);\n    }\n    piVar4[3] = 0;\n    piVar4[6] = 0;\n    iVar5 = FUN_00019b89();\n    piVar4[8] = iVar5;\n    FUN_0001985b();\n    __uid = geteuid();\n    ppVar7 = getpwuid(__uid);\n    if (ppVar7 != (passwd *)0x0) {\n      iVar5 = FUN_00019ba3();\n      piVar4[0xb] = iVar5;\n      iVar5 = FUN_00019ba3();\n      piVar4[0xc] = iVar5;\n    }\n    iVar5 = FUN_00019828();\n    piVar4[1] = iVar5;\n    FUN_000aaf0c();\n    iVar5 = FUN_000b181c();\n    if (iVar5 == 0) {\n      *(undefined1 *)((int)piVar4 + 0x45) = 1;\n      fwrite_unlocked((void *)(unaff_EBP + 0x18192),1,4,\n                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP));\n      FUN_00019f78();\n    }\n    piVar4[0x12] = unaff_EBP + -0x85d;\n    piVar4[0x33] = 0x10000000;\n    sigaction(0x1c,(sigaction *)(piVar4 + 0x12),(sigaction *)(piVar4 + 0x12));\n    local_34 = 0;\n    piVar1 = *(int **)(&DAT_0002514b + unaff_EBP);\n    iVar5 = piVar4[0x10];\n    if (piVar4[0xf] != iVar5) goto LAB_000acddf;\nLAB_000ac7c7:\n    FUN_00019f78();\n    iVar5 = 0;\nLAB_000ac7e1:\n    do {\n      *(undefined1 *)(piVar4 + 0x11) = 1;\n      uVar14 = FUN_000b0821();\n      uVar13 = (uint)uVar14;\n      *(undefined1 *)(piVar4 + 0x11) = 0;\n      iVar8 = *piVar1;\n      if (iVar8 != 0) {\n        if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    \n                    \n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }\n        break;\n      }\n      if (uVar13 == 0xffffff00) {\n        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;\n        *(undefined1 *)((int)piVar4 + 0x45) = 0;\n        if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }\n        goto LAB_000ac7e1;\n      }\n      if (((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)) goto joined_r0x000acdd4;\n      iVar8 = iVar5 + 1;\n      local_3b[iVar5] = (char)uVar14;\n      local_3b[iVar5 + 1] = 0;\n      iVar5 = FUN_000b2670();\n      if (iVar5 == 1) {\n        uVar9 = 0x45;\n        goto LAB_000ac8f0;\n      }\n      iVar5 = iVar8;\n    } while (iVar8 < 6);\n    FUN_000b0b18();\n    uVar13 = 0x3f;\nLAB_000ac830:\n    if ((local_a3 != 0) && (local_a3 == uVar13)) {\n      piVar4[6] = 0;\n      goto LAB_000ac96b;\n    }\nLAB_000acba3:\n    if ((local_9f == 0) || (local_9f != uVar13)) {\n      if ((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)) {\n        piVar4[6] = iVar5 + 1;\n        iVar2 = piVar4[5];\n        iVar8 = iVar2 * 4;\n        puVar12 = (uint *)(iVar8 + piVar4[8]);\n        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);\n        if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }\n      }\n    }\n    else {\n      if (piVar4[6] == 0) goto code_r0x000acbc3;\n      FUN_000abd91();\n    }\n    if (uVar13 != 9) goto LAB_000ac923;\n    iVar5 = piVar4[0x10];\n    if (piVar4[0xf] != iVar5) goto LAB_000acddf;\n    goto LAB_000ac7c7;\n  }" ({ "{") (expression_statement "FUN_000b24de();" (call_expression "FUN_000b24de()" (identifier "FUN_000b24de") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (unaff_retaddr < 0x401) {\n      piVar4[7] = unaff_retaddr;\n      local_f4 = unaff_retaddr;\n    }\n    else {\n      local_f4 = 0x400;\n      piVar4[7] = 0x400;\n    }" (if "if") (parenthesized_expression "(unaff_retaddr < 0x401)" (( "(") (binary_expression "unaff_retaddr < 0x401" (identifier "unaff_retaddr") (< "<") (number_literal "0x401")) () ")")) (compound_statement "{\n      piVar4[7] = unaff_retaddr;\n      local_f4 = unaff_retaddr;\n    }" ({ "{") (expression_statement "piVar4[7] = unaff_retaddr;" (assignment_expression "piVar4[7] = unaff_retaddr" (subscript_expression "piVar4[7]" (identifier "piVar4") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "unaff_retaddr")) (; ";")) (expression_statement "local_f4 = unaff_retaddr;" (assignment_expression "local_f4 = unaff_retaddr" (identifier "local_f4") (= "=") (identifier "unaff_retaddr")) (; ";")) (} "}")) (else_clause "else {\n      local_f4 = 0x400;\n      piVar4[7] = 0x400;\n    }" (else "else") (compound_statement "{\n      local_f4 = 0x400;\n      piVar4[7] = 0x400;\n    }" ({ "{") (expression_statement "local_f4 = 0x400;" (assignment_expression "local_f4 = 0x400" (identifier "local_f4") (= "=") (number_literal "0x400")) (; ";")) (expression_statement "piVar4[7] = 0x400;" (assignment_expression "piVar4[7] = 0x400" (subscript_expression "piVar4[7]" (identifier "piVar4") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0x400")) (; ";")) (} "}")))) (if_statement "if (pbVar3 == (byte *)0x0) {\n      pbVar3 = (byte *)(unaff_EBP + 0xa2a3);\n      *piVar4 = (int)pbVar3;\n    }\n    else {\n      *piVar4 = (int)pbVar3;\n    }" (if "if") (parenthesized_expression "(pbVar3 == (byte *)0x0)" (( "(") (binary_expression "pbVar3 == (byte *)0x0" (identifier "pbVar3") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pbVar3 = (byte *)(unaff_EBP + 0xa2a3);\n      *piVar4 = (int)pbVar3;\n    }" ({ "{") (expression_statement "pbVar3 = (byte *)(unaff_EBP + 0xa2a3);" (assignment_expression "pbVar3 = (byte *)(unaff_EBP + 0xa2a3)" (identifier "pbVar3") (= "=") (cast_expression "(byte *)(unaff_EBP + 0xa2a3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0xa2a3)" (( "(") (binary_expression "unaff_EBP + 0xa2a3" (identifier "unaff_EBP") (+ "+") (number_literal "0xa2a3")) () ")")))) (; ";")) (expression_statement "*piVar4 = (int)pbVar3;" (assignment_expression "*piVar4 = (int)pbVar3" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (= "=") (cast_expression "(int)pbVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar3"))) (; ";")) (} "}")) (else_clause "else {\n      *piVar4 = (int)pbVar3;\n    }" (else "else") (compound_statement "{\n      *piVar4 = (int)pbVar3;\n    }" ({ "{") (expression_statement "*piVar4 = (int)pbVar3;" (assignment_expression "*piVar4 = (int)pbVar3" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (= "=") (cast_expression "(int)pbVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar3"))) (; ";")) (} "}")))) (if_statement "if ((*pbVar3 & 1) != 0) {\n      *(undefined4 *)(pbVar3 + 0x10) = *(undefined4 *)(pbVar3 + 0xc);\n    }" (if "if") (parenthesized_expression "((*pbVar3 & 1) != 0)" (( "(") (binary_expression "(*pbVar3 & 1) != 0" (parenthesized_expression "(*pbVar3 & 1)" (( "(") (binary_expression "*pbVar3 & 1" (pointer_expression "*pbVar3" (* "*") (identifier "pbVar3")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      *(undefined4 *)(pbVar3 + 0x10) = *(undefined4 *)(pbVar3 + 0xc);\n    }" ({ "{") (expression_statement "*(undefined4 *)(pbVar3 + 0x10) = *(undefined4 *)(pbVar3 + 0xc);" (assignment_expression "*(undefined4 *)(pbVar3 + 0x10) = *(undefined4 *)(pbVar3 + 0xc)" (pointer_expression "*(undefined4 *)(pbVar3 + 0x10)" (* "*") (cast_expression "(undefined4 *)(pbVar3 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar3 + 0x10)" (( "(") (binary_expression "pbVar3 + 0x10" (identifier "pbVar3") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(pbVar3 + 0xc)" (* "*") (cast_expression "(undefined4 *)(pbVar3 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar3 + 0xc)" (( "(") (binary_expression "pbVar3 + 0xc" (identifier "pbVar3") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}"))) (expression_statement "piVar4[3] = 0;" (assignment_expression "piVar4[3] = 0" (subscript_expression "piVar4[3]" (identifier "piVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar4[6] = 0;" (assignment_expression "piVar4[6] = 0" (subscript_expression "piVar4[6]" (identifier "piVar4") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar5 = FUN_00019b89();" (assignment_expression "iVar5 = FUN_00019b89()" (identifier "iVar5") (= "=") (call_expression "FUN_00019b89()" (identifier "FUN_00019b89") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar4[8] = iVar5;" (assignment_expression "piVar4[8] = iVar5" (subscript_expression "piVar4[8]" (identifier "piVar4") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "FUN_0001985b();" (call_expression "FUN_0001985b()" (identifier "FUN_0001985b") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "__uid = geteuid();" (assignment_expression "__uid = geteuid()" (identifier "__uid") (= "=") (call_expression "geteuid()" (identifier "geteuid") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "ppVar7 = getpwuid(__uid);" (assignment_expression "ppVar7 = getpwuid(__uid)" (identifier "ppVar7") (= "=") (call_expression "getpwuid(__uid)" (identifier "getpwuid") (argument_list "(__uid)" (( "(") (identifier "__uid") () ")")))) (; ";")) (if_statement "if (ppVar7 != (passwd *)0x0) {\n      iVar5 = FUN_00019ba3();\n      piVar4[0xb] = iVar5;\n      iVar5 = FUN_00019ba3();\n      piVar4[0xc] = iVar5;\n    }" (if "if") (parenthesized_expression "(ppVar7 != (passwd *)0x0)" (( "(") (binary_expression "ppVar7 != (passwd *)0x0" (identifier "ppVar7") (!= "!=") (cast_expression "(passwd *)0x0" (( "(") (type_descriptor "passwd *" (type_identifier "passwd") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar5 = FUN_00019ba3();\n      piVar4[0xb] = iVar5;\n      iVar5 = FUN_00019ba3();\n      piVar4[0xc] = iVar5;\n    }" ({ "{") (expression_statement "iVar5 = FUN_00019ba3();" (assignment_expression "iVar5 = FUN_00019ba3()" (identifier "iVar5") (= "=") (call_expression "FUN_00019ba3()" (identifier "FUN_00019ba3") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar4[0xb] = iVar5;" (assignment_expression "piVar4[0xb] = iVar5" (subscript_expression "piVar4[0xb]" (identifier "piVar4") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "iVar5 = FUN_00019ba3();" (assignment_expression "iVar5 = FUN_00019ba3()" (identifier "iVar5") (= "=") (call_expression "FUN_00019ba3()" (identifier "FUN_00019ba3") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar4[0xc] = iVar5;" (assignment_expression "piVar4[0xc] = iVar5" (subscript_expression "piVar4[0xc]" (identifier "piVar4") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (} "}"))) (expression_statement "iVar5 = FUN_00019828();" (assignment_expression "iVar5 = FUN_00019828()" (identifier "iVar5") (= "=") (call_expression "FUN_00019828()" (identifier "FUN_00019828") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar4[1] = iVar5;" (assignment_expression "piVar4[1] = iVar5" (subscript_expression "piVar4[1]" (identifier "piVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "FUN_000aaf0c();" (call_expression "FUN_000aaf0c()" (identifier "FUN_000aaf0c") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = FUN_000b181c();" (assignment_expression "iVar5 = FUN_000b181c()" (identifier "iVar5") (= "=") (call_expression "FUN_000b181c()" (identifier "FUN_000b181c") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n      *(undefined1 *)((int)piVar4 + 0x45) = 1;\n      fwrite_unlocked((void *)(unaff_EBP + 0x18192),1,4,\n                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP));\n      FUN_00019f78();\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(undefined1 *)((int)piVar4 + 0x45) = 1;\n      fwrite_unlocked((void *)(unaff_EBP + 0x18192),1,4,\n                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP));\n      FUN_00019f78();\n    }" ({ "{") (expression_statement "*(undefined1 *)((int)piVar4 + 0x45) = 1;" (assignment_expression "*(undefined1 *)((int)piVar4 + 0x45) = 1" (pointer_expression "*(undefined1 *)((int)piVar4 + 0x45)" (* "*") (cast_expression "(undefined1 *)((int)piVar4 + 0x45)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar4 + 0x45)" (( "(") (binary_expression "(int)piVar4 + 0x45" (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4")) (+ "+") (number_literal "0x45")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "fwrite_unlocked((void *)(unaff_EBP + 0x18192),1,4,\n                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP));" (call_expression "fwrite_unlocked((void *)(unaff_EBP + 0x18192),1,4,\n                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP))" (identifier "fwrite_unlocked") (argument_list "((void *)(unaff_EBP + 0x18192),1,4,\n                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP))" (( "(") (cast_expression "(void *)(unaff_EBP + 0x18192)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x18192)" (( "(") (binary_expression "unaff_EBP + 0x18192" (identifier "unaff_EBP") (+ "+") (number_literal "0x18192")) () ")"))) (, ",") (number_literal "1") (, ",") (number_literal "4") (, ",") (cast_expression "(FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP)" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(&DAT_00024a03 + unaff_EBP)" (* "*") (pointer_expression "*(undefined4 **)(&DAT_00024a03 + unaff_EBP)" (* "*") (cast_expression "(undefined4 **)(&DAT_00024a03 + unaff_EBP)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(&DAT_00024a03 + unaff_EBP)" (( "(") (binary_expression "&DAT_00024a03 + unaff_EBP" (pointer_expression "&DAT_00024a03" (& "&") (identifier "DAT_00024a03")) (+ "+") (identifier "unaff_EBP")) () ")")))))) () ")"))) (; ";")) (expression_statement "FUN_00019f78();" (call_expression "FUN_00019f78()" (identifier "FUN_00019f78") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar4[0x12] = unaff_EBP + -0x85d;" (assignment_expression "piVar4[0x12] = unaff_EBP + -0x85d" (subscript_expression "piVar4[0x12]" (identifier "piVar4") ([ "[") (number_literal "0x12") (] "]")) (= "=") (binary_expression "unaff_EBP + -0x85d" (identifier "unaff_EBP") (+ "+") (number_literal "-0x85d"))) (; ";")) (expression_statement "piVar4[0x33] = 0x10000000;" (assignment_expression "piVar4[0x33] = 0x10000000" (subscript_expression "piVar4[0x33]" (identifier "piVar4") ([ "[") (number_literal "0x33") (] "]")) (= "=") (number_literal "0x10000000")) (; ";")) (expression_statement "sigaction(0x1c,(sigaction *)(piVar4 + 0x12),(sigaction *)(piVar4 + 0x12));" (call_expression "sigaction(0x1c,(sigaction *)(piVar4 + 0x12),(sigaction *)(piVar4 + 0x12))" (identifier "sigaction") (argument_list "(0x1c,(sigaction *)(piVar4 + 0x12),(sigaction *)(piVar4 + 0x12))" (( "(") (number_literal "0x1c") (, ",") (cast_expression "(sigaction *)(piVar4 + 0x12)" (( "(") (type_descriptor "sigaction *" (type_identifier "sigaction") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar4 + 0x12)" (( "(") (binary_expression "piVar4 + 0x12" (identifier "piVar4") (+ "+") (number_literal "0x12")) () ")"))) (, ",") (cast_expression "(sigaction *)(piVar4 + 0x12)" (( "(") (type_descriptor "sigaction *" (type_identifier "sigaction") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar4 + 0x12)" (( "(") (binary_expression "piVar4 + 0x12" (identifier "piVar4") (+ "+") (number_literal "0x12")) () ")"))) () ")"))) (; ";")) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" (identifier "local_34") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar1 = *(int **)(&DAT_0002514b + unaff_EBP);" (assignment_expression "piVar1 = *(int **)(&DAT_0002514b + unaff_EBP)" (identifier "piVar1") (= "=") (pointer_expression "*(int **)(&DAT_0002514b + unaff_EBP)" (* "*") (cast_expression "(int **)(&DAT_0002514b + unaff_EBP)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(&DAT_0002514b + unaff_EBP)" (( "(") (binary_expression "&DAT_0002514b + unaff_EBP" (pointer_expression "&DAT_0002514b" (& "&") (identifier "DAT_0002514b")) (+ "+") (identifier "unaff_EBP")) () ")"))))) (; ";")) (expression_statement "iVar5 = piVar4[0x10];" (assignment_expression "iVar5 = piVar4[0x10]" (identifier "iVar5") (= "=") (subscript_expression "piVar4[0x10]" (identifier "piVar4") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (if_statement "if (piVar4[0xf] != iVar5) goto LAB_000acddf;" (if "if") (parenthesized_expression "(piVar4[0xf] != iVar5)" (( "(") (binary_expression "piVar4[0xf] != iVar5" (subscript_expression "piVar4[0xf]" (identifier "piVar4") ([ "[") (number_literal "0xf") (] "]")) (!= "!=") (identifier "iVar5")) () ")")) (goto_statement "goto LAB_000acddf;" (goto "goto") (statement_identifier "LAB_000acddf") (; ";"))) (labeled_statement "LAB_000ac7c7:\n    FUN_00019f78();" (statement_identifier "LAB_000ac7c7") (: ":") (expression_statement "FUN_00019f78();" (call_expression "FUN_00019f78()" (identifier "FUN_00019f78") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_000ac7e1:\n    do {\n      *(undefined1 *)(piVar4 + 0x11) = 1;\n      uVar14 = FUN_000b0821();\n      uVar13 = (uint)uVar14;\n      *(undefined1 *)(piVar4 + 0x11) = 0;\n      iVar8 = *piVar1;\n      if (iVar8 != 0) {\n        if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    \n                    \n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }\n        break;\n      }\n      if (uVar13 == 0xffffff00) {\n        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;\n        *(undefined1 *)((int)piVar4 + 0x45) = 0;\n        if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }\n        goto LAB_000ac7e1;\n      }\n      if (((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)) goto joined_r0x000acdd4;\n      iVar8 = iVar5 + 1;\n      local_3b[iVar5] = (char)uVar14;\n      local_3b[iVar5 + 1] = 0;\n      iVar5 = FUN_000b2670();\n      if (iVar5 == 1) {\n        uVar9 = 0x45;\n        goto LAB_000ac8f0;\n      }\n      iVar5 = iVar8;\n    } while (iVar8 < 6);" (statement_identifier "LAB_000ac7e1") (: ":") (do_statement "do {\n      *(undefined1 *)(piVar4 + 0x11) = 1;\n      uVar14 = FUN_000b0821();\n      uVar13 = (uint)uVar14;\n      *(undefined1 *)(piVar4 + 0x11) = 0;\n      iVar8 = *piVar1;\n      if (iVar8 != 0) {\n        if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    \n                    \n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }\n        break;\n      }\n      if (uVar13 == 0xffffff00) {\n        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;\n        *(undefined1 *)((int)piVar4 + 0x45) = 0;\n        if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }\n        goto LAB_000ac7e1;\n      }\n      if (((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)) goto joined_r0x000acdd4;\n      iVar8 = iVar5 + 1;\n      local_3b[iVar5] = (char)uVar14;\n      local_3b[iVar5 + 1] = 0;\n      iVar5 = FUN_000b2670();\n      if (iVar5 == 1) {\n        uVar9 = 0x45;\n        goto LAB_000ac8f0;\n      }\n      iVar5 = iVar8;\n    } while (iVar8 < 6);" (do "do") (compound_statement "{\n      *(undefined1 *)(piVar4 + 0x11) = 1;\n      uVar14 = FUN_000b0821();\n      uVar13 = (uint)uVar14;\n      *(undefined1 *)(piVar4 + 0x11) = 0;\n      iVar8 = *piVar1;\n      if (iVar8 != 0) {\n        if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    \n                    \n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }\n        break;\n      }\n      if (uVar13 == 0xffffff00) {\n        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;\n        *(undefined1 *)((int)piVar4 + 0x45) = 0;\n        if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }\n        goto LAB_000ac7e1;\n      }\n      if (((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)) goto joined_r0x000acdd4;\n      iVar8 = iVar5 + 1;\n      local_3b[iVar5] = (char)uVar14;\n      local_3b[iVar5 + 1] = 0;\n      iVar5 = FUN_000b2670();\n      if (iVar5 == 1) {\n        uVar9 = 0x45;\n        goto LAB_000ac8f0;\n      }\n      iVar5 = iVar8;\n    }" ({ "{") (expression_statement "*(undefined1 *)(piVar4 + 0x11) = 1;" (assignment_expression "*(undefined1 *)(piVar4 + 0x11) = 1" (pointer_expression "*(undefined1 *)(piVar4 + 0x11)" (* "*") (cast_expression "(undefined1 *)(piVar4 + 0x11)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar4 + 0x11)" (( "(") (binary_expression "piVar4 + 0x11" (identifier "piVar4") (+ "+") (number_literal "0x11")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar14 = FUN_000b0821();" (assignment_expression "uVar14 = FUN_000b0821()" (identifier "uVar14") (= "=") (call_expression "FUN_000b0821()" (identifier "FUN_000b0821") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar13 = (uint)uVar14;" (assignment_expression "uVar13 = (uint)uVar14" (identifier "uVar13") (= "=") (cast_expression "(uint)uVar14" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar14"))) (; ";")) (expression_statement "*(undefined1 *)(piVar4 + 0x11) = 0;" (assignment_expression "*(undefined1 *)(piVar4 + 0x11) = 0" (pointer_expression "*(undefined1 *)(piVar4 + 0x11)" (* "*") (cast_expression "(undefined1 *)(piVar4 + 0x11)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar4 + 0x11)" (( "(") (binary_expression "piVar4 + 0x11" (identifier "piVar4") (+ "+") (number_literal "0x11")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar8 = *piVar1;" (assignment_expression "iVar8 = *piVar1" (identifier "iVar8") (= "=") (pointer_expression "*piVar1" (* "*") (identifier "piVar1"))) (; ";")) (if_statement "if (iVar8 != 0) {\n        if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    \n                    \n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }\n        break;\n      }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    \n                    \n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }\n        break;\n      }" ({ "{") (if_statement "if ((iVar8 != 0xb) || (iVar5 == 0)) {\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    \n                    \n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }" (if "if") (parenthesized_expression "((iVar8 != 0xb) || (iVar5 == 0))" (( "(") (binary_expression "(iVar8 != 0xb) || (iVar5 == 0)" (parenthesized_expression "(iVar8 != 0xb)" (( "(") (binary_expression "iVar8 != 0xb" (identifier "iVar8") (!= "!=") (number_literal "0xb")) () ")")) (|| "||") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\njoined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;\n          if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    \n                    \n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }\n          goto LAB_000ac830;\n        }" ({ "{") (labeled_statement "joined_r0x000acdd4:\n          uVar9 = uVar13 + 0x45;" (statement_identifier "joined_r0x000acdd4") (: ":") (expression_statement "uVar9 = uVar13 + 0x45;" (assignment_expression "uVar9 = uVar13 + 0x45" (identifier "uVar9") (= "=") (binary_expression "uVar13 + 0x45" (identifier "uVar13") (+ "+") (number_literal "0x45"))) (; ";"))) (if_statement "if (uVar9 < 0xc5) {\nLAB_000ac8f0:\n                    \n                    \n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }" (if "if") (parenthesized_expression "(uVar9 < 0xc5)" (( "(") (binary_expression "uVar9 < 0xc5" (identifier "uVar9") (< "<") (number_literal "0xc5")) () ")")) (compound_statement "{\nLAB_000ac8f0:\n                    \n                    \n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();\n            return sVar11;\n          }" ({ "{") (labeled_statement "LAB_000ac8f0:\n                    \n                    \n            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();" (statement_identifier "LAB_000ac8f0") (: ":") (expression_statement "sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();" (assignment_expression "sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))()" (identifier "sVar11") (= "=") (call_expression "(*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))" (( "(") (pointer_expression "*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f)" (* "*") (cast_expression "(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f)" (( "(") (binary_expression "*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f" (binary_expression "*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP" (pointer_expression "*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x10cf3 + uVar9 * 4)" (( "(") (binary_expression "unaff_EBP + 0x10cf3 + uVar9 * 4" (binary_expression "unaff_EBP + 0x10cf3" (identifier "unaff_EBP") (+ "+") (number_literal "0x10cf3")) (+ "+") (binary_expression "uVar9 * 4" (identifier "uVar9") (* "*") (number_literal "4"))) () ")")))) (+ "+") (identifier "unaff_EBP")) (+ "+") (number_literal "0x2446f")) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";"))) (return_statement "return sVar11;" (return "return") (identifier "sVar11") (; ";")) (} "}"))) (goto_statement "goto LAB_000ac830;" (goto "goto") (statement_identifier "LAB_000ac830") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if (uVar13 == 0xffffff00) {\n        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;\n        *(undefined1 *)((int)piVar4 + 0x45) = 0;\n        if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }\n        goto LAB_000ac7e1;\n      }" (if "if") (parenthesized_expression "(uVar13 == 0xffffff00)" (( "(") (binary_expression "uVar13 == 0xffffff00" (identifier "uVar13") (== "==") (number_literal "0xffffff00")) () ")")) (compound_statement "{\n        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;\n        *(undefined1 *)((int)piVar4 + 0x45) = 0;\n        if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }\n        goto LAB_000ac7e1;\n      }" ({ "{") (if_statement "if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;" (if "if") (parenthesized_expression "(*(char *)((int)piVar4 + 0x45) == '\0')" (( "(") (binary_expression "*(char *)((int)piVar4 + 0x45) == '\0'" (pointer_expression "*(char *)((int)piVar4 + 0x45)" (* "*") (cast_expression "(char *)((int)piVar4 + 0x45)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar4 + 0x45)" (( "(") (binary_expression "(int)piVar4 + 0x45" (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4")) (+ "+") (number_literal "0x45")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000acba3;" (goto "goto") (statement_identifier "LAB_000acba3") (; ";"))) (expression_statement "*(undefined1 *)((int)piVar4 + 0x45) = 0;" (assignment_expression "*(undefined1 *)((int)piVar4 + 0x45) = 0" (pointer_expression "*(undefined1 *)((int)piVar4 + 0x45)" (* "*") (cast_expression "(undefined1 *)((int)piVar4 + 0x45)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar4 + 0x45)" (( "(") (binary_expression "(int)piVar4 + 0x45" (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4")) (+ "+") (number_literal "0x45")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if ((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }" (if "if") (parenthesized_expression "((piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8))" (( "(") (binary_expression "(piVar4[5] == 0) &&\n           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)" (parenthesized_expression "(piVar4[5] == 0)" (( "(") (binary_expression "piVar4[5] == 0" (subscript_expression "piVar4[5]" (identifier "piVar4") ([ "[") (number_literal "5") (] "]")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)" (( "(") (comma_expression "iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8" (assignment_expression "iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4]" (identifier "iVar8") (= "=") (binary_expression "((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4]" (parenthesized_expression "((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff)" (( "(") (binary_expression "(uint)((ulonglong)uVar14 >> 0x20) & 0x7fff" (call_expression "(uint)((ulonglong)uVar14 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar14 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar14 >> 0x20" (cast_expression "(ulonglong)uVar14" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar14")) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (number_literal "0x7fff")) () ")")) (+ "+") (unary_expression "~piVar4[4]" (~ "~") (subscript_expression "piVar4[4]" (identifier "piVar4") ([ "[") (number_literal "4") (] "]"))))) (, ",") (binary_expression "0 < iVar8" (number_literal "0") (< "<") (identifier "iVar8"))) () ")"))) () ")")) (compound_statement "{\n          uVar9 = iVar8 + piVar4[2];\n          piVar4[2] = uVar9;\n          uVar13 = piVar4[1];\n          if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }\n        }" ({ "{") (expression_statement "uVar9 = iVar8 + piVar4[2];" (assignment_expression "uVar9 = iVar8 + piVar4[2]" (identifier "uVar9") (= "=") (binary_expression "iVar8 + piVar4[2]" (identifier "iVar8") (+ "+") (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "piVar4[2] = uVar9;" (assignment_expression "piVar4[2] = uVar9" (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "uVar13 = piVar4[1];" (assignment_expression "uVar13 = piVar4[1]" (identifier "uVar13") (= "=") (subscript_expression "piVar4[1]" (identifier "piVar4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (uVar13 <= uVar9) {\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }" (if "if") (parenthesized_expression "(uVar13 <= uVar9)" (( "(") (binary_expression "uVar13 <= uVar9" (identifier "uVar13") (<= "<=") (identifier "uVar9")) () ")")) (compound_statement "{\n            iVar8 = piVar4[3];\n            do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);\n            piVar4[2] = uVar9;\n            piVar4[3] = iVar8;\n          }" ({ "{") (expression_statement "iVar8 = piVar4[3];" (assignment_expression "iVar8 = piVar4[3]" (identifier "iVar8") (= "=") (subscript_expression "piVar4[3]" (identifier "piVar4") ([ "[") (number_literal "3") (] "]"))) (; ";")) (do_statement "do {\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            } while (uVar13 <= uVar9);" (do "do") (compound_statement "{\n              uVar9 = uVar9 - uVar13;\n              iVar8 = iVar8 + 1;\n            }" ({ "{") (expression_statement "uVar9 = uVar9 - uVar13;" (assignment_expression "uVar9 = uVar9 - uVar13" (identifier "uVar9") (= "=") (binary_expression "uVar9 - uVar13" (identifier "uVar9") (- "-") (identifier "uVar13"))) (; ";")) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar13 <= uVar9)" (( "(") (binary_expression "uVar13 <= uVar9" (identifier "uVar13") (<= "<=") (identifier "uVar9")) () ")")) (; ";")) (expression_statement "piVar4[2] = uVar9;" (assignment_expression "piVar4[2] = uVar9" (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "piVar4[3] = iVar8;" (assignment_expression "piVar4[3] = iVar8" (subscript_expression "piVar4[3]" (identifier "piVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "iVar8")) (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_000ac7e1;" (goto "goto") (statement_identifier "LAB_000ac7e1") (; ";")) (} "}"))) (if_statement "if (((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)) goto joined_r0x000acdd4;" (if "if") (parenthesized_expression "(((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0))" (( "(") (binary_expression "((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)" (parenthesized_expression "((&LAB_00025177)[unaff_EBP] != '\x02')" (( "(") (binary_expression "(&LAB_00025177)[unaff_EBP] != '\x02'" (subscript_expression "(&LAB_00025177)[unaff_EBP]" (parenthesized_expression "(&LAB_00025177)" (( "(") (pointer_expression "&LAB_00025177" (& "&") (identifier "LAB_00025177")) () ")")) ([ "[") (identifier "unaff_EBP") (] "]")) (!= "!=") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (|| "||") (parenthesized_expression "((int)uVar13 < 0)" (( "(") (binary_expression "(int)uVar13 < 0" (cast_expression "(int)uVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar13")) (< "<") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto joined_r0x000acdd4;" (goto "goto") (statement_identifier "joined_r0x000acdd4") (; ";"))) (expression_statement "iVar8 = iVar5 + 1;" (assignment_expression "iVar8 = iVar5 + 1" (identifier "iVar8") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_3b[iVar5] = (char)uVar14;" (assignment_expression "local_3b[iVar5] = (char)uVar14" (subscript_expression "local_3b[iVar5]" (identifier "local_3b") ([ "[") (identifier "iVar5") (] "]")) (= "=") (cast_expression "(char)uVar14" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar14"))) (; ";")) (expression_statement "local_3b[iVar5 + 1] = 0;" (assignment_expression "local_3b[iVar5 + 1] = 0" (subscript_expression "local_3b[iVar5 + 1]" (identifier "local_3b") ([ "[") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1")) (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar5 = FUN_000b2670();" (assignment_expression "iVar5 = FUN_000b2670()" (identifier "iVar5") (= "=") (call_expression "FUN_000b2670()" (identifier "FUN_000b2670") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar5 == 1) {\n        uVar9 = 0x45;\n        goto LAB_000ac8f0;\n      }" (if "if") (parenthesized_expression "(iVar5 == 1)" (( "(") (binary_expression "iVar5 == 1" (identifier "iVar5") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        uVar9 = 0x45;\n        goto LAB_000ac8f0;\n      }" ({ "{") (expression_statement "uVar9 = 0x45;" (assignment_expression "uVar9 = 0x45" (identifier "uVar9") (= "=") (number_literal "0x45")) (; ";")) (goto_statement "goto LAB_000ac8f0;" (goto "goto") (statement_identifier "LAB_000ac8f0") (; ";")) (} "}"))) (expression_statement "iVar5 = iVar8;" (assignment_expression "iVar5 = iVar8" (identifier "iVar5") (= "=") (identifier "iVar8")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar8 < 6)" (( "(") (binary_expression "iVar8 < 6" (identifier "iVar8") (< "<") (number_literal "6")) () ")")) (; ";"))) (expression_statement "FUN_000b0b18();" (call_expression "FUN_000b0b18()" (identifier "FUN_000b0b18") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar13 = 0x3f;" (assignment_expression "uVar13 = 0x3f" (identifier "uVar13") (= "=") (number_literal "0x3f")) (; ";")) (labeled_statement "LAB_000ac830:\n    if ((local_a3 != 0) && (local_a3 == uVar13)) {\n      piVar4[6] = 0;\n      goto LAB_000ac96b;\n    }" (statement_identifier "LAB_000ac830") (: ":") (if_statement "if ((local_a3 != 0) && (local_a3 == uVar13)) {\n      piVar4[6] = 0;\n      goto LAB_000ac96b;\n    }" (if "if") (parenthesized_expression "((local_a3 != 0) && (local_a3 == uVar13))" (( "(") (binary_expression "(local_a3 != 0) && (local_a3 == uVar13)" (parenthesized_expression "(local_a3 != 0)" (( "(") (binary_expression "local_a3 != 0" (identifier "local_a3") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_a3 == uVar13)" (( "(") (binary_expression "local_a3 == uVar13" (identifier "local_a3") (== "==") (identifier "uVar13")) () ")"))) () ")")) (compound_statement "{\n      piVar4[6] = 0;\n      goto LAB_000ac96b;\n    }" ({ "{") (expression_statement "piVar4[6] = 0;" (assignment_expression "piVar4[6] = 0" (subscript_expression "piVar4[6]" (identifier "piVar4") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000ac96b;" (goto "goto") (statement_identifier "LAB_000ac96b") (; ";")) (} "}")))) (labeled_statement "LAB_000acba3:\n    if ((local_9f == 0) || (local_9f != uVar13)) {\n      if ((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)) {\n        piVar4[6] = iVar5 + 1;\n        iVar2 = piVar4[5];\n        iVar8 = iVar2 * 4;\n        puVar12 = (uint *)(iVar8 + piVar4[8]);\n        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);\n        if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }\n      }\n    }\n    else {\n      if (piVar4[6] == 0) goto code_r0x000acbc3;\n      FUN_000abd91();\n    }" (statement_identifier "LAB_000acba3") (: ":") (if_statement "if ((local_9f == 0) || (local_9f != uVar13)) {\n      if ((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)) {\n        piVar4[6] = iVar5 + 1;\n        iVar2 = piVar4[5];\n        iVar8 = iVar2 * 4;\n        puVar12 = (uint *)(iVar8 + piVar4[8]);\n        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);\n        if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }\n      }\n    }\n    else {\n      if (piVar4[6] == 0) goto code_r0x000acbc3;\n      FUN_000abd91();\n    }" (if "if") (parenthesized_expression "((local_9f == 0) || (local_9f != uVar13))" (( "(") (binary_expression "(local_9f == 0) || (local_9f != uVar13)" (parenthesized_expression "(local_9f == 0)" (( "(") (binary_expression "local_9f == 0" (identifier "local_9f") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_9f != uVar13)" (( "(") (binary_expression "local_9f != uVar13" (identifier "local_9f") (!= "!=") (identifier "uVar13")) () ")"))) () ")")) (compound_statement "{\n      if ((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)) {\n        piVar4[6] = iVar5 + 1;\n        iVar2 = piVar4[5];\n        iVar8 = iVar2 * 4;\n        puVar12 = (uint *)(iVar8 + piVar4[8]);\n        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);\n        if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }\n      }\n    }" ({ "{") (if_statement "if ((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)) {\n        piVar4[6] = iVar5 + 1;\n        iVar2 = piVar4[5];\n        iVar8 = iVar2 * 4;\n        puVar12 = (uint *)(iVar8 + piVar4[8]);\n        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);\n        if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }\n      }" (if "if") (parenthesized_expression "((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2))" (( "(") (binary_expression "(uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)" (parenthesized_expression "(uVar13 - 0x20 < 0x3fffffe0)" (( "(") (binary_expression "uVar13 - 0x20 < 0x3fffffe0" (binary_expression "uVar13 - 0x20" (identifier "uVar13") (- "-") (number_literal "0x20")) (< "<") (number_literal "0x3fffffe0")) () ")")) (&& "&&") (parenthesized_expression "(iVar5 = piVar4[6], iVar5 < local_f4 + -2)" (( "(") (comma_expression "iVar5 = piVar4[6], iVar5 < local_f4 + -2" (assignment_expression "iVar5 = piVar4[6]" (identifier "iVar5") (= "=") (subscript_expression "piVar4[6]" (identifier "piVar4") ([ "[") (number_literal "6") (] "]"))) (, ",") (binary_expression "iVar5 < local_f4 + -2" (identifier "iVar5") (< "<") (binary_expression "local_f4 + -2" (identifier "local_f4") (+ "+") (number_literal "-2")))) () ")"))) () ")")) (compound_statement "{\n        piVar4[6] = iVar5 + 1;\n        iVar2 = piVar4[5];\n        iVar8 = iVar2 * 4;\n        puVar12 = (uint *)(iVar8 + piVar4[8]);\n        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);\n        if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }\n      }" ({ "{") (expression_statement "piVar4[6] = iVar5 + 1;" (assignment_expression "piVar4[6] = iVar5 + 1" (subscript_expression "piVar4[6]" (identifier "piVar4") ([ "[") (number_literal "6") (] "]")) (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar2 = piVar4[5];" (assignment_expression "iVar2 = piVar4[5]" (identifier "iVar2") (= "=") (subscript_expression "piVar4[5]" (identifier "piVar4") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "iVar8 = iVar2 * 4;" (assignment_expression "iVar8 = iVar2 * 4" (identifier "iVar8") (= "=") (binary_expression "iVar2 * 4" (identifier "iVar2") (* "*") (number_literal "4"))) (; ";")) (expression_statement "puVar12 = (uint *)(iVar8 + piVar4[8]);" (assignment_expression "puVar12 = (uint *)(iVar8 + piVar4[8])" (identifier "puVar12") (= "=") (cast_expression "(uint *)(iVar8 + piVar4[8])" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + piVar4[8])" (( "(") (binary_expression "iVar8 + piVar4[8]" (identifier "iVar8") (+ "+") (subscript_expression "piVar4[8]" (identifier "piVar4") ([ "[") (number_literal "8") (] "]"))) () ")")))) (; ";")) (expression_statement "__dest = (undefined4 *)(piVar4[8] + 4 + iVar8);" (assignment_expression "__dest = (undefined4 *)(piVar4[8] + 4 + iVar8)" (identifier "__dest") (= "=") (cast_expression "(undefined4 *)(piVar4[8] + 4 + iVar8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar4[8] + 4 + iVar8)" (( "(") (binary_expression "piVar4[8] + 4 + iVar8" (binary_expression "piVar4[8] + 4" (subscript_expression "piVar4[8]" (identifier "piVar4") ([ "[") (number_literal "8") (] "]")) (+ "+") (number_literal "4")) (+ "+") (identifier "iVar8")) () ")")))) (; ";")) (if_statement "if (iVar2 == iVar5) {\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }\n        else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }" (if "if") (parenthesized_expression "(iVar2 == iVar5)" (( "(") (binary_expression "iVar2 == iVar5" (identifier "iVar2") (== "==") (identifier "iVar5")) () ")")) (compound_statement "{\n          *puVar12 = uVar13;\n          *__dest = 0;\n          FUN_000aba58();\n        }" ({ "{") (expression_statement "*puVar12 = uVar13;" (assignment_expression "*puVar12 = uVar13" (pointer_expression "*puVar12" (* "*") (identifier "puVar12")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "*__dest = 0;" (assignment_expression "*__dest = 0" (pointer_expression "*__dest" (* "*") (identifier "__dest")) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_000aba58();" (call_expression "FUN_000aba58()" (identifier "FUN_000aba58") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }" (else "else") (compound_statement "{\n          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);\n          *(uint *)(piVar4[8] + iVar8) = uVar13;\n          if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }\n          FUN_000ab35c();\n        }" ({ "{") (expression_statement "memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);" (call_expression "memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4)" (identifier "memmove") (argument_list "(__dest,puVar12,((iVar5 + 1) - iVar2) * 4)" (( "(") (identifier "__dest") (, ",") (identifier "puVar12") (, ",") (binary_expression "((iVar5 + 1) - iVar2) * 4" (parenthesized_expression "((iVar5 + 1) - iVar2)" (( "(") (binary_expression "(iVar5 + 1) - iVar2" (parenthesized_expression "(iVar5 + 1)" (( "(") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1")) () ")")) (- "-") (identifier "iVar2")) () ")")) (* "*") (number_literal "4")) () ")"))) (; ";")) (expression_statement "*(uint *)(piVar4[8] + iVar8) = uVar13;" (assignment_expression "*(uint *)(piVar4[8] + iVar8) = uVar13" (pointer_expression "*(uint *)(piVar4[8] + iVar8)" (* "*") (cast_expression "(uint *)(piVar4[8] + iVar8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar4[8] + iVar8)" (( "(") (binary_expression "piVar4[8] + iVar8" (subscript_expression "piVar4[8]" (identifier "piVar4") ([ "[") (number_literal "8") (] "]")) (+ "+") (identifier "iVar8")) () ")")))) (= "=") (identifier "uVar13")) (; ";")) (if_statement "if ((uint)piVar4[5] < (uint)piVar4[6]) {\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }" (if "if") (parenthesized_expression "((uint)piVar4[5] < (uint)piVar4[6])" (( "(") (binary_expression "(uint)piVar4[5] < (uint)piVar4[6]" (cast_expression "(uint)piVar4[5]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar4[5]" (identifier "piVar4") ([ "[") (number_literal "5") (] "]"))) (< "<") (cast_expression "(uint)piVar4[6]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar4[6]" (identifier "piVar4") ([ "[") (number_literal "6") (] "]")))) () ")")) (compound_statement "{\n            do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);\n          }" ({ "{") (do_statement "do {\n              FUN_000aba58();\n            } while ((uint)piVar4[5] < (uint)piVar4[6]);" (do "do") (compound_statement "{\n              FUN_000aba58();\n            }" ({ "{") (expression_statement "FUN_000aba58();" (call_expression "FUN_000aba58()" (identifier "FUN_000aba58") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((uint)piVar4[5] < (uint)piVar4[6])" (( "(") (binary_expression "(uint)piVar4[5] < (uint)piVar4[6]" (cast_expression "(uint)piVar4[5]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar4[5]" (identifier "piVar4") ([ "[") (number_literal "5") (] "]"))) (< "<") (cast_expression "(uint)piVar4[6]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar4[6]" (identifier "piVar4") ([ "[") (number_literal "6") (] "]")))) () ")")) (; ";")) (} "}"))) (expression_statement "FUN_000ab35c();" (call_expression "FUN_000ab35c()" (identifier "FUN_000ab35c") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (} "}"))) (} "}")) (else_clause "else {\n      if (piVar4[6] == 0) goto code_r0x000acbc3;\n      FUN_000abd91();\n    }" (else "else") (compound_statement "{\n      if (piVar4[6] == 0) goto code_r0x000acbc3;\n      FUN_000abd91();\n    }" ({ "{") (if_statement "if (piVar4[6] == 0) goto code_r0x000acbc3;" (if "if") (parenthesized_expression "(piVar4[6] == 0)" (( "(") (binary_expression "piVar4[6] == 0" (subscript_expression "piVar4[6]" (identifier "piVar4") ([ "[") (number_literal "6") (] "]")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x000acbc3;" (goto "goto") (statement_identifier "code_r0x000acbc3") (; ";"))) (expression_statement "FUN_000abd91();" (call_expression "FUN_000abd91()" (identifier "FUN_000abd91") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))))) (if_statement "if (uVar13 != 9) goto LAB_000ac923;" (if "if") (parenthesized_expression "(uVar13 != 9)" (( "(") (binary_expression "uVar13 != 9" (identifier "uVar13") (!= "!=") (number_literal "9")) () ")")) (goto_statement "goto LAB_000ac923;" (goto "goto") (statement_identifier "LAB_000ac923") (; ";"))) (expression_statement "iVar5 = piVar4[0x10];" (assignment_expression "iVar5 = piVar4[0x10]" (identifier "iVar5") (= "=") (subscript_expression "piVar4[0x10]" (identifier "piVar4") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (if_statement "if (piVar4[0xf] != iVar5) goto LAB_000acddf;" (if "if") (parenthesized_expression "(piVar4[0xf] != iVar5)" (( "(") (binary_expression "piVar4[0xf] != iVar5" (subscript_expression "piVar4[0xf]" (identifier "piVar4") ([ "[") (number_literal "0xf") (] "]")) (!= "!=") (identifier "iVar5")) () ")")) (goto_statement "goto LAB_000acddf;" (goto "goto") (statement_identifier "LAB_000acddf") (; ";"))) (goto_statement "goto LAB_000ac7c7;" (goto "goto") (statement_identifier "LAB_000ac7c7") (; ";")) (} "}"))) (expression_statement "FUN_000aaf0c();" (call_expression "FUN_000aaf0c()" (identifier "FUN_000aaf0c") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00019f78();" (call_expression "FUN_00019f78()" (identifier "FUN_00019f78") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar6 = fgets_unlocked(local_f0,unaff_retaddr,\n                          (FILE *)**(undefined4 **)(&DAT_000249fb + unaff_EBP));" (assignment_expression "pcVar6 = fgets_unlocked(local_f0,unaff_retaddr,\n                          (FILE *)**(undefined4 **)(&DAT_000249fb + unaff_EBP))" (identifier "pcVar6") (= "=") (call_expression "fgets_unlocked(local_f0,unaff_retaddr,\n                          (FILE *)**(undefined4 **)(&DAT_000249fb + unaff_EBP))" (identifier "fgets_unlocked") (argument_list "(local_f0,unaff_retaddr,\n                          (FILE *)**(undefined4 **)(&DAT_000249fb + unaff_EBP))" (( "(") (identifier "local_f0") (, ",") (identifier "unaff_retaddr") (, ",") (cast_expression "(FILE *)**(undefined4 **)(&DAT_000249fb + unaff_EBP)" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(&DAT_000249fb + unaff_EBP)" (* "*") (pointer_expression "*(undefined4 **)(&DAT_000249fb + unaff_EBP)" (* "*") (cast_expression "(undefined4 **)(&DAT_000249fb + unaff_EBP)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(&DAT_000249fb + unaff_EBP)" (( "(") (binary_expression "&DAT_000249fb + unaff_EBP" (pointer_expression "&DAT_000249fb" (& "&") (identifier "DAT_000249fb")) (+ "+") (identifier "unaff_EBP")) () ")")))))) () ")")))) (; ";")) (expression_statement "sVar11 = 0xffffffff;" (assignment_expression "sVar11 = 0xffffffff" (identifier "sVar11") (= "=") (number_literal "0xffffffff")) (; ";")) (if_statement "if (pcVar6 != (char *)0x0) {\n    sVar11 = strlen(local_f0);\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    sVar11 = strlen(local_f0);\n  }" ({ "{") (expression_statement "sVar11 = strlen(local_f0);" (assignment_expression "sVar11 = strlen(local_f0)" (identifier "sVar11") (= "=") (call_expression "strlen(local_f0)" (identifier "strlen") (argument_list "(local_f0)" (( "(") (identifier "local_f0") () ")")))) (; ";")) (} "}"))) (labeled_statement "LAB_000ac9e9:\n  FUN_000aaa67();" (statement_identifier "LAB_000ac9e9") (: ":") (expression_statement "FUN_000aaa67();" (call_expression "FUN_000aaa67()" (identifier "FUN_000aaa67") (argument_list "()" (( "(") () ")"))) (; ";"))) (if_statement "if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00017e10();\n  }" (if "if") (parenthesized_expression "(local_24 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_24 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_24") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n    FUN_00017e10();\n  }" ({ "{") (expression_statement "FUN_00017e10();" (call_expression "FUN_00017e10()" (identifier "FUN_00017e10") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return sVar11;" (return "return") (identifier "sVar11") (; ";")) (labeled_statement "code_r0x000acbc3:\n  *piVar1 = 0;" (statement_identifier "code_r0x000acbc3") (: ":") (expression_statement "*piVar1 = 0;" (assignment_expression "*piVar1 = 0" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (number_literal "0")) (; ";"))) (expression_statement "piVar4[6] = -1;" (assignment_expression "piVar4[6] = -1" (subscript_expression "piVar4[6]" (identifier "piVar4") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "-1")) (; ";")) (labeled_statement "LAB_000ac96b:\n  if (*(char *)((int)piVar4 + 0x45) != '\0') {\n    usleep(20000);\n  }" (statement_identifier "LAB_000ac96b") (: ":") (if_statement "if (*(char *)((int)piVar4 + 0x45) != '\0') {\n    usleep(20000);\n  }" (if "if") (parenthesized_expression "(*(char *)((int)piVar4 + 0x45) != '\0')" (( "(") (binary_expression "*(char *)((int)piVar4 + 0x45) != '\0'" (pointer_expression "*(char *)((int)piVar4 + 0x45)" (* "*") (cast_expression "(char *)((int)piVar4 + 0x45)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar4 + 0x45)" (( "(") (binary_expression "(int)piVar4 + 0x45" (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4")) (+ "+") (number_literal "0x45")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    usleep(20000);\n  }" ({ "{") (expression_statement "usleep(20000);" (call_expression "usleep(20000)" (identifier "usleep") (argument_list "(20000)" (( "(") (number_literal "20000") () ")"))) (; ";")) (} "}")))) (expression_statement "*local_f0 = '\0';" (assignment_expression "*local_f0 = '\0'" (pointer_expression "*local_f0" (* "*") (identifier "local_f0")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (if_statement "if (0 < piVar4[6]) {\n    iVar5 = FUN_000abe42();\n    piVar4[6] = iVar5;\n  }" (if "if") (parenthesized_expression "(0 < piVar4[6])" (( "(") (binary_expression "0 < piVar4[6]" (number_literal "0") (< "<") (subscript_expression "piVar4[6]" (identifier "piVar4") ([ "[") (number_literal "6") (] "]"))) () ")")) (compound_statement "{\n    iVar5 = FUN_000abe42();\n    piVar4[6] = iVar5;\n  }" ({ "{") (expression_statement "iVar5 = FUN_000abe42();" (assignment_expression "iVar5 = FUN_000abe42()" (identifier "iVar5") (= "=") (call_expression "FUN_000abe42()" (identifier "FUN_000abe42") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar4[6] = iVar5;" (assignment_expression "piVar4[6] = iVar5" (subscript_expression "piVar4[6]" (identifier "piVar4") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (} "}"))) (expression_statement "free((void *)piVar4[8]);" (call_expression "free((void *)piVar4[8])" (identifier "free") (argument_list "((void *)piVar4[8])" (( "(") (cast_expression "(void *)piVar4[8]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar4[8]" (identifier "piVar4") ([ "[") (number_literal "8") (] "]"))) () ")"))) (; ";")) (if_statement "if (0 < piVar4[6]) {\n    puVar12 = (uint *)*piVar4;\n    uVar13 = *puVar12 & 1;\n    if (((uVar13 != 0) && (*local_f0 != '\0')) &&\n       ((local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)))) {\n      free((void *)puVar12[puVar12[5] + 6]);\n      iVar5 = *piVar4;\n      iVar8 = *(int *)(iVar5 + 0x14);\n      *(undefined4 *)(iVar5 + 0x18 + iVar8 * 4) = 0;\n      if ((int)local_ec < iVar8) {\n        uVar13 = local_ec + 1;\n      }\n      else {\n        free(*(void **)(iVar5 + 0x18));\n        iVar5 = *piVar4;\n        iVar8 = *(int *)(iVar5 + 0x14);\n        local_ec = 0;\n        if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }\n      }\n      uVar10 = FUN_00019ba3();\n      *(undefined4 *)(iVar5 + 0x18 + local_ec * 4) = uVar10;\n      iVar5 = *piVar4;\n      *(uint *)(iVar5 + 0x10) = uVar13;\n      *(uint *)(iVar5 + 0xc) = uVar13;\n    }\n  }" (if "if") (parenthesized_expression "(0 < piVar4[6])" (( "(") (binary_expression "0 < piVar4[6]" (number_literal "0") (< "<") (subscript_expression "piVar4[6]" (identifier "piVar4") ([ "[") (number_literal "6") (] "]"))) () ")")) (compound_statement "{\n    puVar12 = (uint *)*piVar4;\n    uVar13 = *puVar12 & 1;\n    if (((uVar13 != 0) && (*local_f0 != '\0')) &&\n       ((local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)))) {\n      free((void *)puVar12[puVar12[5] + 6]);\n      iVar5 = *piVar4;\n      iVar8 = *(int *)(iVar5 + 0x14);\n      *(undefined4 *)(iVar5 + 0x18 + iVar8 * 4) = 0;\n      if ((int)local_ec < iVar8) {\n        uVar13 = local_ec + 1;\n      }\n      else {\n        free(*(void **)(iVar5 + 0x18));\n        iVar5 = *piVar4;\n        iVar8 = *(int *)(iVar5 + 0x14);\n        local_ec = 0;\n        if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }\n      }\n      uVar10 = FUN_00019ba3();\n      *(undefined4 *)(iVar5 + 0x18 + local_ec * 4) = uVar10;\n      iVar5 = *piVar4;\n      *(uint *)(iVar5 + 0x10) = uVar13;\n      *(uint *)(iVar5 + 0xc) = uVar13;\n    }\n  }" ({ "{") (expression_statement "puVar12 = (uint *)*piVar4;" (assignment_expression "puVar12 = (uint *)*piVar4" (identifier "puVar12") (= "=") (cast_expression "(uint *)*piVar4" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar4" (* "*") (identifier "piVar4")))) (; ";")) (expression_statement "uVar13 = *puVar12 & 1;" (assignment_expression "uVar13 = *puVar12 & 1" (identifier "uVar13") (= "=") (binary_expression "*puVar12 & 1" (pointer_expression "*puVar12" (* "*") (identifier "puVar12")) (& "&") (number_literal "1"))) (; ";")) (if_statement "if (((uVar13 != 0) && (*local_f0 != '\0')) &&\n       ((local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)))) {\n      free((void *)puVar12[puVar12[5] + 6]);\n      iVar5 = *piVar4;\n      iVar8 = *(int *)(iVar5 + 0x14);\n      *(undefined4 *)(iVar5 + 0x18 + iVar8 * 4) = 0;\n      if ((int)local_ec < iVar8) {\n        uVar13 = local_ec + 1;\n      }\n      else {\n        free(*(void **)(iVar5 + 0x18));\n        iVar5 = *piVar4;\n        iVar8 = *(int *)(iVar5 + 0x14);\n        local_ec = 0;\n        if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }\n      }\n      uVar10 = FUN_00019ba3();\n      *(undefined4 *)(iVar5 + 0x18 + local_ec * 4) = uVar10;\n      iVar5 = *piVar4;\n      *(uint *)(iVar5 + 0x10) = uVar13;\n      *(uint *)(iVar5 + 0xc) = uVar13;\n    }" (if "if") (parenthesized_expression "(((uVar13 != 0) && (*local_f0 != '\0')) &&\n       ((local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0))))" (( "(") (binary_expression "((uVar13 != 0) && (*local_f0 != '\0')) &&\n       ((local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)))" (parenthesized_expression "((uVar13 != 0) && (*local_f0 != '\0'))" (( "(") (binary_expression "(uVar13 != 0) && (*local_f0 != '\0')" (parenthesized_expression "(uVar13 != 0)" (( "(") (binary_expression "uVar13 != 0" (identifier "uVar13") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*local_f0 != '\0')" (( "(") (binary_expression "*local_f0 != '\0'" (pointer_expression "*local_f0" (* "*") (identifier "local_f0")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)))" (( "(") (parenthesized_expression "(local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0))" (( "(") (comma_expression "local_ec = puVar12[3], local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)" (assignment_expression "local_ec = puVar12[3]" (identifier "local_ec") (= "=") (subscript_expression "puVar12[3]" (identifier "puVar12") ([ "[") (number_literal "3") (] "]"))) (, ",") (binary_expression "local_ec == 0 ||\n        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)" (binary_expression "local_ec == 0" (identifier "local_ec") (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "(iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)" (( "(") (comma_expression "iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0" (assignment_expression "iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0)" (identifier "iVar5") (= "=") (call_expression "strcmp((char *)puVar12[local_ec + 5],local_f0)" (identifier "strcmp") (argument_list "((char *)puVar12[local_ec + 5],local_f0)" (( "(") (cast_expression "(char *)puVar12[local_ec + 5]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar12[local_ec + 5]" (identifier "puVar12") ([ "[") (binary_expression "local_ec + 5" (identifier "local_ec") (+ "+") (number_literal "5")) (] "]"))) (, ",") (identifier "local_f0") () ")")))) (, ",") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0"))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n      free((void *)puVar12[puVar12[5] + 6]);\n      iVar5 = *piVar4;\n      iVar8 = *(int *)(iVar5 + 0x14);\n      *(undefined4 *)(iVar5 + 0x18 + iVar8 * 4) = 0;\n      if ((int)local_ec < iVar8) {\n        uVar13 = local_ec + 1;\n      }\n      else {\n        free(*(void **)(iVar5 + 0x18));\n        iVar5 = *piVar4;\n        iVar8 = *(int *)(iVar5 + 0x14);\n        local_ec = 0;\n        if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }\n      }\n      uVar10 = FUN_00019ba3();\n      *(undefined4 *)(iVar5 + 0x18 + local_ec * 4) = uVar10;\n      iVar5 = *piVar4;\n      *(uint *)(iVar5 + 0x10) = uVar13;\n      *(uint *)(iVar5 + 0xc) = uVar13;\n    }" ({ "{") (expression_statement "free((void *)puVar12[puVar12[5] + 6]);" (call_expression "free((void *)puVar12[puVar12[5] + 6])" (identifier "free") (argument_list "((void *)puVar12[puVar12[5] + 6])" (( "(") (cast_expression "(void *)puVar12[puVar12[5] + 6]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar12[puVar12[5] + 6]" (identifier "puVar12") ([ "[") (binary_expression "puVar12[5] + 6" (subscript_expression "puVar12[5]" (identifier "puVar12") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "6")) (] "]"))) () ")"))) (; ";")) (expression_statement "iVar5 = *piVar4;" (assignment_expression "iVar5 = *piVar4" (identifier "iVar5") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (expression_statement "iVar8 = *(int *)(iVar5 + 0x14);" (assignment_expression "iVar8 = *(int *)(iVar5 + 0x14)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar5 + 0x14)" (* "*") (cast_expression "(int *)(iVar5 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x18 + iVar8 * 4) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x18 + iVar8 * 4) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x18 + iVar8 * 4)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x18 + iVar8 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x18 + iVar8 * 4)" (( "(") (binary_expression "iVar5 + 0x18 + iVar8 * 4" (binary_expression "iVar5 + 0x18" (identifier "iVar5") (+ "+") (number_literal "0x18")) (+ "+") (binary_expression "iVar8 * 4" (identifier "iVar8") (* "*") (number_literal "4"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if ((int)local_ec < iVar8) {\n        uVar13 = local_ec + 1;\n      }\n      else {\n        free(*(void **)(iVar5 + 0x18));\n        iVar5 = *piVar4;\n        iVar8 = *(int *)(iVar5 + 0x14);\n        local_ec = 0;\n        if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }\n      }" (if "if") (parenthesized_expression "((int)local_ec < iVar8)" (( "(") (binary_expression "(int)local_ec < iVar8" (cast_expression "(int)local_ec" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_ec")) (< "<") (identifier "iVar8")) () ")")) (compound_statement "{\n        uVar13 = local_ec + 1;\n      }" ({ "{") (expression_statement "uVar13 = local_ec + 1;" (assignment_expression "uVar13 = local_ec + 1" (identifier "uVar13") (= "=") (binary_expression "local_ec + 1" (identifier "local_ec") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n        free(*(void **)(iVar5 + 0x18));\n        iVar5 = *piVar4;\n        iVar8 = *(int *)(iVar5 + 0x14);\n        local_ec = 0;\n        if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }\n      }" (else "else") (compound_statement "{\n        free(*(void **)(iVar5 + 0x18));\n        iVar5 = *piVar4;\n        iVar8 = *(int *)(iVar5 + 0x14);\n        local_ec = 0;\n        if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }\n      }" ({ "{") (expression_statement "free(*(void **)(iVar5 + 0x18));" (call_expression "free(*(void **)(iVar5 + 0x18))" (identifier "free") (argument_list "(*(void **)(iVar5 + 0x18))" (( "(") (pointer_expression "*(void **)(iVar5 + 0x18)" (* "*") (cast_expression "(void **)(iVar5 + 0x18)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0x18)" (( "(") (binary_expression "iVar5 + 0x18" (identifier "iVar5") (+ "+") (number_literal "0x18")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar5 = *piVar4;" (assignment_expression "iVar5 = *piVar4" (identifier "iVar5") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (expression_statement "iVar8 = *(int *)(iVar5 + 0x14);" (assignment_expression "iVar8 = *(int *)(iVar5 + 0x14)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar5 + 0x14)" (* "*") (cast_expression "(int *)(iVar5 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" (identifier "local_ec") (= "=") (number_literal "0")) (; ";")) (if_statement "if (1 < iVar8) {\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }" (if "if") (parenthesized_expression "(1 < iVar8)" (( "(") (binary_expression "1 < iVar8" (number_literal "1") (< "<") (identifier "iVar8")) () ")")) (compound_statement "{\n          local_ec = 0;\n          do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);\n          uVar13 = uVar13 + 2;\n        }" ({ "{") (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" (identifier "local_ec") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          } while (local_ec != iVar8 - 1U);" (do "do") (compound_statement "{\n            uVar13 = local_ec;\n            local_ec = uVar13 + 1;\n            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);\n          }" ({ "{") (expression_statement "uVar13 = local_ec;" (assignment_expression "uVar13 = local_ec" (identifier "uVar13") (= "=") (identifier "local_ec")) (; ";")) (expression_statement "local_ec = uVar13 + 1;" (assignment_expression "local_ec = uVar13 + 1" (identifier "local_ec") (= "=") (binary_expression "uVar13 + 1" (identifier "uVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);" (assignment_expression "*(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =\n                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4)" (pointer_expression "*(undefined4 *)(iVar5 + 0x14 + local_ec * 4)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x14 + local_ec * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14 + local_ec * 4)" (( "(") (binary_expression "iVar5 + 0x14 + local_ec * 4" (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) (+ "+") (binary_expression "local_ec * 4" (identifier "local_ec") (* "*") (number_literal "4"))) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar5 + 0x18 + local_ec * 4)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x18 + local_ec * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x18 + local_ec * 4)" (( "(") (binary_expression "iVar5 + 0x18 + local_ec * 4" (binary_expression "iVar5 + 0x18" (identifier "iVar5") (+ "+") (number_literal "0x18")) (+ "+") (binary_expression "local_ec * 4" (identifier "local_ec") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_ec != iVar8 - 1U)" (( "(") (binary_expression "local_ec != iVar8 - 1U" (identifier "local_ec") (!= "!=") (binary_expression "iVar8 - 1U" (identifier "iVar8") (- "-") (number_literal "1U"))) () ")")) (; ";")) (expression_statement "uVar13 = uVar13 + 2;" (assignment_expression "uVar13 = uVar13 + 2" (identifier "uVar13") (= "=") (binary_expression "uVar13 + 2" (identifier "uVar13") (+ "+") (number_literal "2"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar10 = FUN_00019ba3();" (assignment_expression "uVar10 = FUN_00019ba3()" (identifier "uVar10") (= "=") (call_expression "FUN_00019ba3()" (identifier "FUN_00019ba3") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x18 + local_ec * 4) = uVar10;" (assignment_expression "*(undefined4 *)(iVar5 + 0x18 + local_ec * 4) = uVar10" (pointer_expression "*(undefined4 *)(iVar5 + 0x18 + local_ec * 4)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x18 + local_ec * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x18 + local_ec * 4)" (( "(") (binary_expression "iVar5 + 0x18 + local_ec * 4" (binary_expression "iVar5 + 0x18" (identifier "iVar5") (+ "+") (number_literal "0x18")) (+ "+") (binary_expression "local_ec * 4" (identifier "local_ec") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "iVar5 = *piVar4;" (assignment_expression "iVar5 = *piVar4" (identifier "iVar5") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (expression_statement "*(uint *)(iVar5 + 0x10) = uVar13;" (assignment_expression "*(uint *)(iVar5 + 0x10) = uVar13" (pointer_expression "*(uint *)(iVar5 + 0x10)" (* "*") (cast_expression "(uint *)(iVar5 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "*(uint *)(iVar5 + 0xc) = uVar13;" (assignment_expression "*(uint *)(iVar5 + 0xc) = uVar13" (pointer_expression "*(uint *)(iVar5 + 0xc)" (* "*") (cast_expression "(uint *)(iVar5 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar13")) (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_000aaa10();" (call_expression "FUN_000aaa10()" (identifier "FUN_000aaa10") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0001985b();" (call_expression "FUN_0001985b()" (identifier "FUN_0001985b") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0001ada5();" (call_expression "FUN_0001ada5()" (identifier "FUN_0001ada5") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00019f78();" (call_expression "FUN_00019f78()" (identifier "FUN_00019f78") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "sVar11 = piVar4[6];" (assignment_expression "sVar11 = piVar4[6]" (identifier "sVar11") (= "=") (subscript_expression "piVar4[6]" (identifier "piVar4") ([ "[") (number_literal "6") (] "]"))) (; ";")) (goto_statement "goto LAB_000ac9e9;" (goto "goto") (statement_identifier "LAB_000ac9e9") (; ";")) (labeled_statement "LAB_000ac923:\n  iVar5 = piVar4[0x10];" (statement_identifier "LAB_000ac923") (: ":") (expression_statement "iVar5 = piVar4[0x10];" (assignment_expression "iVar5 = piVar4[0x10]" (identifier "iVar5") (= "=") (subscript_expression "piVar4[0x10]" (identifier "piVar4") ([ "[") (number_literal "0x10") (] "]"))) (; ";"))) (if_statement "if (piVar4[0xf] != iVar5) {\nLAB_000acddf:\n    piVar4[0xf] = iVar5;\n    FUN_000abd02();\n  }" (if "if") (parenthesized_expression "(piVar4[0xf] != iVar5)" (( "(") (binary_expression "piVar4[0xf] != iVar5" (subscript_expression "piVar4[0xf]" (identifier "piVar4") ([ "[") (number_literal "0xf") (] "]")) (!= "!=") (identifier "iVar5")) () ")")) (compound_statement "{\nLAB_000acddf:\n    piVar4[0xf] = iVar5;\n    FUN_000abd02();\n  }" ({ "{") (labeled_statement "LAB_000acddf:\n    piVar4[0xf] = iVar5;" (statement_identifier "LAB_000acddf") (: ":") (expression_statement "piVar4[0xf] = iVar5;" (assignment_expression "piVar4[0xf] = iVar5" (subscript_expression "piVar4[0xf]" (identifier "piVar4") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "iVar5")) (; ";"))) (expression_statement "FUN_000abd02();" (call_expression "FUN_000abd02()" (identifier "FUN_000abd02") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_000ac7c7;" (goto "goto") (statement_identifier "LAB_000ac7c7") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */

int function_1(type_1 *st,char *prompt,char *command,int maxsize)

{
  type_2 lastWasTab;
  type_3 wc;
  type_4 initial_settings;
  type_4 new_settings;
  char unicode_buf [7];
  char read_key_buffer [16];
  
}


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

/* WARNING: Removing unreachable block (ram,0x000acaba) */
/* WARNING: Removing unreachable block (ram,0x000aca12) */

size_t MASKED(void)

{
  undefined4 *__dest;
  int *piVar1;
  int iVar2;
  byte *pbVar3;
  int *piVar4;
  int iVar5;
  char *pcVar6;
  __uid_t __uid;
  passwd *ppVar7;
  int iVar8;
  uint uVar9;
  undefined4 uVar10;
  size_t sVar11;
  uint *puVar12;
  int unaff_EBP;
  uint uVar13;
  int in_GS_OFFSET;
  undefined8 uVar14;
  int unaff_retaddr;
  int local_f4;
  char *local_f0;
  uint local_ec;
  uint local_a8;
  byte local_a3;
  byte local_9f;
  undefined1 local_3b [7];
  undefined1 local_34;
  int local_24;
  undefined4 local_20;
  
  pbVar3 = (byte *)FUN_00026ff7();
  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);
  piVar4 = (int *)FUN_00019b89();
  *(int **)(&DAT_0002516f + unaff_EBP) = piVar4;
  piVar4[1] = 0x50;
  piVar4[0xc] = unaff_EBP + 0x215a2;
  iVar5 = FUN_00019879(1);
  if ((iVar5 == 0) && ((local_a8 & 10) != 2)) {
    FUN_000b24de();
    if (unaff_retaddr < 0x401) {
      piVar4[7] = unaff_retaddr;
      local_f4 = unaff_retaddr;
    }
    else {
      local_f4 = 0x400;
      piVar4[7] = 0x400;
    }
    if (pbVar3 == (byte *)0x0) {
      pbVar3 = (byte *)(unaff_EBP + 0xa2a3);
      *piVar4 = (int)pbVar3;
    }
    else {
      *piVar4 = (int)pbVar3;
    }
    if ((*pbVar3 & 1) != 0) {
      *(undefined4 *)(pbVar3 + 0x10) = *(undefined4 *)(pbVar3 + 0xc);
    }
    piVar4[3] = 0;
    piVar4[6] = 0;
    iVar5 = FUN_00019b89();
    piVar4[8] = iVar5;
    FUN_0001985b();
    __uid = geteuid();
    ppVar7 = getpwuid(__uid);
    if (ppVar7 != (passwd *)0x0) {
      iVar5 = FUN_00019ba3();
      piVar4[0xb] = iVar5;
      iVar5 = FUN_00019ba3();
      piVar4[0xc] = iVar5;
    }
    iVar5 = FUN_00019828();
    piVar4[1] = iVar5;
    FUN_000aaf0c();
    iVar5 = FUN_000b181c();
    if (iVar5 == 0) {
      *(undefined1 *)((int)piVar4 + 0x45) = 1;
      fwrite_unlocked((void *)(unaff_EBP + 0x18192),1,4,
                      (FILE *)**(undefined4 **)(&DAT_00024a03 + unaff_EBP));
      FUN_00019f78();
    }
    piVar4[0x12] = unaff_EBP + -0x85d;
    piVar4[0x33] = 0x10000000;
    sigaction(0x1c,(sigaction *)(piVar4 + 0x12),(sigaction *)(piVar4 + 0x12));
    local_34 = 0;
    piVar1 = *(int **)(&DAT_0002514b + unaff_EBP);
    iVar5 = piVar4[0x10];
    if (piVar4[0xf] != iVar5) goto LAB_000acddf;
LAB_000ac7c7:
    FUN_00019f78();
    iVar5 = 0;
LAB_000ac7e1:
    do {
      *(undefined1 *)(piVar4 + 0x11) = 1;
      uVar14 = FUN_000b0821();
      uVar13 = (uint)uVar14;
      *(undefined1 *)(piVar4 + 0x11) = 0;
      iVar8 = *piVar1;
      if (iVar8 != 0) {
        if ((iVar8 != 0xb) || (iVar5 == 0)) {
joined_r0x000acdd4:
          uVar9 = uVar13 + 0x45;
          if (uVar9 < 0xc5) {
LAB_000ac8f0:
                    /* WARNING: Could not recover jumptable at 0x000ac8f9. Too many branches */
                    /* WARNING: Treating indirect jump as call */
            sVar11 = (*(code *)(*(int *)(unaff_EBP + 0x10cf3 + uVar9 * 4) + unaff_EBP + 0x2446f))();
            return sVar11;
          }
          goto LAB_000ac830;
        }
        break;
      }
      if (uVar13 == 0xffffff00) {
        if (*(char *)((int)piVar4 + 0x45) == '\0') goto LAB_000acba3;
        *(undefined1 *)((int)piVar4 + 0x45) = 0;
        if ((piVar4[5] == 0) &&
           (iVar8 = ((uint)((ulonglong)uVar14 >> 0x20) & 0x7fff) + ~piVar4[4], 0 < iVar8)) {
          uVar9 = iVar8 + piVar4[2];
          piVar4[2] = uVar9;
          uVar13 = piVar4[1];
          if (uVar13 <= uVar9) {
            iVar8 = piVar4[3];
            do {
              uVar9 = uVar9 - uVar13;
              iVar8 = iVar8 + 1;
            } while (uVar13 <= uVar9);
            piVar4[2] = uVar9;
            piVar4[3] = iVar8;
          }
        }
        goto LAB_000ac7e1;
      }
      if (((&LAB_00025177)[unaff_EBP] != '\x02') || ((int)uVar13 < 0)) goto joined_r0x000acdd4;
      iVar8 = iVar5 + 1;
      local_3b[iVar5] = (char)uVar14;
      local_3b[iVar5 + 1] = 0;
      iVar5 = FUN_000b2670();
      if (iVar5 == 1) {
        uVar9 = 0x45;
        goto LAB_000ac8f0;
      }
      iVar5 = iVar8;
    } while (iVar8 < 6);
    FUN_000b0b18();
    uVar13 = 0x3f;
LAB_000ac830:
    if ((local_a3 != 0) && (local_a3 == uVar13)) {
      piVar4[6] = 0;
      goto LAB_000ac96b;
    }
LAB_000acba3:
    if ((local_9f == 0) || (local_9f != uVar13)) {
      if ((uVar13 - 0x20 < 0x3fffffe0) && (iVar5 = piVar4[6], iVar5 < local_f4 + -2)) {
        piVar4[6] = iVar5 + 1;
        iVar2 = piVar4[5];
        iVar8 = iVar2 * 4;
        puVar12 = (uint *)(iVar8 + piVar4[8]);
        __dest = (undefined4 *)(piVar4[8] + 4 + iVar8);
        if (iVar2 == iVar5) {
          *puVar12 = uVar13;
          *__dest = 0;
          FUN_000aba58();
        }
        else {
          memmove(__dest,puVar12,((iVar5 + 1) - iVar2) * 4);
          *(uint *)(piVar4[8] + iVar8) = uVar13;
          if ((uint)piVar4[5] < (uint)piVar4[6]) {
            do {
              FUN_000aba58();
            } while ((uint)piVar4[5] < (uint)piVar4[6]);
          }
          FUN_000ab35c();
        }
      }
    }
    else {
      if (piVar4[6] == 0) goto code_r0x000acbc3;
      FUN_000abd91();
    }
    if (uVar13 != 9) goto LAB_000ac923;
    iVar5 = piVar4[0x10];
    if (piVar4[0xf] != iVar5) goto LAB_000acddf;
    goto LAB_000ac7c7;
  }
  FUN_000aaf0c();
  FUN_00019f78();
  pcVar6 = fgets_unlocked(local_f0,unaff_retaddr,
                          (FILE *)**(undefined4 **)(&DAT_000249fb + unaff_EBP));
  sVar11 = 0xffffffff;
  if (pcVar6 != (char *)0x0) {
    sVar11 = strlen(local_f0);
  }
LAB_000ac9e9:
  FUN_000aaa67();
  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_00017e10();
  }
  return sVar11;
code_r0x000acbc3:
  *piVar1 = 0;
  piVar4[6] = -1;
LAB_000ac96b:
  if (*(char *)((int)piVar4 + 0x45) != '\0') {
    usleep(20000);
  }
  *local_f0 = '\0';
  if (0 < piVar4[6]) {
    iVar5 = FUN_000abe42();
    piVar4[6] = iVar5;
  }
  free((void *)piVar4[8]);
  if (0 < piVar4[6]) {
    puVar12 = (uint *)*piVar4;
    uVar13 = *puVar12 & 1;
    if (((uVar13 != 0) && (*local_f0 != '\0')) &&
       ((local_ec = puVar12[3], local_ec == 0 ||
        (iVar5 = strcmp((char *)puVar12[local_ec + 5],local_f0), iVar5 != 0)))) {
      free((void *)puVar12[puVar12[5] + 6]);
      iVar5 = *piVar4;
      iVar8 = *(int *)(iVar5 + 0x14);
      *(undefined4 *)(iVar5 + 0x18 + iVar8 * 4) = 0;
      if ((int)local_ec < iVar8) {
        uVar13 = local_ec + 1;
      }
      else {
        free(*(void **)(iVar5 + 0x18));
        iVar5 = *piVar4;
        iVar8 = *(int *)(iVar5 + 0x14);
        local_ec = 0;
        if (1 < iVar8) {
          local_ec = 0;
          do {
            uVar13 = local_ec;
            local_ec = uVar13 + 1;
            *(undefined4 *)(iVar5 + 0x14 + local_ec * 4) =
                 *(undefined4 *)(iVar5 + 0x18 + local_ec * 4);
          } while (local_ec != iVar8 - 1U);
          uVar13 = uVar13 + 2;
        }
      }
      uVar10 = FUN_00019ba3();
      *(undefined4 *)(iVar5 + 0x18 + local_ec * 4) = uVar10;
      iVar5 = *piVar4;
      *(uint *)(iVar5 + 0x10) = uVar13;
      *(uint *)(iVar5 + 0xc) = uVar13;
    }
  }
  FUN_000aaa10();
  FUN_0001985b();
  FUN_0001ada5();
  FUN_00019f78();
  sVar11 = piVar4[6];
  goto LAB_000ac9e9;
LAB_000ac923:
  iVar5 = piVar4[0x10];
  if (piVar4[0xf] != iVar5) {
LAB_000acddf:
    piVar4[0xf] = iVar5;
    FUN_000abd02();
  }
  goto LAB_000ac7c7;
}

