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

void __regparm3 read_function_mappings(char *filename)

{
  FILE *__stream;
  int iVar1;
  uint uVar2;
  uint uVar3;
  char *pcVar4;
  size_t sVar5;
  int iVar6;
  char *__format;
  uint *puVar7;
  function_map *pfVar8;
  byte *pbVar9;
  byte *pbVar10;
  byte *pbVar11;
  bool bVar12;
  bool bVar13;
  byte bVar14;
  uint *puVar15;
  function_map **local_430;
  function_map *local_42c;
  uint local_428;
  char dummy [1024];
  
  bVar14 = 0;
  __stream = fopen64(filename,"r");
  pcVar4 = whoami;
  if (__stream == (FILE *)0x0) {
    __format = (char *)dcgettext("gprof","%s: could not open %s.\n",5);
    fprintf(*(FILE **)PTR_stderr_0002bfcc,__format,pcVar4,filename);
                    /* WARNING: Subroutine does not return */
    done(1);
  }
  local_42c = (function_map *)0x0;
  local_430 = (function_map **)"%1023[^\n:]";
  while( true ) {
    iVar1 = feof(__stream);
    if (iVar1 != 0) break;
    pbVar11 = (byte *)dummy;
    iVar1 = fscanf(__stream,(char *)local_430,dummy);
    bVar12 = false;
    bVar13 = iVar1 == 0;
    if (bVar13) goto LAB_00017fc2;
    iVar1 = 0xe;
    pbVar9 = (byte *)dummy;
    pbVar10 = (byte *)"No symbols in ";
    do {
      if (iVar1 == 0) break;
      iVar1 = iVar1 + -1;
      bVar12 = *pbVar9 < *pbVar10;
      bVar13 = *pbVar9 == *pbVar10;
      pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;
      pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;
    } while (bVar13);
    if ((!bVar12 && !bVar13) != bVar12) goto LAB_00017fd0;
    iVar1 = fscanf(__stream,"\n",pbVar11);
    if (iVar1 == -1) {
LAB_00017fc2:
      do {
        parse_error(filename);
LAB_00017fd0:
        iVar1 = fscanf(__stream,"%1023[^\n]\n",dummy);
      } while (iVar1 == 0);
      local_42c = (function_map *)((int)&local_42c->function_name + 1);
    }
  }
  symbol_map = (function_map *)xmalloc((int)local_42c * 0xc);
  local_430 = &symbol_map;
  rewind(__stream);
  local_428 = 0;
LAB_00018040:
  do {
    iVar1 = feof(__stream);
    if (iVar1 != 0) {
      symbol_map_count = local_428;
      pfVar8 = symbol_map;
      if (local_428 == 0) {
        uVar2 = 0;
        goto LAB_000181f3;
      }
      iVar1 = 0;
      uVar3 = 0;
      goto LAB_000181c9;
    }
    puVar15 = (uint *)dummy;
    iVar1 = fscanf(__stream,"%1023[^\n:]",dummy);
    bVar12 = false;
    bVar13 = iVar1 == 0;
    if (bVar13) break;
    iVar1 = 0xe;
    puVar7 = (uint *)dummy;
    pbVar11 = (byte *)"No symbols in ";
    do {
      if (iVar1 == 0) break;
      iVar1 = iVar1 + -1;
      bVar12 = (byte)*puVar7 < *pbVar11;
      bVar13 = (byte)*puVar7 == *pbVar11;
      puVar7 = (uint *)((int)puVar7 + (uint)bVar14 * -2 + 1);
      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;
    } while (bVar13);
    puVar7 = (uint *)dummy;
    if ((!bVar12 && !bVar13) != bVar12) {
      do {
        puVar15 = puVar7;
        uVar2 = *puVar15 + 0xfefefeff & ~*puVar15;
        uVar3 = uVar2 & 0x80808080;
        puVar7 = puVar15 + 1;
      } while (uVar3 == 0);
      bVar12 = (uVar2 & 0x8080) == 0;
      if (bVar12) {
        uVar3 = uVar3 >> 0x10;
      }
      if (bVar12) {
        puVar7 = (uint *)((int)puVar15 + 6);
      }
      local_42c = symbol_map + local_428;
      pcVar4 = (char *)xmalloc((byte *)((int)puVar7 +
                                       (-(int)dummy - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));
      local_42c->file_name = pcVar4;
      strcpy(symbol_map[local_428].file_name,dummy);
      iVar1 = fscanf(__stream,"%1023[^\n]\n",dummy);
      if (iVar1 == 0) break;
      pcVar4 = strrchr(dummy,0x20);
      local_42c = (function_map *)(pcVar4 + 1);
      sVar5 = strlen((char *)local_42c);
      pfVar8 = symbol_map + local_428;
      pcVar4 = (char *)xmalloc(sVar5 + 1);
      pfVar8->function_name = pcVar4;
      strcpy(symbol_map[local_428].function_name,(char *)local_42c);
      local_428 = local_428 + 1;
      goto LAB_00018040;
    }
    iVar1 = fscanf(__stream,"\n",puVar15);
  } while (iVar1 != -1);
  goto LAB_00017fc2;
LAB_000181c9:
  iVar6 = (int)&pfVar8->function_name + iVar1;
  if (uVar3 == 0) {
LAB_000181b8:
    *(byte *)(iVar6 + 8) = *(byte *)(iVar6 + 8) | 1;
  }
  else {
    iVar6 = filename_cmp(*(undefined4 *)(iVar6 + 4),*(undefined4 *)((int)pfVar8 + iVar1 + -8));
    pfVar8 = symbol_map;
    if (iVar6 != 0) {
      iVar6 = (int)&symbol_map->function_name + iVar1;
      goto LAB_000181b8;
    }
  }
  uVar3 = uVar3 + 1;
  iVar1 = iVar1 + 0xc;
  uVar2 = symbol_map_count;
  if (symbol_map_count <= uVar3) {
LAB_000181f3:
    qsort(pfVar8,uVar2,0xc,cmp_symbol_map);
    fclose(__stream);
    return;
  }
  goto LAB_000181c9;
}



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

void __regparm3 FUN_00017f10(char *param_1)

{
  FILE *__stream;
  int iVar1;
  uint uVar2;
  uint uVar3;
  undefined4 uVar4;
  int iVar5;
  size_t sVar6;
  char *__format;
  uint *puVar7;
  void *pvVar8;
  undefined4 *puVar9;
  byte *pbVar10;
  bool bVar11;
  bool bVar12;
  byte bVar13;
  uint *puVar14;
  char *local_430;
  char *local_42c;
  uint local_428;
  uint local_41c [258];
  undefined4 uStack_14;
  
  bVar13 = 0;
  uStack_14 = 0x17f1b;
  __stream = fopen64(param_1,"r");
  uVar4 = DAT_0002d494;
  if (__stream == (FILE *)0x0) {
    __format = (char *)dcgettext("gprof","%s: could not open %s.\n",5);
    fprintf(*(FILE **)PTR_stderr_0002bfcc,__format,uVar4,param_1);
                    /* WARNING: Subroutine does not return */
    FUN_0001a990(1);
  }
  local_430 = "%1023[^\n:]";
  local_42c = (char *)0x0;
  while( true ) {
    iVar1 = feof(__stream);
    if (iVar1 != 0) break;
    puVar14 = local_41c;
    iVar1 = fscanf(__stream,local_430,local_41c);
    bVar11 = false;
    bVar12 = iVar1 == 0;
    if (bVar12) goto LAB_00017fc2;
    iVar1 = 0xe;
    puVar7 = local_41c;
    pbVar10 = (byte *)"No symbols in ";
    do {
      if (iVar1 == 0) break;
      iVar1 = iVar1 + -1;
      bVar11 = (byte)*puVar7 < *pbVar10;
      bVar12 = (byte)*puVar7 == *pbVar10;
      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);
      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;
    } while (bVar12);
    if ((!bVar11 && !bVar12) != bVar11) goto LAB_00017fd0;
    iVar1 = fscanf(__stream,"\n",puVar14);
    if (iVar1 == -1) {
LAB_00017fc2:
      do {
        FUN_00017ec0();
LAB_00017fd0:
        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);
      } while (iVar1 == 0);
      local_42c = local_42c + 1;
    }
  }
  DAT_0002d480 = (void *)xmalloc((int)local_42c * 0xc);
  local_430 = (char *)&DAT_0002d480;
  rewind(__stream);
  local_428 = 0;
LAB_00018040:
  do {
    iVar1 = feof(__stream);
    if (iVar1 != 0) {
      DAT_0002d484 = local_428;
      pvVar8 = DAT_0002d480;
      if (local_428 == 0) {
        uVar2 = 0;
        goto LAB_000181f3;
      }
      iVar1 = 0;
      uVar3 = 0;
      goto LAB_000181c9;
    }
    puVar14 = local_41c;
    iVar1 = fscanf(__stream,"%1023[^\n:]",local_41c);
    bVar11 = false;
    bVar12 = iVar1 == 0;
    if (bVar12) break;
    iVar1 = 0xe;
    puVar7 = local_41c;
    pbVar10 = (byte *)"No symbols in ";
    do {
      if (iVar1 == 0) break;
      iVar1 = iVar1 + -1;
      bVar11 = (byte)*puVar7 < *pbVar10;
      bVar12 = (byte)*puVar7 == *pbVar10;
      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);
      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;
    } while (bVar12);
    puVar7 = local_41c;
    if ((!bVar11 && !bVar12) != bVar11) {
      do {
        puVar14 = puVar7;
        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;
        uVar3 = uVar2 & 0x80808080;
        puVar7 = puVar14 + 1;
      } while (uVar3 == 0);
      bVar11 = (uVar2 & 0x8080) == 0;
      if (bVar11) {
        uVar3 = uVar3 >> 0x10;
      }
      if (bVar11) {
        puVar7 = (uint *)((int)puVar14 + 6);
      }
      iVar1 = local_428 * 0xc;
      local_42c = (char *)((int)DAT_0002d480 + iVar1);
      uVar4 = xmalloc((byte *)((int)puVar7 +
                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));
      *(undefined4 *)(local_42c + 4) = uVar4;
      strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c);
      iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c);
      if (iVar5 == 0) break;
      local_42c = strrchr((char *)local_41c,0x20);
      local_42c = local_42c + 1;
      sVar6 = strlen(local_42c);
      puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480);
      uVar4 = xmalloc(sVar6 + 1);
      *puVar9 = uVar4;
      strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c);
      local_428 = local_428 + 1;
      goto LAB_00018040;
    }
    iVar1 = fscanf(__stream,"\n",puVar14);
  } while (iVar1 != -1);
  goto LAB_00017fc2;
LAB_000181c9:
  iVar5 = (int)pvVar8 + iVar1;
  if (uVar3 == 0) {
LAB_000181b8:
    *(byte *)(iVar5 + 8) = *(byte *)(iVar5 + 8) | 1;
  }
  else {
    iVar5 = filename_cmp(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8));
    pvVar8 = DAT_0002d480;
    if (iVar5 != 0) {
      iVar5 = (int)DAT_0002d480 + iVar1;
      goto LAB_000181b8;
    }
  }
  uVar3 = uVar3 + 1;
  iVar1 = iVar1 + 0xc;
  uVar2 = DAT_0002d484;
  if (DAT_0002d484 <= uVar3) {
LAB_000181f3:
    qsort(pvVar8,uVar2,0xc,FUN_00018260);
    fclose(__stream);
    return;
  }
  goto LAB_000181c9;
}


PUSH EBP
PUSH EDI
PUSH ESI
MOV ESI,EAX
PUSH EBX
CALL 0x00013030
ADD EBX,0x140e5
SUB ESP,0x434
MOV dword ptr [ESP + 0x24],EAX
LEA EAX,[EBX + 0xffff7281]
PUSH EAX
PUSH ESI
CALL 0x000121a0
MOV dword ptr [ESP + 0x18],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00018218
LEA EAX,[EBX + 0xffff5ca5]
MOV dword ptr [ESP + 0x10],0x0
LEA EBP,[ESP + 0x20]
MOV dword ptr [ESP + 0xc],EAX
LEA ESI,[ESI]
SUB ESP,0xc
PUSH dword ptr [ESP + 0x14]
CALL 0x00012290
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00017ff8
SUB ESP,0x4
PUSH EBP
PUSH dword ptr [ESP + 0x14]
PUSH dword ptr [ESP + 0x14]
CALL 0x000122d0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00017fc2
MOV ECX,0xe
LEA EDI,[EBX + 0xffff5cb0]
MOV ESI,EBP
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00017fd0
SUB ESP,0x8
LEA EAX,[EBX + 0xffff503d]
PUSH EAX
PUSH dword ptr [ESP + 0x14]
CALL 0x000122d0
ADD ESP,0x10
CMP EAX,-0x1
JNZ 0x00017f60
MOV EAX,dword ptr [ESP + 0x1c]
CALL 0x00017ec0
LEA ESI,[ESI]
NOP
SUB ESP,0x4
LEA EAX,[EBX + 0xffff5cbf]
PUSH EBP
PUSH EAX
PUSH dword ptr [ESP + 0x14]
CALL 0x000122d0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00017fc2
ADD dword ptr [ESP + 0x10],0x1
JMP 0x00017f60
SUB ESP,0xc
MOV EAX,dword ptr [ESP + 0x1c]
LEA EAX,[EAX + EAX*0x2]
SHL EAX,0x2
PUSH EAX
CALL 0x000121d0
LEA ESI,[EBX + 0x1480]
MOV dword ptr [ESP + 0x1c],ESI
MOV dword ptr [ESI],EAX
POP ECX
PUSH dword ptr [ESP + 0x14]
CALL 0x00012140
ADD ESP,0x10
LEA EAX,[EBX + 0xffff5ca5]
MOV dword ptr [ESP + 0x14],0x0
LEA EBP,[ESP + 0x20]
MOV dword ptr [ESP + 0x18],EAX
LEA ESI,[ESI]
SUB ESP,0xc
PUSH dword ptr [ESP + 0x14]
CALL 0x00012290
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00018198
SUB ESP,0x4
PUSH EBP
PUSH dword ptr [ESP + 0x20]
PUSH dword ptr [ESP + 0x14]
CALL 0x000122d0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00017fc2
MOV ECX,0xe
LEA EDI,[EBX + 0xffff5cb0]
MOV ESI,EBP
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x000180b0
SUB ESP,0x8
LEA EAX,[EBX + 0xffff503d]
PUSH EAX
PUSH dword ptr [ESP + 0x14]
CALL 0x000122d0
ADD ESP,0x10
CMP EAX,-0x1
JNZ 0x00018040
JMP 0x00017fc2
MOV EDX,EBP
MOV ECX,dword ptr [EDX]
ADD EDX,0x4
LEA EAX,[ECX + 0xfefefeff]
NOT ECX
AND EAX,ECX
AND EAX,0x80808080
JZ 0x000180b2
MOV ECX,EAX
SHR ECX,0x10
TEST EAX,0x8080
CMOVZ EAX,ECX
LEA ECX,[EDX + 0x2]
CMOVZ EDX,ECX
MOV ECX,EAX
ADD CL,AL
MOV EAX,dword ptr [ESP + 0x14]
SBB EDX,0x3
SUB ESP,0xc
LEA EDI,[EAX + EAX*0x2]
MOV EAX,dword ptr [ESP + 0x18]
SUB EDX,EBP
LEA ESI,[EDI*0x4 + 0x0]
ADD EDX,0x1
MOV ECX,dword ptr [EAX]
ADD ECX,ESI
MOV dword ptr [ESP + 0x1c],ECX
PUSH EDX
CALL 0x000121d0
MOV ECX,dword ptr [ESP + 0x20]
MOV dword ptr [ECX + 0x4],EAX
POP EAX
POP EDX
PUSH EBP
MOV EAX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [EAX]
PUSH dword ptr [EAX + ESI*0x1 + 0x4]
CALL 0x00012210
ADD ESP,0xc
LEA EAX,[EBX + 0xffff5cbf]
PUSH EBP
PUSH EAX
PUSH dword ptr [ESP + 0x14]
CALL 0x000122d0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00017fc2
SUB ESP,0x8
PUSH 0x20
PUSH EBP
CALL 0x000123a0
LEA EDX,[EAX + 0x1]
MOV dword ptr [ESP],EDX
MOV dword ptr [ESP + 0x20],EDX
CALL 0x000122e0
MOV EDX,dword ptr [ESP + 0x1c]
ADD EAX,0x1
ADD ESI,dword ptr [EDX]
MOV dword ptr [ESP],EAX
CALL 0x000121d0
MOV dword ptr [ESI],EAX
POP EDX
POP ECX
MOV EDX,dword ptr [ESP + 0x18]
PUSH EDX
MOV EDX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [EDX]
PUSH dword ptr [EAX + EDI*0x4]
CALL 0x00012210
ADD dword ptr [ESP + 0x24],0x1
ADD ESP,0x10
JMP 0x00018040
LEA EBP,[EBX + 0x1484]
MOV EAX,dword ptr [ESP + 0x14]
MOV EDI,dword ptr [ESP + 0xc]
MOV dword ptr [EBP],EAX
MOV EDX,dword ptr [EDI]
TEST EAX,EAX
JZ 0x000181f1
XOR EDI,EDI
XOR ESI,ESI
JMP 0x000181c9
OR byte ptr [EAX + 0x8],0x1
MOV EAX,dword ptr [EBP]
ADD ESI,0x1
ADD EDI,0xc
CMP EAX,ESI
JBE 0x000181f3
LEA EAX,[EDX + EDI*0x1]
TEST ESI,ESI
JZ 0x000181b8
SUB ESP,0x8
PUSH dword ptr [EDX + EDI*0x1 + -0x8]
PUSH dword ptr [EAX + 0x4]
CALL 0x000120b0
ADD ESP,0x10
TEST EAX,EAX
MOV EAX,dword ptr [ESP + 0xc]
MOV EDX,dword ptr [EAX]
JZ 0x000181bc
LEA EAX,[EDX + EDI*0x1]
JMP 0x000181b8
XOR EAX,EAX
LEA ECX,[EBX + 0xfffec260]
PUSH ECX
PUSH 0xc
PUSH EAX
PUSH EDX
CALL 0x00012420
POP EAX
PUSH dword ptr [ESP + 0x14]
CALL 0x000120f0
ADD ESP,0x43c
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EAX,[EBX + 0x1494]
MOV ESI,dword ptr [EAX]
LEA EAX,[EBX + 0xffff5c8d]
PUSH EDI
PUSH 0x5
PUSH EAX
LEA EAX,[EBX + 0xffff500c]
PUSH EAX
CALL 0x00012120
PUSH dword ptr [ESP + 0x2c]
PUSH ESI
PUSH EAX
MOV EAX,dword ptr [EBX + 0xffffffcc]
PUSH dword ptr [EAX]
CALL 0x00012310
ADD ESP,0x14
PUSH 0x1
CALL 0x0001a990
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 FUN_00017f10(char *param_1)\n\n{\n  FILE *__stream;\n  int iVar1;\n  uint uVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  size_t sVar6;\n  char *__format;\n  uint *puVar7;\n  void *pvVar8;\n  undefined4 *puVar9;\n  byte *pbVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  uint *puVar14;\n  char *local_430;\n  char *local_42c;\n  uint local_428;\n  uint local_41c [258];\n  undefined4 uStack_14;\n  \n  bVar13 = 0;\n  uStack_14 = 0x17f1b;\n  __stream = fopen64(param_1,"r");\n  uVar4 = DAT_0002d494;\n  if (__stream == (FILE *)0x0) {\n    __format = (char *)dcgettext("gprof","%s: could not open %s.\n",5);\n    fprintf(*(FILE **)PTR_stderr_0002bfcc,__format,uVar4,param_1);\n                    /* WARNING: Subroutine does not return */\n    FUN_0001a990(1);\n  }\n  local_430 = "%1023[^\n:]";\n  local_42c = (char *)0x0;\n  while( true ) {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) break;\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,local_430,local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) goto LAB_00017fc2;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar11 && !bVar12) != bVar11) goto LAB_00017fd0;\n    iVar1 = fscanf(__stream,"\n",puVar14);\n    if (iVar1 == -1) {\nLAB_00017fc2:\n      do {\n        FUN_00017ec0();\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      } while (iVar1 == 0);\n      local_42c = local_42c + 1;\n    }\n  }\n  DAT_0002d480 = (void *)xmalloc((int)local_42c * 0xc);\n  local_430 = (char *)&DAT_0002d480;\n  rewind(__stream);\n  local_428 = 0;\nLAB_00018040:\n  do {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) {\n      DAT_0002d484 = local_428;\n      pvVar8 = DAT_0002d480;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,"%1023[^\n:]",local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) break;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    puVar7 = local_41c;\n    if ((!bVar11 && !bVar12) != bVar11) {\n      do {\n        puVar14 = puVar7;\n        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar14 + 1;\n      } while (uVar3 == 0);\n      bVar11 = (uVar2 & 0x8080) == 0;\n      if (bVar11) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar11) {\n        puVar7 = (uint *)((int)puVar14 + 6);\n      }\n      iVar1 = local_428 * 0xc;\n      local_42c = (char *)((int)DAT_0002d480 + iVar1);\n      uVar4 = xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      *(undefined4 *)(local_42c + 4) = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c);\n      iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      if (iVar5 == 0) break;\n      local_42c = strrchr((char *)local_41c,0x20);\n      local_42c = local_42c + 1;\n      sVar6 = strlen(local_42c);\n      puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480);\n      uVar4 = xmalloc(sVar6 + 1);\n      *puVar9 = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }\n    iVar1 = fscanf(__stream,"\n",puVar14);\n  } while (iVar1 != -1);\n  goto LAB_00017fc2;\nLAB_000181c9:\n  iVar5 = (int)pvVar8 + iVar1;\n  if (uVar3 == 0) {\nLAB_000181b8:\n    *(byte *)(iVar5 + 8) = *(byte *)(iVar5 + 8) | 1;\n  }\n  else {\n    iVar5 = filename_cmp(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8));\n    pvVar8 = DAT_0002d480;\n    if (iVar5 != 0) {\n      iVar5 = (int)DAT_0002d480 + iVar1;\n      goto LAB_000181b8;\n    }\n  }\n  uVar3 = uVar3 + 1;\n  iVar1 = iVar1 + 0xc;\n  uVar2 = DAT_0002d484;\n  if (DAT_0002d484 <= uVar3) {\nLAB_000181f3:\n    qsort(pvVar8,uVar2,0xc,FUN_00018260);\n    fclose(__stream);\n    return;\n  }\n  goto LAB_000181c9;\n}\n\n" comment (function_definition "void __regparm3 FUN_00017f10(char *param_1)\n\n{\n  FILE *__stream;\n  int iVar1;\n  uint uVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  size_t sVar6;\n  char *__format;\n  uint *puVar7;\n  void *pvVar8;\n  undefined4 *puVar9;\n  byte *pbVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  uint *puVar14;\n  char *local_430;\n  char *local_42c;\n  uint local_428;\n  uint local_41c [258];\n  undefined4 uStack_14;\n  \n  bVar13 = 0;\n  uStack_14 = 0x17f1b;\n  __stream = fopen64(param_1,"r");\n  uVar4 = DAT_0002d494;\n  if (__stream == (FILE *)0x0) {\n    __format = (char *)dcgettext("gprof","%s: could not open %s.\n",5);\n    fprintf(*(FILE **)PTR_stderr_0002bfcc,__format,uVar4,param_1);\n                    /* WARNING: Subroutine does not return */\n    FUN_0001a990(1);\n  }\n  local_430 = "%1023[^\n:]";\n  local_42c = (char *)0x0;\n  while( true ) {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) break;\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,local_430,local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) goto LAB_00017fc2;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar11 && !bVar12) != bVar11) goto LAB_00017fd0;\n    iVar1 = fscanf(__stream,"\n",puVar14);\n    if (iVar1 == -1) {\nLAB_00017fc2:\n      do {\n        FUN_00017ec0();\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      } while (iVar1 == 0);\n      local_42c = local_42c + 1;\n    }\n  }\n  DAT_0002d480 = (void *)xmalloc((int)local_42c * 0xc);\n  local_430 = (char *)&DAT_0002d480;\n  rewind(__stream);\n  local_428 = 0;\nLAB_00018040:\n  do {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) {\n      DAT_0002d484 = local_428;\n      pvVar8 = DAT_0002d480;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,"%1023[^\n:]",local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) break;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    puVar7 = local_41c;\n    if ((!bVar11 && !bVar12) != bVar11) {\n      do {\n        puVar14 = puVar7;\n        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar14 + 1;\n      } while (uVar3 == 0);\n      bVar11 = (uVar2 & 0x8080) == 0;\n      if (bVar11) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar11) {\n        puVar7 = (uint *)((int)puVar14 + 6);\n      }\n      iVar1 = local_428 * 0xc;\n      local_42c = (char *)((int)DAT_0002d480 + iVar1);\n      uVar4 = xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      *(undefined4 *)(local_42c + 4) = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c);\n      iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      if (iVar5 == 0) break;\n      local_42c = strrchr((char *)local_41c,0x20);\n      local_42c = local_42c + 1;\n      sVar6 = strlen(local_42c);\n      puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480);\n      uVar4 = xmalloc(sVar6 + 1);\n      *puVar9 = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }\n    iVar1 = fscanf(__stream,"\n",puVar14);\n  } while (iVar1 != -1);\n  goto LAB_00017fc2;\nLAB_000181c9:\n  iVar5 = (int)pvVar8 + iVar1;\n  if (uVar3 == 0) {\nLAB_000181b8:\n    *(byte *)(iVar5 + 8) = *(byte *)(iVar5 + 8) | 1;\n  }\n  else {\n    iVar5 = filename_cmp(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8));\n    pvVar8 = DAT_0002d480;\n    if (iVar5 != 0) {\n      iVar5 = (int)DAT_0002d480 + iVar1;\n      goto LAB_000181b8;\n    }\n  }\n  uVar3 = uVar3 + 1;\n  iVar1 = iVar1 + 0xc;\n  uVar2 = DAT_0002d484;\n  if (DAT_0002d484 <= uVar3) {\nLAB_000181f3:\n    qsort(pvVar8,uVar2,0xc,FUN_00018260);\n    fclose(__stream);\n    return;\n  }\n  goto LAB_000181c9;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00017f10(char *param_1)" identifier (parameter_list "(char *param_1)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  FILE *__stream;\n  int iVar1;\n  uint uVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  size_t sVar6;\n  char *__format;\n  uint *puVar7;\n  void *pvVar8;\n  undefined4 *puVar9;\n  byte *pbVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  uint *puVar14;\n  char *local_430;\n  char *local_42c;\n  uint local_428;\n  uint local_41c [258];\n  undefined4 uStack_14;\n  \n  bVar13 = 0;\n  uStack_14 = 0x17f1b;\n  __stream = fopen64(param_1,"r");\n  uVar4 = DAT_0002d494;\n  if (__stream == (FILE *)0x0) {\n    __format = (char *)dcgettext("gprof","%s: could not open %s.\n",5);\n    fprintf(*(FILE **)PTR_stderr_0002bfcc,__format,uVar4,param_1);\n                    /* WARNING: Subroutine does not return */\n    FUN_0001a990(1);\n  }\n  local_430 = "%1023[^\n:]";\n  local_42c = (char *)0x0;\n  while( true ) {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) break;\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,local_430,local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) goto LAB_00017fc2;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar11 && !bVar12) != bVar11) goto LAB_00017fd0;\n    iVar1 = fscanf(__stream,"\n",puVar14);\n    if (iVar1 == -1) {\nLAB_00017fc2:\n      do {\n        FUN_00017ec0();\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      } while (iVar1 == 0);\n      local_42c = local_42c + 1;\n    }\n  }\n  DAT_0002d480 = (void *)xmalloc((int)local_42c * 0xc);\n  local_430 = (char *)&DAT_0002d480;\n  rewind(__stream);\n  local_428 = 0;\nLAB_00018040:\n  do {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) {\n      DAT_0002d484 = local_428;\n      pvVar8 = DAT_0002d480;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,"%1023[^\n:]",local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) break;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    puVar7 = local_41c;\n    if ((!bVar11 && !bVar12) != bVar11) {\n      do {\n        puVar14 = puVar7;\n        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar14 + 1;\n      } while (uVar3 == 0);\n      bVar11 = (uVar2 & 0x8080) == 0;\n      if (bVar11) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar11) {\n        puVar7 = (uint *)((int)puVar14 + 6);\n      }\n      iVar1 = local_428 * 0xc;\n      local_42c = (char *)((int)DAT_0002d480 + iVar1);\n      uVar4 = xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      *(undefined4 *)(local_42c + 4) = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c);\n      iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      if (iVar5 == 0) break;\n      local_42c = strrchr((char *)local_41c,0x20);\n      local_42c = local_42c + 1;\n      sVar6 = strlen(local_42c);\n      puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480);\n      uVar4 = xmalloc(sVar6 + 1);\n      *puVar9 = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }\n    iVar1 = fscanf(__stream,"\n",puVar14);\n  } while (iVar1 != -1);\n  goto LAB_00017fc2;\nLAB_000181c9:\n  iVar5 = (int)pvVar8 + iVar1;\n  if (uVar3 == 0) {\nLAB_000181b8:\n    *(byte *)(iVar5 + 8) = *(byte *)(iVar5 + 8) | 1;\n  }\n  else {\n    iVar5 = filename_cmp(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8));\n    pvVar8 = DAT_0002d480;\n    if (iVar5 != 0) {\n      iVar5 = (int)DAT_0002d480 + iVar1;\n      goto LAB_000181b8;\n    }\n  }\n  uVar3 = uVar3 + 1;\n  iVar1 = iVar1 + 0xc;\n  uVar2 = DAT_0002d484;\n  if (DAT_0002d484 <= uVar3) {\nLAB_000181f3:\n    qsort(pvVar8,uVar2,0xc,FUN_00018260);\n    fclose(__stream);\n    return;\n  }\n  goto LAB_000181c9;\n}" { (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "char *__format;" primitive_type (pointer_declarator "*__format" * identifier) ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "void *pvVar8;" primitive_type (pointer_declarator "*pvVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "char *local_430;" primitive_type (pointer_declarator "*local_430" * identifier) ;) (declaration "char *local_42c;" primitive_type (pointer_declarator "*local_42c" * identifier) ;) (declaration "uint local_428;" type_identifier identifier ;) (declaration "uint local_41c [258];" type_identifier (array_declarator "local_41c [258]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x17f1b;" (assignment_expression "uStack_14 = 0x17f1b" identifier = number_literal) ;) (expression_statement "__stream = fopen64(param_1,"r");" (assignment_expression "__stream = fopen64(param_1,"r")" identifier = (call_expression "fopen64(param_1,"r")" identifier (argument_list "(param_1,"r")" ( identifier , (string_literal ""r"" " string_content ") )))) ;) (expression_statement "uVar4 = DAT_0002d494;" (assignment_expression "uVar4 = DAT_0002d494" identifier = identifier) ;) (if_statement "if (__stream == (FILE *)0x0) {\n    __format = (char *)dcgettext("gprof","%s: could not open %s.\n",5);\n    fprintf(*(FILE **)PTR_stderr_0002bfcc,__format,uVar4,param_1);\n                    /* WARNING: Subroutine does not return */\n    FUN_0001a990(1);\n  }" if (parenthesized_expression "(__stream == (FILE *)0x0)" ( (binary_expression "__stream == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    __format = (char *)dcgettext("gprof","%s: could not open %s.\n",5);\n    fprintf(*(FILE **)PTR_stderr_0002bfcc,__format,uVar4,param_1);\n                    /* WARNING: Subroutine does not return */\n    FUN_0001a990(1);\n  }" { (expression_statement "__format = (char *)dcgettext("gprof","%s: could not open %s.\n",5);" (assignment_expression "__format = (char *)dcgettext("gprof","%s: could not open %s.\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","%s: could not open %s.\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%s: could not open %s.\n",5)" identifier (argument_list "("gprof","%s: could not open %s.\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%s: could not open %s.\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(*(FILE **)PTR_stderr_0002bfcc,__format,uVar4,param_1);" (call_expression "fprintf(*(FILE **)PTR_stderr_0002bfcc,__format,uVar4,param_1)" identifier (argument_list "(*(FILE **)PTR_stderr_0002bfcc,__format,uVar4,param_1)" ( (pointer_expression "*(FILE **)PTR_stderr_0002bfcc" * (cast_expression "(FILE **)PTR_stderr_0002bfcc" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , identifier , identifier , identifier ))) ;) comment (expression_statement "FUN_0001a990(1);" (call_expression "FUN_0001a990(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (expression_statement "local_430 = "%1023[^\n:]";" (assignment_expression "local_430 = "%1023[^\n:]"" identifier = (string_literal ""%1023[^\n:]"" " string_content escape_sequence string_content ")) ;) (expression_statement "local_42c = (char *)0x0;" (assignment_expression "local_42c = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (while_statement "while( true ) {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) break;\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,local_430,local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) goto LAB_00017fc2;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar11 && !bVar12) != bVar11) goto LAB_00017fd0;\n    iVar1 = fscanf(__stream,"\n",puVar14);\n    if (iVar1 == -1) {\nLAB_00017fc2:\n      do {\n        FUN_00017ec0();\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      } while (iVar1 == 0);\n      local_42c = local_42c + 1;\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) break;\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,local_430,local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) goto LAB_00017fc2;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar11 && !bVar12) != bVar11) goto LAB_00017fd0;\n    iVar1 = fscanf(__stream,"\n",puVar14);\n    if (iVar1 == -1) {\nLAB_00017fc2:\n      do {\n        FUN_00017ec0();\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      } while (iVar1 == 0);\n      local_42c = local_42c + 1;\n    }\n  }" { (expression_statement "iVar1 = feof(__stream);" (assignment_expression "iVar1 = feof(__stream)" identifier = (call_expression "feof(__stream)" identifier (argument_list "(__stream)" ( identifier )))) ;) (if_statement "if (iVar1 != 0) break;" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "puVar14 = local_41c;" (assignment_expression "puVar14 = local_41c" identifier = identifier) ;) (expression_statement "iVar1 = fscanf(__stream,local_430,local_41c);" (assignment_expression "iVar1 = fscanf(__stream,local_430,local_41c)" identifier = (call_expression "fscanf(__stream,local_430,local_41c)" identifier (argument_list "(__stream,local_430,local_41c)" ( identifier , identifier , identifier )))) ;) (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" identifier = false) ;) (expression_statement "bVar12 = iVar1 == 0;" (assignment_expression "bVar12 = iVar1 == 0" identifier = (binary_expression "iVar1 == 0" identifier == number_literal)) ;) (if_statement "if (bVar12) goto LAB_00017fc2;" if (parenthesized_expression "(bVar12)" ( identifier )) (goto_statement "goto LAB_00017fc2;" goto statement_identifier ;)) (expression_statement "iVar1 = 0xe;" (assignment_expression "iVar1 = 0xe" identifier = number_literal) ;) (expression_statement "puVar7 = local_41c;" (assignment_expression "puVar7 = local_41c" identifier = identifier) ;) (expression_statement "pbVar10 = (byte *)"No symbols in ";" (assignment_expression "pbVar10 = (byte *)"No symbols in "" identifier = (cast_expression "(byte *)"No symbols in "" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""No symbols in "" " string_content "))) ;) (do_statement "do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    }" { (if_statement "if (iVar1 == 0) break;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar1 = iVar1 + -1;" (assignment_expression "iVar1 = iVar1 + -1" identifier = (binary_expression "iVar1 + -1" identifier + number_literal)) ;) (expression_statement "bVar11 = (byte)*puVar7 < *pbVar10;" (assignment_expression "bVar11 = (byte)*puVar7 < *pbVar10" identifier = (binary_expression "(byte)*puVar7 < *pbVar10" (binary_expression "(byte)*puVar7" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar12 = (byte)*puVar7 == *pbVar10;" (assignment_expression "bVar12 = (byte)*puVar7 == *pbVar10" identifier = (binary_expression "(byte)*puVar7 == *pbVar10" (binary_expression "(byte)*puVar7" (parenthesized_expression "(byte)" ( identifier )) * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);" (assignment_expression "puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1)" identifier = (cast_expression "(uint *)((int)puVar7 + (uint)bVar13 * -2 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + (uint)bVar13 * -2 + 1)" ( (binary_expression "(int)puVar7 + (uint)bVar13 * -2 + 1" (binary_expression "(int)puVar7 + (uint)bVar13 * -2" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (if_statement "if ((!bVar11 && !bVar12) != bVar11) goto LAB_00017fd0;" if (parenthesized_expression "((!bVar11 && !bVar12) != bVar11)" ( (binary_expression "(!bVar11 && !bVar12) != bVar11" (parenthesized_expression "(!bVar11 && !bVar12)" ( (binary_expression "!bVar11 && !bVar12" (unary_expression "!bVar11" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_00017fd0;" goto statement_identifier ;)) (expression_statement "iVar1 = fscanf(__stream,"\n",puVar14);" (assignment_expression "iVar1 = fscanf(__stream,"\n",puVar14)" identifier = (call_expression "fscanf(__stream,"\n",puVar14)" identifier (argument_list "(__stream,"\n",puVar14)" ( identifier , (string_literal ""\n"" " escape_sequence ") , identifier )))) ;) (if_statement "if (iVar1 == -1) {\nLAB_00017fc2:\n      do {\n        FUN_00017ec0();\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      } while (iVar1 == 0);\n      local_42c = local_42c + 1;\n    }" if (parenthesized_expression "(iVar1 == -1)" ( (binary_expression "iVar1 == -1" identifier == number_literal) )) (compound_statement "{\nLAB_00017fc2:\n      do {\n        FUN_00017ec0();\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      } while (iVar1 == 0);\n      local_42c = local_42c + 1;\n    }" { (labeled_statement "LAB_00017fc2:\n      do {\n        FUN_00017ec0();\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      } while (iVar1 == 0);" statement_identifier : (do_statement "do {\n        FUN_00017ec0();\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      } while (iVar1 == 0);" do (compound_statement "{\n        FUN_00017ec0();\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      }" { (expression_statement "FUN_00017ec0();" (call_expression "FUN_00017ec0()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);" statement_identifier : (expression_statement "iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);" (assignment_expression "iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c)" identifier = (call_expression "fscanf(__stream,"%1023[^\n]\n",local_41c)" identifier (argument_list "(__stream,"%1023[^\n]\n",local_41c)" ( identifier , (string_literal ""%1023[^\n]\n"" " string_content escape_sequence string_content escape_sequence ") , identifier )))) ;)) }) while (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) ;)) (expression_statement "local_42c = local_42c + 1;" (assignment_expression "local_42c = local_42c + 1" identifier = (binary_expression "local_42c + 1" identifier + number_literal)) ;) })) })) (expression_statement "DAT_0002d480 = (void *)xmalloc((int)local_42c * 0xc);" (assignment_expression "DAT_0002d480 = (void *)xmalloc((int)local_42c * 0xc)" identifier = (cast_expression "(void *)xmalloc((int)local_42c * 0xc)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc((int)local_42c * 0xc)" identifier (argument_list "((int)local_42c * 0xc)" ( (binary_expression "(int)local_42c * 0xc" (cast_expression "(int)local_42c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))))) ;) (expression_statement "local_430 = (char *)&DAT_0002d480;" (assignment_expression "local_430 = (char *)&DAT_0002d480" identifier = (cast_expression "(char *)&DAT_0002d480" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0002d480" & identifier))) ;) (expression_statement "rewind(__stream);" (call_expression "rewind(__stream)" identifier (argument_list "(__stream)" ( identifier ))) ;) (expression_statement "local_428 = 0;" (assignment_expression "local_428 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00018040:\n  do {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) {\n      DAT_0002d484 = local_428;\n      pvVar8 = DAT_0002d480;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,"%1023[^\n:]",local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) break;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    puVar7 = local_41c;\n    if ((!bVar11 && !bVar12) != bVar11) {\n      do {\n        puVar14 = puVar7;\n        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar14 + 1;\n      } while (uVar3 == 0);\n      bVar11 = (uVar2 & 0x8080) == 0;\n      if (bVar11) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar11) {\n        puVar7 = (uint *)((int)puVar14 + 6);\n      }\n      iVar1 = local_428 * 0xc;\n      local_42c = (char *)((int)DAT_0002d480 + iVar1);\n      uVar4 = xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      *(undefined4 *)(local_42c + 4) = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c);\n      iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      if (iVar5 == 0) break;\n      local_42c = strrchr((char *)local_41c,0x20);\n      local_42c = local_42c + 1;\n      sVar6 = strlen(local_42c);\n      puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480);\n      uVar4 = xmalloc(sVar6 + 1);\n      *puVar9 = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }\n    iVar1 = fscanf(__stream,"\n",puVar14);\n  } while (iVar1 != -1);" statement_identifier : (do_statement "do {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) {\n      DAT_0002d484 = local_428;\n      pvVar8 = DAT_0002d480;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,"%1023[^\n:]",local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) break;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    puVar7 = local_41c;\n    if ((!bVar11 && !bVar12) != bVar11) {\n      do {\n        puVar14 = puVar7;\n        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar14 + 1;\n      } while (uVar3 == 0);\n      bVar11 = (uVar2 & 0x8080) == 0;\n      if (bVar11) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar11) {\n        puVar7 = (uint *)((int)puVar14 + 6);\n      }\n      iVar1 = local_428 * 0xc;\n      local_42c = (char *)((int)DAT_0002d480 + iVar1);\n      uVar4 = xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      *(undefined4 *)(local_42c + 4) = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c);\n      iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      if (iVar5 == 0) break;\n      local_42c = strrchr((char *)local_41c,0x20);\n      local_42c = local_42c + 1;\n      sVar6 = strlen(local_42c);\n      puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480);\n      uVar4 = xmalloc(sVar6 + 1);\n      *puVar9 = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }\n    iVar1 = fscanf(__stream,"\n",puVar14);\n  } while (iVar1 != -1);" do (compound_statement "{\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) {\n      DAT_0002d484 = local_428;\n      pvVar8 = DAT_0002d480;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,"%1023[^\n:]",local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) break;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    puVar7 = local_41c;\n    if ((!bVar11 && !bVar12) != bVar11) {\n      do {\n        puVar14 = puVar7;\n        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar14 + 1;\n      } while (uVar3 == 0);\n      bVar11 = (uVar2 & 0x8080) == 0;\n      if (bVar11) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar11) {\n        puVar7 = (uint *)((int)puVar14 + 6);\n      }\n      iVar1 = local_428 * 0xc;\n      local_42c = (char *)((int)DAT_0002d480 + iVar1);\n      uVar4 = xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      *(undefined4 *)(local_42c + 4) = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c);\n      iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      if (iVar5 == 0) break;\n      local_42c = strrchr((char *)local_41c,0x20);\n      local_42c = local_42c + 1;\n      sVar6 = strlen(local_42c);\n      puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480);\n      uVar4 = xmalloc(sVar6 + 1);\n      *puVar9 = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }\n    iVar1 = fscanf(__stream,"\n",puVar14);\n  }" { (expression_statement "iVar1 = feof(__stream);" (assignment_expression "iVar1 = feof(__stream)" identifier = (call_expression "feof(__stream)" identifier (argument_list "(__stream)" ( identifier )))) ;) (if_statement "if (iVar1 != 0) {\n      DAT_0002d484 = local_428;\n      pvVar8 = DAT_0002d480;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      DAT_0002d484 = local_428;\n      pvVar8 = DAT_0002d480;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }" { (expression_statement "DAT_0002d484 = local_428;" (assignment_expression "DAT_0002d484 = local_428" identifier = identifier) ;) (expression_statement "pvVar8 = DAT_0002d480;" (assignment_expression "pvVar8 = DAT_0002d480" identifier = identifier) ;) (if_statement "if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }" if (parenthesized_expression "(local_428 == 0)" ( (binary_expression "local_428 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000181f3;" goto statement_identifier ;) })) (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000181c9;" goto statement_identifier ;) })) (expression_statement "puVar14 = local_41c;" (assignment_expression "puVar14 = local_41c" identifier = identifier) ;) (expression_statement "iVar1 = fscanf(__stream,"%1023[^\n:]",local_41c);" (assignment_expression "iVar1 = fscanf(__stream,"%1023[^\n:]",local_41c)" identifier = (call_expression "fscanf(__stream,"%1023[^\n:]",local_41c)" identifier (argument_list "(__stream,"%1023[^\n:]",local_41c)" ( identifier , (string_literal ""%1023[^\n:]"" " string_content escape_sequence string_content ") , identifier )))) ;) (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" identifier = false) ;) (expression_statement "bVar12 = iVar1 == 0;" (assignment_expression "bVar12 = iVar1 == 0" identifier = (binary_expression "iVar1 == 0" identifier == number_literal)) ;) (if_statement "if (bVar12) break;" if (parenthesized_expression "(bVar12)" ( identifier )) (break_statement "break;" break ;)) (expression_statement "iVar1 = 0xe;" (assignment_expression "iVar1 = 0xe" identifier = number_literal) ;) (expression_statement "puVar7 = local_41c;" (assignment_expression "puVar7 = local_41c" identifier = identifier) ;) (expression_statement "pbVar10 = (byte *)"No symbols in ";" (assignment_expression "pbVar10 = (byte *)"No symbols in "" identifier = (cast_expression "(byte *)"No symbols in "" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""No symbols in "" " string_content "))) ;) (do_statement "do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    }" { (if_statement "if (iVar1 == 0) break;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar1 = iVar1 + -1;" (assignment_expression "iVar1 = iVar1 + -1" identifier = (binary_expression "iVar1 + -1" identifier + number_literal)) ;) (expression_statement "bVar11 = (byte)*puVar7 < *pbVar10;" (assignment_expression "bVar11 = (byte)*puVar7 < *pbVar10" identifier = (binary_expression "(byte)*puVar7 < *pbVar10" (binary_expression "(byte)*puVar7" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar12 = (byte)*puVar7 == *pbVar10;" (assignment_expression "bVar12 = (byte)*puVar7 == *pbVar10" identifier = (binary_expression "(byte)*puVar7 == *pbVar10" (binary_expression "(byte)*puVar7" (parenthesized_expression "(byte)" ( identifier )) * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);" (assignment_expression "puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1)" identifier = (cast_expression "(uint *)((int)puVar7 + (uint)bVar13 * -2 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + (uint)bVar13 * -2 + 1)" ( (binary_expression "(int)puVar7 + (uint)bVar13 * -2 + 1" (binary_expression "(int)puVar7 + (uint)bVar13 * -2" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (expression_statement "puVar7 = local_41c;" (assignment_expression "puVar7 = local_41c" identifier = identifier) ;) (if_statement "if ((!bVar11 && !bVar12) != bVar11) {\n      do {\n        puVar14 = puVar7;\n        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar14 + 1;\n      } while (uVar3 == 0);\n      bVar11 = (uVar2 & 0x8080) == 0;\n      if (bVar11) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar11) {\n        puVar7 = (uint *)((int)puVar14 + 6);\n      }\n      iVar1 = local_428 * 0xc;\n      local_42c = (char *)((int)DAT_0002d480 + iVar1);\n      uVar4 = xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      *(undefined4 *)(local_42c + 4) = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c);\n      iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      if (iVar5 == 0) break;\n      local_42c = strrchr((char *)local_41c,0x20);\n      local_42c = local_42c + 1;\n      sVar6 = strlen(local_42c);\n      puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480);\n      uVar4 = xmalloc(sVar6 + 1);\n      *puVar9 = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }" if (parenthesized_expression "((!bVar11 && !bVar12) != bVar11)" ( (binary_expression "(!bVar11 && !bVar12) != bVar11" (parenthesized_expression "(!bVar11 && !bVar12)" ( (binary_expression "!bVar11 && !bVar12" (unary_expression "!bVar11" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) != identifier) )) (compound_statement "{\n      do {\n        puVar14 = puVar7;\n        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar14 + 1;\n      } while (uVar3 == 0);\n      bVar11 = (uVar2 & 0x8080) == 0;\n      if (bVar11) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar11) {\n        puVar7 = (uint *)((int)puVar14 + 6);\n      }\n      iVar1 = local_428 * 0xc;\n      local_42c = (char *)((int)DAT_0002d480 + iVar1);\n      uVar4 = xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      *(undefined4 *)(local_42c + 4) = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c);\n      iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      if (iVar5 == 0) break;\n      local_42c = strrchr((char *)local_41c,0x20);\n      local_42c = local_42c + 1;\n      sVar6 = strlen(local_42c);\n      puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480);\n      uVar4 = xmalloc(sVar6 + 1);\n      *puVar9 = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }" { (do_statement "do {\n        puVar14 = puVar7;\n        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar14 + 1;\n      } while (uVar3 == 0);" do (compound_statement "{\n        puVar14 = puVar7;\n        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar14 + 1;\n      }" { (expression_statement "puVar14 = puVar7;" (assignment_expression "puVar14 = puVar7" identifier = identifier) ;) (expression_statement "uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;" (assignment_expression "uVar2 = *puVar14 + 0xfefefeff & ~*puVar14" identifier = (binary_expression "*puVar14 + 0xfefefeff & ~*puVar14" (binary_expression "*puVar14 + 0xfefefeff" (pointer_expression "*puVar14" * identifier) + number_literal) & (unary_expression "~*puVar14" ~ (pointer_expression "*puVar14" * identifier)))) ;) (expression_statement "uVar3 = uVar2 & 0x80808080;" (assignment_expression "uVar3 = uVar2 & 0x80808080" identifier = (binary_expression "uVar2 & 0x80808080" identifier & number_literal)) ;) (expression_statement "puVar7 = puVar14 + 1;" (assignment_expression "puVar7 = puVar14 + 1" identifier = (binary_expression "puVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) ;) (expression_statement "bVar11 = (uVar2 & 0x8080) == 0;" (assignment_expression "bVar11 = (uVar2 & 0x8080) == 0" identifier = (binary_expression "(uVar2 & 0x8080) == 0" (parenthesized_expression "(uVar2 & 0x8080)" ( (binary_expression "uVar2 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar11) {\n        uVar3 = uVar3 >> 0x10;\n      }" if (parenthesized_expression "(bVar11)" ( identifier )) (compound_statement "{\n        uVar3 = uVar3 >> 0x10;\n      }" { (expression_statement "uVar3 = uVar3 >> 0x10;" (assignment_expression "uVar3 = uVar3 >> 0x10" identifier = (binary_expression "uVar3 >> 0x10" identifier >> number_literal)) ;) })) (if_statement "if (bVar11) {\n        puVar7 = (uint *)((int)puVar14 + 6);\n      }" if (parenthesized_expression "(bVar11)" ( identifier )) (compound_statement "{\n        puVar7 = (uint *)((int)puVar14 + 6);\n      }" { (expression_statement "puVar7 = (uint *)((int)puVar14 + 6);" (assignment_expression "puVar7 = (uint *)((int)puVar14 + 6)" identifier = (cast_expression "(uint *)((int)puVar14 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + 6)" ( (binary_expression "(int)puVar14 + 6" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "iVar1 = local_428 * 0xc;" (assignment_expression "iVar1 = local_428 * 0xc" identifier = (binary_expression "local_428 * 0xc" identifier * number_literal)) ;) (expression_statement "local_42c = (char *)((int)DAT_0002d480 + iVar1);" (assignment_expression "local_42c = (char *)((int)DAT_0002d480 + iVar1)" identifier = (cast_expression "(char *)((int)DAT_0002d480 + iVar1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)DAT_0002d480 + iVar1)" ( (binary_expression "(int)DAT_0002d480 + iVar1" (cast_expression "(int)DAT_0002d480" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "uVar4 = xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));" (assignment_expression "uVar4 = xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2))" identifier = (call_expression "xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2))" identifier (argument_list "((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2))" ( (cast_expression "(byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2)" ( (binary_expression "(int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2" (binary_expression "(int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3))" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3))" ( (binary_expression "-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)" (unary_expression "-(int)local_41c" - (cast_expression "(int)local_41c" ( (type_descriptor "int" primitive_type) ) identifier)) - (cast_expression "(uint)CARRY1((byte)uVar3,(byte)uVar3)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY1((byte)uVar3,(byte)uVar3)" identifier (argument_list "((byte)uVar3,(byte)uVar3)" ( (cast_expression "(byte)uVar3" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar3" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) ))) + number_literal) ))) )))) ;) (expression_statement "*(undefined4 *)(local_42c + 4) = uVar4;" (assignment_expression "*(undefined4 *)(local_42c + 4) = uVar4" (pointer_expression "*(undefined4 *)(local_42c + 4)" * (cast_expression "(undefined4 *)(local_42c + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_42c + 4)" ( (binary_expression "local_42c + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c);" (call_expression "strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c)" identifier (argument_list "(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c)" ( (pointer_expression "*(char **)((int)DAT_0002d480 + iVar1 + 4)" * (cast_expression "(char **)((int)DAT_0002d480 + iVar1 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)DAT_0002d480 + iVar1 + 4)" ( (binary_expression "(int)DAT_0002d480 + iVar1 + 4" (binary_expression "(int)DAT_0002d480 + iVar1" (cast_expression "(int)DAT_0002d480" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) , (cast_expression "(char *)local_41c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c);" (assignment_expression "iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c)" identifier = (call_expression "fscanf(__stream,"%1023[^\n]\n",local_41c)" identifier (argument_list "(__stream,"%1023[^\n]\n",local_41c)" ( identifier , (string_literal ""%1023[^\n]\n"" " string_content escape_sequence string_content escape_sequence ") , identifier )))) ;) (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "local_42c = strrchr((char *)local_41c,0x20);" (assignment_expression "local_42c = strrchr((char *)local_41c,0x20)" identifier = (call_expression "strrchr((char *)local_41c,0x20)" identifier (argument_list "((char *)local_41c,0x20)" ( (cast_expression "(char *)local_41c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (expression_statement "local_42c = local_42c + 1;" (assignment_expression "local_42c = local_42c + 1" identifier = (binary_expression "local_42c + 1" identifier + number_literal)) ;) (expression_statement "sVar6 = strlen(local_42c);" (assignment_expression "sVar6 = strlen(local_42c)" identifier = (call_expression "strlen(local_42c)" identifier (argument_list "(local_42c)" ( identifier )))) ;) (expression_statement "puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480);" (assignment_expression "puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480)" identifier = (cast_expression "(undefined4 *)(iVar1 + (int)DAT_0002d480)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + (int)DAT_0002d480)" ( (binary_expression "iVar1 + (int)DAT_0002d480" identifier + (cast_expression "(int)DAT_0002d480" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "uVar4 = xmalloc(sVar6 + 1);" (assignment_expression "uVar4 = xmalloc(sVar6 + 1)" identifier = (call_expression "xmalloc(sVar6 + 1)" identifier (argument_list "(sVar6 + 1)" ( (binary_expression "sVar6 + 1" identifier + number_literal) )))) ;) (expression_statement "*puVar9 = uVar4;" (assignment_expression "*puVar9 = uVar4" (pointer_expression "*puVar9" * identifier) = identifier) ;) (expression_statement "strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c);" (call_expression "strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c)" identifier (argument_list "(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c)" ( (pointer_expression "*(char **)((int)DAT_0002d480 + local_428 * 0xc)" * (cast_expression "(char **)((int)DAT_0002d480 + local_428 * 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)DAT_0002d480 + local_428 * 0xc)" ( (binary_expression "(int)DAT_0002d480 + local_428 * 0xc" (cast_expression "(int)DAT_0002d480" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "local_428 * 0xc" identifier * number_literal)) )))) , identifier ))) ;) (expression_statement "local_428 = local_428 + 1;" (assignment_expression "local_428 = local_428 + 1" identifier = (binary_expression "local_428 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_00018040;" goto statement_identifier ;) })) (expression_statement "iVar1 = fscanf(__stream,"\n",puVar14);" (assignment_expression "iVar1 = fscanf(__stream,"\n",puVar14)" identifier = (call_expression "fscanf(__stream,"\n",puVar14)" identifier (argument_list "(__stream,"\n",puVar14)" ( identifier , (string_literal ""\n"" " escape_sequence ") , identifier )))) ;) }) while (parenthesized_expression "(iVar1 != -1)" ( (binary_expression "iVar1 != -1" identifier != number_literal) )) ;)) (goto_statement "goto LAB_00017fc2;" goto statement_identifier ;) (labeled_statement "LAB_000181c9:\n  iVar5 = (int)pvVar8 + iVar1;" statement_identifier : (expression_statement "iVar5 = (int)pvVar8 + iVar1;" (assignment_expression "iVar5 = (int)pvVar8 + iVar1" identifier = (binary_expression "(int)pvVar8 + iVar1" (cast_expression "(int)pvVar8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;)) (if_statement "if (uVar3 == 0) {\nLAB_000181b8:\n    *(byte *)(iVar5 + 8) = *(byte *)(iVar5 + 8) | 1;\n  }\n  else {\n    iVar5 = filename_cmp(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8));\n    pvVar8 = DAT_0002d480;\n    if (iVar5 != 0) {\n      iVar5 = (int)DAT_0002d480 + iVar1;\n      goto LAB_000181b8;\n    }\n  }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000181b8:\n    *(byte *)(iVar5 + 8) = *(byte *)(iVar5 + 8) | 1;\n  }" { (labeled_statement "LAB_000181b8:\n    *(byte *)(iVar5 + 8) = *(byte *)(iVar5 + 8) | 1;" statement_identifier : (expression_statement "*(byte *)(iVar5 + 8) = *(byte *)(iVar5 + 8) | 1;" (assignment_expression "*(byte *)(iVar5 + 8) = *(byte *)(iVar5 + 8) | 1" (pointer_expression "*(byte *)(iVar5 + 8)" * (cast_expression "(byte *)(iVar5 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar5 + 8) | 1" (pointer_expression "*(byte *)(iVar5 + 8)" * (cast_expression "(byte *)(iVar5 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) | number_literal)) ;)) }) (else_clause "else {\n    iVar5 = filename_cmp(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8));\n    pvVar8 = DAT_0002d480;\n    if (iVar5 != 0) {\n      iVar5 = (int)DAT_0002d480 + iVar1;\n      goto LAB_000181b8;\n    }\n  }" else (compound_statement "{\n    iVar5 = filename_cmp(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8));\n    pvVar8 = DAT_0002d480;\n    if (iVar5 != 0) {\n      iVar5 = (int)DAT_0002d480 + iVar1;\n      goto LAB_000181b8;\n    }\n  }" { (expression_statement "iVar5 = filename_cmp(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8));" (assignment_expression "iVar5 = filename_cmp(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8))" identifier = (call_expression "filename_cmp(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8))" identifier (argument_list "(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8))" ( (pointer_expression "*(undefined4 *)(iVar5 + 4)" * (cast_expression "(undefined4 *)(iVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)((int)pvVar8 + iVar1 + -8)" * (cast_expression "(undefined4 *)((int)pvVar8 + iVar1 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar8 + iVar1 + -8)" ( (binary_expression "(int)pvVar8 + iVar1 + -8" (binary_expression "(int)pvVar8 + iVar1" (cast_expression "(int)pvVar8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) )))) ;) (expression_statement "pvVar8 = DAT_0002d480;" (assignment_expression "pvVar8 = DAT_0002d480" identifier = identifier) ;) (if_statement "if (iVar5 != 0) {\n      iVar5 = (int)DAT_0002d480 + iVar1;\n      goto LAB_000181b8;\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar5 = (int)DAT_0002d480 + iVar1;\n      goto LAB_000181b8;\n    }" { (expression_statement "iVar5 = (int)DAT_0002d480 + iVar1;" (assignment_expression "iVar5 = (int)DAT_0002d480 + iVar1" identifier = (binary_expression "(int)DAT_0002d480 + iVar1" (cast_expression "(int)DAT_0002d480" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (goto_statement "goto LAB_000181b8;" goto statement_identifier ;) })) }))) (expression_statement "uVar3 = uVar3 + 1;" (assignment_expression "uVar3 = uVar3 + 1" identifier = (binary_expression "uVar3 + 1" identifier + number_literal)) ;) (expression_statement "iVar1 = iVar1 + 0xc;" (assignment_expression "iVar1 = iVar1 + 0xc" identifier = (binary_expression "iVar1 + 0xc" identifier + number_literal)) ;) (expression_statement "uVar2 = DAT_0002d484;" (assignment_expression "uVar2 = DAT_0002d484" identifier = identifier) ;) (if_statement "if (DAT_0002d484 <= uVar3) {\nLAB_000181f3:\n    qsort(pvVar8,uVar2,0xc,FUN_00018260);\n    fclose(__stream);\n    return;\n  }" if (parenthesized_expression "(DAT_0002d484 <= uVar3)" ( (binary_expression "DAT_0002d484 <= uVar3" identifier <= identifier) )) (compound_statement "{\nLAB_000181f3:\n    qsort(pvVar8,uVar2,0xc,FUN_00018260);\n    fclose(__stream);\n    return;\n  }" { (labeled_statement "LAB_000181f3:\n    qsort(pvVar8,uVar2,0xc,FUN_00018260);" statement_identifier : (expression_statement "qsort(pvVar8,uVar2,0xc,FUN_00018260);" (call_expression "qsort(pvVar8,uVar2,0xc,FUN_00018260)" identifier (argument_list "(pvVar8,uVar2,0xc,FUN_00018260)" ( identifier , identifier , number_literal , identifier ))) ;)) (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" identifier (argument_list "(__stream)" ( identifier ))) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_000181c9;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 read_function_mappings(char *filename)\n\n{\n  FILE *__stream;\n  int iVar1;\n  uint uVar2;\n  uint uVar3;\n  char *pcVar4;\n  size_t sVar5;\n  int iVar6;\n  char *__format;\n  uint *puVar7;\n  function_map *pfVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  uint *puVar15;\n  function_map **local_430;\n  function_map *local_42c;\n  uint local_428;\n  char dummy [1024];\n  \n  bVar14 = 0;\n  __stream = fopen64(filename,"r");\n  pcVar4 = whoami;\n  if (__stream == (FILE *)0x0) {\n    __format = (char *)dcgettext("gprof","%s: could not open %s.\n",5);\n    fprintf(*(FILE **)PTR_stderr_0002bfcc,__format,pcVar4,filename);\n                    /* WARNING: Subroutine does not return */\n    done(1);\n  }\n  local_42c = (function_map *)0x0;\n  local_430 = (function_map **)"%1023[^\n:]";\n  while( true ) {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) break;\n    pbVar11 = (byte *)dummy;\n    iVar1 = fscanf(__stream,(char *)local_430,dummy);\n    bVar12 = false;\n    bVar13 = iVar1 == 0;\n    if (bVar13) goto LAB_00017fc2;\n    iVar1 = 0xe;\n    pbVar9 = (byte *)dummy;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar12 = *pbVar9 < *pbVar10;\n      bVar13 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n      pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    if ((!bVar12 && !bVar13) != bVar12) goto LAB_00017fd0;\n    iVar1 = fscanf(__stream,"\n",pbVar11);\n    if (iVar1 == -1) {\nLAB_00017fc2:\n      do {\n        parse_error(filename);\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",dummy);\n      } while (iVar1 == 0);\n      local_42c = (function_map *)((int)&local_42c->function_name + 1);\n    }\n  }\n  symbol_map = (function_map *)xmalloc((int)local_42c * 0xc);\n  local_430 = &symbol_map;\n  rewind(__stream);\n  local_428 = 0;\nLAB_00018040:\n  do {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) {\n      symbol_map_count = local_428;\n      pfVar8 = symbol_map;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }\n    puVar15 = (uint *)dummy;\n    iVar1 = fscanf(__stream,"%1023[^\n:]",dummy);\n    bVar12 = false;\n    bVar13 = iVar1 == 0;\n    if (bVar13) break;\n    iVar1 = 0xe;\n    puVar7 = (uint *)dummy;\n    pbVar11 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar12 = (byte)*puVar7 < *pbVar11;\n      bVar13 = (byte)*puVar7 == *pbVar11;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar14 * -2 + 1);\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    puVar7 = (uint *)dummy;\n    if ((!bVar12 && !bVar13) != bVar12) {\n      do {\n        puVar15 = puVar7;\n        uVar2 = *puVar15 + 0xfefefeff & ~*puVar15;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar15 + 1;\n      } while (uVar3 == 0);\n      bVar12 = (uVar2 & 0x8080) == 0;\n      if (bVar12) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar12) {\n        puVar7 = (uint *)((int)puVar15 + 6);\n      }\n      local_42c = symbol_map + local_428;\n      pcVar4 = (char *)xmalloc((byte *)((int)puVar7 +\n                                       (-(int)dummy - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      local_42c->file_name = pcVar4;\n      strcpy(symbol_map[local_428].file_name,dummy);\n      iVar1 = fscanf(__stream,"%1023[^\n]\n",dummy);\n      if (iVar1 == 0) break;\n      pcVar4 = strrchr(dummy,0x20);\n      local_42c = (function_map *)(pcVar4 + 1);\n      sVar5 = strlen((char *)local_42c);\n      pfVar8 = symbol_map + local_428;\n      pcVar4 = (char *)xmalloc(sVar5 + 1);\n      pfVar8->function_name = pcVar4;\n      strcpy(symbol_map[local_428].function_name,(char *)local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }\n    iVar1 = fscanf(__stream,"\n",puVar15);\n  } while (iVar1 != -1);\n  goto LAB_00017fc2;\nLAB_000181c9:\n  iVar6 = (int)&pfVar8->function_name + iVar1;\n  if (uVar3 == 0) {\nLAB_000181b8:\n    *(byte *)(iVar6 + 8) = *(byte *)(iVar6 + 8) | 1;\n  }\n  else {\n    iVar6 = filename_cmp(*(undefined4 *)(iVar6 + 4),*(undefined4 *)((int)pfVar8 + iVar1 + -8));\n    pfVar8 = symbol_map;\n    if (iVar6 != 0) {\n      iVar6 = (int)&symbol_map->function_name + iVar1;\n      goto LAB_000181b8;\n    }\n  }\n  uVar3 = uVar3 + 1;\n  iVar1 = iVar1 + 0xc;\n  uVar2 = symbol_map_count;\n  if (symbol_map_count <= uVar3) {\nLAB_000181f3:\n    qsort(pfVar8,uVar2,0xc,cmp_symbol_map);\n    fclose(__stream);\n    return;\n  }\n  goto LAB_000181c9;\n}\n\n" comment (function_definition "void __regparm3 read_function_mappings(char *filename)\n\n{\n  FILE *__stream;\n  int iVar1;\n  uint uVar2;\n  uint uVar3;\n  char *pcVar4;\n  size_t sVar5;\n  int iVar6;\n  char *__format;\n  uint *puVar7;\n  function_map *pfVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  uint *puVar15;\n  function_map **local_430;\n  function_map *local_42c;\n  uint local_428;\n  char dummy [1024];\n  \n  bVar14 = 0;\n  __stream = fopen64(filename,"r");\n  pcVar4 = whoami;\n  if (__stream == (FILE *)0x0) {\n    __format = (char *)dcgettext("gprof","%s: could not open %s.\n",5);\n    fprintf(*(FILE **)PTR_stderr_0002bfcc,__format,pcVar4,filename);\n                    /* WARNING: Subroutine does not return */\n    done(1);\n  }\n  local_42c = (function_map *)0x0;\n  local_430 = (function_map **)"%1023[^\n:]";\n  while( true ) {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) break;\n    pbVar11 = (byte *)dummy;\n    iVar1 = fscanf(__stream,(char *)local_430,dummy);\n    bVar12 = false;\n    bVar13 = iVar1 == 0;\n    if (bVar13) goto LAB_00017fc2;\n    iVar1 = 0xe;\n    pbVar9 = (byte *)dummy;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar12 = *pbVar9 < *pbVar10;\n      bVar13 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n      pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    if ((!bVar12 && !bVar13) != bVar12) goto LAB_00017fd0;\n    iVar1 = fscanf(__stream,"\n",pbVar11);\n    if (iVar1 == -1) {\nLAB_00017fc2:\n      do {\n        parse_error(filename);\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",dummy);\n      } while (iVar1 == 0);\n      local_42c = (function_map *)((int)&local_42c->function_name + 1);\n    }\n  }\n  symbol_map = (function_map *)xmalloc((int)local_42c * 0xc);\n  local_430 = &symbol_map;\n  rewind(__stream);\n  local_428 = 0;\nLAB_00018040:\n  do {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) {\n      symbol_map_count = local_428;\n      pfVar8 = symbol_map;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }\n    puVar15 = (uint *)dummy;\n    iVar1 = fscanf(__stream,"%1023[^\n:]",dummy);\n    bVar12 = false;\n    bVar13 = iVar1 == 0;\n    if (bVar13) break;\n    iVar1 = 0xe;\n    puVar7 = (uint *)dummy;\n    pbVar11 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar12 = (byte)*puVar7 < *pbVar11;\n      bVar13 = (byte)*puVar7 == *pbVar11;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar14 * -2 + 1);\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    puVar7 = (uint *)dummy;\n    if ((!bVar12 && !bVar13) != bVar12) {\n      do {\n        puVar15 = puVar7;\n        uVar2 = *puVar15 + 0xfefefeff & ~*puVar15;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar15 + 1;\n      } while (uVar3 == 0);\n      bVar12 = (uVar2 & 0x8080) == 0;\n      if (bVar12) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar12) {\n        puVar7 = (uint *)((int)puVar15 + 6);\n      }\n      local_42c = symbol_map + local_428;\n      pcVar4 = (char *)xmalloc((byte *)((int)puVar7 +\n                                       (-(int)dummy - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      local_42c->file_name = pcVar4;\n      strcpy(symbol_map[local_428].file_name,dummy);\n      iVar1 = fscanf(__stream,"%1023[^\n]\n",dummy);\n      if (iVar1 == 0) break;\n      pcVar4 = strrchr(dummy,0x20);\n      local_42c = (function_map *)(pcVar4 + 1);\n      sVar5 = strlen((char *)local_42c);\n      pfVar8 = symbol_map + local_428;\n      pcVar4 = (char *)xmalloc(sVar5 + 1);\n      pfVar8->function_name = pcVar4;\n      strcpy(symbol_map[local_428].function_name,(char *)local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }\n    iVar1 = fscanf(__stream,"\n",puVar15);\n  } while (iVar1 != -1);\n  goto LAB_00017fc2;\nLAB_000181c9:\n  iVar6 = (int)&pfVar8->function_name + iVar1;\n  if (uVar3 == 0) {\nLAB_000181b8:\n    *(byte *)(iVar6 + 8) = *(byte *)(iVar6 + 8) | 1;\n  }\n  else {\n    iVar6 = filename_cmp(*(undefined4 *)(iVar6 + 4),*(undefined4 *)((int)pfVar8 + iVar1 + -8));\n    pfVar8 = symbol_map;\n    if (iVar6 != 0) {\n      iVar6 = (int)&symbol_map->function_name + iVar1;\n      goto LAB_000181b8;\n    }\n  }\n  uVar3 = uVar3 + 1;\n  iVar1 = iVar1 + 0xc;\n  uVar2 = symbol_map_count;\n  if (symbol_map_count <= uVar3) {\nLAB_000181f3:\n    qsort(pfVar8,uVar2,0xc,cmp_symbol_map);\n    fclose(__stream);\n    return;\n  }\n  goto LAB_000181c9;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "read_function_mappings(char *filename)" identifier (parameter_list "(char *filename)" ( (parameter_declaration "char *filename" primitive_type (pointer_declarator "*filename" * identifier)) ))) (compound_statement "{\n  FILE *__stream;\n  int iVar1;\n  uint uVar2;\n  uint uVar3;\n  char *pcVar4;\n  size_t sVar5;\n  int iVar6;\n  char *__format;\n  uint *puVar7;\n  function_map *pfVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  uint *puVar15;\n  function_map **local_430;\n  function_map *local_42c;\n  uint local_428;\n  char dummy [1024];\n  \n  bVar14 = 0;\n  __stream = fopen64(filename,"r");\n  pcVar4 = whoami;\n  if (__stream == (FILE *)0x0) {\n    __format = (char *)dcgettext("gprof","%s: could not open %s.\n",5);\n    fprintf(*(FILE **)PTR_stderr_0002bfcc,__format,pcVar4,filename);\n                    /* WARNING: Subroutine does not return */\n    done(1);\n  }\n  local_42c = (function_map *)0x0;\n  local_430 = (function_map **)"%1023[^\n:]";\n  while( true ) {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) break;\n    pbVar11 = (byte *)dummy;\n    iVar1 = fscanf(__stream,(char *)local_430,dummy);\n    bVar12 = false;\n    bVar13 = iVar1 == 0;\n    if (bVar13) goto LAB_00017fc2;\n    iVar1 = 0xe;\n    pbVar9 = (byte *)dummy;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar12 = *pbVar9 < *pbVar10;\n      bVar13 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n      pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    if ((!bVar12 && !bVar13) != bVar12) goto LAB_00017fd0;\n    iVar1 = fscanf(__stream,"\n",pbVar11);\n    if (iVar1 == -1) {\nLAB_00017fc2:\n      do {\n        parse_error(filename);\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",dummy);\n      } while (iVar1 == 0);\n      local_42c = (function_map *)((int)&local_42c->function_name + 1);\n    }\n  }\n  symbol_map = (function_map *)xmalloc((int)local_42c * 0xc);\n  local_430 = &symbol_map;\n  rewind(__stream);\n  local_428 = 0;\nLAB_00018040:\n  do {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) {\n      symbol_map_count = local_428;\n      pfVar8 = symbol_map;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }\n    puVar15 = (uint *)dummy;\n    iVar1 = fscanf(__stream,"%1023[^\n:]",dummy);\n    bVar12 = false;\n    bVar13 = iVar1 == 0;\n    if (bVar13) break;\n    iVar1 = 0xe;\n    puVar7 = (uint *)dummy;\n    pbVar11 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar12 = (byte)*puVar7 < *pbVar11;\n      bVar13 = (byte)*puVar7 == *pbVar11;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar14 * -2 + 1);\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    puVar7 = (uint *)dummy;\n    if ((!bVar12 && !bVar13) != bVar12) {\n      do {\n        puVar15 = puVar7;\n        uVar2 = *puVar15 + 0xfefefeff & ~*puVar15;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar15 + 1;\n      } while (uVar3 == 0);\n      bVar12 = (uVar2 & 0x8080) == 0;\n      if (bVar12) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar12) {\n        puVar7 = (uint *)((int)puVar15 + 6);\n      }\n      local_42c = symbol_map + local_428;\n      pcVar4 = (char *)xmalloc((byte *)((int)puVar7 +\n                                       (-(int)dummy - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      local_42c->file_name = pcVar4;\n      strcpy(symbol_map[local_428].file_name,dummy);\n      iVar1 = fscanf(__stream,"%1023[^\n]\n",dummy);\n      if (iVar1 == 0) break;\n      pcVar4 = strrchr(dummy,0x20);\n      local_42c = (function_map *)(pcVar4 + 1);\n      sVar5 = strlen((char *)local_42c);\n      pfVar8 = symbol_map + local_428;\n      pcVar4 = (char *)xmalloc(sVar5 + 1);\n      pfVar8->function_name = pcVar4;\n      strcpy(symbol_map[local_428].function_name,(char *)local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }\n    iVar1 = fscanf(__stream,"\n",puVar15);\n  } while (iVar1 != -1);\n  goto LAB_00017fc2;\nLAB_000181c9:\n  iVar6 = (int)&pfVar8->function_name + iVar1;\n  if (uVar3 == 0) {\nLAB_000181b8:\n    *(byte *)(iVar6 + 8) = *(byte *)(iVar6 + 8) | 1;\n  }\n  else {\n    iVar6 = filename_cmp(*(undefined4 *)(iVar6 + 4),*(undefined4 *)((int)pfVar8 + iVar1 + -8));\n    pfVar8 = symbol_map;\n    if (iVar6 != 0) {\n      iVar6 = (int)&symbol_map->function_name + iVar1;\n      goto LAB_000181b8;\n    }\n  }\n  uVar3 = uVar3 + 1;\n  iVar1 = iVar1 + 0xc;\n  uVar2 = symbol_map_count;\n  if (symbol_map_count <= uVar3) {\nLAB_000181f3:\n    qsort(pfVar8,uVar2,0xc,cmp_symbol_map);\n    fclose(__stream);\n    return;\n  }\n  goto LAB_000181c9;\n}" { (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char *__format;" primitive_type (pointer_declarator "*__format" * identifier) ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "function_map *pfVar8;" type_identifier (pointer_declarator "*pfVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "uint *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "function_map **local_430;" type_identifier (pointer_declarator "**local_430" * (pointer_declarator "*local_430" * identifier)) ;) (declaration "function_map *local_42c;" type_identifier (pointer_declarator "*local_42c" * identifier) ;) (declaration "uint local_428;" type_identifier identifier ;) (declaration "char dummy [1024];" primitive_type (array_declarator "dummy [1024]" identifier [ number_literal ]) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "__stream = fopen64(filename,"r");" (assignment_expression "__stream = fopen64(filename,"r")" identifier = (call_expression "fopen64(filename,"r")" identifier (argument_list "(filename,"r")" ( identifier , (string_literal ""r"" " string_content ") )))) ;) (expression_statement "pcVar4 = whoami;" (assignment_expression "pcVar4 = whoami" identifier = identifier) ;) (if_statement "if (__stream == (FILE *)0x0) {\n    __format = (char *)dcgettext("gprof","%s: could not open %s.\n",5);\n    fprintf(*(FILE **)PTR_stderr_0002bfcc,__format,pcVar4,filename);\n                    /* WARNING: Subroutine does not return */\n    done(1);\n  }" if (parenthesized_expression "(__stream == (FILE *)0x0)" ( (binary_expression "__stream == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    __format = (char *)dcgettext("gprof","%s: could not open %s.\n",5);\n    fprintf(*(FILE **)PTR_stderr_0002bfcc,__format,pcVar4,filename);\n                    /* WARNING: Subroutine does not return */\n    done(1);\n  }" { (expression_statement "__format = (char *)dcgettext("gprof","%s: could not open %s.\n",5);" (assignment_expression "__format = (char *)dcgettext("gprof","%s: could not open %s.\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","%s: could not open %s.\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%s: could not open %s.\n",5)" identifier (argument_list "("gprof","%s: could not open %s.\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%s: could not open %s.\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(*(FILE **)PTR_stderr_0002bfcc,__format,pcVar4,filename);" (call_expression "fprintf(*(FILE **)PTR_stderr_0002bfcc,__format,pcVar4,filename)" identifier (argument_list "(*(FILE **)PTR_stderr_0002bfcc,__format,pcVar4,filename)" ( (pointer_expression "*(FILE **)PTR_stderr_0002bfcc" * (cast_expression "(FILE **)PTR_stderr_0002bfcc" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , identifier , identifier , identifier ))) ;) comment (expression_statement "done(1);" (call_expression "done(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (expression_statement "local_42c = (function_map *)0x0;" (assignment_expression "local_42c = (function_map *)0x0" identifier = (cast_expression "(function_map *)0x0" ( (type_descriptor "function_map *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_430 = (function_map **)"%1023[^\n:]";" (assignment_expression "local_430 = (function_map **)"%1023[^\n:]"" identifier = (cast_expression "(function_map **)"%1023[^\n:]"" ( (type_descriptor "function_map **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (string_literal ""%1023[^\n:]"" " string_content escape_sequence string_content "))) ;) (while_statement "while( true ) {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) break;\n    pbVar11 = (byte *)dummy;\n    iVar1 = fscanf(__stream,(char *)local_430,dummy);\n    bVar12 = false;\n    bVar13 = iVar1 == 0;\n    if (bVar13) goto LAB_00017fc2;\n    iVar1 = 0xe;\n    pbVar9 = (byte *)dummy;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar12 = *pbVar9 < *pbVar10;\n      bVar13 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n      pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    if ((!bVar12 && !bVar13) != bVar12) goto LAB_00017fd0;\n    iVar1 = fscanf(__stream,"\n",pbVar11);\n    if (iVar1 == -1) {\nLAB_00017fc2:\n      do {\n        parse_error(filename);\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",dummy);\n      } while (iVar1 == 0);\n      local_42c = (function_map *)((int)&local_42c->function_name + 1);\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) break;\n    pbVar11 = (byte *)dummy;\n    iVar1 = fscanf(__stream,(char *)local_430,dummy);\n    bVar12 = false;\n    bVar13 = iVar1 == 0;\n    if (bVar13) goto LAB_00017fc2;\n    iVar1 = 0xe;\n    pbVar9 = (byte *)dummy;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar12 = *pbVar9 < *pbVar10;\n      bVar13 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n      pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    if ((!bVar12 && !bVar13) != bVar12) goto LAB_00017fd0;\n    iVar1 = fscanf(__stream,"\n",pbVar11);\n    if (iVar1 == -1) {\nLAB_00017fc2:\n      do {\n        parse_error(filename);\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",dummy);\n      } while (iVar1 == 0);\n      local_42c = (function_map *)((int)&local_42c->function_name + 1);\n    }\n  }" { (expression_statement "iVar1 = feof(__stream);" (assignment_expression "iVar1 = feof(__stream)" identifier = (call_expression "feof(__stream)" identifier (argument_list "(__stream)" ( identifier )))) ;) (if_statement "if (iVar1 != 0) break;" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "pbVar11 = (byte *)dummy;" (assignment_expression "pbVar11 = (byte *)dummy" identifier = (cast_expression "(byte *)dummy" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar1 = fscanf(__stream,(char *)local_430,dummy);" (assignment_expression "iVar1 = fscanf(__stream,(char *)local_430,dummy)" identifier = (call_expression "fscanf(__stream,(char *)local_430,dummy)" identifier (argument_list "(__stream,(char *)local_430,dummy)" ( identifier , (cast_expression "(char *)local_430" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar13 = iVar1 == 0;" (assignment_expression "bVar13 = iVar1 == 0" identifier = (binary_expression "iVar1 == 0" identifier == number_literal)) ;) (if_statement "if (bVar13) goto LAB_00017fc2;" if (parenthesized_expression "(bVar13)" ( identifier )) (goto_statement "goto LAB_00017fc2;" goto statement_identifier ;)) (expression_statement "iVar1 = 0xe;" (assignment_expression "iVar1 = 0xe" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)dummy;" (assignment_expression "pbVar9 = (byte *)dummy" identifier = (cast_expression "(byte *)dummy" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar10 = (byte *)"No symbols in ";" (assignment_expression "pbVar10 = (byte *)"No symbols in "" identifier = (cast_expression "(byte *)"No symbols in "" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""No symbols in "" " string_content "))) ;) (do_statement "do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar12 = *pbVar9 < *pbVar10;\n      bVar13 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n      pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);" do (compound_statement "{\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar12 = *pbVar9 < *pbVar10;\n      bVar13 = *pbVar9 == *pbVar10;\n      pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n      pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n    }" { (if_statement "if (iVar1 == 0) break;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar1 = iVar1 + -1;" (assignment_expression "iVar1 = iVar1 + -1" identifier = (binary_expression "iVar1 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar9 < *pbVar10;" (assignment_expression "bVar12 = *pbVar9 < *pbVar10" identifier = (binary_expression "*pbVar9 < *pbVar10" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar13 = *pbVar9 == *pbVar10;" (assignment_expression "bVar13 = *pbVar9 == *pbVar10" identifier = (binary_expression "*pbVar9 == *pbVar10" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (if_statement "if ((!bVar12 && !bVar13) != bVar12) goto LAB_00017fd0;" if (parenthesized_expression "((!bVar12 && !bVar13) != bVar12)" ( (binary_expression "(!bVar12 && !bVar13) != bVar12" (parenthesized_expression "(!bVar12 && !bVar13)" ( (binary_expression "!bVar12 && !bVar13" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_00017fd0;" goto statement_identifier ;)) (expression_statement "iVar1 = fscanf(__stream,"\n",pbVar11);" (assignment_expression "iVar1 = fscanf(__stream,"\n",pbVar11)" identifier = (call_expression "fscanf(__stream,"\n",pbVar11)" identifier (argument_list "(__stream,"\n",pbVar11)" ( identifier , (string_literal ""\n"" " escape_sequence ") , identifier )))) ;) (if_statement "if (iVar1 == -1) {\nLAB_00017fc2:\n      do {\n        parse_error(filename);\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",dummy);\n      } while (iVar1 == 0);\n      local_42c = (function_map *)((int)&local_42c->function_name + 1);\n    }" if (parenthesized_expression "(iVar1 == -1)" ( (binary_expression "iVar1 == -1" identifier == number_literal) )) (compound_statement "{\nLAB_00017fc2:\n      do {\n        parse_error(filename);\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",dummy);\n      } while (iVar1 == 0);\n      local_42c = (function_map *)((int)&local_42c->function_name + 1);\n    }" { (labeled_statement "LAB_00017fc2:\n      do {\n        parse_error(filename);\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",dummy);\n      } while (iVar1 == 0);" statement_identifier : (do_statement "do {\n        parse_error(filename);\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",dummy);\n      } while (iVar1 == 0);" do (compound_statement "{\n        parse_error(filename);\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",dummy);\n      }" { (expression_statement "parse_error(filename);" (call_expression "parse_error(filename)" identifier (argument_list "(filename)" ( identifier ))) ;) (labeled_statement "LAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",dummy);" statement_identifier : (expression_statement "iVar1 = fscanf(__stream,"%1023[^\n]\n",dummy);" (assignment_expression "iVar1 = fscanf(__stream,"%1023[^\n]\n",dummy)" identifier = (call_expression "fscanf(__stream,"%1023[^\n]\n",dummy)" identifier (argument_list "(__stream,"%1023[^\n]\n",dummy)" ( identifier , (string_literal ""%1023[^\n]\n"" " string_content escape_sequence string_content escape_sequence ") , identifier )))) ;)) }) while (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) ;)) (expression_statement "local_42c = (function_map *)((int)&local_42c->function_name + 1);" (assignment_expression "local_42c = (function_map *)((int)&local_42c->function_name + 1)" identifier = (cast_expression "(function_map *)((int)&local_42c->function_name + 1)" ( (type_descriptor "function_map *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_42c->function_name + 1)" ( (binary_expression "(int)&local_42c->function_name + 1" (cast_expression "(int)&local_42c->function_name" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_42c->function_name" & (field_expression "local_42c->function_name" identifier -> field_identifier))) + number_literal) )))) ;) })) })) (expression_statement "symbol_map = (function_map *)xmalloc((int)local_42c * 0xc);" (assignment_expression "symbol_map = (function_map *)xmalloc((int)local_42c * 0xc)" identifier = (cast_expression "(function_map *)xmalloc((int)local_42c * 0xc)" ( (type_descriptor "function_map *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc((int)local_42c * 0xc)" identifier (argument_list "((int)local_42c * 0xc)" ( (binary_expression "(int)local_42c * 0xc" (cast_expression "(int)local_42c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))))) ;) (expression_statement "local_430 = &symbol_map;" (assignment_expression "local_430 = &symbol_map" identifier = (pointer_expression "&symbol_map" & identifier)) ;) (expression_statement "rewind(__stream);" (call_expression "rewind(__stream)" identifier (argument_list "(__stream)" ( identifier ))) ;) (expression_statement "local_428 = 0;" (assignment_expression "local_428 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00018040:\n  do {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) {\n      symbol_map_count = local_428;\n      pfVar8 = symbol_map;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }\n    puVar15 = (uint *)dummy;\n    iVar1 = fscanf(__stream,"%1023[^\n:]",dummy);\n    bVar12 = false;\n    bVar13 = iVar1 == 0;\n    if (bVar13) break;\n    iVar1 = 0xe;\n    puVar7 = (uint *)dummy;\n    pbVar11 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar12 = (byte)*puVar7 < *pbVar11;\n      bVar13 = (byte)*puVar7 == *pbVar11;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar14 * -2 + 1);\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    puVar7 = (uint *)dummy;\n    if ((!bVar12 && !bVar13) != bVar12) {\n      do {\n        puVar15 = puVar7;\n        uVar2 = *puVar15 + 0xfefefeff & ~*puVar15;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar15 + 1;\n      } while (uVar3 == 0);\n      bVar12 = (uVar2 & 0x8080) == 0;\n      if (bVar12) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar12) {\n        puVar7 = (uint *)((int)puVar15 + 6);\n      }\n      local_42c = symbol_map + local_428;\n      pcVar4 = (char *)xmalloc((byte *)((int)puVar7 +\n                                       (-(int)dummy - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      local_42c->file_name = pcVar4;\n      strcpy(symbol_map[local_428].file_name,dummy);\n      iVar1 = fscanf(__stream,"%1023[^\n]\n",dummy);\n      if (iVar1 == 0) break;\n      pcVar4 = strrchr(dummy,0x20);\n      local_42c = (function_map *)(pcVar4 + 1);\n      sVar5 = strlen((char *)local_42c);\n      pfVar8 = symbol_map + local_428;\n      pcVar4 = (char *)xmalloc(sVar5 + 1);\n      pfVar8->function_name = pcVar4;\n      strcpy(symbol_map[local_428].function_name,(char *)local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }\n    iVar1 = fscanf(__stream,"\n",puVar15);\n  } while (iVar1 != -1);" statement_identifier : (do_statement "do {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) {\n      symbol_map_count = local_428;\n      pfVar8 = symbol_map;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }\n    puVar15 = (uint *)dummy;\n    iVar1 = fscanf(__stream,"%1023[^\n:]",dummy);\n    bVar12 = false;\n    bVar13 = iVar1 == 0;\n    if (bVar13) break;\n    iVar1 = 0xe;\n    puVar7 = (uint *)dummy;\n    pbVar11 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar12 = (byte)*puVar7 < *pbVar11;\n      bVar13 = (byte)*puVar7 == *pbVar11;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar14 * -2 + 1);\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    puVar7 = (uint *)dummy;\n    if ((!bVar12 && !bVar13) != bVar12) {\n      do {\n        puVar15 = puVar7;\n        uVar2 = *puVar15 + 0xfefefeff & ~*puVar15;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar15 + 1;\n      } while (uVar3 == 0);\n      bVar12 = (uVar2 & 0x8080) == 0;\n      if (bVar12) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar12) {\n        puVar7 = (uint *)((int)puVar15 + 6);\n      }\n      local_42c = symbol_map + local_428;\n      pcVar4 = (char *)xmalloc((byte *)((int)puVar7 +\n                                       (-(int)dummy - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      local_42c->file_name = pcVar4;\n      strcpy(symbol_map[local_428].file_name,dummy);\n      iVar1 = fscanf(__stream,"%1023[^\n]\n",dummy);\n      if (iVar1 == 0) break;\n      pcVar4 = strrchr(dummy,0x20);\n      local_42c = (function_map *)(pcVar4 + 1);\n      sVar5 = strlen((char *)local_42c);\n      pfVar8 = symbol_map + local_428;\n      pcVar4 = (char *)xmalloc(sVar5 + 1);\n      pfVar8->function_name = pcVar4;\n      strcpy(symbol_map[local_428].function_name,(char *)local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }\n    iVar1 = fscanf(__stream,"\n",puVar15);\n  } while (iVar1 != -1);" do (compound_statement "{\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) {\n      symbol_map_count = local_428;\n      pfVar8 = symbol_map;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }\n    puVar15 = (uint *)dummy;\n    iVar1 = fscanf(__stream,"%1023[^\n:]",dummy);\n    bVar12 = false;\n    bVar13 = iVar1 == 0;\n    if (bVar13) break;\n    iVar1 = 0xe;\n    puVar7 = (uint *)dummy;\n    pbVar11 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar12 = (byte)*puVar7 < *pbVar11;\n      bVar13 = (byte)*puVar7 == *pbVar11;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar14 * -2 + 1);\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    puVar7 = (uint *)dummy;\n    if ((!bVar12 && !bVar13) != bVar12) {\n      do {\n        puVar15 = puVar7;\n        uVar2 = *puVar15 + 0xfefefeff & ~*puVar15;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar15 + 1;\n      } while (uVar3 == 0);\n      bVar12 = (uVar2 & 0x8080) == 0;\n      if (bVar12) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar12) {\n        puVar7 = (uint *)((int)puVar15 + 6);\n      }\n      local_42c = symbol_map + local_428;\n      pcVar4 = (char *)xmalloc((byte *)((int)puVar7 +\n                                       (-(int)dummy - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      local_42c->file_name = pcVar4;\n      strcpy(symbol_map[local_428].file_name,dummy);\n      iVar1 = fscanf(__stream,"%1023[^\n]\n",dummy);\n      if (iVar1 == 0) break;\n      pcVar4 = strrchr(dummy,0x20);\n      local_42c = (function_map *)(pcVar4 + 1);\n      sVar5 = strlen((char *)local_42c);\n      pfVar8 = symbol_map + local_428;\n      pcVar4 = (char *)xmalloc(sVar5 + 1);\n      pfVar8->function_name = pcVar4;\n      strcpy(symbol_map[local_428].function_name,(char *)local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }\n    iVar1 = fscanf(__stream,"\n",puVar15);\n  }" { (expression_statement "iVar1 = feof(__stream);" (assignment_expression "iVar1 = feof(__stream)" identifier = (call_expression "feof(__stream)" identifier (argument_list "(__stream)" ( identifier )))) ;) (if_statement "if (iVar1 != 0) {\n      symbol_map_count = local_428;\n      pfVar8 = symbol_map;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      symbol_map_count = local_428;\n      pfVar8 = symbol_map;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }" { (expression_statement "symbol_map_count = local_428;" (assignment_expression "symbol_map_count = local_428" identifier = identifier) ;) (expression_statement "pfVar8 = symbol_map;" (assignment_expression "pfVar8 = symbol_map" identifier = identifier) ;) (if_statement "if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }" if (parenthesized_expression "(local_428 == 0)" ( (binary_expression "local_428 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000181f3;" goto statement_identifier ;) })) (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000181c9;" goto statement_identifier ;) })) (expression_statement "puVar15 = (uint *)dummy;" (assignment_expression "puVar15 = (uint *)dummy" identifier = (cast_expression "(uint *)dummy" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar1 = fscanf(__stream,"%1023[^\n:]",dummy);" (assignment_expression "iVar1 = fscanf(__stream,"%1023[^\n:]",dummy)" identifier = (call_expression "fscanf(__stream,"%1023[^\n:]",dummy)" identifier (argument_list "(__stream,"%1023[^\n:]",dummy)" ( identifier , (string_literal ""%1023[^\n:]"" " string_content escape_sequence string_content ") , identifier )))) ;) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar13 = iVar1 == 0;" (assignment_expression "bVar13 = iVar1 == 0" identifier = (binary_expression "iVar1 == 0" identifier == number_literal)) ;) (if_statement "if (bVar13) break;" if (parenthesized_expression "(bVar13)" ( identifier )) (break_statement "break;" break ;)) (expression_statement "iVar1 = 0xe;" (assignment_expression "iVar1 = 0xe" identifier = number_literal) ;) (expression_statement "puVar7 = (uint *)dummy;" (assignment_expression "puVar7 = (uint *)dummy" identifier = (cast_expression "(uint *)dummy" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar11 = (byte *)"No symbols in ";" (assignment_expression "pbVar11 = (byte *)"No symbols in "" identifier = (cast_expression "(byte *)"No symbols in "" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""No symbols in "" " string_content "))) ;) (do_statement "do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar12 = (byte)*puVar7 < *pbVar11;\n      bVar13 = (byte)*puVar7 == *pbVar11;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar14 * -2 + 1);\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);" do (compound_statement "{\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar12 = (byte)*puVar7 < *pbVar11;\n      bVar13 = (byte)*puVar7 == *pbVar11;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar14 * -2 + 1);\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    }" { (if_statement "if (iVar1 == 0) break;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar1 = iVar1 + -1;" (assignment_expression "iVar1 = iVar1 + -1" identifier = (binary_expression "iVar1 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = (byte)*puVar7 < *pbVar11;" (assignment_expression "bVar12 = (byte)*puVar7 < *pbVar11" identifier = (binary_expression "(byte)*puVar7 < *pbVar11" (binary_expression "(byte)*puVar7" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar13 = (byte)*puVar7 == *pbVar11;" (assignment_expression "bVar13 = (byte)*puVar7 == *pbVar11" identifier = (binary_expression "(byte)*puVar7 == *pbVar11" (binary_expression "(byte)*puVar7" (parenthesized_expression "(byte)" ( identifier )) * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "puVar7 = (uint *)((int)puVar7 + (uint)bVar14 * -2 + 1);" (assignment_expression "puVar7 = (uint *)((int)puVar7 + (uint)bVar14 * -2 + 1)" identifier = (cast_expression "(uint *)((int)puVar7 + (uint)bVar14 * -2 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + (uint)bVar14 * -2 + 1)" ( (binary_expression "(int)puVar7 + (uint)bVar14 * -2 + 1" (binary_expression "(int)puVar7 + (uint)bVar14 * -2" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (expression_statement "puVar7 = (uint *)dummy;" (assignment_expression "puVar7 = (uint *)dummy" identifier = (cast_expression "(uint *)dummy" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((!bVar12 && !bVar13) != bVar12) {\n      do {\n        puVar15 = puVar7;\n        uVar2 = *puVar15 + 0xfefefeff & ~*puVar15;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar15 + 1;\n      } while (uVar3 == 0);\n      bVar12 = (uVar2 & 0x8080) == 0;\n      if (bVar12) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar12) {\n        puVar7 = (uint *)((int)puVar15 + 6);\n      }\n      local_42c = symbol_map + local_428;\n      pcVar4 = (char *)xmalloc((byte *)((int)puVar7 +\n                                       (-(int)dummy - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      local_42c->file_name = pcVar4;\n      strcpy(symbol_map[local_428].file_name,dummy);\n      iVar1 = fscanf(__stream,"%1023[^\n]\n",dummy);\n      if (iVar1 == 0) break;\n      pcVar4 = strrchr(dummy,0x20);\n      local_42c = (function_map *)(pcVar4 + 1);\n      sVar5 = strlen((char *)local_42c);\n      pfVar8 = symbol_map + local_428;\n      pcVar4 = (char *)xmalloc(sVar5 + 1);\n      pfVar8->function_name = pcVar4;\n      strcpy(symbol_map[local_428].function_name,(char *)local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }" if (parenthesized_expression "((!bVar12 && !bVar13) != bVar12)" ( (binary_expression "(!bVar12 && !bVar13) != bVar12" (parenthesized_expression "(!bVar12 && !bVar13)" ( (binary_expression "!bVar12 && !bVar13" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) != identifier) )) (compound_statement "{\n      do {\n        puVar15 = puVar7;\n        uVar2 = *puVar15 + 0xfefefeff & ~*puVar15;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar15 + 1;\n      } while (uVar3 == 0);\n      bVar12 = (uVar2 & 0x8080) == 0;\n      if (bVar12) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar12) {\n        puVar7 = (uint *)((int)puVar15 + 6);\n      }\n      local_42c = symbol_map + local_428;\n      pcVar4 = (char *)xmalloc((byte *)((int)puVar7 +\n                                       (-(int)dummy - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      local_42c->file_name = pcVar4;\n      strcpy(symbol_map[local_428].file_name,dummy);\n      iVar1 = fscanf(__stream,"%1023[^\n]\n",dummy);\n      if (iVar1 == 0) break;\n      pcVar4 = strrchr(dummy,0x20);\n      local_42c = (function_map *)(pcVar4 + 1);\n      sVar5 = strlen((char *)local_42c);\n      pfVar8 = symbol_map + local_428;\n      pcVar4 = (char *)xmalloc(sVar5 + 1);\n      pfVar8->function_name = pcVar4;\n      strcpy(symbol_map[local_428].function_name,(char *)local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }" { (do_statement "do {\n        puVar15 = puVar7;\n        uVar2 = *puVar15 + 0xfefefeff & ~*puVar15;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar15 + 1;\n      } while (uVar3 == 0);" do (compound_statement "{\n        puVar15 = puVar7;\n        uVar2 = *puVar15 + 0xfefefeff & ~*puVar15;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar15 + 1;\n      }" { (expression_statement "puVar15 = puVar7;" (assignment_expression "puVar15 = puVar7" identifier = identifier) ;) (expression_statement "uVar2 = *puVar15 + 0xfefefeff & ~*puVar15;" (assignment_expression "uVar2 = *puVar15 + 0xfefefeff & ~*puVar15" identifier = (binary_expression "*puVar15 + 0xfefefeff & ~*puVar15" (binary_expression "*puVar15 + 0xfefefeff" (pointer_expression "*puVar15" * identifier) + number_literal) & (unary_expression "~*puVar15" ~ (pointer_expression "*puVar15" * identifier)))) ;) (expression_statement "uVar3 = uVar2 & 0x80808080;" (assignment_expression "uVar3 = uVar2 & 0x80808080" identifier = (binary_expression "uVar2 & 0x80808080" identifier & number_literal)) ;) (expression_statement "puVar7 = puVar15 + 1;" (assignment_expression "puVar7 = puVar15 + 1" identifier = (binary_expression "puVar15 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) ;) (expression_statement "bVar12 = (uVar2 & 0x8080) == 0;" (assignment_expression "bVar12 = (uVar2 & 0x8080) == 0" identifier = (binary_expression "(uVar2 & 0x8080) == 0" (parenthesized_expression "(uVar2 & 0x8080)" ( (binary_expression "uVar2 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar12) {\n        uVar3 = uVar3 >> 0x10;\n      }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n        uVar3 = uVar3 >> 0x10;\n      }" { (expression_statement "uVar3 = uVar3 >> 0x10;" (assignment_expression "uVar3 = uVar3 >> 0x10" identifier = (binary_expression "uVar3 >> 0x10" identifier >> number_literal)) ;) })) (if_statement "if (bVar12) {\n        puVar7 = (uint *)((int)puVar15 + 6);\n      }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n        puVar7 = (uint *)((int)puVar15 + 6);\n      }" { (expression_statement "puVar7 = (uint *)((int)puVar15 + 6);" (assignment_expression "puVar7 = (uint *)((int)puVar15 + 6)" identifier = (cast_expression "(uint *)((int)puVar15 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar15 + 6)" ( (binary_expression "(int)puVar15 + 6" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "local_42c = symbol_map + local_428;" (assignment_expression "local_42c = symbol_map + local_428" identifier = (binary_expression "symbol_map + local_428" identifier + identifier)) ;) (expression_statement "pcVar4 = (char *)xmalloc((byte *)((int)puVar7 +\n                                       (-(int)dummy - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));" (assignment_expression "pcVar4 = (char *)xmalloc((byte *)((int)puVar7 +\n                                       (-(int)dummy - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2))" identifier = (cast_expression "(char *)xmalloc((byte *)((int)puVar7 +\n                                       (-(int)dummy - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc((byte *)((int)puVar7 +\n                                       (-(int)dummy - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2))" identifier (argument_list "((byte *)((int)puVar7 +\n                                       (-(int)dummy - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2))" ( (cast_expression "(byte *)((int)puVar7 +\n                                       (-(int)dummy - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 +\n                                       (-(int)dummy - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2)" ( (binary_expression "(int)puVar7 +\n                                       (-(int)dummy - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2" (binary_expression "(int)puVar7 +\n                                       (-(int)dummy - (uint)CARRY1((byte)uVar3,(byte)uVar3))" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(int)dummy - (uint)CARRY1((byte)uVar3,(byte)uVar3))" ( (binary_expression "-(int)dummy - (uint)CARRY1((byte)uVar3,(byte)uVar3)" (unary_expression "-(int)dummy" - (cast_expression "(int)dummy" ( (type_descriptor "int" primitive_type) ) identifier)) - (cast_expression "(uint)CARRY1((byte)uVar3,(byte)uVar3)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY1((byte)uVar3,(byte)uVar3)" identifier (argument_list "((byte)uVar3,(byte)uVar3)" ( (cast_expression "(byte)uVar3" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar3" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) ))) + number_literal) ))) ))))) ;) (expression_statement "local_42c->file_name = pcVar4;" (assignment_expression "local_42c->file_name = pcVar4" (field_expression "local_42c->file_name" identifier -> field_identifier) = identifier) ;) (expression_statement "strcpy(symbol_map[local_428].file_name,dummy);" (call_expression "strcpy(symbol_map[local_428].file_name,dummy)" identifier (argument_list "(symbol_map[local_428].file_name,dummy)" ( (field_expression "symbol_map[local_428].file_name" (subscript_expression "symbol_map[local_428]" identifier [ identifier ]) . field_identifier) , identifier ))) ;) (expression_statement "iVar1 = fscanf(__stream,"%1023[^\n]\n",dummy);" (assignment_expression "iVar1 = fscanf(__stream,"%1023[^\n]\n",dummy)" identifier = (call_expression "fscanf(__stream,"%1023[^\n]\n",dummy)" identifier (argument_list "(__stream,"%1023[^\n]\n",dummy)" ( identifier , (string_literal ""%1023[^\n]\n"" " string_content escape_sequence string_content escape_sequence ") , identifier )))) ;) (if_statement "if (iVar1 == 0) break;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pcVar4 = strrchr(dummy,0x20);" (assignment_expression "pcVar4 = strrchr(dummy,0x20)" identifier = (call_expression "strrchr(dummy,0x20)" identifier (argument_list "(dummy,0x20)" ( identifier , number_literal )))) ;) (expression_statement "local_42c = (function_map *)(pcVar4 + 1);" (assignment_expression "local_42c = (function_map *)(pcVar4 + 1)" identifier = (cast_expression "(function_map *)(pcVar4 + 1)" ( (type_descriptor "function_map *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 1)" ( (binary_expression "pcVar4 + 1" identifier + number_literal) )))) ;) (expression_statement "sVar5 = strlen((char *)local_42c);" (assignment_expression "sVar5 = strlen((char *)local_42c)" identifier = (call_expression "strlen((char *)local_42c)" identifier (argument_list "((char *)local_42c)" ( (cast_expression "(char *)local_42c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pfVar8 = symbol_map + local_428;" (assignment_expression "pfVar8 = symbol_map + local_428" identifier = (binary_expression "symbol_map + local_428" identifier + identifier)) ;) (expression_statement "pcVar4 = (char *)xmalloc(sVar5 + 1);" (assignment_expression "pcVar4 = (char *)xmalloc(sVar5 + 1)" identifier = (cast_expression "(char *)xmalloc(sVar5 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar5 + 1)" identifier (argument_list "(sVar5 + 1)" ( (binary_expression "sVar5 + 1" identifier + number_literal) ))))) ;) (expression_statement "pfVar8->function_name = pcVar4;" (assignment_expression "pfVar8->function_name = pcVar4" (field_expression "pfVar8->function_name" identifier -> field_identifier) = identifier) ;) (expression_statement "strcpy(symbol_map[local_428].function_name,(char *)local_42c);" (call_expression "strcpy(symbol_map[local_428].function_name,(char *)local_42c)" identifier (argument_list "(symbol_map[local_428].function_name,(char *)local_42c)" ( (field_expression "symbol_map[local_428].function_name" (subscript_expression "symbol_map[local_428]" identifier [ identifier ]) . field_identifier) , (cast_expression "(char *)local_42c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "local_428 = local_428 + 1;" (assignment_expression "local_428 = local_428 + 1" identifier = (binary_expression "local_428 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_00018040;" goto statement_identifier ;) })) (expression_statement "iVar1 = fscanf(__stream,"\n",puVar15);" (assignment_expression "iVar1 = fscanf(__stream,"\n",puVar15)" identifier = (call_expression "fscanf(__stream,"\n",puVar15)" identifier (argument_list "(__stream,"\n",puVar15)" ( identifier , (string_literal ""\n"" " escape_sequence ") , identifier )))) ;) }) while (parenthesized_expression "(iVar1 != -1)" ( (binary_expression "iVar1 != -1" identifier != number_literal) )) ;)) (goto_statement "goto LAB_00017fc2;" goto statement_identifier ;) (labeled_statement "LAB_000181c9:\n  iVar6 = (int)&pfVar8->function_name + iVar1;" statement_identifier : (expression_statement "iVar6 = (int)&pfVar8->function_name + iVar1;" (assignment_expression "iVar6 = (int)&pfVar8->function_name + iVar1" identifier = (binary_expression "(int)&pfVar8->function_name + iVar1" (cast_expression "(int)&pfVar8->function_name" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pfVar8->function_name" & (field_expression "pfVar8->function_name" identifier -> field_identifier))) + identifier)) ;)) (if_statement "if (uVar3 == 0) {\nLAB_000181b8:\n    *(byte *)(iVar6 + 8) = *(byte *)(iVar6 + 8) | 1;\n  }\n  else {\n    iVar6 = filename_cmp(*(undefined4 *)(iVar6 + 4),*(undefined4 *)((int)pfVar8 + iVar1 + -8));\n    pfVar8 = symbol_map;\n    if (iVar6 != 0) {\n      iVar6 = (int)&symbol_map->function_name + iVar1;\n      goto LAB_000181b8;\n    }\n  }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000181b8:\n    *(byte *)(iVar6 + 8) = *(byte *)(iVar6 + 8) | 1;\n  }" { (labeled_statement "LAB_000181b8:\n    *(byte *)(iVar6 + 8) = *(byte *)(iVar6 + 8) | 1;" statement_identifier : (expression_statement "*(byte *)(iVar6 + 8) = *(byte *)(iVar6 + 8) | 1;" (assignment_expression "*(byte *)(iVar6 + 8) = *(byte *)(iVar6 + 8) | 1" (pointer_expression "*(byte *)(iVar6 + 8)" * (cast_expression "(byte *)(iVar6 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar6 + 8) | 1" (pointer_expression "*(byte *)(iVar6 + 8)" * (cast_expression "(byte *)(iVar6 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) | number_literal)) ;)) }) (else_clause "else {\n    iVar6 = filename_cmp(*(undefined4 *)(iVar6 + 4),*(undefined4 *)((int)pfVar8 + iVar1 + -8));\n    pfVar8 = symbol_map;\n    if (iVar6 != 0) {\n      iVar6 = (int)&symbol_map->function_name + iVar1;\n      goto LAB_000181b8;\n    }\n  }" else (compound_statement "{\n    iVar6 = filename_cmp(*(undefined4 *)(iVar6 + 4),*(undefined4 *)((int)pfVar8 + iVar1 + -8));\n    pfVar8 = symbol_map;\n    if (iVar6 != 0) {\n      iVar6 = (int)&symbol_map->function_name + iVar1;\n      goto LAB_000181b8;\n    }\n  }" { (expression_statement "iVar6 = filename_cmp(*(undefined4 *)(iVar6 + 4),*(undefined4 *)((int)pfVar8 + iVar1 + -8));" (assignment_expression "iVar6 = filename_cmp(*(undefined4 *)(iVar6 + 4),*(undefined4 *)((int)pfVar8 + iVar1 + -8))" identifier = (call_expression "filename_cmp(*(undefined4 *)(iVar6 + 4),*(undefined4 *)((int)pfVar8 + iVar1 + -8))" identifier (argument_list "(*(undefined4 *)(iVar6 + 4),*(undefined4 *)((int)pfVar8 + iVar1 + -8))" ( (pointer_expression "*(undefined4 *)(iVar6 + 4)" * (cast_expression "(undefined4 *)(iVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)((int)pfVar8 + iVar1 + -8)" * (cast_expression "(undefined4 *)((int)pfVar8 + iVar1 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pfVar8 + iVar1 + -8)" ( (binary_expression "(int)pfVar8 + iVar1 + -8" (binary_expression "(int)pfVar8 + iVar1" (cast_expression "(int)pfVar8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) )))) ;) (expression_statement "pfVar8 = symbol_map;" (assignment_expression "pfVar8 = symbol_map" identifier = identifier) ;) (if_statement "if (iVar6 != 0) {\n      iVar6 = (int)&symbol_map->function_name + iVar1;\n      goto LAB_000181b8;\n    }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar6 = (int)&symbol_map->function_name + iVar1;\n      goto LAB_000181b8;\n    }" { (expression_statement "iVar6 = (int)&symbol_map->function_name + iVar1;" (assignment_expression "iVar6 = (int)&symbol_map->function_name + iVar1" identifier = (binary_expression "(int)&symbol_map->function_name + iVar1" (cast_expression "(int)&symbol_map->function_name" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&symbol_map->function_name" & (field_expression "symbol_map->function_name" identifier -> field_identifier))) + identifier)) ;) (goto_statement "goto LAB_000181b8;" goto statement_identifier ;) })) }))) (expression_statement "uVar3 = uVar3 + 1;" (assignment_expression "uVar3 = uVar3 + 1" identifier = (binary_expression "uVar3 + 1" identifier + number_literal)) ;) (expression_statement "iVar1 = iVar1 + 0xc;" (assignment_expression "iVar1 = iVar1 + 0xc" identifier = (binary_expression "iVar1 + 0xc" identifier + number_literal)) ;) (expression_statement "uVar2 = symbol_map_count;" (assignment_expression "uVar2 = symbol_map_count" identifier = identifier) ;) (if_statement "if (symbol_map_count <= uVar3) {\nLAB_000181f3:\n    qsort(pfVar8,uVar2,0xc,cmp_symbol_map);\n    fclose(__stream);\n    return;\n  }" if (parenthesized_expression "(symbol_map_count <= uVar3)" ( (binary_expression "symbol_map_count <= uVar3" identifier <= identifier) )) (compound_statement "{\nLAB_000181f3:\n    qsort(pfVar8,uVar2,0xc,cmp_symbol_map);\n    fclose(__stream);\n    return;\n  }" { (labeled_statement "LAB_000181f3:\n    qsort(pfVar8,uVar2,0xc,cmp_symbol_map);" statement_identifier : (expression_statement "qsort(pfVar8,uVar2,0xc,cmp_symbol_map);" (call_expression "qsort(pfVar8,uVar2,0xc,cmp_symbol_map)" identifier (argument_list "(pfVar8,uVar2,0xc,cmp_symbol_map)" ( identifier , identifier , number_literal , identifier ))) ;)) (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" identifier (argument_list "(__stream)" ( identifier ))) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_000181c9;" goto statement_identifier ;) })))
(translation_unit "void __regparm3 FUN_00017f10(char *param_1)\n\n{\n  FILE *__stream;\n  int iVar1;\n  uint uVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  size_t sVar6;\n  char *__format;\n  uint *puVar7;\n  void *pvVar8;\n  undefined4 *puVar9;\n  byte *pbVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  uint *puVar14;\n  char *local_430;\n  char *local_42c;\n  uint local_428;\n  uint local_41c [258];\n  undefined4 uStack_14;\n  \n  bVar13 = 0;\n  uStack_14 = 0x17f1b;\n  __stream = fopen64(param_1,"r");\n  uVar4 = DAT_0002d494;\n  if (__stream == (FILE *)0x0) {\n    __format = (char *)dcgettext("gprof","%s: could not open %s.\n",5);\n    fprintf(*(FILE **)PTR_stderr_0002bfcc,__format,uVar4,param_1);\n                    \n    FUN_0001a990(1);\n  }\n  local_430 = "%1023[^\n:]";\n  local_42c = (char *)0x0;\n  while( true ) {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) break;\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,local_430,local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) goto LAB_00017fc2;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar11 && !bVar12) != bVar11) goto LAB_00017fd0;\n    iVar1 = fscanf(__stream,"\n",puVar14);\n    if (iVar1 == -1) {\nLAB_00017fc2:\n      do {\n        FUN_00017ec0();\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      } while (iVar1 == 0);\n      local_42c = local_42c + 1;\n    }\n  }\n  DAT_0002d480 = (void *)xmalloc((int)local_42c * 0xc);\n  local_430 = (char *)&DAT_0002d480;\n  rewind(__stream);\n  local_428 = 0;\nLAB_00018040:\n  do {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) {\n      DAT_0002d484 = local_428;\n      pvVar8 = DAT_0002d480;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,"%1023[^\n:]",local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) break;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    puVar7 = local_41c;\n    if ((!bVar11 && !bVar12) != bVar11) {\n      do {\n        puVar14 = puVar7;\n        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar14 + 1;\n      } while (uVar3 == 0);\n      bVar11 = (uVar2 & 0x8080) == 0;\n      if (bVar11) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar11) {\n        puVar7 = (uint *)((int)puVar14 + 6);\n      }\n      iVar1 = local_428 * 0xc;\n      local_42c = (char *)((int)DAT_0002d480 + iVar1);\n      uVar4 = xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      *(undefined4 *)(local_42c + 4) = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c);\n      iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      if (iVar5 == 0) break;\n      local_42c = strrchr((char *)local_41c,0x20);\n      local_42c = local_42c + 1;\n      sVar6 = strlen(local_42c);\n      puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480);\n      uVar4 = xmalloc(sVar6 + 1);\n      *puVar9 = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }\n    iVar1 = fscanf(__stream,"\n",puVar14);\n  } while (iVar1 != -1);\n  goto LAB_00017fc2;\nLAB_000181c9:\n  iVar5 = (int)pvVar8 + iVar1;\n  if (uVar3 == 0) {\nLAB_000181b8:\n    *(byte *)(iVar5 + 8) = *(byte *)(iVar5 + 8) | 1;\n  }\n  else {\n    iVar5 = filename_cmp(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8));\n    pvVar8 = DAT_0002d480;\n    if (iVar5 != 0) {\n      iVar5 = (int)DAT_0002d480 + iVar1;\n      goto LAB_000181b8;\n    }\n  }\n  uVar3 = uVar3 + 1;\n  iVar1 = iVar1 + 0xc;\n  uVar2 = DAT_0002d484;\n  if (DAT_0002d484 <= uVar3) {\nLAB_000181f3:\n    qsort(pvVar8,uVar2,0xc,FUN_00018260);\n    fclose(__stream);\n    return;\n  }\n  goto LAB_000181c9;\n}\n\n" (function_definition "void __regparm3 FUN_00017f10(char *param_1)\n\n{\n  FILE *__stream;\n  int iVar1;\n  uint uVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  size_t sVar6;\n  char *__format;\n  uint *puVar7;\n  void *pvVar8;\n  undefined4 *puVar9;\n  byte *pbVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  uint *puVar14;\n  char *local_430;\n  char *local_42c;\n  uint local_428;\n  uint local_41c [258];\n  undefined4 uStack_14;\n  \n  bVar13 = 0;\n  uStack_14 = 0x17f1b;\n  __stream = fopen64(param_1,"r");\n  uVar4 = DAT_0002d494;\n  if (__stream == (FILE *)0x0) {\n    __format = (char *)dcgettext("gprof","%s: could not open %s.\n",5);\n    fprintf(*(FILE **)PTR_stderr_0002bfcc,__format,uVar4,param_1);\n                    \n    FUN_0001a990(1);\n  }\n  local_430 = "%1023[^\n:]";\n  local_42c = (char *)0x0;\n  while( true ) {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) break;\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,local_430,local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) goto LAB_00017fc2;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar11 && !bVar12) != bVar11) goto LAB_00017fd0;\n    iVar1 = fscanf(__stream,"\n",puVar14);\n    if (iVar1 == -1) {\nLAB_00017fc2:\n      do {\n        FUN_00017ec0();\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      } while (iVar1 == 0);\n      local_42c = local_42c + 1;\n    }\n  }\n  DAT_0002d480 = (void *)xmalloc((int)local_42c * 0xc);\n  local_430 = (char *)&DAT_0002d480;\n  rewind(__stream);\n  local_428 = 0;\nLAB_00018040:\n  do {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) {\n      DAT_0002d484 = local_428;\n      pvVar8 = DAT_0002d480;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,"%1023[^\n:]",local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) break;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    puVar7 = local_41c;\n    if ((!bVar11 && !bVar12) != bVar11) {\n      do {\n        puVar14 = puVar7;\n        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar14 + 1;\n      } while (uVar3 == 0);\n      bVar11 = (uVar2 & 0x8080) == 0;\n      if (bVar11) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar11) {\n        puVar7 = (uint *)((int)puVar14 + 6);\n      }\n      iVar1 = local_428 * 0xc;\n      local_42c = (char *)((int)DAT_0002d480 + iVar1);\n      uVar4 = xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      *(undefined4 *)(local_42c + 4) = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c);\n      iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      if (iVar5 == 0) break;\n      local_42c = strrchr((char *)local_41c,0x20);\n      local_42c = local_42c + 1;\n      sVar6 = strlen(local_42c);\n      puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480);\n      uVar4 = xmalloc(sVar6 + 1);\n      *puVar9 = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }\n    iVar1 = fscanf(__stream,"\n",puVar14);\n  } while (iVar1 != -1);\n  goto LAB_00017fc2;\nLAB_000181c9:\n  iVar5 = (int)pvVar8 + iVar1;\n  if (uVar3 == 0) {\nLAB_000181b8:\n    *(byte *)(iVar5 + 8) = *(byte *)(iVar5 + 8) | 1;\n  }\n  else {\n    iVar5 = filename_cmp(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8));\n    pvVar8 = DAT_0002d480;\n    if (iVar5 != 0) {\n      iVar5 = (int)DAT_0002d480 + iVar1;\n      goto LAB_000181b8;\n    }\n  }\n  uVar3 = uVar3 + 1;\n  iVar1 = iVar1 + 0xc;\n  uVar2 = DAT_0002d484;\n  if (DAT_0002d484 <= uVar3) {\nLAB_000181f3:\n    qsort(pvVar8,uVar2,0xc,FUN_00018260);\n    fclose(__stream);\n    return;\n  }\n  goto LAB_000181c9;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00017f10(char *param_1)" identifier (parameter_list "(char *param_1)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  FILE *__stream;\n  int iVar1;\n  uint uVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  size_t sVar6;\n  char *__format;\n  uint *puVar7;\n  void *pvVar8;\n  undefined4 *puVar9;\n  byte *pbVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  uint *puVar14;\n  char *local_430;\n  char *local_42c;\n  uint local_428;\n  uint local_41c [258];\n  undefined4 uStack_14;\n  \n  bVar13 = 0;\n  uStack_14 = 0x17f1b;\n  __stream = fopen64(param_1,"r");\n  uVar4 = DAT_0002d494;\n  if (__stream == (FILE *)0x0) {\n    __format = (char *)dcgettext("gprof","%s: could not open %s.\n",5);\n    fprintf(*(FILE **)PTR_stderr_0002bfcc,__format,uVar4,param_1);\n                    \n    FUN_0001a990(1);\n  }\n  local_430 = "%1023[^\n:]";\n  local_42c = (char *)0x0;\n  while( true ) {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) break;\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,local_430,local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) goto LAB_00017fc2;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar11 && !bVar12) != bVar11) goto LAB_00017fd0;\n    iVar1 = fscanf(__stream,"\n",puVar14);\n    if (iVar1 == -1) {\nLAB_00017fc2:\n      do {\n        FUN_00017ec0();\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      } while (iVar1 == 0);\n      local_42c = local_42c + 1;\n    }\n  }\n  DAT_0002d480 = (void *)xmalloc((int)local_42c * 0xc);\n  local_430 = (char *)&DAT_0002d480;\n  rewind(__stream);\n  local_428 = 0;\nLAB_00018040:\n  do {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) {\n      DAT_0002d484 = local_428;\n      pvVar8 = DAT_0002d480;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,"%1023[^\n:]",local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) break;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    puVar7 = local_41c;\n    if ((!bVar11 && !bVar12) != bVar11) {\n      do {\n        puVar14 = puVar7;\n        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar14 + 1;\n      } while (uVar3 == 0);\n      bVar11 = (uVar2 & 0x8080) == 0;\n      if (bVar11) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar11) {\n        puVar7 = (uint *)((int)puVar14 + 6);\n      }\n      iVar1 = local_428 * 0xc;\n      local_42c = (char *)((int)DAT_0002d480 + iVar1);\n      uVar4 = xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      *(undefined4 *)(local_42c + 4) = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c);\n      iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      if (iVar5 == 0) break;\n      local_42c = strrchr((char *)local_41c,0x20);\n      local_42c = local_42c + 1;\n      sVar6 = strlen(local_42c);\n      puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480);\n      uVar4 = xmalloc(sVar6 + 1);\n      *puVar9 = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }\n    iVar1 = fscanf(__stream,"\n",puVar14);\n  } while (iVar1 != -1);\n  goto LAB_00017fc2;\nLAB_000181c9:\n  iVar5 = (int)pvVar8 + iVar1;\n  if (uVar3 == 0) {\nLAB_000181b8:\n    *(byte *)(iVar5 + 8) = *(byte *)(iVar5 + 8) | 1;\n  }\n  else {\n    iVar5 = filename_cmp(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8));\n    pvVar8 = DAT_0002d480;\n    if (iVar5 != 0) {\n      iVar5 = (int)DAT_0002d480 + iVar1;\n      goto LAB_000181b8;\n    }\n  }\n  uVar3 = uVar3 + 1;\n  iVar1 = iVar1 + 0xc;\n  uVar2 = DAT_0002d484;\n  if (DAT_0002d484 <= uVar3) {\nLAB_000181f3:\n    qsort(pvVar8,uVar2,0xc,FUN_00018260);\n    fclose(__stream);\n    return;\n  }\n  goto LAB_000181c9;\n}" { (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "char *__format;" primitive_type (pointer_declarator "*__format" * identifier) ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "void *pvVar8;" primitive_type (pointer_declarator "*pvVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "char *local_430;" primitive_type (pointer_declarator "*local_430" * identifier) ;) (declaration "char *local_42c;" primitive_type (pointer_declarator "*local_42c" * identifier) ;) (declaration "uint local_428;" type_identifier identifier ;) (declaration "uint local_41c [258];" type_identifier (array_declarator "local_41c [258]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x17f1b;" (assignment_expression "uStack_14 = 0x17f1b" identifier = number_literal) ;) (expression_statement "__stream = fopen64(param_1,"r");" (assignment_expression "__stream = fopen64(param_1,"r")" identifier = (call_expression "fopen64(param_1,"r")" identifier (argument_list "(param_1,"r")" ( identifier , (string_literal ""r"" " string_content ") )))) ;) (expression_statement "uVar4 = DAT_0002d494;" (assignment_expression "uVar4 = DAT_0002d494" identifier = identifier) ;) (if_statement "if (__stream == (FILE *)0x0) {\n    __format = (char *)dcgettext("gprof","%s: could not open %s.\n",5);\n    fprintf(*(FILE **)PTR_stderr_0002bfcc,__format,uVar4,param_1);\n                    \n    FUN_0001a990(1);\n  }" if (parenthesized_expression "(__stream == (FILE *)0x0)" ( (binary_expression "__stream == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    __format = (char *)dcgettext("gprof","%s: could not open %s.\n",5);\n    fprintf(*(FILE **)PTR_stderr_0002bfcc,__format,uVar4,param_1);\n                    \n    FUN_0001a990(1);\n  }" { (expression_statement "__format = (char *)dcgettext("gprof","%s: could not open %s.\n",5);" (assignment_expression "__format = (char *)dcgettext("gprof","%s: could not open %s.\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","%s: could not open %s.\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%s: could not open %s.\n",5)" identifier (argument_list "("gprof","%s: could not open %s.\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%s: could not open %s.\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(*(FILE **)PTR_stderr_0002bfcc,__format,uVar4,param_1);" (call_expression "fprintf(*(FILE **)PTR_stderr_0002bfcc,__format,uVar4,param_1)" identifier (argument_list "(*(FILE **)PTR_stderr_0002bfcc,__format,uVar4,param_1)" ( (pointer_expression "*(FILE **)PTR_stderr_0002bfcc" * (cast_expression "(FILE **)PTR_stderr_0002bfcc" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , identifier , identifier , identifier ))) ;) (expression_statement "FUN_0001a990(1);" (call_expression "FUN_0001a990(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (expression_statement "local_430 = "%1023[^\n:]";" (assignment_expression "local_430 = "%1023[^\n:]"" identifier = (string_literal ""%1023[^\n:]"" " string_content escape_sequence string_content ")) ;) (expression_statement "local_42c = (char *)0x0;" (assignment_expression "local_42c = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (while_statement "while( true ) {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) break;\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,local_430,local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) goto LAB_00017fc2;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar11 && !bVar12) != bVar11) goto LAB_00017fd0;\n    iVar1 = fscanf(__stream,"\n",puVar14);\n    if (iVar1 == -1) {\nLAB_00017fc2:\n      do {\n        FUN_00017ec0();\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      } while (iVar1 == 0);\n      local_42c = local_42c + 1;\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) break;\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,local_430,local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) goto LAB_00017fc2;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar11 && !bVar12) != bVar11) goto LAB_00017fd0;\n    iVar1 = fscanf(__stream,"\n",puVar14);\n    if (iVar1 == -1) {\nLAB_00017fc2:\n      do {\n        FUN_00017ec0();\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      } while (iVar1 == 0);\n      local_42c = local_42c + 1;\n    }\n  }" { (expression_statement "iVar1 = feof(__stream);" (assignment_expression "iVar1 = feof(__stream)" identifier = (call_expression "feof(__stream)" identifier (argument_list "(__stream)" ( identifier )))) ;) (if_statement "if (iVar1 != 0) break;" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "puVar14 = local_41c;" (assignment_expression "puVar14 = local_41c" identifier = identifier) ;) (expression_statement "iVar1 = fscanf(__stream,local_430,local_41c);" (assignment_expression "iVar1 = fscanf(__stream,local_430,local_41c)" identifier = (call_expression "fscanf(__stream,local_430,local_41c)" identifier (argument_list "(__stream,local_430,local_41c)" ( identifier , identifier , identifier )))) ;) (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" identifier = false) ;) (expression_statement "bVar12 = iVar1 == 0;" (assignment_expression "bVar12 = iVar1 == 0" identifier = (binary_expression "iVar1 == 0" identifier == number_literal)) ;) (if_statement "if (bVar12) goto LAB_00017fc2;" if (parenthesized_expression "(bVar12)" ( identifier )) (goto_statement "goto LAB_00017fc2;" goto statement_identifier ;)) (expression_statement "iVar1 = 0xe;" (assignment_expression "iVar1 = 0xe" identifier = number_literal) ;) (expression_statement "puVar7 = local_41c;" (assignment_expression "puVar7 = local_41c" identifier = identifier) ;) (expression_statement "pbVar10 = (byte *)"No symbols in ";" (assignment_expression "pbVar10 = (byte *)"No symbols in "" identifier = (cast_expression "(byte *)"No symbols in "" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""No symbols in "" " string_content "))) ;) (do_statement "do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    }" { (if_statement "if (iVar1 == 0) break;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar1 = iVar1 + -1;" (assignment_expression "iVar1 = iVar1 + -1" identifier = (binary_expression "iVar1 + -1" identifier + number_literal)) ;) (expression_statement "bVar11 = (byte)*puVar7 < *pbVar10;" (assignment_expression "bVar11 = (byte)*puVar7 < *pbVar10" identifier = (binary_expression "(byte)*puVar7 < *pbVar10" (binary_expression "(byte)*puVar7" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar12 = (byte)*puVar7 == *pbVar10;" (assignment_expression "bVar12 = (byte)*puVar7 == *pbVar10" identifier = (binary_expression "(byte)*puVar7 == *pbVar10" (binary_expression "(byte)*puVar7" (parenthesized_expression "(byte)" ( identifier )) * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);" (assignment_expression "puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1)" identifier = (cast_expression "(uint *)((int)puVar7 + (uint)bVar13 * -2 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + (uint)bVar13 * -2 + 1)" ( (binary_expression "(int)puVar7 + (uint)bVar13 * -2 + 1" (binary_expression "(int)puVar7 + (uint)bVar13 * -2" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (if_statement "if ((!bVar11 && !bVar12) != bVar11) goto LAB_00017fd0;" if (parenthesized_expression "((!bVar11 && !bVar12) != bVar11)" ( (binary_expression "(!bVar11 && !bVar12) != bVar11" (parenthesized_expression "(!bVar11 && !bVar12)" ( (binary_expression "!bVar11 && !bVar12" (unary_expression "!bVar11" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_00017fd0;" goto statement_identifier ;)) (expression_statement "iVar1 = fscanf(__stream,"\n",puVar14);" (assignment_expression "iVar1 = fscanf(__stream,"\n",puVar14)" identifier = (call_expression "fscanf(__stream,"\n",puVar14)" identifier (argument_list "(__stream,"\n",puVar14)" ( identifier , (string_literal ""\n"" " escape_sequence ") , identifier )))) ;) (if_statement "if (iVar1 == -1) {\nLAB_00017fc2:\n      do {\n        FUN_00017ec0();\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      } while (iVar1 == 0);\n      local_42c = local_42c + 1;\n    }" if (parenthesized_expression "(iVar1 == -1)" ( (binary_expression "iVar1 == -1" identifier == number_literal) )) (compound_statement "{\nLAB_00017fc2:\n      do {\n        FUN_00017ec0();\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      } while (iVar1 == 0);\n      local_42c = local_42c + 1;\n    }" { (labeled_statement "LAB_00017fc2:\n      do {\n        FUN_00017ec0();\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      } while (iVar1 == 0);" statement_identifier : (do_statement "do {\n        FUN_00017ec0();\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      } while (iVar1 == 0);" do (compound_statement "{\n        FUN_00017ec0();\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      }" { (expression_statement "FUN_00017ec0();" (call_expression "FUN_00017ec0()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);" statement_identifier : (expression_statement "iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);" (assignment_expression "iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c)" identifier = (call_expression "fscanf(__stream,"%1023[^\n]\n",local_41c)" identifier (argument_list "(__stream,"%1023[^\n]\n",local_41c)" ( identifier , (string_literal ""%1023[^\n]\n"" " string_content escape_sequence string_content escape_sequence ") , identifier )))) ;)) }) while (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) ;)) (expression_statement "local_42c = local_42c + 1;" (assignment_expression "local_42c = local_42c + 1" identifier = (binary_expression "local_42c + 1" identifier + number_literal)) ;) })) })) (expression_statement "DAT_0002d480 = (void *)xmalloc((int)local_42c * 0xc);" (assignment_expression "DAT_0002d480 = (void *)xmalloc((int)local_42c * 0xc)" identifier = (cast_expression "(void *)xmalloc((int)local_42c * 0xc)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc((int)local_42c * 0xc)" identifier (argument_list "((int)local_42c * 0xc)" ( (binary_expression "(int)local_42c * 0xc" (cast_expression "(int)local_42c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))))) ;) (expression_statement "local_430 = (char *)&DAT_0002d480;" (assignment_expression "local_430 = (char *)&DAT_0002d480" identifier = (cast_expression "(char *)&DAT_0002d480" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0002d480" & identifier))) ;) (expression_statement "rewind(__stream);" (call_expression "rewind(__stream)" identifier (argument_list "(__stream)" ( identifier ))) ;) (expression_statement "local_428 = 0;" (assignment_expression "local_428 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00018040:\n  do {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) {\n      DAT_0002d484 = local_428;\n      pvVar8 = DAT_0002d480;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,"%1023[^\n:]",local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) break;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    puVar7 = local_41c;\n    if ((!bVar11 && !bVar12) != bVar11) {\n      do {\n        puVar14 = puVar7;\n        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar14 + 1;\n      } while (uVar3 == 0);\n      bVar11 = (uVar2 & 0x8080) == 0;\n      if (bVar11) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar11) {\n        puVar7 = (uint *)((int)puVar14 + 6);\n      }\n      iVar1 = local_428 * 0xc;\n      local_42c = (char *)((int)DAT_0002d480 + iVar1);\n      uVar4 = xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      *(undefined4 *)(local_42c + 4) = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c);\n      iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      if (iVar5 == 0) break;\n      local_42c = strrchr((char *)local_41c,0x20);\n      local_42c = local_42c + 1;\n      sVar6 = strlen(local_42c);\n      puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480);\n      uVar4 = xmalloc(sVar6 + 1);\n      *puVar9 = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }\n    iVar1 = fscanf(__stream,"\n",puVar14);\n  } while (iVar1 != -1);" statement_identifier : (do_statement "do {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) {\n      DAT_0002d484 = local_428;\n      pvVar8 = DAT_0002d480;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,"%1023[^\n:]",local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) break;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    puVar7 = local_41c;\n    if ((!bVar11 && !bVar12) != bVar11) {\n      do {\n        puVar14 = puVar7;\n        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar14 + 1;\n      } while (uVar3 == 0);\n      bVar11 = (uVar2 & 0x8080) == 0;\n      if (bVar11) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar11) {\n        puVar7 = (uint *)((int)puVar14 + 6);\n      }\n      iVar1 = local_428 * 0xc;\n      local_42c = (char *)((int)DAT_0002d480 + iVar1);\n      uVar4 = xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      *(undefined4 *)(local_42c + 4) = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c);\n      iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      if (iVar5 == 0) break;\n      local_42c = strrchr((char *)local_41c,0x20);\n      local_42c = local_42c + 1;\n      sVar6 = strlen(local_42c);\n      puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480);\n      uVar4 = xmalloc(sVar6 + 1);\n      *puVar9 = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }\n    iVar1 = fscanf(__stream,"\n",puVar14);\n  } while (iVar1 != -1);" do (compound_statement "{\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) {\n      DAT_0002d484 = local_428;\n      pvVar8 = DAT_0002d480;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,"%1023[^\n:]",local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) break;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    puVar7 = local_41c;\n    if ((!bVar11 && !bVar12) != bVar11) {\n      do {\n        puVar14 = puVar7;\n        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar14 + 1;\n      } while (uVar3 == 0);\n      bVar11 = (uVar2 & 0x8080) == 0;\n      if (bVar11) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar11) {\n        puVar7 = (uint *)((int)puVar14 + 6);\n      }\n      iVar1 = local_428 * 0xc;\n      local_42c = (char *)((int)DAT_0002d480 + iVar1);\n      uVar4 = xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      *(undefined4 *)(local_42c + 4) = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c);\n      iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      if (iVar5 == 0) break;\n      local_42c = strrchr((char *)local_41c,0x20);\n      local_42c = local_42c + 1;\n      sVar6 = strlen(local_42c);\n      puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480);\n      uVar4 = xmalloc(sVar6 + 1);\n      *puVar9 = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }\n    iVar1 = fscanf(__stream,"\n",puVar14);\n  }" { (expression_statement "iVar1 = feof(__stream);" (assignment_expression "iVar1 = feof(__stream)" identifier = (call_expression "feof(__stream)" identifier (argument_list "(__stream)" ( identifier )))) ;) (if_statement "if (iVar1 != 0) {\n      DAT_0002d484 = local_428;\n      pvVar8 = DAT_0002d480;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      DAT_0002d484 = local_428;\n      pvVar8 = DAT_0002d480;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }" { (expression_statement "DAT_0002d484 = local_428;" (assignment_expression "DAT_0002d484 = local_428" identifier = identifier) ;) (expression_statement "pvVar8 = DAT_0002d480;" (assignment_expression "pvVar8 = DAT_0002d480" identifier = identifier) ;) (if_statement "if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }" if (parenthesized_expression "(local_428 == 0)" ( (binary_expression "local_428 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000181f3;" goto statement_identifier ;) })) (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000181c9;" goto statement_identifier ;) })) (expression_statement "puVar14 = local_41c;" (assignment_expression "puVar14 = local_41c" identifier = identifier) ;) (expression_statement "iVar1 = fscanf(__stream,"%1023[^\n:]",local_41c);" (assignment_expression "iVar1 = fscanf(__stream,"%1023[^\n:]",local_41c)" identifier = (call_expression "fscanf(__stream,"%1023[^\n:]",local_41c)" identifier (argument_list "(__stream,"%1023[^\n:]",local_41c)" ( identifier , (string_literal ""%1023[^\n:]"" " string_content escape_sequence string_content ") , identifier )))) ;) (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" identifier = false) ;) (expression_statement "bVar12 = iVar1 == 0;" (assignment_expression "bVar12 = iVar1 == 0" identifier = (binary_expression "iVar1 == 0" identifier == number_literal)) ;) (if_statement "if (bVar12) break;" if (parenthesized_expression "(bVar12)" ( identifier )) (break_statement "break;" break ;)) (expression_statement "iVar1 = 0xe;" (assignment_expression "iVar1 = 0xe" identifier = number_literal) ;) (expression_statement "puVar7 = local_41c;" (assignment_expression "puVar7 = local_41c" identifier = identifier) ;) (expression_statement "pbVar10 = (byte *)"No symbols in ";" (assignment_expression "pbVar10 = (byte *)"No symbols in "" identifier = (cast_expression "(byte *)"No symbols in "" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""No symbols in "" " string_content "))) ;) (do_statement "do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    }" { (if_statement "if (iVar1 == 0) break;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar1 = iVar1 + -1;" (assignment_expression "iVar1 = iVar1 + -1" identifier = (binary_expression "iVar1 + -1" identifier + number_literal)) ;) (expression_statement "bVar11 = (byte)*puVar7 < *pbVar10;" (assignment_expression "bVar11 = (byte)*puVar7 < *pbVar10" identifier = (binary_expression "(byte)*puVar7 < *pbVar10" (binary_expression "(byte)*puVar7" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar12 = (byte)*puVar7 == *pbVar10;" (assignment_expression "bVar12 = (byte)*puVar7 == *pbVar10" identifier = (binary_expression "(byte)*puVar7 == *pbVar10" (binary_expression "(byte)*puVar7" (parenthesized_expression "(byte)" ( identifier )) * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);" (assignment_expression "puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1)" identifier = (cast_expression "(uint *)((int)puVar7 + (uint)bVar13 * -2 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + (uint)bVar13 * -2 + 1)" ( (binary_expression "(int)puVar7 + (uint)bVar13 * -2 + 1" (binary_expression "(int)puVar7 + (uint)bVar13 * -2" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (expression_statement "puVar7 = local_41c;" (assignment_expression "puVar7 = local_41c" identifier = identifier) ;) (if_statement "if ((!bVar11 && !bVar12) != bVar11) {\n      do {\n        puVar14 = puVar7;\n        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar14 + 1;\n      } while (uVar3 == 0);\n      bVar11 = (uVar2 & 0x8080) == 0;\n      if (bVar11) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar11) {\n        puVar7 = (uint *)((int)puVar14 + 6);\n      }\n      iVar1 = local_428 * 0xc;\n      local_42c = (char *)((int)DAT_0002d480 + iVar1);\n      uVar4 = xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      *(undefined4 *)(local_42c + 4) = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c);\n      iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      if (iVar5 == 0) break;\n      local_42c = strrchr((char *)local_41c,0x20);\n      local_42c = local_42c + 1;\n      sVar6 = strlen(local_42c);\n      puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480);\n      uVar4 = xmalloc(sVar6 + 1);\n      *puVar9 = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }" if (parenthesized_expression "((!bVar11 && !bVar12) != bVar11)" ( (binary_expression "(!bVar11 && !bVar12) != bVar11" (parenthesized_expression "(!bVar11 && !bVar12)" ( (binary_expression "!bVar11 && !bVar12" (unary_expression "!bVar11" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) != identifier) )) (compound_statement "{\n      do {\n        puVar14 = puVar7;\n        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar14 + 1;\n      } while (uVar3 == 0);\n      bVar11 = (uVar2 & 0x8080) == 0;\n      if (bVar11) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar11) {\n        puVar7 = (uint *)((int)puVar14 + 6);\n      }\n      iVar1 = local_428 * 0xc;\n      local_42c = (char *)((int)DAT_0002d480 + iVar1);\n      uVar4 = xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      *(undefined4 *)(local_42c + 4) = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c);\n      iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      if (iVar5 == 0) break;\n      local_42c = strrchr((char *)local_41c,0x20);\n      local_42c = local_42c + 1;\n      sVar6 = strlen(local_42c);\n      puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480);\n      uVar4 = xmalloc(sVar6 + 1);\n      *puVar9 = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }" { (do_statement "do {\n        puVar14 = puVar7;\n        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar14 + 1;\n      } while (uVar3 == 0);" do (compound_statement "{\n        puVar14 = puVar7;\n        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar14 + 1;\n      }" { (expression_statement "puVar14 = puVar7;" (assignment_expression "puVar14 = puVar7" identifier = identifier) ;) (expression_statement "uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;" (assignment_expression "uVar2 = *puVar14 + 0xfefefeff & ~*puVar14" identifier = (binary_expression "*puVar14 + 0xfefefeff & ~*puVar14" (binary_expression "*puVar14 + 0xfefefeff" (pointer_expression "*puVar14" * identifier) + number_literal) & (unary_expression "~*puVar14" ~ (pointer_expression "*puVar14" * identifier)))) ;) (expression_statement "uVar3 = uVar2 & 0x80808080;" (assignment_expression "uVar3 = uVar2 & 0x80808080" identifier = (binary_expression "uVar2 & 0x80808080" identifier & number_literal)) ;) (expression_statement "puVar7 = puVar14 + 1;" (assignment_expression "puVar7 = puVar14 + 1" identifier = (binary_expression "puVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) ;) (expression_statement "bVar11 = (uVar2 & 0x8080) == 0;" (assignment_expression "bVar11 = (uVar2 & 0x8080) == 0" identifier = (binary_expression "(uVar2 & 0x8080) == 0" (parenthesized_expression "(uVar2 & 0x8080)" ( (binary_expression "uVar2 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar11) {\n        uVar3 = uVar3 >> 0x10;\n      }" if (parenthesized_expression "(bVar11)" ( identifier )) (compound_statement "{\n        uVar3 = uVar3 >> 0x10;\n      }" { (expression_statement "uVar3 = uVar3 >> 0x10;" (assignment_expression "uVar3 = uVar3 >> 0x10" identifier = (binary_expression "uVar3 >> 0x10" identifier >> number_literal)) ;) })) (if_statement "if (bVar11) {\n        puVar7 = (uint *)((int)puVar14 + 6);\n      }" if (parenthesized_expression "(bVar11)" ( identifier )) (compound_statement "{\n        puVar7 = (uint *)((int)puVar14 + 6);\n      }" { (expression_statement "puVar7 = (uint *)((int)puVar14 + 6);" (assignment_expression "puVar7 = (uint *)((int)puVar14 + 6)" identifier = (cast_expression "(uint *)((int)puVar14 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + 6)" ( (binary_expression "(int)puVar14 + 6" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "iVar1 = local_428 * 0xc;" (assignment_expression "iVar1 = local_428 * 0xc" identifier = (binary_expression "local_428 * 0xc" identifier * number_literal)) ;) (expression_statement "local_42c = (char *)((int)DAT_0002d480 + iVar1);" (assignment_expression "local_42c = (char *)((int)DAT_0002d480 + iVar1)" identifier = (cast_expression "(char *)((int)DAT_0002d480 + iVar1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)DAT_0002d480 + iVar1)" ( (binary_expression "(int)DAT_0002d480 + iVar1" (cast_expression "(int)DAT_0002d480" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "uVar4 = xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));" (assignment_expression "uVar4 = xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2))" identifier = (call_expression "xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2))" identifier (argument_list "((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2))" ( (cast_expression "(byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2)" ( (binary_expression "(int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2" (binary_expression "(int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3))" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3))" ( (binary_expression "-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)" (unary_expression "-(int)local_41c" - (cast_expression "(int)local_41c" ( (type_descriptor "int" primitive_type) ) identifier)) - (cast_expression "(uint)CARRY1((byte)uVar3,(byte)uVar3)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY1((byte)uVar3,(byte)uVar3)" identifier (argument_list "((byte)uVar3,(byte)uVar3)" ( (cast_expression "(byte)uVar3" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar3" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) ))) + number_literal) ))) )))) ;) (expression_statement "*(undefined4 *)(local_42c + 4) = uVar4;" (assignment_expression "*(undefined4 *)(local_42c + 4) = uVar4" (pointer_expression "*(undefined4 *)(local_42c + 4)" * (cast_expression "(undefined4 *)(local_42c + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_42c + 4)" ( (binary_expression "local_42c + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c);" (call_expression "strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c)" identifier (argument_list "(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c)" ( (pointer_expression "*(char **)((int)DAT_0002d480 + iVar1 + 4)" * (cast_expression "(char **)((int)DAT_0002d480 + iVar1 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)DAT_0002d480 + iVar1 + 4)" ( (binary_expression "(int)DAT_0002d480 + iVar1 + 4" (binary_expression "(int)DAT_0002d480 + iVar1" (cast_expression "(int)DAT_0002d480" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) , (cast_expression "(char *)local_41c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c);" (assignment_expression "iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c)" identifier = (call_expression "fscanf(__stream,"%1023[^\n]\n",local_41c)" identifier (argument_list "(__stream,"%1023[^\n]\n",local_41c)" ( identifier , (string_literal ""%1023[^\n]\n"" " string_content escape_sequence string_content escape_sequence ") , identifier )))) ;) (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "local_42c = strrchr((char *)local_41c,0x20);" (assignment_expression "local_42c = strrchr((char *)local_41c,0x20)" identifier = (call_expression "strrchr((char *)local_41c,0x20)" identifier (argument_list "((char *)local_41c,0x20)" ( (cast_expression "(char *)local_41c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (expression_statement "local_42c = local_42c + 1;" (assignment_expression "local_42c = local_42c + 1" identifier = (binary_expression "local_42c + 1" identifier + number_literal)) ;) (expression_statement "sVar6 = strlen(local_42c);" (assignment_expression "sVar6 = strlen(local_42c)" identifier = (call_expression "strlen(local_42c)" identifier (argument_list "(local_42c)" ( identifier )))) ;) (expression_statement "puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480);" (assignment_expression "puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480)" identifier = (cast_expression "(undefined4 *)(iVar1 + (int)DAT_0002d480)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + (int)DAT_0002d480)" ( (binary_expression "iVar1 + (int)DAT_0002d480" identifier + (cast_expression "(int)DAT_0002d480" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "uVar4 = xmalloc(sVar6 + 1);" (assignment_expression "uVar4 = xmalloc(sVar6 + 1)" identifier = (call_expression "xmalloc(sVar6 + 1)" identifier (argument_list "(sVar6 + 1)" ( (binary_expression "sVar6 + 1" identifier + number_literal) )))) ;) (expression_statement "*puVar9 = uVar4;" (assignment_expression "*puVar9 = uVar4" (pointer_expression "*puVar9" * identifier) = identifier) ;) (expression_statement "strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c);" (call_expression "strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c)" identifier (argument_list "(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c)" ( (pointer_expression "*(char **)((int)DAT_0002d480 + local_428 * 0xc)" * (cast_expression "(char **)((int)DAT_0002d480 + local_428 * 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)DAT_0002d480 + local_428 * 0xc)" ( (binary_expression "(int)DAT_0002d480 + local_428 * 0xc" (cast_expression "(int)DAT_0002d480" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "local_428 * 0xc" identifier * number_literal)) )))) , identifier ))) ;) (expression_statement "local_428 = local_428 + 1;" (assignment_expression "local_428 = local_428 + 1" identifier = (binary_expression "local_428 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_00018040;" goto statement_identifier ;) })) (expression_statement "iVar1 = fscanf(__stream,"\n",puVar14);" (assignment_expression "iVar1 = fscanf(__stream,"\n",puVar14)" identifier = (call_expression "fscanf(__stream,"\n",puVar14)" identifier (argument_list "(__stream,"\n",puVar14)" ( identifier , (string_literal ""\n"" " escape_sequence ") , identifier )))) ;) }) while (parenthesized_expression "(iVar1 != -1)" ( (binary_expression "iVar1 != -1" identifier != number_literal) )) ;)) (goto_statement "goto LAB_00017fc2;" goto statement_identifier ;) (labeled_statement "LAB_000181c9:\n  iVar5 = (int)pvVar8 + iVar1;" statement_identifier : (expression_statement "iVar5 = (int)pvVar8 + iVar1;" (assignment_expression "iVar5 = (int)pvVar8 + iVar1" identifier = (binary_expression "(int)pvVar8 + iVar1" (cast_expression "(int)pvVar8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;)) (if_statement "if (uVar3 == 0) {\nLAB_000181b8:\n    *(byte *)(iVar5 + 8) = *(byte *)(iVar5 + 8) | 1;\n  }\n  else {\n    iVar5 = filename_cmp(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8));\n    pvVar8 = DAT_0002d480;\n    if (iVar5 != 0) {\n      iVar5 = (int)DAT_0002d480 + iVar1;\n      goto LAB_000181b8;\n    }\n  }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000181b8:\n    *(byte *)(iVar5 + 8) = *(byte *)(iVar5 + 8) | 1;\n  }" { (labeled_statement "LAB_000181b8:\n    *(byte *)(iVar5 + 8) = *(byte *)(iVar5 + 8) | 1;" statement_identifier : (expression_statement "*(byte *)(iVar5 + 8) = *(byte *)(iVar5 + 8) | 1;" (assignment_expression "*(byte *)(iVar5 + 8) = *(byte *)(iVar5 + 8) | 1" (pointer_expression "*(byte *)(iVar5 + 8)" * (cast_expression "(byte *)(iVar5 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar5 + 8) | 1" (pointer_expression "*(byte *)(iVar5 + 8)" * (cast_expression "(byte *)(iVar5 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) | number_literal)) ;)) }) (else_clause "else {\n    iVar5 = filename_cmp(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8));\n    pvVar8 = DAT_0002d480;\n    if (iVar5 != 0) {\n      iVar5 = (int)DAT_0002d480 + iVar1;\n      goto LAB_000181b8;\n    }\n  }" else (compound_statement "{\n    iVar5 = filename_cmp(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8));\n    pvVar8 = DAT_0002d480;\n    if (iVar5 != 0) {\n      iVar5 = (int)DAT_0002d480 + iVar1;\n      goto LAB_000181b8;\n    }\n  }" { (expression_statement "iVar5 = filename_cmp(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8));" (assignment_expression "iVar5 = filename_cmp(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8))" identifier = (call_expression "filename_cmp(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8))" identifier (argument_list "(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8))" ( (pointer_expression "*(undefined4 *)(iVar5 + 4)" * (cast_expression "(undefined4 *)(iVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)((int)pvVar8 + iVar1 + -8)" * (cast_expression "(undefined4 *)((int)pvVar8 + iVar1 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar8 + iVar1 + -8)" ( (binary_expression "(int)pvVar8 + iVar1 + -8" (binary_expression "(int)pvVar8 + iVar1" (cast_expression "(int)pvVar8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) )))) ;) (expression_statement "pvVar8 = DAT_0002d480;" (assignment_expression "pvVar8 = DAT_0002d480" identifier = identifier) ;) (if_statement "if (iVar5 != 0) {\n      iVar5 = (int)DAT_0002d480 + iVar1;\n      goto LAB_000181b8;\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar5 = (int)DAT_0002d480 + iVar1;\n      goto LAB_000181b8;\n    }" { (expression_statement "iVar5 = (int)DAT_0002d480 + iVar1;" (assignment_expression "iVar5 = (int)DAT_0002d480 + iVar1" identifier = (binary_expression "(int)DAT_0002d480 + iVar1" (cast_expression "(int)DAT_0002d480" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (goto_statement "goto LAB_000181b8;" goto statement_identifier ;) })) }))) (expression_statement "uVar3 = uVar3 + 1;" (assignment_expression "uVar3 = uVar3 + 1" identifier = (binary_expression "uVar3 + 1" identifier + number_literal)) ;) (expression_statement "iVar1 = iVar1 + 0xc;" (assignment_expression "iVar1 = iVar1 + 0xc" identifier = (binary_expression "iVar1 + 0xc" identifier + number_literal)) ;) (expression_statement "uVar2 = DAT_0002d484;" (assignment_expression "uVar2 = DAT_0002d484" identifier = identifier) ;) (if_statement "if (DAT_0002d484 <= uVar3) {\nLAB_000181f3:\n    qsort(pvVar8,uVar2,0xc,FUN_00018260);\n    fclose(__stream);\n    return;\n  }" if (parenthesized_expression "(DAT_0002d484 <= uVar3)" ( (binary_expression "DAT_0002d484 <= uVar3" identifier <= identifier) )) (compound_statement "{\nLAB_000181f3:\n    qsort(pvVar8,uVar2,0xc,FUN_00018260);\n    fclose(__stream);\n    return;\n  }" { (labeled_statement "LAB_000181f3:\n    qsort(pvVar8,uVar2,0xc,FUN_00018260);" statement_identifier : (expression_statement "qsort(pvVar8,uVar2,0xc,FUN_00018260);" (call_expression "qsort(pvVar8,uVar2,0xc,FUN_00018260)" identifier (argument_list "(pvVar8,uVar2,0xc,FUN_00018260)" ( identifier , identifier , number_literal , identifier ))) ;)) (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" identifier (argument_list "(__stream)" ( identifier ))) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_000181c9;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content ")) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " escape_sequence ") , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence string_content escape_sequence ") , IDENT )))) ;)) }) while (parenthesized_expression ( (binary_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 *)) ) (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence string_content ") , IDENT )))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * IDENT) + LIT) & (unary_expression ~ (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) })) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)) - (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))))) ))) + LIT) ))) )))) ;) (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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence string_content escape_sequence ") , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression IDENT * LIT)) )))) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " escape_sequence ") , IDENT )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;)) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (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 (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return ;) })) (goto_statement goto statement_identifier ;) })))
(function_definition "void __regparm3 FUN_00017f10(char *param_1)\n\n{\n  FILE *__stream;\n  int iVar1;\n  uint uVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  size_t sVar6;\n  char *__format;\n  uint *puVar7;\n  void *pvVar8;\n  undefined4 *puVar9;\n  byte *pbVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  uint *puVar14;\n  char *local_430;\n  char *local_42c;\n  uint local_428;\n  uint local_41c [258];\n  undefined4 uStack_14;\n  \n  bVar13 = 0;\n  uStack_14 = 0x17f1b;\n  __stream = fopen64(param_1,"r");\n  uVar4 = DAT_0002d494;\n  if (__stream == (FILE *)0x0) {\n    __format = (char *)dcgettext("gprof","%s: could not open %s.\n",5);\n    fprintf(*(FILE **)PTR_stderr_0002bfcc,__format,uVar4,param_1);\n                    \n    FUN_0001a990(1);\n  }\n  local_430 = "%1023[^\n:]";\n  local_42c = (char *)0x0;\n  while( true ) {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) break;\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,local_430,local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) goto LAB_00017fc2;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar11 && !bVar12) != bVar11) goto LAB_00017fd0;\n    iVar1 = fscanf(__stream,"\n",puVar14);\n    if (iVar1 == -1) {\nLAB_00017fc2:\n      do {\n        FUN_00017ec0();\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      } while (iVar1 == 0);\n      local_42c = local_42c + 1;\n    }\n  }\n  DAT_0002d480 = (void *)xmalloc((int)local_42c * 0xc);\n  local_430 = (char *)&DAT_0002d480;\n  rewind(__stream);\n  local_428 = 0;\nLAB_00018040:\n  do {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) {\n      DAT_0002d484 = local_428;\n      pvVar8 = DAT_0002d480;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,"%1023[^\n:]",local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) break;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    puVar7 = local_41c;\n    if ((!bVar11 && !bVar12) != bVar11) {\n      do {\n        puVar14 = puVar7;\n        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar14 + 1;\n      } while (uVar3 == 0);\n      bVar11 = (uVar2 & 0x8080) == 0;\n      if (bVar11) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar11) {\n        puVar7 = (uint *)((int)puVar14 + 6);\n      }\n      iVar1 = local_428 * 0xc;\n      local_42c = (char *)((int)DAT_0002d480 + iVar1);\n      uVar4 = xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      *(undefined4 *)(local_42c + 4) = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c);\n      iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      if (iVar5 == 0) break;\n      local_42c = strrchr((char *)local_41c,0x20);\n      local_42c = local_42c + 1;\n      sVar6 = strlen(local_42c);\n      puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480);\n      uVar4 = xmalloc(sVar6 + 1);\n      *puVar9 = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }\n    iVar1 = fscanf(__stream,"\n",puVar14);\n  } while (iVar1 != -1);\n  goto LAB_00017fc2;\nLAB_000181c9:\n  iVar5 = (int)pvVar8 + iVar1;\n  if (uVar3 == 0) {\nLAB_000181b8:\n    *(byte *)(iVar5 + 8) = *(byte *)(iVar5 + 8) | 1;\n  }\n  else {\n    iVar5 = filename_cmp(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8));\n    pvVar8 = DAT_0002d480;\n    if (iVar5 != 0) {\n      iVar5 = (int)DAT_0002d480 + iVar1;\n      goto LAB_000181b8;\n    }\n  }\n  uVar3 = uVar3 + 1;\n  iVar1 = iVar1 + 0xc;\n  uVar2 = DAT_0002d484;\n  if (DAT_0002d484 <= uVar3) {\nLAB_000181f3:\n    qsort(pvVar8,uVar2,0xc,FUN_00018260);\n    fclose(__stream);\n    return;\n  }\n  goto LAB_000181c9;\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00017f10(char *param_1)" (identifier "FUN_00017f10") (parameter_list "(char *param_1)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  FILE *__stream;\n  int iVar1;\n  uint uVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  size_t sVar6;\n  char *__format;\n  uint *puVar7;\n  void *pvVar8;\n  undefined4 *puVar9;\n  byte *pbVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  uint *puVar14;\n  char *local_430;\n  char *local_42c;\n  uint local_428;\n  uint local_41c [258];\n  undefined4 uStack_14;\n  \n  bVar13 = 0;\n  uStack_14 = 0x17f1b;\n  __stream = fopen64(param_1,"r");\n  uVar4 = DAT_0002d494;\n  if (__stream == (FILE *)0x0) {\n    __format = (char *)dcgettext("gprof","%s: could not open %s.\n",5);\n    fprintf(*(FILE **)PTR_stderr_0002bfcc,__format,uVar4,param_1);\n                    \n    FUN_0001a990(1);\n  }\n  local_430 = "%1023[^\n:]";\n  local_42c = (char *)0x0;\n  while( true ) {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) break;\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,local_430,local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) goto LAB_00017fc2;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar11 && !bVar12) != bVar11) goto LAB_00017fd0;\n    iVar1 = fscanf(__stream,"\n",puVar14);\n    if (iVar1 == -1) {\nLAB_00017fc2:\n      do {\n        FUN_00017ec0();\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      } while (iVar1 == 0);\n      local_42c = local_42c + 1;\n    }\n  }\n  DAT_0002d480 = (void *)xmalloc((int)local_42c * 0xc);\n  local_430 = (char *)&DAT_0002d480;\n  rewind(__stream);\n  local_428 = 0;\nLAB_00018040:\n  do {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) {\n      DAT_0002d484 = local_428;\n      pvVar8 = DAT_0002d480;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,"%1023[^\n:]",local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) break;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    puVar7 = local_41c;\n    if ((!bVar11 && !bVar12) != bVar11) {\n      do {\n        puVar14 = puVar7;\n        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar14 + 1;\n      } while (uVar3 == 0);\n      bVar11 = (uVar2 & 0x8080) == 0;\n      if (bVar11) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar11) {\n        puVar7 = (uint *)((int)puVar14 + 6);\n      }\n      iVar1 = local_428 * 0xc;\n      local_42c = (char *)((int)DAT_0002d480 + iVar1);\n      uVar4 = xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      *(undefined4 *)(local_42c + 4) = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c);\n      iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      if (iVar5 == 0) break;\n      local_42c = strrchr((char *)local_41c,0x20);\n      local_42c = local_42c + 1;\n      sVar6 = strlen(local_42c);\n      puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480);\n      uVar4 = xmalloc(sVar6 + 1);\n      *puVar9 = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }\n    iVar1 = fscanf(__stream,"\n",puVar14);\n  } while (iVar1 != -1);\n  goto LAB_00017fc2;\nLAB_000181c9:\n  iVar5 = (int)pvVar8 + iVar1;\n  if (uVar3 == 0) {\nLAB_000181b8:\n    *(byte *)(iVar5 + 8) = *(byte *)(iVar5 + 8) | 1;\n  }\n  else {\n    iVar5 = filename_cmp(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8));\n    pvVar8 = DAT_0002d480;\n    if (iVar5 != 0) {\n      iVar5 = (int)DAT_0002d480 + iVar1;\n      goto LAB_000181b8;\n    }\n  }\n  uVar3 = uVar3 + 1;\n  iVar1 = iVar1 + 0xc;\n  uVar2 = DAT_0002d484;\n  if (DAT_0002d484 <= uVar3) {\nLAB_000181f3:\n    qsort(pvVar8,uVar2,0xc,FUN_00018260);\n    fclose(__stream);\n    return;\n  }\n  goto LAB_000181c9;\n}" ({ "{") (declaration "FILE *__stream;" (type_identifier "FILE") (pointer_declarator "*__stream" (* "*") (identifier "__stream")) (; ";")) (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "size_t sVar6;" (primitive_type "size_t") (identifier "sVar6") (; ";")) (declaration "char *__format;" (primitive_type "char") (pointer_declarator "*__format" (* "*") (identifier "__format")) (; ";")) (declaration "uint *puVar7;" (type_identifier "uint") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "void *pvVar8;" (primitive_type "void") (pointer_declarator "*pvVar8" (* "*") (identifier "pvVar8")) (; ";")) (declaration "undefined4 *puVar9;" (type_identifier "undefined4") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "bool bVar11;" (primitive_type "bool") (identifier "bVar11") (; ";")) (declaration "bool bVar12;" (primitive_type "bool") (identifier "bVar12") (; ";")) (declaration "byte bVar13;" (type_identifier "byte") (identifier "bVar13") (; ";")) (declaration "uint *puVar14;" (type_identifier "uint") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "char *local_430;" (primitive_type "char") (pointer_declarator "*local_430" (* "*") (identifier "local_430")) (; ";")) (declaration "char *local_42c;" (primitive_type "char") (pointer_declarator "*local_42c" (* "*") (identifier "local_42c")) (; ";")) (declaration "uint local_428;" (type_identifier "uint") (identifier "local_428") (; ";")) (declaration "uint local_41c [258];" (type_identifier "uint") (array_declarator "local_41c [258]" (identifier "local_41c") ([ "[") (number_literal "258") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" (identifier "bVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x17f1b;" (assignment_expression "uStack_14 = 0x17f1b" (identifier "uStack_14") (= "=") (number_literal "0x17f1b")) (; ";")) (expression_statement "__stream = fopen64(param_1,"r");" (assignment_expression "__stream = fopen64(param_1,"r")" (identifier "__stream") (= "=") (call_expression "fopen64(param_1,"r")" (identifier "fopen64") (argument_list "(param_1,"r")" (( "(") (identifier "param_1") (, ",") (string_literal ""r"" (" """) (string_content "r") (" """)) () ")")))) (; ";")) (expression_statement "uVar4 = DAT_0002d494;" (assignment_expression "uVar4 = DAT_0002d494" (identifier "uVar4") (= "=") (identifier "DAT_0002d494")) (; ";")) (if_statement "if (__stream == (FILE *)0x0) {\n    __format = (char *)dcgettext("gprof","%s: could not open %s.\n",5);\n    fprintf(*(FILE **)PTR_stderr_0002bfcc,__format,uVar4,param_1);\n                    \n    FUN_0001a990(1);\n  }" (if "if") (parenthesized_expression "(__stream == (FILE *)0x0)" (( "(") (binary_expression "__stream == (FILE *)0x0" (identifier "__stream") (== "==") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    __format = (char *)dcgettext("gprof","%s: could not open %s.\n",5);\n    fprintf(*(FILE **)PTR_stderr_0002bfcc,__format,uVar4,param_1);\n                    \n    FUN_0001a990(1);\n  }" ({ "{") (expression_statement "__format = (char *)dcgettext("gprof","%s: could not open %s.\n",5);" (assignment_expression "__format = (char *)dcgettext("gprof","%s: could not open %s.\n",5)" (identifier "__format") (= "=") (cast_expression "(char *)dcgettext("gprof","%s: could not open %s.\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof","%s: could not open %s.\n",5)" (identifier "dcgettext") (argument_list "("gprof","%s: could not open %s.\n",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""%s: could not open %s.\n"" (" """) (string_content "%s: could not open %s.") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fprintf(*(FILE **)PTR_stderr_0002bfcc,__format,uVar4,param_1);" (call_expression "fprintf(*(FILE **)PTR_stderr_0002bfcc,__format,uVar4,param_1)" (identifier "fprintf") (argument_list "(*(FILE **)PTR_stderr_0002bfcc,__format,uVar4,param_1)" (( "(") (pointer_expression "*(FILE **)PTR_stderr_0002bfcc" (* "*") (cast_expression "(FILE **)PTR_stderr_0002bfcc" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_stderr_0002bfcc"))) (, ",") (identifier "__format") (, ",") (identifier "uVar4") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "FUN_0001a990(1);" (call_expression "FUN_0001a990(1)" (identifier "FUN_0001a990") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (} "}"))) (expression_statement "local_430 = "%1023[^\n:]";" (assignment_expression "local_430 = "%1023[^\n:]"" (identifier "local_430") (= "=") (string_literal ""%1023[^\n:]"" (" """) (string_content "%1023[^") (escape_sequence "\n") (string_content ":]") (" """))) (; ";")) (expression_statement "local_42c = (char *)0x0;" (assignment_expression "local_42c = (char *)0x0" (identifier "local_42c") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (while_statement "while( true ) {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) break;\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,local_430,local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) goto LAB_00017fc2;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar11 && !bVar12) != bVar11) goto LAB_00017fd0;\n    iVar1 = fscanf(__stream,"\n",puVar14);\n    if (iVar1 == -1) {\nLAB_00017fc2:\n      do {\n        FUN_00017ec0();\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      } while (iVar1 == 0);\n      local_42c = local_42c + 1;\n    }\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) break;\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,local_430,local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) goto LAB_00017fc2;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar11 && !bVar12) != bVar11) goto LAB_00017fd0;\n    iVar1 = fscanf(__stream,"\n",puVar14);\n    if (iVar1 == -1) {\nLAB_00017fc2:\n      do {\n        FUN_00017ec0();\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      } while (iVar1 == 0);\n      local_42c = local_42c + 1;\n    }\n  }" ({ "{") (expression_statement "iVar1 = feof(__stream);" (assignment_expression "iVar1 = feof(__stream)" (identifier "iVar1") (= "=") (call_expression "feof(__stream)" (identifier "feof") (argument_list "(__stream)" (( "(") (identifier "__stream") () ")")))) (; ";")) (if_statement "if (iVar1 != 0) break;" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "puVar14 = local_41c;" (assignment_expression "puVar14 = local_41c" (identifier "puVar14") (= "=") (identifier "local_41c")) (; ";")) (expression_statement "iVar1 = fscanf(__stream,local_430,local_41c);" (assignment_expression "iVar1 = fscanf(__stream,local_430,local_41c)" (identifier "iVar1") (= "=") (call_expression "fscanf(__stream,local_430,local_41c)" (identifier "fscanf") (argument_list "(__stream,local_430,local_41c)" (( "(") (identifier "__stream") (, ",") (identifier "local_430") (, ",") (identifier "local_41c") () ")")))) (; ";")) (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" (identifier "bVar11") (= "=") (false "false")) (; ";")) (expression_statement "bVar12 = iVar1 == 0;" (assignment_expression "bVar12 = iVar1 == 0" (identifier "bVar12") (= "=") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar12) goto LAB_00017fc2;" (if "if") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (goto_statement "goto LAB_00017fc2;" (goto "goto") (statement_identifier "LAB_00017fc2") (; ";"))) (expression_statement "iVar1 = 0xe;" (assignment_expression "iVar1 = 0xe" (identifier "iVar1") (= "=") (number_literal "0xe")) (; ";")) (expression_statement "puVar7 = local_41c;" (assignment_expression "puVar7 = local_41c" (identifier "puVar7") (= "=") (identifier "local_41c")) (; ";")) (expression_statement "pbVar10 = (byte *)"No symbols in ";" (assignment_expression "pbVar10 = (byte *)"No symbols in "" (identifier "pbVar10") (= "=") (cast_expression "(byte *)"No symbols in "" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""No symbols in "" (" """) (string_content "No symbols in ") (" """)))) (; ";")) (do_statement "do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);" (do "do") (compound_statement "{\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar1 == 0) break;" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar1 = iVar1 + -1;" (assignment_expression "iVar1 = iVar1 + -1" (identifier "iVar1") (= "=") (binary_expression "iVar1 + -1" (identifier "iVar1") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar11 = (byte)*puVar7 < *pbVar10;" (assignment_expression "bVar11 = (byte)*puVar7 < *pbVar10" (identifier "bVar11") (= "=") (binary_expression "(byte)*puVar7 < *pbVar10" (binary_expression "(byte)*puVar7" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "puVar7")) (< "<") (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")))) (; ";")) (expression_statement "bVar12 = (byte)*puVar7 == *pbVar10;" (assignment_expression "bVar12 = (byte)*puVar7 == *pbVar10" (identifier "bVar12") (= "=") (binary_expression "(byte)*puVar7 == *pbVar10" (binary_expression "(byte)*puVar7" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "puVar7")) (== "==") (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")))) (; ";")) (expression_statement "puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);" (assignment_expression "puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1)" (identifier "puVar7") (= "=") (cast_expression "(uint *)((int)puVar7 + (uint)bVar13 * -2 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + (uint)bVar13 * -2 + 1)" (( "(") (binary_expression "(int)puVar7 + (uint)bVar13 * -2 + 1" (binary_expression "(int)puVar7 + (uint)bVar13 * -2" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar13")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar13 * -2" (identifier "pbVar10") (+ "+") (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar13")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (; ";")) (if_statement "if ((!bVar11 && !bVar12) != bVar11) goto LAB_00017fd0;" (if "if") (parenthesized_expression "((!bVar11 && !bVar12) != bVar11)" (( "(") (binary_expression "(!bVar11 && !bVar12) != bVar11" (parenthesized_expression "(!bVar11 && !bVar12)" (( "(") (binary_expression "!bVar11 && !bVar12" (unary_expression "!bVar11" (! "!") (identifier "bVar11")) (&& "&&") (unary_expression "!bVar12" (! "!") (identifier "bVar12"))) () ")")) (!= "!=") (identifier "bVar11")) () ")")) (goto_statement "goto LAB_00017fd0;" (goto "goto") (statement_identifier "LAB_00017fd0") (; ";"))) (expression_statement "iVar1 = fscanf(__stream,"\n",puVar14);" (assignment_expression "iVar1 = fscanf(__stream,"\n",puVar14)" (identifier "iVar1") (= "=") (call_expression "fscanf(__stream,"\n",puVar14)" (identifier "fscanf") (argument_list "(__stream,"\n",puVar14)" (( "(") (identifier "__stream") (, ",") (string_literal ""\n"" (" """) (escape_sequence "\n") (" """)) (, ",") (identifier "puVar14") () ")")))) (; ";")) (if_statement "if (iVar1 == -1) {\nLAB_00017fc2:\n      do {\n        FUN_00017ec0();\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      } while (iVar1 == 0);\n      local_42c = local_42c + 1;\n    }" (if "if") (parenthesized_expression "(iVar1 == -1)" (( "(") (binary_expression "iVar1 == -1" (identifier "iVar1") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\nLAB_00017fc2:\n      do {\n        FUN_00017ec0();\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      } while (iVar1 == 0);\n      local_42c = local_42c + 1;\n    }" ({ "{") (labeled_statement "LAB_00017fc2:\n      do {\n        FUN_00017ec0();\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      } while (iVar1 == 0);" (statement_identifier "LAB_00017fc2") (: ":") (do_statement "do {\n        FUN_00017ec0();\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      } while (iVar1 == 0);" (do "do") (compound_statement "{\n        FUN_00017ec0();\nLAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      }" ({ "{") (expression_statement "FUN_00017ec0();" (call_expression "FUN_00017ec0()" (identifier "FUN_00017ec0") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_00017fd0:\n        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);" (statement_identifier "LAB_00017fd0") (: ":") (expression_statement "iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);" (assignment_expression "iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c)" (identifier "iVar1") (= "=") (call_expression "fscanf(__stream,"%1023[^\n]\n",local_41c)" (identifier "fscanf") (argument_list "(__stream,"%1023[^\n]\n",local_41c)" (( "(") (identifier "__stream") (, ",") (string_literal ""%1023[^\n]\n"" (" """) (string_content "%1023[^") (escape_sequence "\n") (string_content "]") (escape_sequence "\n") (" """)) (, ",") (identifier "local_41c") () ")")))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (; ";"))) (expression_statement "local_42c = local_42c + 1;" (assignment_expression "local_42c = local_42c + 1" (identifier "local_42c") (= "=") (binary_expression "local_42c + 1" (identifier "local_42c") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "DAT_0002d480 = (void *)xmalloc((int)local_42c * 0xc);" (assignment_expression "DAT_0002d480 = (void *)xmalloc((int)local_42c * 0xc)" (identifier "DAT_0002d480") (= "=") (cast_expression "(void *)xmalloc((int)local_42c * 0xc)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc((int)local_42c * 0xc)" (identifier "xmalloc") (argument_list "((int)local_42c * 0xc)" (( "(") (binary_expression "(int)local_42c * 0xc" (cast_expression "(int)local_42c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_42c")) (* "*") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "local_430 = (char *)&DAT_0002d480;" (assignment_expression "local_430 = (char *)&DAT_0002d480" (identifier "local_430") (= "=") (cast_expression "(char *)&DAT_0002d480" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_0002d480" (& "&") (identifier "DAT_0002d480")))) (; ";")) (expression_statement "rewind(__stream);" (call_expression "rewind(__stream)" (identifier "rewind") (argument_list "(__stream)" (( "(") (identifier "__stream") () ")"))) (; ";")) (expression_statement "local_428 = 0;" (assignment_expression "local_428 = 0" (identifier "local_428") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00018040:\n  do {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) {\n      DAT_0002d484 = local_428;\n      pvVar8 = DAT_0002d480;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,"%1023[^\n:]",local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) break;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    puVar7 = local_41c;\n    if ((!bVar11 && !bVar12) != bVar11) {\n      do {\n        puVar14 = puVar7;\n        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar14 + 1;\n      } while (uVar3 == 0);\n      bVar11 = (uVar2 & 0x8080) == 0;\n      if (bVar11) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar11) {\n        puVar7 = (uint *)((int)puVar14 + 6);\n      }\n      iVar1 = local_428 * 0xc;\n      local_42c = (char *)((int)DAT_0002d480 + iVar1);\n      uVar4 = xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      *(undefined4 *)(local_42c + 4) = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c);\n      iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      if (iVar5 == 0) break;\n      local_42c = strrchr((char *)local_41c,0x20);\n      local_42c = local_42c + 1;\n      sVar6 = strlen(local_42c);\n      puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480);\n      uVar4 = xmalloc(sVar6 + 1);\n      *puVar9 = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }\n    iVar1 = fscanf(__stream,"\n",puVar14);\n  } while (iVar1 != -1);" (statement_identifier "LAB_00018040") (: ":") (do_statement "do {\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) {\n      DAT_0002d484 = local_428;\n      pvVar8 = DAT_0002d480;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,"%1023[^\n:]",local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) break;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    puVar7 = local_41c;\n    if ((!bVar11 && !bVar12) != bVar11) {\n      do {\n        puVar14 = puVar7;\n        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar14 + 1;\n      } while (uVar3 == 0);\n      bVar11 = (uVar2 & 0x8080) == 0;\n      if (bVar11) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar11) {\n        puVar7 = (uint *)((int)puVar14 + 6);\n      }\n      iVar1 = local_428 * 0xc;\n      local_42c = (char *)((int)DAT_0002d480 + iVar1);\n      uVar4 = xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      *(undefined4 *)(local_42c + 4) = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c);\n      iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      if (iVar5 == 0) break;\n      local_42c = strrchr((char *)local_41c,0x20);\n      local_42c = local_42c + 1;\n      sVar6 = strlen(local_42c);\n      puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480);\n      uVar4 = xmalloc(sVar6 + 1);\n      *puVar9 = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }\n    iVar1 = fscanf(__stream,"\n",puVar14);\n  } while (iVar1 != -1);" (do "do") (compound_statement "{\n    iVar1 = feof(__stream);\n    if (iVar1 != 0) {\n      DAT_0002d484 = local_428;\n      pvVar8 = DAT_0002d480;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }\n    puVar14 = local_41c;\n    iVar1 = fscanf(__stream,"%1023[^\n:]",local_41c);\n    bVar11 = false;\n    bVar12 = iVar1 == 0;\n    if (bVar12) break;\n    iVar1 = 0xe;\n    puVar7 = local_41c;\n    pbVar10 = (byte *)"No symbols in ";\n    do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    puVar7 = local_41c;\n    if ((!bVar11 && !bVar12) != bVar11) {\n      do {\n        puVar14 = puVar7;\n        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar14 + 1;\n      } while (uVar3 == 0);\n      bVar11 = (uVar2 & 0x8080) == 0;\n      if (bVar11) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar11) {\n        puVar7 = (uint *)((int)puVar14 + 6);\n      }\n      iVar1 = local_428 * 0xc;\n      local_42c = (char *)((int)DAT_0002d480 + iVar1);\n      uVar4 = xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      *(undefined4 *)(local_42c + 4) = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c);\n      iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      if (iVar5 == 0) break;\n      local_42c = strrchr((char *)local_41c,0x20);\n      local_42c = local_42c + 1;\n      sVar6 = strlen(local_42c);\n      puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480);\n      uVar4 = xmalloc(sVar6 + 1);\n      *puVar9 = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }\n    iVar1 = fscanf(__stream,"\n",puVar14);\n  }" ({ "{") (expression_statement "iVar1 = feof(__stream);" (assignment_expression "iVar1 = feof(__stream)" (identifier "iVar1") (= "=") (call_expression "feof(__stream)" (identifier "feof") (argument_list "(__stream)" (( "(") (identifier "__stream") () ")")))) (; ";")) (if_statement "if (iVar1 != 0) {\n      DAT_0002d484 = local_428;\n      pvVar8 = DAT_0002d480;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      DAT_0002d484 = local_428;\n      pvVar8 = DAT_0002d480;\n      if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }\n      iVar1 = 0;\n      uVar3 = 0;\n      goto LAB_000181c9;\n    }" ({ "{") (expression_statement "DAT_0002d484 = local_428;" (assignment_expression "DAT_0002d484 = local_428" (identifier "DAT_0002d484") (= "=") (identifier "local_428")) (; ";")) (expression_statement "pvVar8 = DAT_0002d480;" (assignment_expression "pvVar8 = DAT_0002d480" (identifier "pvVar8") (= "=") (identifier "DAT_0002d480")) (; ";")) (if_statement "if (local_428 == 0) {\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }" (if "if") (parenthesized_expression "(local_428 == 0)" (( "(") (binary_expression "local_428 == 0" (identifier "local_428") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar2 = 0;\n        goto LAB_000181f3;\n      }" ({ "{") (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000181f3;" (goto "goto") (statement_identifier "LAB_000181f3") (; ";")) (} "}"))) (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" (identifier "iVar1") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000181c9;" (goto "goto") (statement_identifier "LAB_000181c9") (; ";")) (} "}"))) (expression_statement "puVar14 = local_41c;" (assignment_expression "puVar14 = local_41c" (identifier "puVar14") (= "=") (identifier "local_41c")) (; ";")) (expression_statement "iVar1 = fscanf(__stream,"%1023[^\n:]",local_41c);" (assignment_expression "iVar1 = fscanf(__stream,"%1023[^\n:]",local_41c)" (identifier "iVar1") (= "=") (call_expression "fscanf(__stream,"%1023[^\n:]",local_41c)" (identifier "fscanf") (argument_list "(__stream,"%1023[^\n:]",local_41c)" (( "(") (identifier "__stream") (, ",") (string_literal ""%1023[^\n:]"" (" """) (string_content "%1023[^") (escape_sequence "\n") (string_content ":]") (" """)) (, ",") (identifier "local_41c") () ")")))) (; ";")) (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" (identifier "bVar11") (= "=") (false "false")) (; ";")) (expression_statement "bVar12 = iVar1 == 0;" (assignment_expression "bVar12 = iVar1 == 0" (identifier "bVar12") (= "=") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar12) break;" (if "if") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar1 = 0xe;" (assignment_expression "iVar1 = 0xe" (identifier "iVar1") (= "=") (number_literal "0xe")) (; ";")) (expression_statement "puVar7 = local_41c;" (assignment_expression "puVar7 = local_41c" (identifier "puVar7") (= "=") (identifier "local_41c")) (; ";")) (expression_statement "pbVar10 = (byte *)"No symbols in ";" (assignment_expression "pbVar10 = (byte *)"No symbols in "" (identifier "pbVar10") (= "=") (cast_expression "(byte *)"No symbols in "" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""No symbols in "" (" """) (string_content "No symbols in ") (" """)))) (; ";")) (do_statement "do {\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);" (do "do") (compound_statement "{\n      if (iVar1 == 0) break;\n      iVar1 = iVar1 + -1;\n      bVar11 = (byte)*puVar7 < *pbVar10;\n      bVar12 = (byte)*puVar7 == *pbVar10;\n      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar1 == 0) break;" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar1 = iVar1 + -1;" (assignment_expression "iVar1 = iVar1 + -1" (identifier "iVar1") (= "=") (binary_expression "iVar1 + -1" (identifier "iVar1") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar11 = (byte)*puVar7 < *pbVar10;" (assignment_expression "bVar11 = (byte)*puVar7 < *pbVar10" (identifier "bVar11") (= "=") (binary_expression "(byte)*puVar7 < *pbVar10" (binary_expression "(byte)*puVar7" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "puVar7")) (< "<") (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")))) (; ";")) (expression_statement "bVar12 = (byte)*puVar7 == *pbVar10;" (assignment_expression "bVar12 = (byte)*puVar7 == *pbVar10" (identifier "bVar12") (= "=") (binary_expression "(byte)*puVar7 == *pbVar10" (binary_expression "(byte)*puVar7" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "puVar7")) (== "==") (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")))) (; ";")) (expression_statement "puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);" (assignment_expression "puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1)" (identifier "puVar7") (= "=") (cast_expression "(uint *)((int)puVar7 + (uint)bVar13 * -2 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + (uint)bVar13 * -2 + 1)" (( "(") (binary_expression "(int)puVar7 + (uint)bVar13 * -2 + 1" (binary_expression "(int)puVar7 + (uint)bVar13 * -2" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar13")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar13 * -2" (identifier "pbVar10") (+ "+") (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar13")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (; ";")) (expression_statement "puVar7 = local_41c;" (assignment_expression "puVar7 = local_41c" (identifier "puVar7") (= "=") (identifier "local_41c")) (; ";")) (if_statement "if ((!bVar11 && !bVar12) != bVar11) {\n      do {\n        puVar14 = puVar7;\n        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar14 + 1;\n      } while (uVar3 == 0);\n      bVar11 = (uVar2 & 0x8080) == 0;\n      if (bVar11) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar11) {\n        puVar7 = (uint *)((int)puVar14 + 6);\n      }\n      iVar1 = local_428 * 0xc;\n      local_42c = (char *)((int)DAT_0002d480 + iVar1);\n      uVar4 = xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      *(undefined4 *)(local_42c + 4) = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c);\n      iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      if (iVar5 == 0) break;\n      local_42c = strrchr((char *)local_41c,0x20);\n      local_42c = local_42c + 1;\n      sVar6 = strlen(local_42c);\n      puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480);\n      uVar4 = xmalloc(sVar6 + 1);\n      *puVar9 = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }" (if "if") (parenthesized_expression "((!bVar11 && !bVar12) != bVar11)" (( "(") (binary_expression "(!bVar11 && !bVar12) != bVar11" (parenthesized_expression "(!bVar11 && !bVar12)" (( "(") (binary_expression "!bVar11 && !bVar12" (unary_expression "!bVar11" (! "!") (identifier "bVar11")) (&& "&&") (unary_expression "!bVar12" (! "!") (identifier "bVar12"))) () ")")) (!= "!=") (identifier "bVar11")) () ")")) (compound_statement "{\n      do {\n        puVar14 = puVar7;\n        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar14 + 1;\n      } while (uVar3 == 0);\n      bVar11 = (uVar2 & 0x8080) == 0;\n      if (bVar11) {\n        uVar3 = uVar3 >> 0x10;\n      }\n      if (bVar11) {\n        puVar7 = (uint *)((int)puVar14 + 6);\n      }\n      iVar1 = local_428 * 0xc;\n      local_42c = (char *)((int)DAT_0002d480 + iVar1);\n      uVar4 = xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));\n      *(undefined4 *)(local_42c + 4) = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c);\n      iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c);\n      if (iVar5 == 0) break;\n      local_42c = strrchr((char *)local_41c,0x20);\n      local_42c = local_42c + 1;\n      sVar6 = strlen(local_42c);\n      puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480);\n      uVar4 = xmalloc(sVar6 + 1);\n      *puVar9 = uVar4;\n      strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c);\n      local_428 = local_428 + 1;\n      goto LAB_00018040;\n    }" ({ "{") (do_statement "do {\n        puVar14 = puVar7;\n        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar14 + 1;\n      } while (uVar3 == 0);" (do "do") (compound_statement "{\n        puVar14 = puVar7;\n        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;\n        uVar3 = uVar2 & 0x80808080;\n        puVar7 = puVar14 + 1;\n      }" ({ "{") (expression_statement "puVar14 = puVar7;" (assignment_expression "puVar14 = puVar7" (identifier "puVar14") (= "=") (identifier "puVar7")) (; ";")) (expression_statement "uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;" (assignment_expression "uVar2 = *puVar14 + 0xfefefeff & ~*puVar14" (identifier "uVar2") (= "=") (binary_expression "*puVar14 + 0xfefefeff & ~*puVar14" (binary_expression "*puVar14 + 0xfefefeff" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (+ "+") (number_literal "0xfefefeff")) (& "&") (unary_expression "~*puVar14" (~ "~") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))))) (; ";")) (expression_statement "uVar3 = uVar2 & 0x80808080;" (assignment_expression "uVar3 = uVar2 & 0x80808080" (identifier "uVar3") (= "=") (binary_expression "uVar2 & 0x80808080" (identifier "uVar2") (& "&") (number_literal "0x80808080"))) (; ";")) (expression_statement "puVar7 = puVar14 + 1;" (assignment_expression "puVar7 = puVar14 + 1" (identifier "puVar7") (= "=") (binary_expression "puVar14 + 1" (identifier "puVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar3 == 0)" (( "(") (binary_expression "uVar3 == 0" (identifier "uVar3") (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "bVar11 = (uVar2 & 0x8080) == 0;" (assignment_expression "bVar11 = (uVar2 & 0x8080) == 0" (identifier "bVar11") (= "=") (binary_expression "(uVar2 & 0x8080) == 0" (parenthesized_expression "(uVar2 & 0x8080)" (( "(") (binary_expression "uVar2 & 0x8080" (identifier "uVar2") (& "&") (number_literal "0x8080")) () ")")) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar11) {\n        uVar3 = uVar3 >> 0x10;\n      }" (if "if") (parenthesized_expression "(bVar11)" (( "(") (identifier "bVar11") () ")")) (compound_statement "{\n        uVar3 = uVar3 >> 0x10;\n      }" ({ "{") (expression_statement "uVar3 = uVar3 >> 0x10;" (assignment_expression "uVar3 = uVar3 >> 0x10" (identifier "uVar3") (= "=") (binary_expression "uVar3 >> 0x10" (identifier "uVar3") (>> ">>") (number_literal "0x10"))) (; ";")) (} "}"))) (if_statement "if (bVar11) {\n        puVar7 = (uint *)((int)puVar14 + 6);\n      }" (if "if") (parenthesized_expression "(bVar11)" (( "(") (identifier "bVar11") () ")")) (compound_statement "{\n        puVar7 = (uint *)((int)puVar14 + 6);\n      }" ({ "{") (expression_statement "puVar7 = (uint *)((int)puVar14 + 6);" (assignment_expression "puVar7 = (uint *)((int)puVar14 + 6)" (identifier "puVar7") (= "=") (cast_expression "(uint *)((int)puVar14 + 6)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar14 + 6)" (( "(") (binary_expression "(int)puVar14 + 6" (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14")) (+ "+") (number_literal "6")) () ")")))) (; ";")) (} "}"))) (expression_statement "iVar1 = local_428 * 0xc;" (assignment_expression "iVar1 = local_428 * 0xc" (identifier "iVar1") (= "=") (binary_expression "local_428 * 0xc" (identifier "local_428") (* "*") (number_literal "0xc"))) (; ";")) (expression_statement "local_42c = (char *)((int)DAT_0002d480 + iVar1);" (assignment_expression "local_42c = (char *)((int)DAT_0002d480 + iVar1)" (identifier "local_42c") (= "=") (cast_expression "(char *)((int)DAT_0002d480 + iVar1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)DAT_0002d480 + iVar1)" (( "(") (binary_expression "(int)DAT_0002d480 + iVar1" (cast_expression "(int)DAT_0002d480" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_0002d480")) (+ "+") (identifier "iVar1")) () ")")))) (; ";")) (expression_statement "uVar4 = xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));" (assignment_expression "uVar4 = xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2))" (identifier "uVar4") (= "=") (call_expression "xmalloc((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2))" (identifier "xmalloc") (argument_list "((byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2))" (( "(") (cast_expression "(byte *)((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2)" (( "(") (binary_expression "(int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2" (binary_expression "(int)puVar7 +\n                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3))" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (parenthesized_expression "(-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3))" (( "(") (binary_expression "-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)" (unary_expression "-(int)local_41c" (- "-") (cast_expression "(int)local_41c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_41c"))) (- "-") (cast_expression "(uint)CARRY1((byte)uVar3,(byte)uVar3)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY1((byte)uVar3,(byte)uVar3)" (identifier "CARRY1") (argument_list "((byte)uVar3,(byte)uVar3)" (( "(") (cast_expression "(byte)uVar3" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar3")) (, ",") (cast_expression "(byte)uVar3" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar3")) () ")"))))) () ")"))) (+ "+") (number_literal "-2")) () ")"))) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(local_42c + 4) = uVar4;" (assignment_expression "*(undefined4 *)(local_42c + 4) = uVar4" (pointer_expression "*(undefined4 *)(local_42c + 4)" (* "*") (cast_expression "(undefined4 *)(local_42c + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_42c + 4)" (( "(") (binary_expression "local_42c + 4" (identifier "local_42c") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c);" (call_expression "strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c)" (identifier "strcpy") (argument_list "(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c)" (( "(") (pointer_expression "*(char **)((int)DAT_0002d480 + iVar1 + 4)" (* "*") (cast_expression "(char **)((int)DAT_0002d480 + iVar1 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)DAT_0002d480 + iVar1 + 4)" (( "(") (binary_expression "(int)DAT_0002d480 + iVar1 + 4" (binary_expression "(int)DAT_0002d480 + iVar1" (cast_expression "(int)DAT_0002d480" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_0002d480")) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "4")) () ")")))) (, ",") (cast_expression "(char *)local_41c" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_41c")) () ")"))) (; ";")) (expression_statement "iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c);" (assignment_expression "iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c)" (identifier "iVar5") (= "=") (call_expression "fscanf(__stream,"%1023[^\n]\n",local_41c)" (identifier "fscanf") (argument_list "(__stream,"%1023[^\n]\n",local_41c)" (( "(") (identifier "__stream") (, ",") (string_literal ""%1023[^\n]\n"" (" """) (string_content "%1023[^") (escape_sequence "\n") (string_content "]") (escape_sequence "\n") (" """)) (, ",") (identifier "local_41c") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "local_42c = strrchr((char *)local_41c,0x20);" (assignment_expression "local_42c = strrchr((char *)local_41c,0x20)" (identifier "local_42c") (= "=") (call_expression "strrchr((char *)local_41c,0x20)" (identifier "strrchr") (argument_list "((char *)local_41c,0x20)" (( "(") (cast_expression "(char *)local_41c" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_41c")) (, ",") (number_literal "0x20") () ")")))) (; ";")) (expression_statement "local_42c = local_42c + 1;" (assignment_expression "local_42c = local_42c + 1" (identifier "local_42c") (= "=") (binary_expression "local_42c + 1" (identifier "local_42c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "sVar6 = strlen(local_42c);" (assignment_expression "sVar6 = strlen(local_42c)" (identifier "sVar6") (= "=") (call_expression "strlen(local_42c)" (identifier "strlen") (argument_list "(local_42c)" (( "(") (identifier "local_42c") () ")")))) (; ";")) (expression_statement "puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480);" (assignment_expression "puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480)" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)(iVar1 + (int)DAT_0002d480)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + (int)DAT_0002d480)" (( "(") (binary_expression "iVar1 + (int)DAT_0002d480" (identifier "iVar1") (+ "+") (cast_expression "(int)DAT_0002d480" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_0002d480"))) () ")")))) (; ";")) (expression_statement "uVar4 = xmalloc(sVar6 + 1);" (assignment_expression "uVar4 = xmalloc(sVar6 + 1)" (identifier "uVar4") (= "=") (call_expression "xmalloc(sVar6 + 1)" (identifier "xmalloc") (argument_list "(sVar6 + 1)" (( "(") (binary_expression "sVar6 + 1" (identifier "sVar6") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*puVar9 = uVar4;" (assignment_expression "*puVar9 = uVar4" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c);" (call_expression "strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c)" (identifier "strcpy") (argument_list "(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c)" (( "(") (pointer_expression "*(char **)((int)DAT_0002d480 + local_428 * 0xc)" (* "*") (cast_expression "(char **)((int)DAT_0002d480 + local_428 * 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)DAT_0002d480 + local_428 * 0xc)" (( "(") (binary_expression "(int)DAT_0002d480 + local_428 * 0xc" (cast_expression "(int)DAT_0002d480" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_0002d480")) (+ "+") (binary_expression "local_428 * 0xc" (identifier "local_428") (* "*") (number_literal "0xc"))) () ")")))) (, ",") (identifier "local_42c") () ")"))) (; ";")) (expression_statement "local_428 = local_428 + 1;" (assignment_expression "local_428 = local_428 + 1" (identifier "local_428") (= "=") (binary_expression "local_428 + 1" (identifier "local_428") (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_00018040;" (goto "goto") (statement_identifier "LAB_00018040") (; ";")) (} "}"))) (expression_statement "iVar1 = fscanf(__stream,"\n",puVar14);" (assignment_expression "iVar1 = fscanf(__stream,"\n",puVar14)" (identifier "iVar1") (= "=") (call_expression "fscanf(__stream,"\n",puVar14)" (identifier "fscanf") (argument_list "(__stream,"\n",puVar14)" (( "(") (identifier "__stream") (, ",") (string_literal ""\n"" (" """) (escape_sequence "\n") (" """)) (, ",") (identifier "puVar14") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar1 != -1)" (( "(") (binary_expression "iVar1 != -1" (identifier "iVar1") (!= "!=") (number_literal "-1")) () ")")) (; ";"))) (goto_statement "goto LAB_00017fc2;" (goto "goto") (statement_identifier "LAB_00017fc2") (; ";")) (labeled_statement "LAB_000181c9:\n  iVar5 = (int)pvVar8 + iVar1;" (statement_identifier "LAB_000181c9") (: ":") (expression_statement "iVar5 = (int)pvVar8 + iVar1;" (assignment_expression "iVar5 = (int)pvVar8 + iVar1" (identifier "iVar5") (= "=") (binary_expression "(int)pvVar8 + iVar1" (cast_expression "(int)pvVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar8")) (+ "+") (identifier "iVar1"))) (; ";"))) (if_statement "if (uVar3 == 0) {\nLAB_000181b8:\n    *(byte *)(iVar5 + 8) = *(byte *)(iVar5 + 8) | 1;\n  }\n  else {\n    iVar5 = filename_cmp(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8));\n    pvVar8 = DAT_0002d480;\n    if (iVar5 != 0) {\n      iVar5 = (int)DAT_0002d480 + iVar1;\n      goto LAB_000181b8;\n    }\n  }" (if "if") (parenthesized_expression "(uVar3 == 0)" (( "(") (binary_expression "uVar3 == 0" (identifier "uVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000181b8:\n    *(byte *)(iVar5 + 8) = *(byte *)(iVar5 + 8) | 1;\n  }" ({ "{") (labeled_statement "LAB_000181b8:\n    *(byte *)(iVar5 + 8) = *(byte *)(iVar5 + 8) | 1;" (statement_identifier "LAB_000181b8") (: ":") (expression_statement "*(byte *)(iVar5 + 8) = *(byte *)(iVar5 + 8) | 1;" (assignment_expression "*(byte *)(iVar5 + 8) = *(byte *)(iVar5 + 8) | 1" (pointer_expression "*(byte *)(iVar5 + 8)" (* "*") (cast_expression "(byte *)(iVar5 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 8)" (( "(") (binary_expression "iVar5 + 8" (identifier "iVar5") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar5 + 8) | 1" (pointer_expression "*(byte *)(iVar5 + 8)" (* "*") (cast_expression "(byte *)(iVar5 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 8)" (( "(") (binary_expression "iVar5 + 8" (identifier "iVar5") (+ "+") (number_literal "8")) () ")")))) (| "|") (number_literal "1"))) (; ";"))) (} "}")) (else_clause "else {\n    iVar5 = filename_cmp(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8));\n    pvVar8 = DAT_0002d480;\n    if (iVar5 != 0) {\n      iVar5 = (int)DAT_0002d480 + iVar1;\n      goto LAB_000181b8;\n    }\n  }" (else "else") (compound_statement "{\n    iVar5 = filename_cmp(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8));\n    pvVar8 = DAT_0002d480;\n    if (iVar5 != 0) {\n      iVar5 = (int)DAT_0002d480 + iVar1;\n      goto LAB_000181b8;\n    }\n  }" ({ "{") (expression_statement "iVar5 = filename_cmp(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8));" (assignment_expression "iVar5 = filename_cmp(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8))" (identifier "iVar5") (= "=") (call_expression "filename_cmp(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8))" (identifier "filename_cmp") (argument_list "(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8))" (( "(") (pointer_expression "*(undefined4 *)(iVar5 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)((int)pvVar8 + iVar1 + -8)" (* "*") (cast_expression "(undefined4 *)((int)pvVar8 + iVar1 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar8 + iVar1 + -8)" (( "(") (binary_expression "(int)pvVar8 + iVar1 + -8" (binary_expression "(int)pvVar8 + iVar1" (cast_expression "(int)pvVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar8")) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "-8")) () ")")))) () ")")))) (; ";")) (expression_statement "pvVar8 = DAT_0002d480;" (assignment_expression "pvVar8 = DAT_0002d480" (identifier "pvVar8") (= "=") (identifier "DAT_0002d480")) (; ";")) (if_statement "if (iVar5 != 0) {\n      iVar5 = (int)DAT_0002d480 + iVar1;\n      goto LAB_000181b8;\n    }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar5 = (int)DAT_0002d480 + iVar1;\n      goto LAB_000181b8;\n    }" ({ "{") (expression_statement "iVar5 = (int)DAT_0002d480 + iVar1;" (assignment_expression "iVar5 = (int)DAT_0002d480 + iVar1" (identifier "iVar5") (= "=") (binary_expression "(int)DAT_0002d480 + iVar1" (cast_expression "(int)DAT_0002d480" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_0002d480")) (+ "+") (identifier "iVar1"))) (; ";")) (goto_statement "goto LAB_000181b8;" (goto "goto") (statement_identifier "LAB_000181b8") (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar3 = uVar3 + 1;" (assignment_expression "uVar3 = uVar3 + 1" (identifier "uVar3") (= "=") (binary_expression "uVar3 + 1" (identifier "uVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar1 = iVar1 + 0xc;" (assignment_expression "iVar1 = iVar1 + 0xc" (identifier "iVar1") (= "=") (binary_expression "iVar1 + 0xc" (identifier "iVar1") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "uVar2 = DAT_0002d484;" (assignment_expression "uVar2 = DAT_0002d484" (identifier "uVar2") (= "=") (identifier "DAT_0002d484")) (; ";")) (if_statement "if (DAT_0002d484 <= uVar3) {\nLAB_000181f3:\n    qsort(pvVar8,uVar2,0xc,FUN_00018260);\n    fclose(__stream);\n    return;\n  }" (if "if") (parenthesized_expression "(DAT_0002d484 <= uVar3)" (( "(") (binary_expression "DAT_0002d484 <= uVar3" (identifier "DAT_0002d484") (<= "<=") (identifier "uVar3")) () ")")) (compound_statement "{\nLAB_000181f3:\n    qsort(pvVar8,uVar2,0xc,FUN_00018260);\n    fclose(__stream);\n    return;\n  }" ({ "{") (labeled_statement "LAB_000181f3:\n    qsort(pvVar8,uVar2,0xc,FUN_00018260);" (statement_identifier "LAB_000181f3") (: ":") (expression_statement "qsort(pvVar8,uVar2,0xc,FUN_00018260);" (call_expression "qsort(pvVar8,uVar2,0xc,FUN_00018260)" (identifier "qsort") (argument_list "(pvVar8,uVar2,0xc,FUN_00018260)" (( "(") (identifier "pvVar8") (, ",") (identifier "uVar2") (, ",") (number_literal "0xc") (, ",") (identifier "FUN_00018260") () ")"))) (; ";"))) (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" (identifier "fclose") (argument_list "(__stream)" (( "(") (identifier "__stream") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (goto_statement "goto LAB_000181c9;" (goto "goto") (statement_identifier "LAB_000181c9") (; ";")) (} "}")))

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

void __regparm3 function_1(char *filename)

{
  type_1 *var_2;
  int var_7;
  type_2 var_18;
  type_2 var_20;
  char *var_25;
  size_t var_27;
  int var_28;
  char *__format;
  type_2 *var_16;
  type_3 *pfVar8;
  type_4 *var_9;
  type_4 *var_10;
  type_4 *var_17;
  bool var_11;
  bool bVar13;
  type_4 bVar14;
  type_2 *var_19;
  type_3 **local_430;
  type_3 *local_42c;
  type_2 var_15;
  char dummy [1024];
  
  bVar14 = 0;
  var_2 = var_1(filename,"r");
  var_25 = whoami;
  if (var_2 == (type_1 *)0x0) {
    __format = (char *)var_3("gprof","%s: could not open %s.\n",5);
    var_4(*(type_1 **)PTR_stderr_0002bfcc,__format,var_25,filename);
                    /* WARNING: Subroutine does not return */
    var_5(1);
  }
  local_42c = (type_3 *)0x0;
  local_430 = (type_3 **)"%1023[^\n:]";
  while( true ) {
    var_7 = var_6(var_2);
    if (var_7 != 0) break;
    var_17 = (type_4 *)dummy;
    var_7 = var_8(var_2,(char *)local_430,dummy);
    var_11 = false;
    bVar13 = var_7 == 0;
    if (bVar13) goto LAB_00017fc2;
    var_7 = 0xe;
    var_9 = (type_4 *)dummy;
    var_10 = (type_4 *)"No symbols in ";
    do {
      if (var_7 == 0) break;
      var_7 = var_7 + -1;
      var_11 = *var_9 < *var_10;
      bVar13 = *var_9 == *var_10;
      var_9 = var_9 + (type_2)bVar14 * -2 + 1;
      var_10 = var_10 + (type_2)bVar14 * -2 + 1;
    } while (bVar13);
    if ((!var_11 && !bVar13) != var_11) goto LAB_00017fd0;
    var_7 = var_8(var_2,"\n",var_17);
    if (var_7 == -1) {
LAB_00017fc2:
      do {
        var_12(filename);
LAB_00017fd0:
        var_7 = var_8(var_2,"%1023[^\n]\n",dummy);
      } while (var_7 == 0);
      local_42c = (type_3 *)((int)&local_42c->function_name + 1);
    }
  }
  var_21 = (type_3 *)var_13((int)local_42c * 0xc);
  local_430 = &var_21;
  var_14(var_2);
  var_15 = 0;
LAB_00018040:
  do {
    var_7 = var_6(var_2);
    if (var_7 != 0) {
      var_30 = var_15;
      pfVar8 = var_21;
      if (var_15 == 0) {
        var_18 = 0;
        goto LAB_000181f3;
      }
      var_7 = 0;
      var_20 = 0;
      goto LAB_000181c9;
    }
    var_19 = (type_2 *)dummy;
    var_7 = var_8(var_2,"%1023[^\n:]",dummy);
    var_11 = false;
    bVar13 = var_7 == 0;
    if (bVar13) break;
    var_7 = 0xe;
    var_16 = (type_2 *)dummy;
    var_17 = (type_4 *)"No symbols in ";
    do {
      if (var_7 == 0) break;
      var_7 = var_7 + -1;
      var_11 = (type_4)*var_16 < *var_17;
      bVar13 = (type_4)*var_16 == *var_17;
      var_16 = (type_2 *)((int)var_16 + (type_2)bVar14 * -2 + 1);
      var_17 = var_17 + (type_2)bVar14 * -2 + 1;
    } while (bVar13);
    var_16 = (type_2 *)dummy;
    if ((!var_11 && !bVar13) != var_11) {
      do {
        var_19 = var_16;
        var_18 = *var_19 + 0xfefefeff & ~*var_19;
        var_20 = var_18 & 0x80808080;
        var_16 = var_19 + 1;
      } while (var_20 == 0);
      var_11 = (var_18 & 0x8080) == 0;
      if (var_11) {
        var_20 = var_20 >> 0x10;
      }
      if (var_11) {
        var_16 = (type_2 *)((int)var_19 + 6);
      }
      local_42c = var_21 + var_15;
      var_25 = (char *)var_13((type_4 *)((int)var_16 +
                                       (-(int)dummy - (type_2)var_22((type_4)var_20,(type_4)var_20)) + -2));
      local_42c->file_name = var_25;
      var_23(var_21[var_15].file_name,dummy);
      var_7 = var_8(var_2,"%1023[^\n]\n",dummy);
      if (var_7 == 0) break;
      var_25 = var_24(dummy,0x20);
      local_42c = (type_3 *)(var_25 + 1);
      var_27 = var_26((char *)local_42c);
      pfVar8 = var_21 + var_15;
      var_25 = (char *)var_13(var_27 + 1);
      pfVar8->function_name = var_25;
      var_23(var_21[var_15].function_name,(char *)local_42c);
      var_15 = var_15 + 1;
      goto LAB_00018040;
    }
    var_7 = var_8(var_2,"\n",var_19);
  } while (var_7 != -1);
  goto LAB_00017fc2;
LAB_000181c9:
  var_28 = (int)&pfVar8->function_name + var_7;
  if (var_20 == 0) {
LAB_000181b8:
    *(type_4 *)(var_28 + 8) = *(type_4 *)(var_28 + 8) | 1;
  }
  else {
    var_28 = var_29(*(type_5 *)(var_28 + 4),*(type_5 *)((int)pfVar8 + var_7 + -8));
    pfVar8 = var_21;
    if (var_28 != 0) {
      var_28 = (int)&var_21->function_name + var_7;
      goto LAB_000181b8;
    }
  }
  var_20 = var_20 + 1;
  var_7 = var_7 + 0xc;
  var_18 = var_30;
  if (var_30 <= var_20) {
LAB_000181f3:
    var_31(pfVar8,var_18,0xc,cmp_symbol_map);
    var_32(var_2);
    return;
  }
  goto LAB_000181c9;
}


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

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

void __regparm3 MASKED(char *param_1)

{
  FILE *__stream;
  int iVar1;
  uint uVar2;
  uint uVar3;
  undefined4 uVar4;
  int iVar5;
  size_t sVar6;
  char *__format;
  uint *puVar7;
  void *pvVar8;
  undefined4 *puVar9;
  byte *pbVar10;
  bool bVar11;
  bool bVar12;
  byte bVar13;
  uint *puVar14;
  char *local_430;
  char *local_42c;
  uint local_428;
  uint local_41c [258];
  undefined4 uStack_14;
  
  bVar13 = 0;
  uStack_14 = 0x17f1b;
  __stream = fopen64(param_1,"r");
  uVar4 = DAT_0002d494;
  if (__stream == (FILE *)0x0) {
    __format = (char *)dcgettext("gprof","%s: could not open %s.\n",5);
    fprintf(*(FILE **)PTR_stderr_0002bfcc,__format,uVar4,param_1);
                    /* WARNING: Subroutine does not return */
    FUN_0001a990(1);
  }
  local_430 = "%1023[^\n:]";
  local_42c = (char *)0x0;
  while( true ) {
    iVar1 = feof(__stream);
    if (iVar1 != 0) break;
    puVar14 = local_41c;
    iVar1 = fscanf(__stream,local_430,local_41c);
    bVar11 = false;
    bVar12 = iVar1 == 0;
    if (bVar12) goto LAB_00017fc2;
    iVar1 = 0xe;
    puVar7 = local_41c;
    pbVar10 = (byte *)"No symbols in ";
    do {
      if (iVar1 == 0) break;
      iVar1 = iVar1 + -1;
      bVar11 = (byte)*puVar7 < *pbVar10;
      bVar12 = (byte)*puVar7 == *pbVar10;
      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);
      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;
    } while (bVar12);
    if ((!bVar11 && !bVar12) != bVar11) goto LAB_00017fd0;
    iVar1 = fscanf(__stream,"\n",puVar14);
    if (iVar1 == -1) {
LAB_00017fc2:
      do {
        FUN_00017ec0();
LAB_00017fd0:
        iVar1 = fscanf(__stream,"%1023[^\n]\n",local_41c);
      } while (iVar1 == 0);
      local_42c = local_42c + 1;
    }
  }
  DAT_0002d480 = (void *)xmalloc((int)local_42c * 0xc);
  local_430 = (char *)&DAT_0002d480;
  rewind(__stream);
  local_428 = 0;
LAB_00018040:
  do {
    iVar1 = feof(__stream);
    if (iVar1 != 0) {
      DAT_0002d484 = local_428;
      pvVar8 = DAT_0002d480;
      if (local_428 == 0) {
        uVar2 = 0;
        goto LAB_000181f3;
      }
      iVar1 = 0;
      uVar3 = 0;
      goto LAB_000181c9;
    }
    puVar14 = local_41c;
    iVar1 = fscanf(__stream,"%1023[^\n:]",local_41c);
    bVar11 = false;
    bVar12 = iVar1 == 0;
    if (bVar12) break;
    iVar1 = 0xe;
    puVar7 = local_41c;
    pbVar10 = (byte *)"No symbols in ";
    do {
      if (iVar1 == 0) break;
      iVar1 = iVar1 + -1;
      bVar11 = (byte)*puVar7 < *pbVar10;
      bVar12 = (byte)*puVar7 == *pbVar10;
      puVar7 = (uint *)((int)puVar7 + (uint)bVar13 * -2 + 1);
      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;
    } while (bVar12);
    puVar7 = local_41c;
    if ((!bVar11 && !bVar12) != bVar11) {
      do {
        puVar14 = puVar7;
        uVar2 = *puVar14 + 0xfefefeff & ~*puVar14;
        uVar3 = uVar2 & 0x80808080;
        puVar7 = puVar14 + 1;
      } while (uVar3 == 0);
      bVar11 = (uVar2 & 0x8080) == 0;
      if (bVar11) {
        uVar3 = uVar3 >> 0x10;
      }
      if (bVar11) {
        puVar7 = (uint *)((int)puVar14 + 6);
      }
      iVar1 = local_428 * 0xc;
      local_42c = (char *)((int)DAT_0002d480 + iVar1);
      uVar4 = xmalloc((byte *)((int)puVar7 +
                              (-(int)local_41c - (uint)CARRY1((byte)uVar3,(byte)uVar3)) + -2));
      *(undefined4 *)(local_42c + 4) = uVar4;
      strcpy(*(char **)((int)DAT_0002d480 + iVar1 + 4),(char *)local_41c);
      iVar5 = fscanf(__stream,"%1023[^\n]\n",local_41c);
      if (iVar5 == 0) break;
      local_42c = strrchr((char *)local_41c,0x20);
      local_42c = local_42c + 1;
      sVar6 = strlen(local_42c);
      puVar9 = (undefined4 *)(iVar1 + (int)DAT_0002d480);
      uVar4 = xmalloc(sVar6 + 1);
      *puVar9 = uVar4;
      strcpy(*(char **)((int)DAT_0002d480 + local_428 * 0xc),local_42c);
      local_428 = local_428 + 1;
      goto LAB_00018040;
    }
    iVar1 = fscanf(__stream,"\n",puVar14);
  } while (iVar1 != -1);
  goto LAB_00017fc2;
LAB_000181c9:
  iVar5 = (int)pvVar8 + iVar1;
  if (uVar3 == 0) {
LAB_000181b8:
    *(byte *)(iVar5 + 8) = *(byte *)(iVar5 + 8) | 1;
  }
  else {
    iVar5 = filename_cmp(*(undefined4 *)(iVar5 + 4),*(undefined4 *)((int)pvVar8 + iVar1 + -8));
    pvVar8 = DAT_0002d480;
    if (iVar5 != 0) {
      iVar5 = (int)DAT_0002d480 + iVar1;
      goto LAB_000181b8;
    }
  }
  uVar3 = uVar3 + 1;
  iVar1 = iVar1 + 0xc;
  uVar2 = DAT_0002d484;
  if (DAT_0002d484 <= uVar3) {
LAB_000181f3:
    qsort(pvVar8,uVar2,0xc,FUN_00018260);
    fclose(__stream);
    return;
  }
  goto LAB_000181c9;
}

