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

void bb_read_rec(FILE *ifp,char *filename)

{
  int iVar1;
  int iVar2;
  char *pcVar3;
  int iVar4;
  Sym *pSVar5;
  size_t sVar6;
  char *pcVar7;
  uint uVar8;
  uint nblocks;
  int line_num;
  bfd_vma addr;
  bfd_vma ncalls;
  undefined4 uStack_14;
  
  uStack_14 = 0x136c9;
  iVar4 = gmon_io_read_32(ifp,&nblocks);
  pcVar3 = whoami;
  if (iVar4 != 0) {
    pcVar7 = (char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,ifp);
    fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar7,pcVar3,filename);
                    /* WARNING: Subroutine does not return */
    done(1);
  }
  nblocks = (uint)(*core_bfd->xvec->bfd_getx32)(&nblocks);
  if (gmon_file_version == 0) {
    do {
      iVar4 = fgetc((FILE *)ifp);
    } while (1 < iVar4 + 1U);
  }
  if (nblocks == 0) {
    return;
  }
  uVar8 = 0;
LAB_0001375b:
  do {
    if (gmon_file_version == 0) {
      sVar6 = fread(&ncalls,8,1,(FILE *)ifp);
      if ((sVar6 != 1) || (sVar6 = fread(&addr,8,1,(FILE *)ifp), sVar6 != 1)) {
LAB_000138e7:
        perror(filename);
                    /* WARNING: Subroutine does not return */
        done(1);
      }
      do {
        iVar4 = fgetc((FILE *)ifp);
      } while (1 < iVar4 + 1U);
      do {
        iVar4 = fgetc((FILE *)ifp);
      } while (1 < iVar4 + 1U);
      sVar6 = fread(&line_num,4,1,(FILE *)ifp);
      if (sVar6 != 1) goto LAB_000138e7;
    }
    else {
      iVar4 = gmon_io_read_vma(ifp,&addr);
      if ((iVar4 != 0) || (iVar4 = gmon_io_read_vma(ifp,&ncalls), iVar4 != 0)) goto LAB_000138e7;
    }
    pcVar3 = whoami;
    if (line_granularity == 0) {
      if (bb_read_rec::lexical_block_9::user_warned == 0) {
        bb_read_rec::lexical_block_9::user_warned = 1;
        pcVar7 = (char *)dcgettext("gprof",
                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"
                                   ,5);
        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar7,pcVar3);
      }
LAB_0001374e:
      uVar8 = uVar8 + 1;
      if (nblocks <= uVar8) {
        return;
      }
      goto LAB_0001375b;
    }
    pSVar5 = sym_lookup((Sym_Table *)PTR_symtab_0002cfd8,CONCAT44(addr._4_4_,(int)addr));
    if (pSVar5 == (Sym *)0x0) goto LAB_0001374e;
    if ((debug_level & 0x800U) != 0) {
      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",(int)addr,(int)pSVar5->addr,pSVar5->name
             ,pSVar5->line_num,(int)ncalls);
    }
    iVar4 = 0;
    do {
      iVar1 = *(int *)((int)pSVar5->bb_addr + iVar4 * 8 + 4);
      iVar2 = (int)pSVar5->bb_addr[iVar4];
      if ((iVar1 == 0 && iVar2 == 0) || (iVar1 == addr._4_4_ && iVar2 == (int)addr)) {
        *(int *)(pSVar5->bb_addr + iVar4) = (int)addr;
        *(int *)((int)pSVar5->bb_addr + iVar4 * 8 + 4) = addr._4_4_;
        pSVar5->bb_calls[iVar4] = pSVar5->bb_calls[iVar4] + (int)ncalls;
        goto LAB_0001374e;
      }
      iVar4 = iVar4 + 1;
    } while (iVar4 != 10);
    uVar8 = uVar8 + 1;
    if (nblocks <= uVar8) {
      return;
    }
  } while( true );
}



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

void FUN_000136c0(FILE *param_1,char *param_2)

{
  undefined4 uVar1;
  int iVar2;
  undefined4 *puVar3;
  size_t sVar4;
  char *pcVar5;
  uint uVar6;
  uint local_34;
  undefined1 local_30 [4];
  int local_2c;
  int local_28;
  int local_24 [4];
  undefined4 uStack_14;
  
  uStack_14 = 0x136c9;
  iVar2 = FUN_00019c60(param_1,&local_34);
  uVar1 = DAT_0002e508;
  if (iVar2 != 0) {
    pcVar5 = (char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,param_1);
    fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1,param_2);
                    /* WARNING: Subroutine does not return */
    FUN_0001adb0(1);
  }
  local_34 = (**(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28))(&local_34);
  if (DAT_0002e12c == 0) {
    do {
      iVar2 = fgetc(param_1);
    } while (1 < iVar2 + 1U);
  }
  if (local_34 == 0) {
    return;
  }
  uVar6 = 0;
LAB_0001375b:
  do {
    if (DAT_0002e12c == 0) {
      sVar4 = fread(local_24,8,1,param_1);
      if ((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)) {
LAB_000138e7:
        perror(param_2);
                    /* WARNING: Subroutine does not return */
        FUN_0001adb0(1);
      }
      do {
        iVar2 = fgetc(param_1);
      } while (1 < iVar2 + 1U);
      do {
        iVar2 = fgetc(param_1);
      } while (1 < iVar2 + 1U);
      sVar4 = fread(local_30,4,1,param_1);
      if (sVar4 != 1) goto LAB_000138e7;
    }
    else {
      iVar2 = FUN_00019cc0(param_1,&local_2c);
      if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;
    }
    uVar1 = DAT_0002e508;
    if (DAT_0002e144 == 0) {
      if (DAT_0002d4f0 == 0) {
        DAT_0002d4f0 = 1;
        pcVar5 = (char *)dcgettext("gprof",
                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"
                                   ,5);
        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);
      }
LAB_0001374e:
      uVar6 = uVar6 + 1;
      if (local_34 <= uVar6) {
        return;
      }
      goto LAB_0001375b;
    }
    puVar3 = (undefined4 *)FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28);
    if (puVar3 == (undefined4 *)0x0) goto LAB_0001374e;
    if ((DAT_0002e158 & 0x800) != 0) {
      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],
             local_24[0]);
    }
    iVar2 = 0;
    do {
      if ((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||
         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)) {
        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;
        puVar3[(iVar2 + 4) * 2 + 3] = local_28;
        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];
        goto LAB_0001374e;
      }
      iVar2 = iVar2 + 1;
    } while (iVar2 != 10);
    uVar6 = uVar6 + 1;
    if (local_34 <= uVar6) {
      return;
    }
  } while( true );
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00013030
ADD EBX,0x19937
SUB ESP,0x54
MOV EDI,dword ptr [ESP + 0x68]
LEA ESI,[ESP + 0x30]
PUSH ESI
PUSH EDI
CALL 0x00019c60
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000139a7
LEA EAX,[EBX + 0x14ec]
SUB ESP,0xc
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x4]
PUSH ESI
CALL dword ptr [EAX + 0x28]
LEA ESI,[EBX + 0x112c]
MOV dword ptr [ESP + 0x38],EAX
MOV dword ptr [ESP + 0x14],ESI
MOV ESI,dword ptr [ESI]
ADD ESP,0x10
TEST ESI,ESI
JZ 0x00013848
TEST EAX,EAX
JZ 0x0001383d
LEA EAX,[EBX + 0x1144]
XOR EBP,EBP
MOV dword ptr [ESP + 0x8],EAX
LEA EAX,[EBX + 0x1508]
MOV dword ptr [ESP + 0x1c],EAX
JMP 0x0001375b
MOV EAX,dword ptr [EBX + 0x4f0]
TEST EAX,EAX
JZ 0x00013900
ADD EBP,0x1
CMP dword ptr [ESP + 0x28],EBP
JBE 0x0001383d
MOV EAX,dword ptr [ESP + 0x4]
MOV ECX,dword ptr [EAX]
TEST ECX,ECX
JZ 0x00013868
SUB ESP,0x8
LEA EAX,[ESP + 0x38]
PUSH EAX
PUSH EDI
CALL 0x00019cc0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000138e7
SUB ESP,0x8
LEA EAX,[ESP + 0x40]
PUSH EAX
PUSH EDI
CALL 0x00019cc0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000138e7
MOV EAX,dword ptr [ESP + 0x8]
MOV EDX,dword ptr [EAX]
TEST EDX,EDX
JZ 0x00013740
SUB ESP,0x4
PUSH dword ptr [ESP + 0x38]
PUSH dword ptr [ESP + 0x38]
PUSH dword ptr [EBX + 0xffffffd8]
CALL 0x0001d480
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x0001374e
MOV EAX,dword ptr [ESP + 0x30]
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [ESP + 0x34]
MOV dword ptr [ESP + 0x14],EAX
LEA EAX,[EBX + 0x1158]
MOV EAX,dword ptr [EAX]
TEST AH,0x8
JNZ 0x00013970
MOV EDX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x60],EDI
XOR EAX,EAX
MOV dword ptr [ESP + 0x18],EBP
MOV EBP,dword ptr [ESP + 0x14]
MOV dword ptr [ESP + 0xc],EDX
LEA ESI,[ESI]
NOP
MOV ECX,dword ptr [ESI + EAX*0x8 + 0x2c]
MOV EDX,dword ptr [ESI + EAX*0x8 + 0x28]
MOV EDI,ECX
OR EDI,EDX
JZ 0x00013948
XOR EDX,dword ptr [ESP + 0xc]
XOR ECX,EBP
OR ECX,EDX
JZ 0x00013948
ADD EAX,0x1
CMP EAX,0xa
JNZ 0x00013800
MOV EBP,dword ptr [ESP + 0x18]
MOV EDI,dword ptr [ESP + 0x60]
ADD EBP,0x1
CMP dword ptr [ESP + 0x28],EBP
JA 0x0001375b
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
PUSH EDI
CALL 0x00012370
ADD ESP,0x10
ADD EAX,0x1
CMP EAX,0x1
JA 0x00013848
MOV EAX,dword ptr [ESP + 0x28]
JMP 0x00013719
PUSH EDI
PUSH 0x1
PUSH 0x8
LEA EAX,[ESP + 0x44]
PUSH EAX
CALL 0x00012200
ADD ESP,0x10
CMP EAX,0x1
JNZ 0x000138e7
PUSH EDI
PUSH 0x1
PUSH 0x8
LEA EAX,[ESP + 0x3c]
PUSH EAX
CALL 0x00012200
ADD ESP,0x10
CMP EAX,0x1
JNZ 0x000138e7
LEA ESI,[ESI]
LEA ESI,[ESI]
SUB ESP,0xc
PUSH EDI
CALL 0x00012370
ADD ESP,0x10
ADD EAX,0x1
CMP EAX,0x1
JA 0x000138a0
LEA ESI,[ESI]
SUB ESP,0xc
PUSH EDI
CALL 0x00012370
ADD ESP,0x10
ADD EAX,0x1
CMP EAX,0x1
JA 0x000138b8
PUSH EDI
PUSH 0x1
PUSH 0x4
LEA EAX,[ESP + 0x38]
PUSH EAX
CALL 0x00012200
ADD ESP,0x10
CMP EAX,0x1
JZ 0x0001379b
SUB ESP,0xc
PUSH dword ptr [ESP + 0x70]
CALL 0x000121b0
MOV dword ptr [ESP],0x1
CALL 0x0001adb0
MOV EAX,dword ptr [ESP + 0x1c]
SUB ESP,0x4
MOV dword ptr [EBX + 0x4f0],0x1
MOV ESI,dword ptr [EAX]
LEA EAX,[EBX + 0xffff50a4]
PUSH 0x5
PUSH EAX
LEA EAX,[EBX + 0xffff500c]
PUSH EAX
CALL 0x00012120
ADD ESP,0xc
PUSH ESI
PUSH EAX
MOV EAX,dword ptr [EBX + 0xffffffcc]
PUSH dword ptr [EAX]
CALL 0x00012310
ADD ESP,0x10
JMP 0x0001374e
MOV ECX,dword ptr [ESP + 0x10]
LEA EDX,[EAX + 0x4]
MOV EBP,dword ptr [ESP + 0x18]
MOV EDI,dword ptr [ESP + 0x60]
MOV dword ptr [ESI + EDX*0x8 + 0x8],ECX
MOV ECX,dword ptr [ESP + 0x14]
MOV dword ptr [ESI + EDX*0x8 + 0xc],ECX
MOV EDX,dword ptr [ESP + 0x38]
ADD dword ptr [ESI + EAX*0x4 + 0x78],EDX
JMP 0x0001374e
SUB ESP,0x8
LEA EAX,[EBX + 0xffff5078]
PUSH dword ptr [ESP + 0x40]
PUSH dword ptr [ESI + 0x18]
PUSH dword ptr [ESI + 0x10]
PUSH dword ptr [ESI]
PUSH dword ptr [ESP + 0x28]
PUSH EAX
CALL 0x00012070
MOV EAX,dword ptr [ESP + 0x50]
MOV dword ptr [ESP + 0x30],EAX
MOV EAX,dword ptr [ESP + 0x54]
MOV dword ptr [ESP + 0x34],EAX
ADD ESP,0x20
JMP 0x000137e5
LEA EAX,[EBX + 0x1508]
MOV ESI,dword ptr [EAX]
LEA EAX,[EBX + 0xffff5058]
PUSH EDI
PUSH 0x5
PUSH EAX
LEA EAX,[EBX + 0xffff500c]
PUSH EAX
CALL 0x00012120
PUSH dword ptr [ESP + 0x74]
PUSH ESI
PUSH EAX
MOV EAX,dword ptr [EBX + 0xffffffcc]
PUSH dword ptr [EAX]
CALL 0x00012310
ADD ESP,0x14
PUSH 0x1
CALL 0x0001adb0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_000136c0(FILE *param_1,char *param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  size_t sVar4;\n  char *pcVar5;\n  uint uVar6;\n  uint local_34;\n  undefined1 local_30 [4];\n  int local_2c;\n  int local_28;\n  int local_24 [4];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x136c9;\n  iVar2 = FUN_00019c60(param_1,&local_34);\n  uVar1 = DAT_0002e508;\n  if (iVar2 != 0) {\n    pcVar5 = (char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,param_1);\n    fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1,param_2);\n                    /* WARNING: Subroutine does not return */\n    FUN_0001adb0(1);\n  }\n  local_34 = (**(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28))(&local_34);\n  if (DAT_0002e12c == 0) {\n    do {\n      iVar2 = fgetc(param_1);\n    } while (1 < iVar2 + 1U);\n  }\n  if (local_34 == 0) {\n    return;\n  }\n  uVar6 = 0;\nLAB_0001375b:\n  do {\n    if (DAT_0002e12c == 0) {\n      sVar4 = fread(local_24,8,1,param_1);\n      if ((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)) {\nLAB_000138e7:\n        perror(param_2);\n                    /* WARNING: Subroutine does not return */\n        FUN_0001adb0(1);\n      }\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      sVar4 = fread(local_30,4,1,param_1);\n      if (sVar4 != 1) goto LAB_000138e7;\n    }\n    else {\n      iVar2 = FUN_00019cc0(param_1,&local_2c);\n      if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;\n    }\n    uVar1 = DAT_0002e508;\n    if (DAT_0002e144 == 0) {\n      if (DAT_0002d4f0 == 0) {\n        DAT_0002d4f0 = 1;\n        pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);\n      }\nLAB_0001374e:\n      uVar6 = uVar6 + 1;\n      if (local_34 <= uVar6) {\n        return;\n      }\n      goto LAB_0001375b;\n    }\n    puVar3 = (undefined4 *)FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28);\n    if (puVar3 == (undefined4 *)0x0) goto LAB_0001374e;\n    if ((DAT_0002e158 & 0x800) != 0) {\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0]);\n    }\n    iVar2 = 0;\n    do {\n      if ((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)) {\n        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;\n        puVar3[(iVar2 + 4) * 2 + 3] = local_28;\n        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];\n        goto LAB_0001374e;\n      }\n      iVar2 = iVar2 + 1;\n    } while (iVar2 != 10);\n    uVar6 = uVar6 + 1;\n    if (local_34 <= uVar6) {\n      return;\n    }\n  } while( true );\n}\n\n" comment (function_definition "void FUN_000136c0(FILE *param_1,char *param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  size_t sVar4;\n  char *pcVar5;\n  uint uVar6;\n  uint local_34;\n  undefined1 local_30 [4];\n  int local_2c;\n  int local_28;\n  int local_24 [4];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x136c9;\n  iVar2 = FUN_00019c60(param_1,&local_34);\n  uVar1 = DAT_0002e508;\n  if (iVar2 != 0) {\n    pcVar5 = (char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,param_1);\n    fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1,param_2);\n                    /* WARNING: Subroutine does not return */\n    FUN_0001adb0(1);\n  }\n  local_34 = (**(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28))(&local_34);\n  if (DAT_0002e12c == 0) {\n    do {\n      iVar2 = fgetc(param_1);\n    } while (1 < iVar2 + 1U);\n  }\n  if (local_34 == 0) {\n    return;\n  }\n  uVar6 = 0;\nLAB_0001375b:\n  do {\n    if (DAT_0002e12c == 0) {\n      sVar4 = fread(local_24,8,1,param_1);\n      if ((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)) {\nLAB_000138e7:\n        perror(param_2);\n                    /* WARNING: Subroutine does not return */\n        FUN_0001adb0(1);\n      }\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      sVar4 = fread(local_30,4,1,param_1);\n      if (sVar4 != 1) goto LAB_000138e7;\n    }\n    else {\n      iVar2 = FUN_00019cc0(param_1,&local_2c);\n      if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;\n    }\n    uVar1 = DAT_0002e508;\n    if (DAT_0002e144 == 0) {\n      if (DAT_0002d4f0 == 0) {\n        DAT_0002d4f0 = 1;\n        pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);\n      }\nLAB_0001374e:\n      uVar6 = uVar6 + 1;\n      if (local_34 <= uVar6) {\n        return;\n      }\n      goto LAB_0001375b;\n    }\n    puVar3 = (undefined4 *)FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28);\n    if (puVar3 == (undefined4 *)0x0) goto LAB_0001374e;\n    if ((DAT_0002e158 & 0x800) != 0) {\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0]);\n    }\n    iVar2 = 0;\n    do {\n      if ((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)) {\n        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;\n        puVar3[(iVar2 + 4) * 2 + 3] = local_28;\n        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];\n        goto LAB_0001374e;\n      }\n      iVar2 = iVar2 + 1;\n    } while (iVar2 != 10);\n    uVar6 = uVar6 + 1;\n    if (local_34 <= uVar6) {\n      return;\n    }\n  } while( true );\n}" primitive_type (function_declarator "FUN_000136c0(FILE *param_1,char *param_2)" identifier (parameter_list "(FILE *param_1,char *param_2)" ( (parameter_declaration "FILE *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  size_t sVar4;\n  char *pcVar5;\n  uint uVar6;\n  uint local_34;\n  undefined1 local_30 [4];\n  int local_2c;\n  int local_28;\n  int local_24 [4];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x136c9;\n  iVar2 = FUN_00019c60(param_1,&local_34);\n  uVar1 = DAT_0002e508;\n  if (iVar2 != 0) {\n    pcVar5 = (char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,param_1);\n    fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1,param_2);\n                    /* WARNING: Subroutine does not return */\n    FUN_0001adb0(1);\n  }\n  local_34 = (**(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28))(&local_34);\n  if (DAT_0002e12c == 0) {\n    do {\n      iVar2 = fgetc(param_1);\n    } while (1 < iVar2 + 1U);\n  }\n  if (local_34 == 0) {\n    return;\n  }\n  uVar6 = 0;\nLAB_0001375b:\n  do {\n    if (DAT_0002e12c == 0) {\n      sVar4 = fread(local_24,8,1,param_1);\n      if ((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)) {\nLAB_000138e7:\n        perror(param_2);\n                    /* WARNING: Subroutine does not return */\n        FUN_0001adb0(1);\n      }\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      sVar4 = fread(local_30,4,1,param_1);\n      if (sVar4 != 1) goto LAB_000138e7;\n    }\n    else {\n      iVar2 = FUN_00019cc0(param_1,&local_2c);\n      if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;\n    }\n    uVar1 = DAT_0002e508;\n    if (DAT_0002e144 == 0) {\n      if (DAT_0002d4f0 == 0) {\n        DAT_0002d4f0 = 1;\n        pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);\n      }\nLAB_0001374e:\n      uVar6 = uVar6 + 1;\n      if (local_34 <= uVar6) {\n        return;\n      }\n      goto LAB_0001375b;\n    }\n    puVar3 = (undefined4 *)FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28);\n    if (puVar3 == (undefined4 *)0x0) goto LAB_0001374e;\n    if ((DAT_0002e158 & 0x800) != 0) {\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0]);\n    }\n    iVar2 = 0;\n    do {\n      if ((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)) {\n        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;\n        puVar3[(iVar2 + 4) * 2 + 3] = local_28;\n        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];\n        goto LAB_0001374e;\n      }\n      iVar2 = iVar2 + 1;\n    } while (iVar2 != 10);\n    uVar6 = uVar6 + 1;\n    if (local_34 <= uVar6) {\n      return;\n    }\n  } while( true );\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "undefined1 local_30 [4];" type_identifier (array_declarator "local_30 [4]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "int local_24 [4];" primitive_type (array_declarator "local_24 [4]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x136c9;" (assignment_expression "uStack_14 = 0x136c9" identifier = number_literal) ;) (expression_statement "iVar2 = FUN_00019c60(param_1,&local_34);" (assignment_expression "iVar2 = FUN_00019c60(param_1,&local_34)" identifier = (call_expression "FUN_00019c60(param_1,&local_34)" identifier (argument_list "(param_1,&local_34)" ( identifier , (pointer_expression "&local_34" & identifier) )))) ;) (expression_statement "uVar1 = DAT_0002e508;" (assignment_expression "uVar1 = DAT_0002e508" identifier = identifier) ;) (if_statement "if (iVar2 != 0) {\n    pcVar5 = (char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,param_1);\n    fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1,param_2);\n                    /* WARNING: Subroutine does not return */\n    FUN_0001adb0(1);\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    pcVar5 = (char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,param_1);\n    fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1,param_2);\n                    /* WARNING: Subroutine does not return */\n    FUN_0001adb0(1);\n  }" { (expression_statement "pcVar5 = (char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,param_1);" (assignment_expression "pcVar5 = (char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,param_1)" identifier = (cast_expression "(char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,param_1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%s: %s: unexpected end of file\n",5,param_1)" identifier (argument_list "("gprof","%s: %s: unexpected end of file\n",5,param_1)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%s: %s: unexpected end of file\n"" " string_content escape_sequence ") , number_literal , identifier ))))) ;) (expression_statement "fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1,param_2);" (call_expression "fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1,param_2)" identifier (argument_list "(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1,param_2)" ( (pointer_expression "*(FILE **)PTR_stderr_0002cfcc" * (cast_expression "(FILE **)PTR_stderr_0002cfcc" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , identifier , identifier , identifier ))) ;) comment (expression_statement "FUN_0001adb0(1);" (call_expression "FUN_0001adb0(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (expression_statement "local_34 = (**(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28))(&local_34);" (assignment_expression "local_34 = (**(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28))(&local_34)" identifier = (call_expression "(**(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28))(&local_34)" (parenthesized_expression "(**(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28))" ( (pointer_expression "**(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28)" * (pointer_expression "*(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28)" * (cast_expression "(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_0002e4ec + 4) + 0x28)" ( (binary_expression "*(int *)(DAT_0002e4ec + 4) + 0x28" (pointer_expression "*(int *)(DAT_0002e4ec + 4)" * (cast_expression "(int *)(DAT_0002e4ec + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0002e4ec + 4)" ( (binary_expression "DAT_0002e4ec + 4" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(&local_34)" ( (pointer_expression "&local_34" & identifier) )))) ;) (if_statement "if (DAT_0002e12c == 0) {\n    do {\n      iVar2 = fgetc(param_1);\n    } while (1 < iVar2 + 1U);\n  }" if (parenthesized_expression "(DAT_0002e12c == 0)" ( (binary_expression "DAT_0002e12c == 0" identifier == number_literal) )) (compound_statement "{\n    do {\n      iVar2 = fgetc(param_1);\n    } while (1 < iVar2 + 1U);\n  }" { (do_statement "do {\n      iVar2 = fgetc(param_1);\n    } while (1 < iVar2 + 1U);" do (compound_statement "{\n      iVar2 = fgetc(param_1);\n    }" { (expression_statement "iVar2 = fgetc(param_1);" (assignment_expression "iVar2 = fgetc(param_1)" identifier = (call_expression "fgetc(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) }) while (parenthesized_expression "(1 < iVar2 + 1U)" ( (binary_expression "1 < iVar2 + 1U" number_literal < (binary_expression "iVar2 + 1U" identifier + number_literal)) )) ;) })) (if_statement "if (local_34 == 0) {\n    return;\n  }" if (parenthesized_expression "(local_34 == 0)" ( (binary_expression "local_34 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0001375b:\n  do {\n    if (DAT_0002e12c == 0) {\n      sVar4 = fread(local_24,8,1,param_1);\n      if ((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)) {\nLAB_000138e7:\n        perror(param_2);\n                    /* WARNING: Subroutine does not return */\n        FUN_0001adb0(1);\n      }\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      sVar4 = fread(local_30,4,1,param_1);\n      if (sVar4 != 1) goto LAB_000138e7;\n    }\n    else {\n      iVar2 = FUN_00019cc0(param_1,&local_2c);\n      if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;\n    }\n    uVar1 = DAT_0002e508;\n    if (DAT_0002e144 == 0) {\n      if (DAT_0002d4f0 == 0) {\n        DAT_0002d4f0 = 1;\n        pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);\n      }\nLAB_0001374e:\n      uVar6 = uVar6 + 1;\n      if (local_34 <= uVar6) {\n        return;\n      }\n      goto LAB_0001375b;\n    }\n    puVar3 = (undefined4 *)FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28);\n    if (puVar3 == (undefined4 *)0x0) goto LAB_0001374e;\n    if ((DAT_0002e158 & 0x800) != 0) {\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0]);\n    }\n    iVar2 = 0;\n    do {\n      if ((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)) {\n        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;\n        puVar3[(iVar2 + 4) * 2 + 3] = local_28;\n        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];\n        goto LAB_0001374e;\n      }\n      iVar2 = iVar2 + 1;\n    } while (iVar2 != 10);\n    uVar6 = uVar6 + 1;\n    if (local_34 <= uVar6) {\n      return;\n    }\n  } while( true );" statement_identifier : (do_statement "do {\n    if (DAT_0002e12c == 0) {\n      sVar4 = fread(local_24,8,1,param_1);\n      if ((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)) {\nLAB_000138e7:\n        perror(param_2);\n                    /* WARNING: Subroutine does not return */\n        FUN_0001adb0(1);\n      }\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      sVar4 = fread(local_30,4,1,param_1);\n      if (sVar4 != 1) goto LAB_000138e7;\n    }\n    else {\n      iVar2 = FUN_00019cc0(param_1,&local_2c);\n      if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;\n    }\n    uVar1 = DAT_0002e508;\n    if (DAT_0002e144 == 0) {\n      if (DAT_0002d4f0 == 0) {\n        DAT_0002d4f0 = 1;\n        pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);\n      }\nLAB_0001374e:\n      uVar6 = uVar6 + 1;\n      if (local_34 <= uVar6) {\n        return;\n      }\n      goto LAB_0001375b;\n    }\n    puVar3 = (undefined4 *)FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28);\n    if (puVar3 == (undefined4 *)0x0) goto LAB_0001374e;\n    if ((DAT_0002e158 & 0x800) != 0) {\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0]);\n    }\n    iVar2 = 0;\n    do {\n      if ((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)) {\n        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;\n        puVar3[(iVar2 + 4) * 2 + 3] = local_28;\n        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];\n        goto LAB_0001374e;\n      }\n      iVar2 = iVar2 + 1;\n    } while (iVar2 != 10);\n    uVar6 = uVar6 + 1;\n    if (local_34 <= uVar6) {\n      return;\n    }\n  } while( true );" do (compound_statement "{\n    if (DAT_0002e12c == 0) {\n      sVar4 = fread(local_24,8,1,param_1);\n      if ((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)) {\nLAB_000138e7:\n        perror(param_2);\n                    /* WARNING: Subroutine does not return */\n        FUN_0001adb0(1);\n      }\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      sVar4 = fread(local_30,4,1,param_1);\n      if (sVar4 != 1) goto LAB_000138e7;\n    }\n    else {\n      iVar2 = FUN_00019cc0(param_1,&local_2c);\n      if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;\n    }\n    uVar1 = DAT_0002e508;\n    if (DAT_0002e144 == 0) {\n      if (DAT_0002d4f0 == 0) {\n        DAT_0002d4f0 = 1;\n        pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);\n      }\nLAB_0001374e:\n      uVar6 = uVar6 + 1;\n      if (local_34 <= uVar6) {\n        return;\n      }\n      goto LAB_0001375b;\n    }\n    puVar3 = (undefined4 *)FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28);\n    if (puVar3 == (undefined4 *)0x0) goto LAB_0001374e;\n    if ((DAT_0002e158 & 0x800) != 0) {\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0]);\n    }\n    iVar2 = 0;\n    do {\n      if ((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)) {\n        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;\n        puVar3[(iVar2 + 4) * 2 + 3] = local_28;\n        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];\n        goto LAB_0001374e;\n      }\n      iVar2 = iVar2 + 1;\n    } while (iVar2 != 10);\n    uVar6 = uVar6 + 1;\n    if (local_34 <= uVar6) {\n      return;\n    }\n  }" { (if_statement "if (DAT_0002e12c == 0) {\n      sVar4 = fread(local_24,8,1,param_1);\n      if ((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)) {\nLAB_000138e7:\n        perror(param_2);\n                    /* WARNING: Subroutine does not return */\n        FUN_0001adb0(1);\n      }\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      sVar4 = fread(local_30,4,1,param_1);\n      if (sVar4 != 1) goto LAB_000138e7;\n    }\n    else {\n      iVar2 = FUN_00019cc0(param_1,&local_2c);\n      if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;\n    }" if (parenthesized_expression "(DAT_0002e12c == 0)" ( (binary_expression "DAT_0002e12c == 0" identifier == number_literal) )) (compound_statement "{\n      sVar4 = fread(local_24,8,1,param_1);\n      if ((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)) {\nLAB_000138e7:\n        perror(param_2);\n                    /* WARNING: Subroutine does not return */\n        FUN_0001adb0(1);\n      }\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      sVar4 = fread(local_30,4,1,param_1);\n      if (sVar4 != 1) goto LAB_000138e7;\n    }" { (expression_statement "sVar4 = fread(local_24,8,1,param_1);" (assignment_expression "sVar4 = fread(local_24,8,1,param_1)" identifier = (call_expression "fread(local_24,8,1,param_1)" identifier (argument_list "(local_24,8,1,param_1)" ( identifier , number_literal , number_literal , identifier )))) ;) (if_statement "if ((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)) {\nLAB_000138e7:\n        perror(param_2);\n                    /* WARNING: Subroutine does not return */\n        FUN_0001adb0(1);\n      }" if (parenthesized_expression "((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1))" ( (binary_expression "(sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)" (parenthesized_expression "(sVar4 != 1)" ( (binary_expression "sVar4 != 1" identifier != number_literal) )) || (parenthesized_expression "(sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)" ( (comma_expression "sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1" (assignment_expression "sVar4 = fread(&local_2c,8,1,param_1)" identifier = (call_expression "fread(&local_2c,8,1,param_1)" identifier (argument_list "(&local_2c,8,1,param_1)" ( (pointer_expression "&local_2c" & identifier) , number_literal , number_literal , identifier )))) , (binary_expression "sVar4 != 1" identifier != number_literal)) ))) )) (compound_statement "{\nLAB_000138e7:\n        perror(param_2);\n                    /* WARNING: Subroutine does not return */\n        FUN_0001adb0(1);\n      }" { (labeled_statement "LAB_000138e7:\n        perror(param_2);" statement_identifier : (expression_statement "perror(param_2);" (call_expression "perror(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;)) comment (expression_statement "FUN_0001adb0(1);" (call_expression "FUN_0001adb0(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (do_statement "do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);" do (compound_statement "{\n        iVar2 = fgetc(param_1);\n      }" { (expression_statement "iVar2 = fgetc(param_1);" (assignment_expression "iVar2 = fgetc(param_1)" identifier = (call_expression "fgetc(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) }) while (parenthesized_expression "(1 < iVar2 + 1U)" ( (binary_expression "1 < iVar2 + 1U" number_literal < (binary_expression "iVar2 + 1U" identifier + number_literal)) )) ;) (do_statement "do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);" do (compound_statement "{\n        iVar2 = fgetc(param_1);\n      }" { (expression_statement "iVar2 = fgetc(param_1);" (assignment_expression "iVar2 = fgetc(param_1)" identifier = (call_expression "fgetc(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) }) while (parenthesized_expression "(1 < iVar2 + 1U)" ( (binary_expression "1 < iVar2 + 1U" number_literal < (binary_expression "iVar2 + 1U" identifier + number_literal)) )) ;) (expression_statement "sVar4 = fread(local_30,4,1,param_1);" (assignment_expression "sVar4 = fread(local_30,4,1,param_1)" identifier = (call_expression "fread(local_30,4,1,param_1)" identifier (argument_list "(local_30,4,1,param_1)" ( identifier , number_literal , number_literal , identifier )))) ;) (if_statement "if (sVar4 != 1) goto LAB_000138e7;" if (parenthesized_expression "(sVar4 != 1)" ( (binary_expression "sVar4 != 1" identifier != number_literal) )) (goto_statement "goto LAB_000138e7;" goto statement_identifier ;)) }) (else_clause "else {\n      iVar2 = FUN_00019cc0(param_1,&local_2c);\n      if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;\n    }" else (compound_statement "{\n      iVar2 = FUN_00019cc0(param_1,&local_2c);\n      if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;\n    }" { (expression_statement "iVar2 = FUN_00019cc0(param_1,&local_2c);" (assignment_expression "iVar2 = FUN_00019cc0(param_1,&local_2c)" identifier = (call_expression "FUN_00019cc0(param_1,&local_2c)" identifier (argument_list "(param_1,&local_2c)" ( identifier , (pointer_expression "&local_2c" & identifier) )))) ;) (if_statement "if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;" if (parenthesized_expression "((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0))" ( (binary_expression "(iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)" (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)" ( (comma_expression "iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0" (assignment_expression "iVar2 = FUN_00019cc0(param_1,local_24)" identifier = (call_expression "FUN_00019cc0(param_1,local_24)" identifier (argument_list "(param_1,local_24)" ( identifier , identifier )))) , (binary_expression "iVar2 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_000138e7;" goto statement_identifier ;)) }))) (expression_statement "uVar1 = DAT_0002e508;" (assignment_expression "uVar1 = DAT_0002e508" identifier = identifier) ;) (if_statement "if (DAT_0002e144 == 0) {\n      if (DAT_0002d4f0 == 0) {\n        DAT_0002d4f0 = 1;\n        pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);\n      }\nLAB_0001374e:\n      uVar6 = uVar6 + 1;\n      if (local_34 <= uVar6) {\n        return;\n      }\n      goto LAB_0001375b;\n    }" if (parenthesized_expression "(DAT_0002e144 == 0)" ( (binary_expression "DAT_0002e144 == 0" identifier == number_literal) )) (compound_statement "{\n      if (DAT_0002d4f0 == 0) {\n        DAT_0002d4f0 = 1;\n        pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);\n      }\nLAB_0001374e:\n      uVar6 = uVar6 + 1;\n      if (local_34 <= uVar6) {\n        return;\n      }\n      goto LAB_0001375b;\n    }" { (if_statement "if (DAT_0002d4f0 == 0) {\n        DAT_0002d4f0 = 1;\n        pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);\n      }" if (parenthesized_expression "(DAT_0002d4f0 == 0)" ( (binary_expression "DAT_0002d4f0 == 0" identifier == number_literal) )) (compound_statement "{\n        DAT_0002d4f0 = 1;\n        pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);\n      }" { (expression_statement "DAT_0002d4f0 = 1;" (assignment_expression "DAT_0002d4f0 = 1" identifier = number_literal) ;) (expression_statement "pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);" (assignment_expression "pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5)" identifier = (cast_expression "(char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5)" identifier (argument_list "("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%s: warning: ignoring basic-block exec counts (use -l or --line)\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);" (call_expression "fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1)" identifier (argument_list "(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1)" ( (pointer_expression "*(FILE **)PTR_stderr_0002cfcc" * (cast_expression "(FILE **)PTR_stderr_0002cfcc" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , identifier , identifier ))) ;) })) (labeled_statement "LAB_0001374e:\n      uVar6 = uVar6 + 1;" statement_identifier : (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;)) (if_statement "if (local_34 <= uVar6) {\n        return;\n      }" if (parenthesized_expression "(local_34 <= uVar6)" ( (binary_expression "local_34 <= uVar6" identifier <= identifier) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (goto_statement "goto LAB_0001375b;" goto statement_identifier ;) })) (expression_statement "puVar3 = (undefined4 *)FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28);" (assignment_expression "puVar3 = (undefined4 *)FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28)" identifier = (cast_expression "(undefined4 *)FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28)" identifier (argument_list "(PTR_DAT_0002cfd8,local_2c,local_28)" ( identifier , identifier , identifier ))))) ;) (if_statement "if (puVar3 == (undefined4 *)0x0) goto LAB_0001374e;" if (parenthesized_expression "(puVar3 == (undefined4 *)0x0)" ( (binary_expression "puVar3 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001374e;" goto statement_identifier ;)) (if_statement "if ((DAT_0002e158 & 0x800) != 0) {\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0]);\n    }" if (parenthesized_expression "((DAT_0002e158 & 0x800) != 0)" ( (binary_expression "(DAT_0002e158 & 0x800) != 0" (parenthesized_expression "(DAT_0002e158 & 0x800)" ( (binary_expression "DAT_0002e158 & 0x800" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0]);\n    }" { (expression_statement "printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0]);" (call_expression "printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0])" identifier (argument_list "("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0])" ( (string_literal ""[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n"" " string_content escape_sequence ") , identifier , (pointer_expression "*puVar3" * identifier) , (subscript_expression "puVar3[4]" identifier [ number_literal ]) , (subscript_expression "puVar3[6]" identifier [ number_literal ]) , (subscript_expression "local_24[0]" identifier [ number_literal ]) ))) ;) })) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (do_statement "do {\n      if ((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)) {\n        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;\n        puVar3[(iVar2 + 4) * 2 + 3] = local_28;\n        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];\n        goto LAB_0001374e;\n      }\n      iVar2 = iVar2 + 1;\n    } while (iVar2 != 10);" do (compound_statement "{\n      if ((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)) {\n        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;\n        puVar3[(iVar2 + 4) * 2 + 3] = local_28;\n        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];\n        goto LAB_0001374e;\n      }\n      iVar2 = iVar2 + 1;\n    }" { (if_statement "if ((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)) {\n        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;\n        puVar3[(iVar2 + 4) * 2 + 3] = local_28;\n        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];\n        goto LAB_0001374e;\n      }" if (parenthesized_expression "((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c))" ( (binary_expression "(puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)" (parenthesized_expression "(puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0)" ( (binary_expression "puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0" (binary_expression "puVar3[iVar2 * 2 + 0xb] == 0" (subscript_expression "puVar3[iVar2 * 2 + 0xb]" identifier [ (binary_expression "iVar2 * 2 + 0xb" (binary_expression "iVar2 * 2" identifier * number_literal) + number_literal) ]) == number_literal) && (binary_expression "puVar3[iVar2 * 2 + 10] == 0" (subscript_expression "puVar3[iVar2 * 2 + 10]" identifier [ (binary_expression "iVar2 * 2 + 10" (binary_expression "iVar2 * 2" identifier * number_literal) + number_literal) ]) == number_literal)) )) || (parenthesized_expression "(puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)" ( (binary_expression "puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c" (binary_expression "puVar3[iVar2 * 2 + 0xb] == local_28" (subscript_expression "puVar3[iVar2 * 2 + 0xb]" identifier [ (binary_expression "iVar2 * 2 + 0xb" (binary_expression "iVar2 * 2" identifier * number_literal) + number_literal) ]) == identifier) && (binary_expression "puVar3[iVar2 * 2 + 10] == local_2c" (subscript_expression "puVar3[iVar2 * 2 + 10]" identifier [ (binary_expression "iVar2 * 2 + 10" (binary_expression "iVar2 * 2" identifier * number_literal) + number_literal) ]) == identifier)) ))) )) (compound_statement "{\n        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;\n        puVar3[(iVar2 + 4) * 2 + 3] = local_28;\n        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];\n        goto LAB_0001374e;\n      }" { (expression_statement "puVar3[(iVar2 + 4) * 2 + 2] = local_2c;" (assignment_expression "puVar3[(iVar2 + 4) * 2 + 2] = local_2c" (subscript_expression "puVar3[(iVar2 + 4) * 2 + 2]" identifier [ (binary_expression "(iVar2 + 4) * 2 + 2" (binary_expression "(iVar2 + 4) * 2" (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )) * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "puVar3[(iVar2 + 4) * 2 + 3] = local_28;" (assignment_expression "puVar3[(iVar2 + 4) * 2 + 3] = local_28" (subscript_expression "puVar3[(iVar2 + 4) * 2 + 3]" identifier [ (binary_expression "(iVar2 + 4) * 2 + 3" (binary_expression "(iVar2 + 4) * 2" (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )) * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];" (assignment_expression "puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0]" (subscript_expression "puVar3[iVar2 + 0x1e]" identifier [ (binary_expression "iVar2 + 0x1e" identifier + number_literal) ]) = (binary_expression "puVar3[iVar2 + 0x1e] + local_24[0]" (subscript_expression "puVar3[iVar2 + 0x1e]" identifier [ (binary_expression "iVar2 + 0x1e" identifier + number_literal) ]) + (subscript_expression "local_24[0]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0001374e;" goto statement_identifier ;) })) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar2 != 10)" ( (binary_expression "iVar2 != 10" identifier != number_literal) )) ;) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (if_statement "if (local_34 <= uVar6) {\n      return;\n    }" if (parenthesized_expression "(local_34 <= uVar6)" ( (binary_expression "local_34 <= uVar6" identifier <= identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid bb_read_rec(FILE *ifp,char *filename)\n\n{\n  int iVar1;\n  int iVar2;\n  char *pcVar3;\n  int iVar4;\n  Sym *pSVar5;\n  size_t sVar6;\n  char *pcVar7;\n  uint uVar8;\n  uint nblocks;\n  int line_num;\n  bfd_vma addr;\n  bfd_vma ncalls;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x136c9;\n  iVar4 = gmon_io_read_32(ifp,&nblocks);\n  pcVar3 = whoami;\n  if (iVar4 != 0) {\n    pcVar7 = (char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,ifp);\n    fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar7,pcVar3,filename);\n                    /* WARNING: Subroutine does not return */\n    done(1);\n  }\n  nblocks = (uint)(*core_bfd->xvec->bfd_getx32)(&nblocks);\n  if (gmon_file_version == 0) {\n    do {\n      iVar4 = fgetc((FILE *)ifp);\n    } while (1 < iVar4 + 1U);\n  }\n  if (nblocks == 0) {\n    return;\n  }\n  uVar8 = 0;\nLAB_0001375b:\n  do {\n    if (gmon_file_version == 0) {\n      sVar6 = fread(&ncalls,8,1,(FILE *)ifp);\n      if ((sVar6 != 1) || (sVar6 = fread(&addr,8,1,(FILE *)ifp), sVar6 != 1)) {\nLAB_000138e7:\n        perror(filename);\n                    /* WARNING: Subroutine does not return */\n        done(1);\n      }\n      do {\n        iVar4 = fgetc((FILE *)ifp);\n      } while (1 < iVar4 + 1U);\n      do {\n        iVar4 = fgetc((FILE *)ifp);\n      } while (1 < iVar4 + 1U);\n      sVar6 = fread(&line_num,4,1,(FILE *)ifp);\n      if (sVar6 != 1) goto LAB_000138e7;\n    }\n    else {\n      iVar4 = gmon_io_read_vma(ifp,&addr);\n      if ((iVar4 != 0) || (iVar4 = gmon_io_read_vma(ifp,&ncalls), iVar4 != 0)) goto LAB_000138e7;\n    }\n    pcVar3 = whoami;\n    if (line_granularity == 0) {\n      if (bb_read_rec::lexical_block_9::user_warned == 0) {\n        bb_read_rec::lexical_block_9::user_warned = 1;\n        pcVar7 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar7,pcVar3);\n      }\nLAB_0001374e:\n      uVar8 = uVar8 + 1;\n      if (nblocks <= uVar8) {\n        return;\n      }\n      goto LAB_0001375b;\n    }\n    pSVar5 = sym_lookup((Sym_Table *)PTR_symtab_0002cfd8,CONCAT44(addr._4_4_,(int)addr));\n    if (pSVar5 == (Sym *)0x0) goto LAB_0001374e;\n    if ((debug_level & 0x800U) != 0) {\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",(int)addr,(int)pSVar5->addr,pSVar5->name\n             ,pSVar5->line_num,(int)ncalls);\n    }\n    iVar4 = 0;\n    do {\n      iVar1 = *(int *)((int)pSVar5->bb_addr + iVar4 * 8 + 4);\n      iVar2 = (int)pSVar5->bb_addr[iVar4];\n      if ((iVar1 == 0 && iVar2 == 0) || (iVar1 == addr._4_4_ && iVar2 == (int)addr)) {\n        *(int *)(pSVar5->bb_addr + iVar4) = (int)addr;\n        *(int *)((int)pSVar5->bb_addr + iVar4 * 8 + 4) = addr._4_4_;\n        pSVar5->bb_calls[iVar4] = pSVar5->bb_calls[iVar4] + (int)ncalls;\n        goto LAB_0001374e;\n      }\n      iVar4 = iVar4 + 1;\n    } while (iVar4 != 10);\n    uVar8 = uVar8 + 1;\n    if (nblocks <= uVar8) {\n      return;\n    }\n  } while( true );\n}\n\n" comment (function_definition "void bb_read_rec(FILE *ifp,char *filename)\n\n{\n  int iVar1;\n  int iVar2;\n  char *pcVar3;\n  int iVar4;\n  Sym *pSVar5;\n  size_t sVar6;\n  char *pcVar7;\n  uint uVar8;\n  uint nblocks;\n  int line_num;\n  bfd_vma addr;\n  bfd_vma ncalls;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x136c9;\n  iVar4 = gmon_io_read_32(ifp,&nblocks);\n  pcVar3 = whoami;\n  if (iVar4 != 0) {\n    pcVar7 = (char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,ifp);\n    fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar7,pcVar3,filename);\n                    /* WARNING: Subroutine does not return */\n    done(1);\n  }\n  nblocks = (uint)(*core_bfd->xvec->bfd_getx32)(&nblocks);\n  if (gmon_file_version == 0) {\n    do {\n      iVar4 = fgetc((FILE *)ifp);\n    } while (1 < iVar4 + 1U);\n  }\n  if (nblocks == 0) {\n    return;\n  }\n  uVar8 = 0;\nLAB_0001375b:\n  do {\n    if (gmon_file_version == 0) {\n      sVar6 = fread(&ncalls,8,1,(FILE *)ifp);\n      if ((sVar6 != 1) || (sVar6 = fread(&addr,8,1,(FILE *)ifp), sVar6 != 1)) {\nLAB_000138e7:\n        perror(filename);\n                    /* WARNING: Subroutine does not return */\n        done(1);\n      }\n      do {\n        iVar4 = fgetc((FILE *)ifp);\n      } while (1 < iVar4 + 1U);\n      do {\n        iVar4 = fgetc((FILE *)ifp);\n      } while (1 < iVar4 + 1U);\n      sVar6 = fread(&line_num,4,1,(FILE *)ifp);\n      if (sVar6 != 1) goto LAB_000138e7;\n    }\n    else {\n      iVar4 = gmon_io_read_vma(ifp,&addr);\n      if ((iVar4 != 0) || (iVar4 = gmon_io_read_vma(ifp,&ncalls), iVar4 != 0)) goto LAB_000138e7;\n    }\n    pcVar3 = whoami;\n    if (line_granularity == 0) {\n      if (bb_read_rec::lexical_block_9::user_warned == 0) {\n        bb_read_rec::lexical_block_9::user_warned = 1;\n        pcVar7 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar7,pcVar3);\n      }\nLAB_0001374e:\n      uVar8 = uVar8 + 1;\n      if (nblocks <= uVar8) {\n        return;\n      }\n      goto LAB_0001375b;\n    }\n    pSVar5 = sym_lookup((Sym_Table *)PTR_symtab_0002cfd8,CONCAT44(addr._4_4_,(int)addr));\n    if (pSVar5 == (Sym *)0x0) goto LAB_0001374e;\n    if ((debug_level & 0x800U) != 0) {\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",(int)addr,(int)pSVar5->addr,pSVar5->name\n             ,pSVar5->line_num,(int)ncalls);\n    }\n    iVar4 = 0;\n    do {\n      iVar1 = *(int *)((int)pSVar5->bb_addr + iVar4 * 8 + 4);\n      iVar2 = (int)pSVar5->bb_addr[iVar4];\n      if ((iVar1 == 0 && iVar2 == 0) || (iVar1 == addr._4_4_ && iVar2 == (int)addr)) {\n        *(int *)(pSVar5->bb_addr + iVar4) = (int)addr;\n        *(int *)((int)pSVar5->bb_addr + iVar4 * 8 + 4) = addr._4_4_;\n        pSVar5->bb_calls[iVar4] = pSVar5->bb_calls[iVar4] + (int)ncalls;\n        goto LAB_0001374e;\n      }\n      iVar4 = iVar4 + 1;\n    } while (iVar4 != 10);\n    uVar8 = uVar8 + 1;\n    if (nblocks <= uVar8) {\n      return;\n    }\n  } while( true );\n}" primitive_type (function_declarator "bb_read_rec(FILE *ifp,char *filename)" identifier (parameter_list "(FILE *ifp,char *filename)" ( (parameter_declaration "FILE *ifp" type_identifier (pointer_declarator "*ifp" * identifier)) , (parameter_declaration "char *filename" primitive_type (pointer_declarator "*filename" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  char *pcVar3;\n  int iVar4;\n  Sym *pSVar5;\n  size_t sVar6;\n  char *pcVar7;\n  uint uVar8;\n  uint nblocks;\n  int line_num;\n  bfd_vma addr;\n  bfd_vma ncalls;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x136c9;\n  iVar4 = gmon_io_read_32(ifp,&nblocks);\n  pcVar3 = whoami;\n  if (iVar4 != 0) {\n    pcVar7 = (char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,ifp);\n    fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar7,pcVar3,filename);\n                    /* WARNING: Subroutine does not return */\n    done(1);\n  }\n  nblocks = (uint)(*core_bfd->xvec->bfd_getx32)(&nblocks);\n  if (gmon_file_version == 0) {\n    do {\n      iVar4 = fgetc((FILE *)ifp);\n    } while (1 < iVar4 + 1U);\n  }\n  if (nblocks == 0) {\n    return;\n  }\n  uVar8 = 0;\nLAB_0001375b:\n  do {\n    if (gmon_file_version == 0) {\n      sVar6 = fread(&ncalls,8,1,(FILE *)ifp);\n      if ((sVar6 != 1) || (sVar6 = fread(&addr,8,1,(FILE *)ifp), sVar6 != 1)) {\nLAB_000138e7:\n        perror(filename);\n                    /* WARNING: Subroutine does not return */\n        done(1);\n      }\n      do {\n        iVar4 = fgetc((FILE *)ifp);\n      } while (1 < iVar4 + 1U);\n      do {\n        iVar4 = fgetc((FILE *)ifp);\n      } while (1 < iVar4 + 1U);\n      sVar6 = fread(&line_num,4,1,(FILE *)ifp);\n      if (sVar6 != 1) goto LAB_000138e7;\n    }\n    else {\n      iVar4 = gmon_io_read_vma(ifp,&addr);\n      if ((iVar4 != 0) || (iVar4 = gmon_io_read_vma(ifp,&ncalls), iVar4 != 0)) goto LAB_000138e7;\n    }\n    pcVar3 = whoami;\n    if (line_granularity == 0) {\n      if (bb_read_rec::lexical_block_9::user_warned == 0) {\n        bb_read_rec::lexical_block_9::user_warned = 1;\n        pcVar7 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar7,pcVar3);\n      }\nLAB_0001374e:\n      uVar8 = uVar8 + 1;\n      if (nblocks <= uVar8) {\n        return;\n      }\n      goto LAB_0001375b;\n    }\n    pSVar5 = sym_lookup((Sym_Table *)PTR_symtab_0002cfd8,CONCAT44(addr._4_4_,(int)addr));\n    if (pSVar5 == (Sym *)0x0) goto LAB_0001374e;\n    if ((debug_level & 0x800U) != 0) {\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",(int)addr,(int)pSVar5->addr,pSVar5->name\n             ,pSVar5->line_num,(int)ncalls);\n    }\n    iVar4 = 0;\n    do {\n      iVar1 = *(int *)((int)pSVar5->bb_addr + iVar4 * 8 + 4);\n      iVar2 = (int)pSVar5->bb_addr[iVar4];\n      if ((iVar1 == 0 && iVar2 == 0) || (iVar1 == addr._4_4_ && iVar2 == (int)addr)) {\n        *(int *)(pSVar5->bb_addr + iVar4) = (int)addr;\n        *(int *)((int)pSVar5->bb_addr + iVar4 * 8 + 4) = addr._4_4_;\n        pSVar5->bb_calls[iVar4] = pSVar5->bb_calls[iVar4] + (int)ncalls;\n        goto LAB_0001374e;\n      }\n      iVar4 = iVar4 + 1;\n    } while (iVar4 != 10);\n    uVar8 = uVar8 + 1;\n    if (nblocks <= uVar8) {\n      return;\n    }\n  } while( true );\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "Sym *pSVar5;" type_identifier (pointer_declarator "*pSVar5" * identifier) ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint nblocks;" type_identifier identifier ;) (declaration "int line_num;" primitive_type identifier ;) (declaration "bfd_vma addr;" type_identifier identifier ;) (declaration "bfd_vma ncalls;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x136c9;" (assignment_expression "uStack_14 = 0x136c9" identifier = number_literal) ;) (expression_statement "iVar4 = gmon_io_read_32(ifp,&nblocks);" (assignment_expression "iVar4 = gmon_io_read_32(ifp,&nblocks)" identifier = (call_expression "gmon_io_read_32(ifp,&nblocks)" identifier (argument_list "(ifp,&nblocks)" ( identifier , (pointer_expression "&nblocks" & identifier) )))) ;) (expression_statement "pcVar3 = whoami;" (assignment_expression "pcVar3 = whoami" identifier = identifier) ;) (if_statement "if (iVar4 != 0) {\n    pcVar7 = (char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,ifp);\n    fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar7,pcVar3,filename);\n                    /* WARNING: Subroutine does not return */\n    done(1);\n  }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n    pcVar7 = (char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,ifp);\n    fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar7,pcVar3,filename);\n                    /* WARNING: Subroutine does not return */\n    done(1);\n  }" { (expression_statement "pcVar7 = (char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,ifp);" (assignment_expression "pcVar7 = (char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,ifp)" identifier = (cast_expression "(char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,ifp)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%s: %s: unexpected end of file\n",5,ifp)" identifier (argument_list "("gprof","%s: %s: unexpected end of file\n",5,ifp)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%s: %s: unexpected end of file\n"" " string_content escape_sequence ") , number_literal , identifier ))))) ;) (expression_statement "fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar7,pcVar3,filename);" (call_expression "fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar7,pcVar3,filename)" identifier (argument_list "(*(FILE **)PTR_stderr_0002cfcc,pcVar7,pcVar3,filename)" ( (pointer_expression "*(FILE **)PTR_stderr_0002cfcc" * (cast_expression "(FILE **)PTR_stderr_0002cfcc" ( (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 "nblocks = (uint)(*core_bfd->xvec->bfd_getx32)(&nblocks);" (assignment_expression "nblocks = (uint)(*core_bfd->xvec->bfd_getx32)(&nblocks)" identifier = (call_expression "(uint)(*core_bfd->xvec->bfd_getx32)(&nblocks)" (call_expression "(uint)(*core_bfd->xvec->bfd_getx32)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*core_bfd->xvec->bfd_getx32)" ( (pointer_expression "*core_bfd->xvec->bfd_getx32" * (field_expression "core_bfd->xvec->bfd_getx32" (field_expression "core_bfd->xvec" identifier -> field_identifier) -> field_identifier)) ))) (argument_list "(&nblocks)" ( (pointer_expression "&nblocks" & identifier) )))) ;) (if_statement "if (gmon_file_version == 0) {\n    do {\n      iVar4 = fgetc((FILE *)ifp);\n    } while (1 < iVar4 + 1U);\n  }" if (parenthesized_expression "(gmon_file_version == 0)" ( (binary_expression "gmon_file_version == 0" identifier == number_literal) )) (compound_statement "{\n    do {\n      iVar4 = fgetc((FILE *)ifp);\n    } while (1 < iVar4 + 1U);\n  }" { (do_statement "do {\n      iVar4 = fgetc((FILE *)ifp);\n    } while (1 < iVar4 + 1U);" do (compound_statement "{\n      iVar4 = fgetc((FILE *)ifp);\n    }" { (expression_statement "iVar4 = fgetc((FILE *)ifp);" (assignment_expression "iVar4 = fgetc((FILE *)ifp)" identifier = (call_expression "fgetc((FILE *)ifp)" identifier (argument_list "((FILE *)ifp)" ( (cast_expression "(FILE *)ifp" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) }) while (parenthesized_expression "(1 < iVar4 + 1U)" ( (binary_expression "1 < iVar4 + 1U" number_literal < (binary_expression "iVar4 + 1U" identifier + number_literal)) )) ;) })) (if_statement "if (nblocks == 0) {\n    return;\n  }" if (parenthesized_expression "(nblocks == 0)" ( (binary_expression "nblocks == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0001375b:\n  do {\n    if (gmon_file_version == 0) {\n      sVar6 = fread(&ncalls,8,1,(FILE *)ifp);\n      if ((sVar6 != 1) || (sVar6 = fread(&addr,8,1,(FILE *)ifp), sVar6 != 1)) {\nLAB_000138e7:\n        perror(filename);\n                    /* WARNING: Subroutine does not return */\n        done(1);\n      }\n      do {\n        iVar4 = fgetc((FILE *)ifp);\n      } while (1 < iVar4 + 1U);\n      do {\n        iVar4 = fgetc((FILE *)ifp);\n      } while (1 < iVar4 + 1U);\n      sVar6 = fread(&line_num,4,1,(FILE *)ifp);\n      if (sVar6 != 1) goto LAB_000138e7;\n    }\n    else {\n      iVar4 = gmon_io_read_vma(ifp,&addr);\n      if ((iVar4 != 0) || (iVar4 = gmon_io_read_vma(ifp,&ncalls), iVar4 != 0)) goto LAB_000138e7;\n    }\n    pcVar3 = whoami;\n    if (line_granularity == 0) {\n      if (bb_read_rec::lexical_block_9::user_warned == 0) {\n        bb_read_rec::lexical_block_9::user_warned = 1;\n        pcVar7 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar7,pcVar3);\n      }\nLAB_0001374e:\n      uVar8 = uVar8 + 1;\n      if (nblocks <= uVar8) {\n        return;\n      }\n      goto LAB_0001375b;\n    }\n    pSVar5 = sym_lookup((Sym_Table *)PTR_symtab_0002cfd8,CONCAT44(addr._4_4_,(int)addr));\n    if (pSVar5 == (Sym *)0x0) goto LAB_0001374e;\n    if ((debug_level & 0x800U) != 0) {\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",(int)addr,(int)pSVar5->addr,pSVar5->name\n             ,pSVar5->line_num,(int)ncalls);\n    }\n    iVar4 = 0;\n    do {\n      iVar1 = *(int *)((int)pSVar5->bb_addr + iVar4 * 8 + 4);\n      iVar2 = (int)pSVar5->bb_addr[iVar4];\n      if ((iVar1 == 0 && iVar2 == 0) || (iVar1 == addr._4_4_ && iVar2 == (int)addr)) {\n        *(int *)(pSVar5->bb_addr + iVar4) = (int)addr;\n        *(int *)((int)pSVar5->bb_addr + iVar4 * 8 + 4) = addr._4_4_;\n        pSVar5->bb_calls[iVar4] = pSVar5->bb_calls[iVar4] + (int)ncalls;\n        goto LAB_0001374e;\n      }\n      iVar4 = iVar4 + 1;\n    } while (iVar4 != 10);\n    uVar8 = uVar8 + 1;\n    if (nblocks <= uVar8) {\n      return;\n    }\n  } while( true );" statement_identifier : (do_statement "do {\n    if (gmon_file_version == 0) {\n      sVar6 = fread(&ncalls,8,1,(FILE *)ifp);\n      if ((sVar6 != 1) || (sVar6 = fread(&addr,8,1,(FILE *)ifp), sVar6 != 1)) {\nLAB_000138e7:\n        perror(filename);\n                    /* WARNING: Subroutine does not return */\n        done(1);\n      }\n      do {\n        iVar4 = fgetc((FILE *)ifp);\n      } while (1 < iVar4 + 1U);\n      do {\n        iVar4 = fgetc((FILE *)ifp);\n      } while (1 < iVar4 + 1U);\n      sVar6 = fread(&line_num,4,1,(FILE *)ifp);\n      if (sVar6 != 1) goto LAB_000138e7;\n    }\n    else {\n      iVar4 = gmon_io_read_vma(ifp,&addr);\n      if ((iVar4 != 0) || (iVar4 = gmon_io_read_vma(ifp,&ncalls), iVar4 != 0)) goto LAB_000138e7;\n    }\n    pcVar3 = whoami;\n    if (line_granularity == 0) {\n      if (bb_read_rec::lexical_block_9::user_warned == 0) {\n        bb_read_rec::lexical_block_9::user_warned = 1;\n        pcVar7 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar7,pcVar3);\n      }\nLAB_0001374e:\n      uVar8 = uVar8 + 1;\n      if (nblocks <= uVar8) {\n        return;\n      }\n      goto LAB_0001375b;\n    }\n    pSVar5 = sym_lookup((Sym_Table *)PTR_symtab_0002cfd8,CONCAT44(addr._4_4_,(int)addr));\n    if (pSVar5 == (Sym *)0x0) goto LAB_0001374e;\n    if ((debug_level & 0x800U) != 0) {\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",(int)addr,(int)pSVar5->addr,pSVar5->name\n             ,pSVar5->line_num,(int)ncalls);\n    }\n    iVar4 = 0;\n    do {\n      iVar1 = *(int *)((int)pSVar5->bb_addr + iVar4 * 8 + 4);\n      iVar2 = (int)pSVar5->bb_addr[iVar4];\n      if ((iVar1 == 0 && iVar2 == 0) || (iVar1 == addr._4_4_ && iVar2 == (int)addr)) {\n        *(int *)(pSVar5->bb_addr + iVar4) = (int)addr;\n        *(int *)((int)pSVar5->bb_addr + iVar4 * 8 + 4) = addr._4_4_;\n        pSVar5->bb_calls[iVar4] = pSVar5->bb_calls[iVar4] + (int)ncalls;\n        goto LAB_0001374e;\n      }\n      iVar4 = iVar4 + 1;\n    } while (iVar4 != 10);\n    uVar8 = uVar8 + 1;\n    if (nblocks <= uVar8) {\n      return;\n    }\n  } while( true );" do (compound_statement "{\n    if (gmon_file_version == 0) {\n      sVar6 = fread(&ncalls,8,1,(FILE *)ifp);\n      if ((sVar6 != 1) || (sVar6 = fread(&addr,8,1,(FILE *)ifp), sVar6 != 1)) {\nLAB_000138e7:\n        perror(filename);\n                    /* WARNING: Subroutine does not return */\n        done(1);\n      }\n      do {\n        iVar4 = fgetc((FILE *)ifp);\n      } while (1 < iVar4 + 1U);\n      do {\n        iVar4 = fgetc((FILE *)ifp);\n      } while (1 < iVar4 + 1U);\n      sVar6 = fread(&line_num,4,1,(FILE *)ifp);\n      if (sVar6 != 1) goto LAB_000138e7;\n    }\n    else {\n      iVar4 = gmon_io_read_vma(ifp,&addr);\n      if ((iVar4 != 0) || (iVar4 = gmon_io_read_vma(ifp,&ncalls), iVar4 != 0)) goto LAB_000138e7;\n    }\n    pcVar3 = whoami;\n    if (line_granularity == 0) {\n      if (bb_read_rec::lexical_block_9::user_warned == 0) {\n        bb_read_rec::lexical_block_9::user_warned = 1;\n        pcVar7 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar7,pcVar3);\n      }\nLAB_0001374e:\n      uVar8 = uVar8 + 1;\n      if (nblocks <= uVar8) {\n        return;\n      }\n      goto LAB_0001375b;\n    }\n    pSVar5 = sym_lookup((Sym_Table *)PTR_symtab_0002cfd8,CONCAT44(addr._4_4_,(int)addr));\n    if (pSVar5 == (Sym *)0x0) goto LAB_0001374e;\n    if ((debug_level & 0x800U) != 0) {\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",(int)addr,(int)pSVar5->addr,pSVar5->name\n             ,pSVar5->line_num,(int)ncalls);\n    }\n    iVar4 = 0;\n    do {\n      iVar1 = *(int *)((int)pSVar5->bb_addr + iVar4 * 8 + 4);\n      iVar2 = (int)pSVar5->bb_addr[iVar4];\n      if ((iVar1 == 0 && iVar2 == 0) || (iVar1 == addr._4_4_ && iVar2 == (int)addr)) {\n        *(int *)(pSVar5->bb_addr + iVar4) = (int)addr;\n        *(int *)((int)pSVar5->bb_addr + iVar4 * 8 + 4) = addr._4_4_;\n        pSVar5->bb_calls[iVar4] = pSVar5->bb_calls[iVar4] + (int)ncalls;\n        goto LAB_0001374e;\n      }\n      iVar4 = iVar4 + 1;\n    } while (iVar4 != 10);\n    uVar8 = uVar8 + 1;\n    if (nblocks <= uVar8) {\n      return;\n    }\n  }" { (if_statement "if (gmon_file_version == 0) {\n      sVar6 = fread(&ncalls,8,1,(FILE *)ifp);\n      if ((sVar6 != 1) || (sVar6 = fread(&addr,8,1,(FILE *)ifp), sVar6 != 1)) {\nLAB_000138e7:\n        perror(filename);\n                    /* WARNING: Subroutine does not return */\n        done(1);\n      }\n      do {\n        iVar4 = fgetc((FILE *)ifp);\n      } while (1 < iVar4 + 1U);\n      do {\n        iVar4 = fgetc((FILE *)ifp);\n      } while (1 < iVar4 + 1U);\n      sVar6 = fread(&line_num,4,1,(FILE *)ifp);\n      if (sVar6 != 1) goto LAB_000138e7;\n    }\n    else {\n      iVar4 = gmon_io_read_vma(ifp,&addr);\n      if ((iVar4 != 0) || (iVar4 = gmon_io_read_vma(ifp,&ncalls), iVar4 != 0)) goto LAB_000138e7;\n    }" if (parenthesized_expression "(gmon_file_version == 0)" ( (binary_expression "gmon_file_version == 0" identifier == number_literal) )) (compound_statement "{\n      sVar6 = fread(&ncalls,8,1,(FILE *)ifp);\n      if ((sVar6 != 1) || (sVar6 = fread(&addr,8,1,(FILE *)ifp), sVar6 != 1)) {\nLAB_000138e7:\n        perror(filename);\n                    /* WARNING: Subroutine does not return */\n        done(1);\n      }\n      do {\n        iVar4 = fgetc((FILE *)ifp);\n      } while (1 < iVar4 + 1U);\n      do {\n        iVar4 = fgetc((FILE *)ifp);\n      } while (1 < iVar4 + 1U);\n      sVar6 = fread(&line_num,4,1,(FILE *)ifp);\n      if (sVar6 != 1) goto LAB_000138e7;\n    }" { (expression_statement "sVar6 = fread(&ncalls,8,1,(FILE *)ifp);" (assignment_expression "sVar6 = fread(&ncalls,8,1,(FILE *)ifp)" identifier = (call_expression "fread(&ncalls,8,1,(FILE *)ifp)" identifier (argument_list "(&ncalls,8,1,(FILE *)ifp)" ( (pointer_expression "&ncalls" & identifier) , number_literal , number_literal , (cast_expression "(FILE *)ifp" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if ((sVar6 != 1) || (sVar6 = fread(&addr,8,1,(FILE *)ifp), sVar6 != 1)) {\nLAB_000138e7:\n        perror(filename);\n                    /* WARNING: Subroutine does not return */\n        done(1);\n      }" if (parenthesized_expression "((sVar6 != 1) || (sVar6 = fread(&addr,8,1,(FILE *)ifp), sVar6 != 1))" ( (binary_expression "(sVar6 != 1) || (sVar6 = fread(&addr,8,1,(FILE *)ifp), sVar6 != 1)" (parenthesized_expression "(sVar6 != 1)" ( (binary_expression "sVar6 != 1" identifier != number_literal) )) || (parenthesized_expression "(sVar6 = fread(&addr,8,1,(FILE *)ifp), sVar6 != 1)" ( (comma_expression "sVar6 = fread(&addr,8,1,(FILE *)ifp), sVar6 != 1" (assignment_expression "sVar6 = fread(&addr,8,1,(FILE *)ifp)" identifier = (call_expression "fread(&addr,8,1,(FILE *)ifp)" identifier (argument_list "(&addr,8,1,(FILE *)ifp)" ( (pointer_expression "&addr" & identifier) , number_literal , number_literal , (cast_expression "(FILE *)ifp" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "sVar6 != 1" identifier != number_literal)) ))) )) (compound_statement "{\nLAB_000138e7:\n        perror(filename);\n                    /* WARNING: Subroutine does not return */\n        done(1);\n      }" { (labeled_statement "LAB_000138e7:\n        perror(filename);" statement_identifier : (expression_statement "perror(filename);" (call_expression "perror(filename)" identifier (argument_list "(filename)" ( identifier ))) ;)) comment (expression_statement "done(1);" (call_expression "done(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (do_statement "do {\n        iVar4 = fgetc((FILE *)ifp);\n      } while (1 < iVar4 + 1U);" do (compound_statement "{\n        iVar4 = fgetc((FILE *)ifp);\n      }" { (expression_statement "iVar4 = fgetc((FILE *)ifp);" (assignment_expression "iVar4 = fgetc((FILE *)ifp)" identifier = (call_expression "fgetc((FILE *)ifp)" identifier (argument_list "((FILE *)ifp)" ( (cast_expression "(FILE *)ifp" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) }) while (parenthesized_expression "(1 < iVar4 + 1U)" ( (binary_expression "1 < iVar4 + 1U" number_literal < (binary_expression "iVar4 + 1U" identifier + number_literal)) )) ;) (do_statement "do {\n        iVar4 = fgetc((FILE *)ifp);\n      } while (1 < iVar4 + 1U);" do (compound_statement "{\n        iVar4 = fgetc((FILE *)ifp);\n      }" { (expression_statement "iVar4 = fgetc((FILE *)ifp);" (assignment_expression "iVar4 = fgetc((FILE *)ifp)" identifier = (call_expression "fgetc((FILE *)ifp)" identifier (argument_list "((FILE *)ifp)" ( (cast_expression "(FILE *)ifp" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) }) while (parenthesized_expression "(1 < iVar4 + 1U)" ( (binary_expression "1 < iVar4 + 1U" number_literal < (binary_expression "iVar4 + 1U" identifier + number_literal)) )) ;) (expression_statement "sVar6 = fread(&line_num,4,1,(FILE *)ifp);" (assignment_expression "sVar6 = fread(&line_num,4,1,(FILE *)ifp)" identifier = (call_expression "fread(&line_num,4,1,(FILE *)ifp)" identifier (argument_list "(&line_num,4,1,(FILE *)ifp)" ( (pointer_expression "&line_num" & identifier) , number_literal , number_literal , (cast_expression "(FILE *)ifp" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (sVar6 != 1) goto LAB_000138e7;" if (parenthesized_expression "(sVar6 != 1)" ( (binary_expression "sVar6 != 1" identifier != number_literal) )) (goto_statement "goto LAB_000138e7;" goto statement_identifier ;)) }) (else_clause "else {\n      iVar4 = gmon_io_read_vma(ifp,&addr);\n      if ((iVar4 != 0) || (iVar4 = gmon_io_read_vma(ifp,&ncalls), iVar4 != 0)) goto LAB_000138e7;\n    }" else (compound_statement "{\n      iVar4 = gmon_io_read_vma(ifp,&addr);\n      if ((iVar4 != 0) || (iVar4 = gmon_io_read_vma(ifp,&ncalls), iVar4 != 0)) goto LAB_000138e7;\n    }" { (expression_statement "iVar4 = gmon_io_read_vma(ifp,&addr);" (assignment_expression "iVar4 = gmon_io_read_vma(ifp,&addr)" identifier = (call_expression "gmon_io_read_vma(ifp,&addr)" identifier (argument_list "(ifp,&addr)" ( identifier , (pointer_expression "&addr" & identifier) )))) ;) (if_statement "if ((iVar4 != 0) || (iVar4 = gmon_io_read_vma(ifp,&ncalls), iVar4 != 0)) goto LAB_000138e7;" if (parenthesized_expression "((iVar4 != 0) || (iVar4 = gmon_io_read_vma(ifp,&ncalls), iVar4 != 0))" ( (binary_expression "(iVar4 != 0) || (iVar4 = gmon_io_read_vma(ifp,&ncalls), iVar4 != 0)" (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar4 = gmon_io_read_vma(ifp,&ncalls), iVar4 != 0)" ( (comma_expression "iVar4 = gmon_io_read_vma(ifp,&ncalls), iVar4 != 0" (assignment_expression "iVar4 = gmon_io_read_vma(ifp,&ncalls)" identifier = (call_expression "gmon_io_read_vma(ifp,&ncalls)" identifier (argument_list "(ifp,&ncalls)" ( identifier , (pointer_expression "&ncalls" & identifier) )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_000138e7;" goto statement_identifier ;)) }))) (expression_statement "pcVar3 = whoami;" (assignment_expression "pcVar3 = whoami" identifier = identifier) ;) (if_statement "if (line_granularity == 0) {\n      if (bb_read_rec::lexical_block_9::user_warned == 0) {\n        bb_read_rec::lexical_block_9::user_warned = 1;\n        pcVar7 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar7,pcVar3);\n      }\nLAB_0001374e:\n      uVar8 = uVar8 + 1;\n      if (nblocks <= uVar8) {\n        return;\n      }\n      goto LAB_0001375b;\n    }" if (parenthesized_expression "(line_granularity == 0)" ( (binary_expression "line_granularity == 0" identifier == number_literal) )) (compound_statement "{\n      if (bb_read_rec::lexical_block_9::user_warned == 0) {\n        bb_read_rec::lexical_block_9::user_warned = 1;\n        pcVar7 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar7,pcVar3);\n      }\nLAB_0001374e:\n      uVar8 = uVar8 + 1;\n      if (nblocks <= uVar8) {\n        return;\n      }\n      goto LAB_0001375b;\n    }" { (if_statement "if (bb_read_rec::lexical_block_9::user_warned == 0) {\n        bb_read_rec::lexical_block_9::user_warned = 1;\n        pcVar7 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar7,pcVar3);\n      }" if (parenthesized_expression "(bb_read_rec::lexical_block_9::user_warned == 0)" ( (ERROR "bb_read_rec::lexical_block_9::" identifier : : identifier : :) (binary_expression "user_warned == 0" identifier == number_literal) )) (compound_statement "{\n        bb_read_rec::lexical_block_9::user_warned = 1;\n        pcVar7 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar7,pcVar3);\n      }" { (labeled_statement "bb_read_rec::lexical_block_9::user_warned = 1;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_9::user_warned = 1;" statement_identifier : (ERROR ":" :) (expression_statement "user_warned = 1;" (assignment_expression "user_warned = 1" identifier = number_literal) ;))) (expression_statement "pcVar7 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);" (assignment_expression "pcVar7 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5)" identifier = (cast_expression "(char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5)" identifier (argument_list "("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%s: warning: ignoring basic-block exec counts (use -l or --line)\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar7,pcVar3);" (call_expression "fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar7,pcVar3)" identifier (argument_list "(*(FILE **)PTR_stderr_0002cfcc,pcVar7,pcVar3)" ( (pointer_expression "*(FILE **)PTR_stderr_0002cfcc" * (cast_expression "(FILE **)PTR_stderr_0002cfcc" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , identifier , identifier ))) ;) })) (labeled_statement "LAB_0001374e:\n      uVar8 = uVar8 + 1;" statement_identifier : (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;)) (if_statement "if (nblocks <= uVar8) {\n        return;\n      }" if (parenthesized_expression "(nblocks <= uVar8)" ( (binary_expression "nblocks <= uVar8" identifier <= identifier) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (goto_statement "goto LAB_0001375b;" goto statement_identifier ;) })) (expression_statement "pSVar5 = sym_lookup((Sym_Table *)PTR_symtab_0002cfd8,CONCAT44(addr._4_4_,(int)addr));" (assignment_expression "pSVar5 = sym_lookup((Sym_Table *)PTR_symtab_0002cfd8,CONCAT44(addr._4_4_,(int)addr))" identifier = (call_expression "sym_lookup((Sym_Table *)PTR_symtab_0002cfd8,CONCAT44(addr._4_4_,(int)addr))" identifier (argument_list "((Sym_Table *)PTR_symtab_0002cfd8,CONCAT44(addr._4_4_,(int)addr))" ( (cast_expression "(Sym_Table *)PTR_symtab_0002cfd8" ( (type_descriptor "Sym_Table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (call_expression "CONCAT44(addr._4_4_,(int)addr)" identifier (argument_list "(addr._4_4_,(int)addr)" ( (field_expression "addr._4_4_" identifier . field_identifier) , (cast_expression "(int)addr" ( (type_descriptor "int" primitive_type) ) identifier) ))) )))) ;) (if_statement "if (pSVar5 == (Sym *)0x0) goto LAB_0001374e;" if (parenthesized_expression "(pSVar5 == (Sym *)0x0)" ( (binary_expression "pSVar5 == (Sym *)0x0" identifier == (cast_expression "(Sym *)0x0" ( (type_descriptor "Sym *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001374e;" goto statement_identifier ;)) (if_statement "if ((debug_level & 0x800U) != 0) {\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",(int)addr,(int)pSVar5->addr,pSVar5->name\n             ,pSVar5->line_num,(int)ncalls);\n    }" if (parenthesized_expression "((debug_level & 0x800U) != 0)" ( (binary_expression "(debug_level & 0x800U) != 0" (parenthesized_expression "(debug_level & 0x800U)" ( (binary_expression "debug_level & 0x800U" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",(int)addr,(int)pSVar5->addr,pSVar5->name\n             ,pSVar5->line_num,(int)ncalls);\n    }" { (expression_statement "printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",(int)addr,(int)pSVar5->addr,pSVar5->name\n             ,pSVar5->line_num,(int)ncalls);" (call_expression "printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",(int)addr,(int)pSVar5->addr,pSVar5->name\n             ,pSVar5->line_num,(int)ncalls)" identifier (argument_list "("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",(int)addr,(int)pSVar5->addr,pSVar5->name\n             ,pSVar5->line_num,(int)ncalls)" ( (string_literal ""[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n"" " string_content escape_sequence ") , (cast_expression "(int)addr" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)pSVar5->addr" ( (type_descriptor "int" primitive_type) ) (field_expression "pSVar5->addr" identifier -> field_identifier)) , (field_expression "pSVar5->name" identifier -> field_identifier) , (field_expression "pSVar5->line_num" identifier -> field_identifier) , (cast_expression "(int)ncalls" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) })) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n      iVar1 = *(int *)((int)pSVar5->bb_addr + iVar4 * 8 + 4);\n      iVar2 = (int)pSVar5->bb_addr[iVar4];\n      if ((iVar1 == 0 && iVar2 == 0) || (iVar1 == addr._4_4_ && iVar2 == (int)addr)) {\n        *(int *)(pSVar5->bb_addr + iVar4) = (int)addr;\n        *(int *)((int)pSVar5->bb_addr + iVar4 * 8 + 4) = addr._4_4_;\n        pSVar5->bb_calls[iVar4] = pSVar5->bb_calls[iVar4] + (int)ncalls;\n        goto LAB_0001374e;\n      }\n      iVar4 = iVar4 + 1;\n    } while (iVar4 != 10);" do (compound_statement "{\n      iVar1 = *(int *)((int)pSVar5->bb_addr + iVar4 * 8 + 4);\n      iVar2 = (int)pSVar5->bb_addr[iVar4];\n      if ((iVar1 == 0 && iVar2 == 0) || (iVar1 == addr._4_4_ && iVar2 == (int)addr)) {\n        *(int *)(pSVar5->bb_addr + iVar4) = (int)addr;\n        *(int *)((int)pSVar5->bb_addr + iVar4 * 8 + 4) = addr._4_4_;\n        pSVar5->bb_calls[iVar4] = pSVar5->bb_calls[iVar4] + (int)ncalls;\n        goto LAB_0001374e;\n      }\n      iVar4 = iVar4 + 1;\n    }" { (expression_statement "iVar1 = *(int *)((int)pSVar5->bb_addr + iVar4 * 8 + 4);" (assignment_expression "iVar1 = *(int *)((int)pSVar5->bb_addr + iVar4 * 8 + 4)" identifier = (pointer_expression "*(int *)((int)pSVar5->bb_addr + iVar4 * 8 + 4)" * (cast_expression "(int *)((int)pSVar5->bb_addr + iVar4 * 8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pSVar5->bb_addr + iVar4 * 8 + 4)" ( (binary_expression "(int)pSVar5->bb_addr + iVar4 * 8 + 4" (binary_expression "(int)pSVar5->bb_addr + iVar4 * 8" (cast_expression "(int)pSVar5->bb_addr" ( (type_descriptor "int" primitive_type) ) (field_expression "pSVar5->bb_addr" identifier -> field_identifier)) + (binary_expression "iVar4 * 8" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "iVar2 = (int)pSVar5->bb_addr[iVar4];" (assignment_expression "iVar2 = (int)pSVar5->bb_addr[iVar4]" identifier = (cast_expression "(int)pSVar5->bb_addr[iVar4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pSVar5->bb_addr[iVar4]" (field_expression "pSVar5->bb_addr" identifier -> field_identifier) [ identifier ]))) ;) (if_statement "if ((iVar1 == 0 && iVar2 == 0) || (iVar1 == addr._4_4_ && iVar2 == (int)addr)) {\n        *(int *)(pSVar5->bb_addr + iVar4) = (int)addr;\n        *(int *)((int)pSVar5->bb_addr + iVar4 * 8 + 4) = addr._4_4_;\n        pSVar5->bb_calls[iVar4] = pSVar5->bb_calls[iVar4] + (int)ncalls;\n        goto LAB_0001374e;\n      }" if (parenthesized_expression "((iVar1 == 0 && iVar2 == 0) || (iVar1 == addr._4_4_ && iVar2 == (int)addr))" ( (binary_expression "(iVar1 == 0 && iVar2 == 0) || (iVar1 == addr._4_4_ && iVar2 == (int)addr)" (parenthesized_expression "(iVar1 == 0 && iVar2 == 0)" ( (binary_expression "iVar1 == 0 && iVar2 == 0" (binary_expression "iVar1 == 0" identifier == number_literal) && (binary_expression "iVar2 == 0" identifier == number_literal)) )) || (parenthesized_expression "(iVar1 == addr._4_4_ && iVar2 == (int)addr)" ( (binary_expression "iVar1 == addr._4_4_ && iVar2 == (int)addr" (binary_expression "iVar1 == addr._4_4_" identifier == (field_expression "addr._4_4_" identifier . field_identifier)) && (binary_expression "iVar2 == (int)addr" identifier == (cast_expression "(int)addr" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n        *(int *)(pSVar5->bb_addr + iVar4) = (int)addr;\n        *(int *)((int)pSVar5->bb_addr + iVar4 * 8 + 4) = addr._4_4_;\n        pSVar5->bb_calls[iVar4] = pSVar5->bb_calls[iVar4] + (int)ncalls;\n        goto LAB_0001374e;\n      }" { (expression_statement "*(int *)(pSVar5->bb_addr + iVar4) = (int)addr;" (assignment_expression "*(int *)(pSVar5->bb_addr + iVar4) = (int)addr" (pointer_expression "*(int *)(pSVar5->bb_addr + iVar4)" * (cast_expression "(int *)(pSVar5->bb_addr + iVar4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pSVar5->bb_addr + iVar4)" ( (binary_expression "pSVar5->bb_addr + iVar4" (field_expression "pSVar5->bb_addr" identifier -> field_identifier) + identifier) )))) = (cast_expression "(int)addr" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(int *)((int)pSVar5->bb_addr + iVar4 * 8 + 4) = addr._4_4_;" (assignment_expression "*(int *)((int)pSVar5->bb_addr + iVar4 * 8 + 4) = addr._4_4_" (pointer_expression "*(int *)((int)pSVar5->bb_addr + iVar4 * 8 + 4)" * (cast_expression "(int *)((int)pSVar5->bb_addr + iVar4 * 8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pSVar5->bb_addr + iVar4 * 8 + 4)" ( (binary_expression "(int)pSVar5->bb_addr + iVar4 * 8 + 4" (binary_expression "(int)pSVar5->bb_addr + iVar4 * 8" (cast_expression "(int)pSVar5->bb_addr" ( (type_descriptor "int" primitive_type) ) (field_expression "pSVar5->bb_addr" identifier -> field_identifier)) + (binary_expression "iVar4 * 8" identifier * number_literal)) + number_literal) )))) = (field_expression "addr._4_4_" identifier . field_identifier)) ;) (expression_statement "pSVar5->bb_calls[iVar4] = pSVar5->bb_calls[iVar4] + (int)ncalls;" (assignment_expression "pSVar5->bb_calls[iVar4] = pSVar5->bb_calls[iVar4] + (int)ncalls" (subscript_expression "pSVar5->bb_calls[iVar4]" (field_expression "pSVar5->bb_calls" identifier -> field_identifier) [ identifier ]) = (binary_expression "pSVar5->bb_calls[iVar4] + (int)ncalls" (subscript_expression "pSVar5->bb_calls[iVar4]" (field_expression "pSVar5->bb_calls" identifier -> field_identifier) [ identifier ]) + (cast_expression "(int)ncalls" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (goto_statement "goto LAB_0001374e;" goto statement_identifier ;) })) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar4 != 10)" ( (binary_expression "iVar4 != 10" identifier != number_literal) )) ;) (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) (if_statement "if (nblocks <= uVar8) {\n      return;\n    }" if (parenthesized_expression "(nblocks <= uVar8)" ( (binary_expression "nblocks <= uVar8" identifier <= identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit "void FUN_000136c0(FILE *param_1,char *param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  size_t sVar4;\n  char *pcVar5;\n  uint uVar6;\n  uint local_34;\n  undefined1 local_30 [4];\n  int local_2c;\n  int local_28;\n  int local_24 [4];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x136c9;\n  iVar2 = FUN_00019c60(param_1,&local_34);\n  uVar1 = DAT_0002e508;\n  if (iVar2 != 0) {\n    pcVar5 = (char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,param_1);\n    fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1,param_2);\n                    \n    FUN_0001adb0(1);\n  }\n  local_34 = (**(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28))(&local_34);\n  if (DAT_0002e12c == 0) {\n    do {\n      iVar2 = fgetc(param_1);\n    } while (1 < iVar2 + 1U);\n  }\n  if (local_34 == 0) {\n    return;\n  }\n  uVar6 = 0;\nLAB_0001375b:\n  do {\n    if (DAT_0002e12c == 0) {\n      sVar4 = fread(local_24,8,1,param_1);\n      if ((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)) {\nLAB_000138e7:\n        perror(param_2);\n                    \n        FUN_0001adb0(1);\n      }\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      sVar4 = fread(local_30,4,1,param_1);\n      if (sVar4 != 1) goto LAB_000138e7;\n    }\n    else {\n      iVar2 = FUN_00019cc0(param_1,&local_2c);\n      if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;\n    }\n    uVar1 = DAT_0002e508;\n    if (DAT_0002e144 == 0) {\n      if (DAT_0002d4f0 == 0) {\n        DAT_0002d4f0 = 1;\n        pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);\n      }\nLAB_0001374e:\n      uVar6 = uVar6 + 1;\n      if (local_34 <= uVar6) {\n        return;\n      }\n      goto LAB_0001375b;\n    }\n    puVar3 = (undefined4 *)FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28);\n    if (puVar3 == (undefined4 *)0x0) goto LAB_0001374e;\n    if ((DAT_0002e158 & 0x800) != 0) {\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0]);\n    }\n    iVar2 = 0;\n    do {\n      if ((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)) {\n        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;\n        puVar3[(iVar2 + 4) * 2 + 3] = local_28;\n        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];\n        goto LAB_0001374e;\n      }\n      iVar2 = iVar2 + 1;\n    } while (iVar2 != 10);\n    uVar6 = uVar6 + 1;\n    if (local_34 <= uVar6) {\n      return;\n    }\n  } while( true );\n}\n\n" (function_definition "void FUN_000136c0(FILE *param_1,char *param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  size_t sVar4;\n  char *pcVar5;\n  uint uVar6;\n  uint local_34;\n  undefined1 local_30 [4];\n  int local_2c;\n  int local_28;\n  int local_24 [4];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x136c9;\n  iVar2 = FUN_00019c60(param_1,&local_34);\n  uVar1 = DAT_0002e508;\n  if (iVar2 != 0) {\n    pcVar5 = (char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,param_1);\n    fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1,param_2);\n                    \n    FUN_0001adb0(1);\n  }\n  local_34 = (**(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28))(&local_34);\n  if (DAT_0002e12c == 0) {\n    do {\n      iVar2 = fgetc(param_1);\n    } while (1 < iVar2 + 1U);\n  }\n  if (local_34 == 0) {\n    return;\n  }\n  uVar6 = 0;\nLAB_0001375b:\n  do {\n    if (DAT_0002e12c == 0) {\n      sVar4 = fread(local_24,8,1,param_1);\n      if ((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)) {\nLAB_000138e7:\n        perror(param_2);\n                    \n        FUN_0001adb0(1);\n      }\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      sVar4 = fread(local_30,4,1,param_1);\n      if (sVar4 != 1) goto LAB_000138e7;\n    }\n    else {\n      iVar2 = FUN_00019cc0(param_1,&local_2c);\n      if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;\n    }\n    uVar1 = DAT_0002e508;\n    if (DAT_0002e144 == 0) {\n      if (DAT_0002d4f0 == 0) {\n        DAT_0002d4f0 = 1;\n        pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);\n      }\nLAB_0001374e:\n      uVar6 = uVar6 + 1;\n      if (local_34 <= uVar6) {\n        return;\n      }\n      goto LAB_0001375b;\n    }\n    puVar3 = (undefined4 *)FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28);\n    if (puVar3 == (undefined4 *)0x0) goto LAB_0001374e;\n    if ((DAT_0002e158 & 0x800) != 0) {\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0]);\n    }\n    iVar2 = 0;\n    do {\n      if ((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)) {\n        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;\n        puVar3[(iVar2 + 4) * 2 + 3] = local_28;\n        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];\n        goto LAB_0001374e;\n      }\n      iVar2 = iVar2 + 1;\n    } while (iVar2 != 10);\n    uVar6 = uVar6 + 1;\n    if (local_34 <= uVar6) {\n      return;\n    }\n  } while( true );\n}" primitive_type (function_declarator "FUN_000136c0(FILE *param_1,char *param_2)" identifier (parameter_list "(FILE *param_1,char *param_2)" ( (parameter_declaration "FILE *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  size_t sVar4;\n  char *pcVar5;\n  uint uVar6;\n  uint local_34;\n  undefined1 local_30 [4];\n  int local_2c;\n  int local_28;\n  int local_24 [4];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x136c9;\n  iVar2 = FUN_00019c60(param_1,&local_34);\n  uVar1 = DAT_0002e508;\n  if (iVar2 != 0) {\n    pcVar5 = (char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,param_1);\n    fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1,param_2);\n                    \n    FUN_0001adb0(1);\n  }\n  local_34 = (**(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28))(&local_34);\n  if (DAT_0002e12c == 0) {\n    do {\n      iVar2 = fgetc(param_1);\n    } while (1 < iVar2 + 1U);\n  }\n  if (local_34 == 0) {\n    return;\n  }\n  uVar6 = 0;\nLAB_0001375b:\n  do {\n    if (DAT_0002e12c == 0) {\n      sVar4 = fread(local_24,8,1,param_1);\n      if ((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)) {\nLAB_000138e7:\n        perror(param_2);\n                    \n        FUN_0001adb0(1);\n      }\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      sVar4 = fread(local_30,4,1,param_1);\n      if (sVar4 != 1) goto LAB_000138e7;\n    }\n    else {\n      iVar2 = FUN_00019cc0(param_1,&local_2c);\n      if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;\n    }\n    uVar1 = DAT_0002e508;\n    if (DAT_0002e144 == 0) {\n      if (DAT_0002d4f0 == 0) {\n        DAT_0002d4f0 = 1;\n        pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);\n      }\nLAB_0001374e:\n      uVar6 = uVar6 + 1;\n      if (local_34 <= uVar6) {\n        return;\n      }\n      goto LAB_0001375b;\n    }\n    puVar3 = (undefined4 *)FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28);\n    if (puVar3 == (undefined4 *)0x0) goto LAB_0001374e;\n    if ((DAT_0002e158 & 0x800) != 0) {\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0]);\n    }\n    iVar2 = 0;\n    do {\n      if ((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)) {\n        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;\n        puVar3[(iVar2 + 4) * 2 + 3] = local_28;\n        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];\n        goto LAB_0001374e;\n      }\n      iVar2 = iVar2 + 1;\n    } while (iVar2 != 10);\n    uVar6 = uVar6 + 1;\n    if (local_34 <= uVar6) {\n      return;\n    }\n  } while( true );\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "undefined1 local_30 [4];" type_identifier (array_declarator "local_30 [4]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "int local_24 [4];" primitive_type (array_declarator "local_24 [4]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x136c9;" (assignment_expression "uStack_14 = 0x136c9" identifier = number_literal) ;) (expression_statement "iVar2 = FUN_00019c60(param_1,&local_34);" (assignment_expression "iVar2 = FUN_00019c60(param_1,&local_34)" identifier = (call_expression "FUN_00019c60(param_1,&local_34)" identifier (argument_list "(param_1,&local_34)" ( identifier , (pointer_expression "&local_34" & identifier) )))) ;) (expression_statement "uVar1 = DAT_0002e508;" (assignment_expression "uVar1 = DAT_0002e508" identifier = identifier) ;) (if_statement "if (iVar2 != 0) {\n    pcVar5 = (char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,param_1);\n    fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1,param_2);\n                    \n    FUN_0001adb0(1);\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    pcVar5 = (char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,param_1);\n    fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1,param_2);\n                    \n    FUN_0001adb0(1);\n  }" { (expression_statement "pcVar5 = (char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,param_1);" (assignment_expression "pcVar5 = (char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,param_1)" identifier = (cast_expression "(char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,param_1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%s: %s: unexpected end of file\n",5,param_1)" identifier (argument_list "("gprof","%s: %s: unexpected end of file\n",5,param_1)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%s: %s: unexpected end of file\n"" " string_content escape_sequence ") , number_literal , identifier ))))) ;) (expression_statement "fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1,param_2);" (call_expression "fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1,param_2)" identifier (argument_list "(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1,param_2)" ( (pointer_expression "*(FILE **)PTR_stderr_0002cfcc" * (cast_expression "(FILE **)PTR_stderr_0002cfcc" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , identifier , identifier , identifier ))) ;) (expression_statement "FUN_0001adb0(1);" (call_expression "FUN_0001adb0(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (expression_statement "local_34 = (**(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28))(&local_34);" (assignment_expression "local_34 = (**(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28))(&local_34)" identifier = (call_expression "(**(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28))(&local_34)" (parenthesized_expression "(**(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28))" ( (pointer_expression "**(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28)" * (pointer_expression "*(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28)" * (cast_expression "(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_0002e4ec + 4) + 0x28)" ( (binary_expression "*(int *)(DAT_0002e4ec + 4) + 0x28" (pointer_expression "*(int *)(DAT_0002e4ec + 4)" * (cast_expression "(int *)(DAT_0002e4ec + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0002e4ec + 4)" ( (binary_expression "DAT_0002e4ec + 4" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(&local_34)" ( (pointer_expression "&local_34" & identifier) )))) ;) (if_statement "if (DAT_0002e12c == 0) {\n    do {\n      iVar2 = fgetc(param_1);\n    } while (1 < iVar2 + 1U);\n  }" if (parenthesized_expression "(DAT_0002e12c == 0)" ( (binary_expression "DAT_0002e12c == 0" identifier == number_literal) )) (compound_statement "{\n    do {\n      iVar2 = fgetc(param_1);\n    } while (1 < iVar2 + 1U);\n  }" { (do_statement "do {\n      iVar2 = fgetc(param_1);\n    } while (1 < iVar2 + 1U);" do (compound_statement "{\n      iVar2 = fgetc(param_1);\n    }" { (expression_statement "iVar2 = fgetc(param_1);" (assignment_expression "iVar2 = fgetc(param_1)" identifier = (call_expression "fgetc(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) }) while (parenthesized_expression "(1 < iVar2 + 1U)" ( (binary_expression "1 < iVar2 + 1U" number_literal < (binary_expression "iVar2 + 1U" identifier + number_literal)) )) ;) })) (if_statement "if (local_34 == 0) {\n    return;\n  }" if (parenthesized_expression "(local_34 == 0)" ( (binary_expression "local_34 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0001375b:\n  do {\n    if (DAT_0002e12c == 0) {\n      sVar4 = fread(local_24,8,1,param_1);\n      if ((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)) {\nLAB_000138e7:\n        perror(param_2);\n                    \n        FUN_0001adb0(1);\n      }\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      sVar4 = fread(local_30,4,1,param_1);\n      if (sVar4 != 1) goto LAB_000138e7;\n    }\n    else {\n      iVar2 = FUN_00019cc0(param_1,&local_2c);\n      if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;\n    }\n    uVar1 = DAT_0002e508;\n    if (DAT_0002e144 == 0) {\n      if (DAT_0002d4f0 == 0) {\n        DAT_0002d4f0 = 1;\n        pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);\n      }\nLAB_0001374e:\n      uVar6 = uVar6 + 1;\n      if (local_34 <= uVar6) {\n        return;\n      }\n      goto LAB_0001375b;\n    }\n    puVar3 = (undefined4 *)FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28);\n    if (puVar3 == (undefined4 *)0x0) goto LAB_0001374e;\n    if ((DAT_0002e158 & 0x800) != 0) {\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0]);\n    }\n    iVar2 = 0;\n    do {\n      if ((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)) {\n        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;\n        puVar3[(iVar2 + 4) * 2 + 3] = local_28;\n        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];\n        goto LAB_0001374e;\n      }\n      iVar2 = iVar2 + 1;\n    } while (iVar2 != 10);\n    uVar6 = uVar6 + 1;\n    if (local_34 <= uVar6) {\n      return;\n    }\n  } while( true );" statement_identifier : (do_statement "do {\n    if (DAT_0002e12c == 0) {\n      sVar4 = fread(local_24,8,1,param_1);\n      if ((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)) {\nLAB_000138e7:\n        perror(param_2);\n                    \n        FUN_0001adb0(1);\n      }\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      sVar4 = fread(local_30,4,1,param_1);\n      if (sVar4 != 1) goto LAB_000138e7;\n    }\n    else {\n      iVar2 = FUN_00019cc0(param_1,&local_2c);\n      if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;\n    }\n    uVar1 = DAT_0002e508;\n    if (DAT_0002e144 == 0) {\n      if (DAT_0002d4f0 == 0) {\n        DAT_0002d4f0 = 1;\n        pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);\n      }\nLAB_0001374e:\n      uVar6 = uVar6 + 1;\n      if (local_34 <= uVar6) {\n        return;\n      }\n      goto LAB_0001375b;\n    }\n    puVar3 = (undefined4 *)FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28);\n    if (puVar3 == (undefined4 *)0x0) goto LAB_0001374e;\n    if ((DAT_0002e158 & 0x800) != 0) {\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0]);\n    }\n    iVar2 = 0;\n    do {\n      if ((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)) {\n        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;\n        puVar3[(iVar2 + 4) * 2 + 3] = local_28;\n        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];\n        goto LAB_0001374e;\n      }\n      iVar2 = iVar2 + 1;\n    } while (iVar2 != 10);\n    uVar6 = uVar6 + 1;\n    if (local_34 <= uVar6) {\n      return;\n    }\n  } while( true );" do (compound_statement "{\n    if (DAT_0002e12c == 0) {\n      sVar4 = fread(local_24,8,1,param_1);\n      if ((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)) {\nLAB_000138e7:\n        perror(param_2);\n                    \n        FUN_0001adb0(1);\n      }\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      sVar4 = fread(local_30,4,1,param_1);\n      if (sVar4 != 1) goto LAB_000138e7;\n    }\n    else {\n      iVar2 = FUN_00019cc0(param_1,&local_2c);\n      if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;\n    }\n    uVar1 = DAT_0002e508;\n    if (DAT_0002e144 == 0) {\n      if (DAT_0002d4f0 == 0) {\n        DAT_0002d4f0 = 1;\n        pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);\n      }\nLAB_0001374e:\n      uVar6 = uVar6 + 1;\n      if (local_34 <= uVar6) {\n        return;\n      }\n      goto LAB_0001375b;\n    }\n    puVar3 = (undefined4 *)FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28);\n    if (puVar3 == (undefined4 *)0x0) goto LAB_0001374e;\n    if ((DAT_0002e158 & 0x800) != 0) {\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0]);\n    }\n    iVar2 = 0;\n    do {\n      if ((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)) {\n        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;\n        puVar3[(iVar2 + 4) * 2 + 3] = local_28;\n        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];\n        goto LAB_0001374e;\n      }\n      iVar2 = iVar2 + 1;\n    } while (iVar2 != 10);\n    uVar6 = uVar6 + 1;\n    if (local_34 <= uVar6) {\n      return;\n    }\n  }" { (if_statement "if (DAT_0002e12c == 0) {\n      sVar4 = fread(local_24,8,1,param_1);\n      if ((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)) {\nLAB_000138e7:\n        perror(param_2);\n                    \n        FUN_0001adb0(1);\n      }\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      sVar4 = fread(local_30,4,1,param_1);\n      if (sVar4 != 1) goto LAB_000138e7;\n    }\n    else {\n      iVar2 = FUN_00019cc0(param_1,&local_2c);\n      if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;\n    }" if (parenthesized_expression "(DAT_0002e12c == 0)" ( (binary_expression "DAT_0002e12c == 0" identifier == number_literal) )) (compound_statement "{\n      sVar4 = fread(local_24,8,1,param_1);\n      if ((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)) {\nLAB_000138e7:\n        perror(param_2);\n                    \n        FUN_0001adb0(1);\n      }\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      sVar4 = fread(local_30,4,1,param_1);\n      if (sVar4 != 1) goto LAB_000138e7;\n    }" { (expression_statement "sVar4 = fread(local_24,8,1,param_1);" (assignment_expression "sVar4 = fread(local_24,8,1,param_1)" identifier = (call_expression "fread(local_24,8,1,param_1)" identifier (argument_list "(local_24,8,1,param_1)" ( identifier , number_literal , number_literal , identifier )))) ;) (if_statement "if ((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)) {\nLAB_000138e7:\n        perror(param_2);\n                    \n        FUN_0001adb0(1);\n      }" if (parenthesized_expression "((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1))" ( (binary_expression "(sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)" (parenthesized_expression "(sVar4 != 1)" ( (binary_expression "sVar4 != 1" identifier != number_literal) )) || (parenthesized_expression "(sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)" ( (comma_expression "sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1" (assignment_expression "sVar4 = fread(&local_2c,8,1,param_1)" identifier = (call_expression "fread(&local_2c,8,1,param_1)" identifier (argument_list "(&local_2c,8,1,param_1)" ( (pointer_expression "&local_2c" & identifier) , number_literal , number_literal , identifier )))) , (binary_expression "sVar4 != 1" identifier != number_literal)) ))) )) (compound_statement "{\nLAB_000138e7:\n        perror(param_2);\n                    \n        FUN_0001adb0(1);\n      }" { (labeled_statement "LAB_000138e7:\n        perror(param_2);" statement_identifier : (expression_statement "perror(param_2);" (call_expression "perror(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;)) (expression_statement "FUN_0001adb0(1);" (call_expression "FUN_0001adb0(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (do_statement "do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);" do (compound_statement "{\n        iVar2 = fgetc(param_1);\n      }" { (expression_statement "iVar2 = fgetc(param_1);" (assignment_expression "iVar2 = fgetc(param_1)" identifier = (call_expression "fgetc(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) }) while (parenthesized_expression "(1 < iVar2 + 1U)" ( (binary_expression "1 < iVar2 + 1U" number_literal < (binary_expression "iVar2 + 1U" identifier + number_literal)) )) ;) (do_statement "do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);" do (compound_statement "{\n        iVar2 = fgetc(param_1);\n      }" { (expression_statement "iVar2 = fgetc(param_1);" (assignment_expression "iVar2 = fgetc(param_1)" identifier = (call_expression "fgetc(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) }) while (parenthesized_expression "(1 < iVar2 + 1U)" ( (binary_expression "1 < iVar2 + 1U" number_literal < (binary_expression "iVar2 + 1U" identifier + number_literal)) )) ;) (expression_statement "sVar4 = fread(local_30,4,1,param_1);" (assignment_expression "sVar4 = fread(local_30,4,1,param_1)" identifier = (call_expression "fread(local_30,4,1,param_1)" identifier (argument_list "(local_30,4,1,param_1)" ( identifier , number_literal , number_literal , identifier )))) ;) (if_statement "if (sVar4 != 1) goto LAB_000138e7;" if (parenthesized_expression "(sVar4 != 1)" ( (binary_expression "sVar4 != 1" identifier != number_literal) )) (goto_statement "goto LAB_000138e7;" goto statement_identifier ;)) }) (else_clause "else {\n      iVar2 = FUN_00019cc0(param_1,&local_2c);\n      if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;\n    }" else (compound_statement "{\n      iVar2 = FUN_00019cc0(param_1,&local_2c);\n      if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;\n    }" { (expression_statement "iVar2 = FUN_00019cc0(param_1,&local_2c);" (assignment_expression "iVar2 = FUN_00019cc0(param_1,&local_2c)" identifier = (call_expression "FUN_00019cc0(param_1,&local_2c)" identifier (argument_list "(param_1,&local_2c)" ( identifier , (pointer_expression "&local_2c" & identifier) )))) ;) (if_statement "if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;" if (parenthesized_expression "((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0))" ( (binary_expression "(iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)" (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)" ( (comma_expression "iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0" (assignment_expression "iVar2 = FUN_00019cc0(param_1,local_24)" identifier = (call_expression "FUN_00019cc0(param_1,local_24)" identifier (argument_list "(param_1,local_24)" ( identifier , identifier )))) , (binary_expression "iVar2 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_000138e7;" goto statement_identifier ;)) }))) (expression_statement "uVar1 = DAT_0002e508;" (assignment_expression "uVar1 = DAT_0002e508" identifier = identifier) ;) (if_statement "if (DAT_0002e144 == 0) {\n      if (DAT_0002d4f0 == 0) {\n        DAT_0002d4f0 = 1;\n        pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);\n      }\nLAB_0001374e:\n      uVar6 = uVar6 + 1;\n      if (local_34 <= uVar6) {\n        return;\n      }\n      goto LAB_0001375b;\n    }" if (parenthesized_expression "(DAT_0002e144 == 0)" ( (binary_expression "DAT_0002e144 == 0" identifier == number_literal) )) (compound_statement "{\n      if (DAT_0002d4f0 == 0) {\n        DAT_0002d4f0 = 1;\n        pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);\n      }\nLAB_0001374e:\n      uVar6 = uVar6 + 1;\n      if (local_34 <= uVar6) {\n        return;\n      }\n      goto LAB_0001375b;\n    }" { (if_statement "if (DAT_0002d4f0 == 0) {\n        DAT_0002d4f0 = 1;\n        pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);\n      }" if (parenthesized_expression "(DAT_0002d4f0 == 0)" ( (binary_expression "DAT_0002d4f0 == 0" identifier == number_literal) )) (compound_statement "{\n        DAT_0002d4f0 = 1;\n        pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);\n      }" { (expression_statement "DAT_0002d4f0 = 1;" (assignment_expression "DAT_0002d4f0 = 1" identifier = number_literal) ;) (expression_statement "pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);" (assignment_expression "pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5)" identifier = (cast_expression "(char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5)" identifier (argument_list "("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%s: warning: ignoring basic-block exec counts (use -l or --line)\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);" (call_expression "fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1)" identifier (argument_list "(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1)" ( (pointer_expression "*(FILE **)PTR_stderr_0002cfcc" * (cast_expression "(FILE **)PTR_stderr_0002cfcc" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , identifier , identifier ))) ;) })) (labeled_statement "LAB_0001374e:\n      uVar6 = uVar6 + 1;" statement_identifier : (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;)) (if_statement "if (local_34 <= uVar6) {\n        return;\n      }" if (parenthesized_expression "(local_34 <= uVar6)" ( (binary_expression "local_34 <= uVar6" identifier <= identifier) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (goto_statement "goto LAB_0001375b;" goto statement_identifier ;) })) (expression_statement "puVar3 = (undefined4 *)FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28);" (assignment_expression "puVar3 = (undefined4 *)FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28)" identifier = (cast_expression "(undefined4 *)FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28)" identifier (argument_list "(PTR_DAT_0002cfd8,local_2c,local_28)" ( identifier , identifier , identifier ))))) ;) (if_statement "if (puVar3 == (undefined4 *)0x0) goto LAB_0001374e;" if (parenthesized_expression "(puVar3 == (undefined4 *)0x0)" ( (binary_expression "puVar3 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001374e;" goto statement_identifier ;)) (if_statement "if ((DAT_0002e158 & 0x800) != 0) {\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0]);\n    }" if (parenthesized_expression "((DAT_0002e158 & 0x800) != 0)" ( (binary_expression "(DAT_0002e158 & 0x800) != 0" (parenthesized_expression "(DAT_0002e158 & 0x800)" ( (binary_expression "DAT_0002e158 & 0x800" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0]);\n    }" { (expression_statement "printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0]);" (call_expression "printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0])" identifier (argument_list "("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0])" ( (string_literal ""[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n"" " string_content escape_sequence ") , identifier , (pointer_expression "*puVar3" * identifier) , (subscript_expression "puVar3[4]" identifier [ number_literal ]) , (subscript_expression "puVar3[6]" identifier [ number_literal ]) , (subscript_expression "local_24[0]" identifier [ number_literal ]) ))) ;) })) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (do_statement "do {\n      if ((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)) {\n        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;\n        puVar3[(iVar2 + 4) * 2 + 3] = local_28;\n        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];\n        goto LAB_0001374e;\n      }\n      iVar2 = iVar2 + 1;\n    } while (iVar2 != 10);" do (compound_statement "{\n      if ((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)) {\n        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;\n        puVar3[(iVar2 + 4) * 2 + 3] = local_28;\n        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];\n        goto LAB_0001374e;\n      }\n      iVar2 = iVar2 + 1;\n    }" { (if_statement "if ((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)) {\n        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;\n        puVar3[(iVar2 + 4) * 2 + 3] = local_28;\n        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];\n        goto LAB_0001374e;\n      }" if (parenthesized_expression "((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c))" ( (binary_expression "(puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)" (parenthesized_expression "(puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0)" ( (binary_expression "puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0" (binary_expression "puVar3[iVar2 * 2 + 0xb] == 0" (subscript_expression "puVar3[iVar2 * 2 + 0xb]" identifier [ (binary_expression "iVar2 * 2 + 0xb" (binary_expression "iVar2 * 2" identifier * number_literal) + number_literal) ]) == number_literal) && (binary_expression "puVar3[iVar2 * 2 + 10] == 0" (subscript_expression "puVar3[iVar2 * 2 + 10]" identifier [ (binary_expression "iVar2 * 2 + 10" (binary_expression "iVar2 * 2" identifier * number_literal) + number_literal) ]) == number_literal)) )) || (parenthesized_expression "(puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)" ( (binary_expression "puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c" (binary_expression "puVar3[iVar2 * 2 + 0xb] == local_28" (subscript_expression "puVar3[iVar2 * 2 + 0xb]" identifier [ (binary_expression "iVar2 * 2 + 0xb" (binary_expression "iVar2 * 2" identifier * number_literal) + number_literal) ]) == identifier) && (binary_expression "puVar3[iVar2 * 2 + 10] == local_2c" (subscript_expression "puVar3[iVar2 * 2 + 10]" identifier [ (binary_expression "iVar2 * 2 + 10" (binary_expression "iVar2 * 2" identifier * number_literal) + number_literal) ]) == identifier)) ))) )) (compound_statement "{\n        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;\n        puVar3[(iVar2 + 4) * 2 + 3] = local_28;\n        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];\n        goto LAB_0001374e;\n      }" { (expression_statement "puVar3[(iVar2 + 4) * 2 + 2] = local_2c;" (assignment_expression "puVar3[(iVar2 + 4) * 2 + 2] = local_2c" (subscript_expression "puVar3[(iVar2 + 4) * 2 + 2]" identifier [ (binary_expression "(iVar2 + 4) * 2 + 2" (binary_expression "(iVar2 + 4) * 2" (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )) * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "puVar3[(iVar2 + 4) * 2 + 3] = local_28;" (assignment_expression "puVar3[(iVar2 + 4) * 2 + 3] = local_28" (subscript_expression "puVar3[(iVar2 + 4) * 2 + 3]" identifier [ (binary_expression "(iVar2 + 4) * 2 + 3" (binary_expression "(iVar2 + 4) * 2" (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )) * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];" (assignment_expression "puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0]" (subscript_expression "puVar3[iVar2 + 0x1e]" identifier [ (binary_expression "iVar2 + 0x1e" identifier + number_literal) ]) = (binary_expression "puVar3[iVar2 + 0x1e] + local_24[0]" (subscript_expression "puVar3[iVar2 + 0x1e]" identifier [ (binary_expression "iVar2 + 0x1e" identifier + number_literal) ]) + (subscript_expression "local_24[0]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0001374e;" goto statement_identifier ;) })) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar2 != 10)" ( (binary_expression "iVar2 != 10" identifier != number_literal) )) ;) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (if_statement "if (local_34 <= uVar6) {\n      return;\n    }" if (parenthesized_expression "(local_34 <= uVar6)" ( (binary_expression "local_34 <= uVar6" identifier <= identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != 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 , IDENT ))))) ;) (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 = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }) while (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT + LIT)) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }) while (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT + LIT)) )) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }) while (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT + LIT)) )) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (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 ))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ]) == LIT) && (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ]) == LIT)) )) || (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ]) == IDENT) && (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ]) == IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT) + LIT) ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT) + LIT) ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) + (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return ;) })) }) while (parenthesized_expression ( BOOL )) ;)) })))
(function_definition "void FUN_000136c0(FILE *param_1,char *param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  size_t sVar4;\n  char *pcVar5;\n  uint uVar6;\n  uint local_34;\n  undefined1 local_30 [4];\n  int local_2c;\n  int local_28;\n  int local_24 [4];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x136c9;\n  iVar2 = FUN_00019c60(param_1,&local_34);\n  uVar1 = DAT_0002e508;\n  if (iVar2 != 0) {\n    pcVar5 = (char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,param_1);\n    fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1,param_2);\n                    \n    FUN_0001adb0(1);\n  }\n  local_34 = (**(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28))(&local_34);\n  if (DAT_0002e12c == 0) {\n    do {\n      iVar2 = fgetc(param_1);\n    } while (1 < iVar2 + 1U);\n  }\n  if (local_34 == 0) {\n    return;\n  }\n  uVar6 = 0;\nLAB_0001375b:\n  do {\n    if (DAT_0002e12c == 0) {\n      sVar4 = fread(local_24,8,1,param_1);\n      if ((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)) {\nLAB_000138e7:\n        perror(param_2);\n                    \n        FUN_0001adb0(1);\n      }\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      sVar4 = fread(local_30,4,1,param_1);\n      if (sVar4 != 1) goto LAB_000138e7;\n    }\n    else {\n      iVar2 = FUN_00019cc0(param_1,&local_2c);\n      if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;\n    }\n    uVar1 = DAT_0002e508;\n    if (DAT_0002e144 == 0) {\n      if (DAT_0002d4f0 == 0) {\n        DAT_0002d4f0 = 1;\n        pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);\n      }\nLAB_0001374e:\n      uVar6 = uVar6 + 1;\n      if (local_34 <= uVar6) {\n        return;\n      }\n      goto LAB_0001375b;\n    }\n    puVar3 = (undefined4 *)FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28);\n    if (puVar3 == (undefined4 *)0x0) goto LAB_0001374e;\n    if ((DAT_0002e158 & 0x800) != 0) {\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0]);\n    }\n    iVar2 = 0;\n    do {\n      if ((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)) {\n        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;\n        puVar3[(iVar2 + 4) * 2 + 3] = local_28;\n        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];\n        goto LAB_0001374e;\n      }\n      iVar2 = iVar2 + 1;\n    } while (iVar2 != 10);\n    uVar6 = uVar6 + 1;\n    if (local_34 <= uVar6) {\n      return;\n    }\n  } while( true );\n}" (primitive_type "void") (function_declarator "FUN_000136c0(FILE *param_1,char *param_2)" (identifier "FUN_000136c0") (parameter_list "(FILE *param_1,char *param_2)" (( "(") (parameter_declaration "FILE *param_1" (type_identifier "FILE") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  size_t sVar4;\n  char *pcVar5;\n  uint uVar6;\n  uint local_34;\n  undefined1 local_30 [4];\n  int local_2c;\n  int local_28;\n  int local_24 [4];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x136c9;\n  iVar2 = FUN_00019c60(param_1,&local_34);\n  uVar1 = DAT_0002e508;\n  if (iVar2 != 0) {\n    pcVar5 = (char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,param_1);\n    fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1,param_2);\n                    \n    FUN_0001adb0(1);\n  }\n  local_34 = (**(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28))(&local_34);\n  if (DAT_0002e12c == 0) {\n    do {\n      iVar2 = fgetc(param_1);\n    } while (1 < iVar2 + 1U);\n  }\n  if (local_34 == 0) {\n    return;\n  }\n  uVar6 = 0;\nLAB_0001375b:\n  do {\n    if (DAT_0002e12c == 0) {\n      sVar4 = fread(local_24,8,1,param_1);\n      if ((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)) {\nLAB_000138e7:\n        perror(param_2);\n                    \n        FUN_0001adb0(1);\n      }\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      sVar4 = fread(local_30,4,1,param_1);\n      if (sVar4 != 1) goto LAB_000138e7;\n    }\n    else {\n      iVar2 = FUN_00019cc0(param_1,&local_2c);\n      if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;\n    }\n    uVar1 = DAT_0002e508;\n    if (DAT_0002e144 == 0) {\n      if (DAT_0002d4f0 == 0) {\n        DAT_0002d4f0 = 1;\n        pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);\n      }\nLAB_0001374e:\n      uVar6 = uVar6 + 1;\n      if (local_34 <= uVar6) {\n        return;\n      }\n      goto LAB_0001375b;\n    }\n    puVar3 = (undefined4 *)FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28);\n    if (puVar3 == (undefined4 *)0x0) goto LAB_0001374e;\n    if ((DAT_0002e158 & 0x800) != 0) {\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0]);\n    }\n    iVar2 = 0;\n    do {\n      if ((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)) {\n        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;\n        puVar3[(iVar2 + 4) * 2 + 3] = local_28;\n        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];\n        goto LAB_0001374e;\n      }\n      iVar2 = iVar2 + 1;\n    } while (iVar2 != 10);\n    uVar6 = uVar6 + 1;\n    if (local_34 <= uVar6) {\n      return;\n    }\n  } while( true );\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "size_t sVar4;" (primitive_type "size_t") (identifier "sVar4") (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "uint local_34;" (type_identifier "uint") (identifier "local_34") (; ";")) (declaration "undefined1 local_30 [4];" (type_identifier "undefined1") (array_declarator "local_30 [4]" (identifier "local_30") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (declaration "int local_28;" (primitive_type "int") (identifier "local_28") (; ";")) (declaration "int local_24 [4];" (primitive_type "int") (array_declarator "local_24 [4]" (identifier "local_24") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x136c9;" (assignment_expression "uStack_14 = 0x136c9" (identifier "uStack_14") (= "=") (number_literal "0x136c9")) (; ";")) (expression_statement "iVar2 = FUN_00019c60(param_1,&local_34);" (assignment_expression "iVar2 = FUN_00019c60(param_1,&local_34)" (identifier "iVar2") (= "=") (call_expression "FUN_00019c60(param_1,&local_34)" (identifier "FUN_00019c60") (argument_list "(param_1,&local_34)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")")))) (; ";")) (expression_statement "uVar1 = DAT_0002e508;" (assignment_expression "uVar1 = DAT_0002e508" (identifier "uVar1") (= "=") (identifier "DAT_0002e508")) (; ";")) (if_statement "if (iVar2 != 0) {\n    pcVar5 = (char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,param_1);\n    fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1,param_2);\n                    \n    FUN_0001adb0(1);\n  }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    pcVar5 = (char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,param_1);\n    fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1,param_2);\n                    \n    FUN_0001adb0(1);\n  }" ({ "{") (expression_statement "pcVar5 = (char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,param_1);" (assignment_expression "pcVar5 = (char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,param_1)" (identifier "pcVar5") (= "=") (cast_expression "(char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,param_1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof","%s: %s: unexpected end of file\n",5,param_1)" (identifier "dcgettext") (argument_list "("gprof","%s: %s: unexpected end of file\n",5,param_1)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""%s: %s: unexpected end of file\n"" (" """) (string_content "%s: %s: unexpected end of file") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") (, ",") (identifier "param_1") () ")"))))) (; ";")) (expression_statement "fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1,param_2);" (call_expression "fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1,param_2)" (identifier "fprintf") (argument_list "(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1,param_2)" (( "(") (pointer_expression "*(FILE **)PTR_stderr_0002cfcc" (* "*") (cast_expression "(FILE **)PTR_stderr_0002cfcc" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_stderr_0002cfcc"))) (, ",") (identifier "pcVar5") (, ",") (identifier "uVar1") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "FUN_0001adb0(1);" (call_expression "FUN_0001adb0(1)" (identifier "FUN_0001adb0") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (} "}"))) (expression_statement "local_34 = (**(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28))(&local_34);" (assignment_expression "local_34 = (**(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28))(&local_34)" (identifier "local_34") (= "=") (call_expression "(**(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28))(&local_34)" (parenthesized_expression "(**(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28))" (( "(") (pointer_expression "**(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28)" (* "*") (pointer_expression "*(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28)" (* "*") (cast_expression "(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(DAT_0002e4ec + 4) + 0x28)" (( "(") (binary_expression "*(int *)(DAT_0002e4ec + 4) + 0x28" (pointer_expression "*(int *)(DAT_0002e4ec + 4)" (* "*") (cast_expression "(int *)(DAT_0002e4ec + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0002e4ec + 4)" (( "(") (binary_expression "DAT_0002e4ec + 4" (identifier "DAT_0002e4ec") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "(&local_34)" (( "(") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")")))) (; ";")) (if_statement "if (DAT_0002e12c == 0) {\n    do {\n      iVar2 = fgetc(param_1);\n    } while (1 < iVar2 + 1U);\n  }" (if "if") (parenthesized_expression "(DAT_0002e12c == 0)" (( "(") (binary_expression "DAT_0002e12c == 0" (identifier "DAT_0002e12c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    do {\n      iVar2 = fgetc(param_1);\n    } while (1 < iVar2 + 1U);\n  }" ({ "{") (do_statement "do {\n      iVar2 = fgetc(param_1);\n    } while (1 < iVar2 + 1U);" (do "do") (compound_statement "{\n      iVar2 = fgetc(param_1);\n    }" ({ "{") (expression_statement "iVar2 = fgetc(param_1);" (assignment_expression "iVar2 = fgetc(param_1)" (identifier "iVar2") (= "=") (call_expression "fgetc(param_1)" (identifier "fgetc") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(1 < iVar2 + 1U)" (( "(") (binary_expression "1 < iVar2 + 1U" (number_literal "1") (< "<") (binary_expression "iVar2 + 1U" (identifier "iVar2") (+ "+") (number_literal "1U"))) () ")")) (; ";")) (} "}"))) (if_statement "if (local_34 == 0) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_34 == 0)" (( "(") (binary_expression "local_34 == 0" (identifier "local_34") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0001375b:\n  do {\n    if (DAT_0002e12c == 0) {\n      sVar4 = fread(local_24,8,1,param_1);\n      if ((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)) {\nLAB_000138e7:\n        perror(param_2);\n                    \n        FUN_0001adb0(1);\n      }\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      sVar4 = fread(local_30,4,1,param_1);\n      if (sVar4 != 1) goto LAB_000138e7;\n    }\n    else {\n      iVar2 = FUN_00019cc0(param_1,&local_2c);\n      if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;\n    }\n    uVar1 = DAT_0002e508;\n    if (DAT_0002e144 == 0) {\n      if (DAT_0002d4f0 == 0) {\n        DAT_0002d4f0 = 1;\n        pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);\n      }\nLAB_0001374e:\n      uVar6 = uVar6 + 1;\n      if (local_34 <= uVar6) {\n        return;\n      }\n      goto LAB_0001375b;\n    }\n    puVar3 = (undefined4 *)FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28);\n    if (puVar3 == (undefined4 *)0x0) goto LAB_0001374e;\n    if ((DAT_0002e158 & 0x800) != 0) {\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0]);\n    }\n    iVar2 = 0;\n    do {\n      if ((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)) {\n        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;\n        puVar3[(iVar2 + 4) * 2 + 3] = local_28;\n        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];\n        goto LAB_0001374e;\n      }\n      iVar2 = iVar2 + 1;\n    } while (iVar2 != 10);\n    uVar6 = uVar6 + 1;\n    if (local_34 <= uVar6) {\n      return;\n    }\n  } while( true );" (statement_identifier "LAB_0001375b") (: ":") (do_statement "do {\n    if (DAT_0002e12c == 0) {\n      sVar4 = fread(local_24,8,1,param_1);\n      if ((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)) {\nLAB_000138e7:\n        perror(param_2);\n                    \n        FUN_0001adb0(1);\n      }\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      sVar4 = fread(local_30,4,1,param_1);\n      if (sVar4 != 1) goto LAB_000138e7;\n    }\n    else {\n      iVar2 = FUN_00019cc0(param_1,&local_2c);\n      if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;\n    }\n    uVar1 = DAT_0002e508;\n    if (DAT_0002e144 == 0) {\n      if (DAT_0002d4f0 == 0) {\n        DAT_0002d4f0 = 1;\n        pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);\n      }\nLAB_0001374e:\n      uVar6 = uVar6 + 1;\n      if (local_34 <= uVar6) {\n        return;\n      }\n      goto LAB_0001375b;\n    }\n    puVar3 = (undefined4 *)FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28);\n    if (puVar3 == (undefined4 *)0x0) goto LAB_0001374e;\n    if ((DAT_0002e158 & 0x800) != 0) {\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0]);\n    }\n    iVar2 = 0;\n    do {\n      if ((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)) {\n        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;\n        puVar3[(iVar2 + 4) * 2 + 3] = local_28;\n        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];\n        goto LAB_0001374e;\n      }\n      iVar2 = iVar2 + 1;\n    } while (iVar2 != 10);\n    uVar6 = uVar6 + 1;\n    if (local_34 <= uVar6) {\n      return;\n    }\n  } while( true );" (do "do") (compound_statement "{\n    if (DAT_0002e12c == 0) {\n      sVar4 = fread(local_24,8,1,param_1);\n      if ((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)) {\nLAB_000138e7:\n        perror(param_2);\n                    \n        FUN_0001adb0(1);\n      }\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      sVar4 = fread(local_30,4,1,param_1);\n      if (sVar4 != 1) goto LAB_000138e7;\n    }\n    else {\n      iVar2 = FUN_00019cc0(param_1,&local_2c);\n      if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;\n    }\n    uVar1 = DAT_0002e508;\n    if (DAT_0002e144 == 0) {\n      if (DAT_0002d4f0 == 0) {\n        DAT_0002d4f0 = 1;\n        pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);\n      }\nLAB_0001374e:\n      uVar6 = uVar6 + 1;\n      if (local_34 <= uVar6) {\n        return;\n      }\n      goto LAB_0001375b;\n    }\n    puVar3 = (undefined4 *)FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28);\n    if (puVar3 == (undefined4 *)0x0) goto LAB_0001374e;\n    if ((DAT_0002e158 & 0x800) != 0) {\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0]);\n    }\n    iVar2 = 0;\n    do {\n      if ((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)) {\n        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;\n        puVar3[(iVar2 + 4) * 2 + 3] = local_28;\n        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];\n        goto LAB_0001374e;\n      }\n      iVar2 = iVar2 + 1;\n    } while (iVar2 != 10);\n    uVar6 = uVar6 + 1;\n    if (local_34 <= uVar6) {\n      return;\n    }\n  }" ({ "{") (if_statement "if (DAT_0002e12c == 0) {\n      sVar4 = fread(local_24,8,1,param_1);\n      if ((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)) {\nLAB_000138e7:\n        perror(param_2);\n                    \n        FUN_0001adb0(1);\n      }\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      sVar4 = fread(local_30,4,1,param_1);\n      if (sVar4 != 1) goto LAB_000138e7;\n    }\n    else {\n      iVar2 = FUN_00019cc0(param_1,&local_2c);\n      if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;\n    }" (if "if") (parenthesized_expression "(DAT_0002e12c == 0)" (( "(") (binary_expression "DAT_0002e12c == 0" (identifier "DAT_0002e12c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      sVar4 = fread(local_24,8,1,param_1);\n      if ((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)) {\nLAB_000138e7:\n        perror(param_2);\n                    \n        FUN_0001adb0(1);\n      }\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);\n      sVar4 = fread(local_30,4,1,param_1);\n      if (sVar4 != 1) goto LAB_000138e7;\n    }" ({ "{") (expression_statement "sVar4 = fread(local_24,8,1,param_1);" (assignment_expression "sVar4 = fread(local_24,8,1,param_1)" (identifier "sVar4") (= "=") (call_expression "fread(local_24,8,1,param_1)" (identifier "fread") (argument_list "(local_24,8,1,param_1)" (( "(") (identifier "local_24") (, ",") (number_literal "8") (, ",") (number_literal "1") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if ((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)) {\nLAB_000138e7:\n        perror(param_2);\n                    \n        FUN_0001adb0(1);\n      }" (if "if") (parenthesized_expression "((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1))" (( "(") (binary_expression "(sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)" (parenthesized_expression "(sVar4 != 1)" (( "(") (binary_expression "sVar4 != 1" (identifier "sVar4") (!= "!=") (number_literal "1")) () ")")) (|| "||") (parenthesized_expression "(sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)" (( "(") (comma_expression "sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1" (assignment_expression "sVar4 = fread(&local_2c,8,1,param_1)" (identifier "sVar4") (= "=") (call_expression "fread(&local_2c,8,1,param_1)" (identifier "fread") (argument_list "(&local_2c,8,1,param_1)" (( "(") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) (, ",") (number_literal "8") (, ",") (number_literal "1") (, ",") (identifier "param_1") () ")")))) (, ",") (binary_expression "sVar4 != 1" (identifier "sVar4") (!= "!=") (number_literal "1"))) () ")"))) () ")")) (compound_statement "{\nLAB_000138e7:\n        perror(param_2);\n                    \n        FUN_0001adb0(1);\n      }" ({ "{") (labeled_statement "LAB_000138e7:\n        perror(param_2);" (statement_identifier "LAB_000138e7") (: ":") (expression_statement "perror(param_2);" (call_expression "perror(param_2)" (identifier "perror") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";"))) (expression_statement "FUN_0001adb0(1);" (call_expression "FUN_0001adb0(1)" (identifier "FUN_0001adb0") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (} "}"))) (do_statement "do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);" (do "do") (compound_statement "{\n        iVar2 = fgetc(param_1);\n      }" ({ "{") (expression_statement "iVar2 = fgetc(param_1);" (assignment_expression "iVar2 = fgetc(param_1)" (identifier "iVar2") (= "=") (call_expression "fgetc(param_1)" (identifier "fgetc") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(1 < iVar2 + 1U)" (( "(") (binary_expression "1 < iVar2 + 1U" (number_literal "1") (< "<") (binary_expression "iVar2 + 1U" (identifier "iVar2") (+ "+") (number_literal "1U"))) () ")")) (; ";")) (do_statement "do {\n        iVar2 = fgetc(param_1);\n      } while (1 < iVar2 + 1U);" (do "do") (compound_statement "{\n        iVar2 = fgetc(param_1);\n      }" ({ "{") (expression_statement "iVar2 = fgetc(param_1);" (assignment_expression "iVar2 = fgetc(param_1)" (identifier "iVar2") (= "=") (call_expression "fgetc(param_1)" (identifier "fgetc") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(1 < iVar2 + 1U)" (( "(") (binary_expression "1 < iVar2 + 1U" (number_literal "1") (< "<") (binary_expression "iVar2 + 1U" (identifier "iVar2") (+ "+") (number_literal "1U"))) () ")")) (; ";")) (expression_statement "sVar4 = fread(local_30,4,1,param_1);" (assignment_expression "sVar4 = fread(local_30,4,1,param_1)" (identifier "sVar4") (= "=") (call_expression "fread(local_30,4,1,param_1)" (identifier "fread") (argument_list "(local_30,4,1,param_1)" (( "(") (identifier "local_30") (, ",") (number_literal "4") (, ",") (number_literal "1") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (sVar4 != 1) goto LAB_000138e7;" (if "if") (parenthesized_expression "(sVar4 != 1)" (( "(") (binary_expression "sVar4 != 1" (identifier "sVar4") (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_000138e7;" (goto "goto") (statement_identifier "LAB_000138e7") (; ";"))) (} "}")) (else_clause "else {\n      iVar2 = FUN_00019cc0(param_1,&local_2c);\n      if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;\n    }" (else "else") (compound_statement "{\n      iVar2 = FUN_00019cc0(param_1,&local_2c);\n      if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;\n    }" ({ "{") (expression_statement "iVar2 = FUN_00019cc0(param_1,&local_2c);" (assignment_expression "iVar2 = FUN_00019cc0(param_1,&local_2c)" (identifier "iVar2") (= "=") (call_expression "FUN_00019cc0(param_1,&local_2c)" (identifier "FUN_00019cc0") (argument_list "(param_1,&local_2c)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) () ")")))) (; ";")) (if_statement "if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;" (if "if") (parenthesized_expression "((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0))" (( "(") (binary_expression "(iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)" (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)" (( "(") (comma_expression "iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0" (assignment_expression "iVar2 = FUN_00019cc0(param_1,local_24)" (identifier "iVar2") (= "=") (call_expression "FUN_00019cc0(param_1,local_24)" (identifier "FUN_00019cc0") (argument_list "(param_1,local_24)" (( "(") (identifier "param_1") (, ",") (identifier "local_24") () ")")))) (, ",") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_000138e7;" (goto "goto") (statement_identifier "LAB_000138e7") (; ";"))) (} "}")))) (expression_statement "uVar1 = DAT_0002e508;" (assignment_expression "uVar1 = DAT_0002e508" (identifier "uVar1") (= "=") (identifier "DAT_0002e508")) (; ";")) (if_statement "if (DAT_0002e144 == 0) {\n      if (DAT_0002d4f0 == 0) {\n        DAT_0002d4f0 = 1;\n        pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);\n      }\nLAB_0001374e:\n      uVar6 = uVar6 + 1;\n      if (local_34 <= uVar6) {\n        return;\n      }\n      goto LAB_0001375b;\n    }" (if "if") (parenthesized_expression "(DAT_0002e144 == 0)" (( "(") (binary_expression "DAT_0002e144 == 0" (identifier "DAT_0002e144") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (DAT_0002d4f0 == 0) {\n        DAT_0002d4f0 = 1;\n        pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);\n      }\nLAB_0001374e:\n      uVar6 = uVar6 + 1;\n      if (local_34 <= uVar6) {\n        return;\n      }\n      goto LAB_0001375b;\n    }" ({ "{") (if_statement "if (DAT_0002d4f0 == 0) {\n        DAT_0002d4f0 = 1;\n        pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);\n      }" (if "if") (parenthesized_expression "(DAT_0002d4f0 == 0)" (( "(") (binary_expression "DAT_0002d4f0 == 0" (identifier "DAT_0002d4f0") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        DAT_0002d4f0 = 1;\n        pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);\n        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);\n      }" ({ "{") (expression_statement "DAT_0002d4f0 = 1;" (assignment_expression "DAT_0002d4f0 = 1" (identifier "DAT_0002d4f0") (= "=") (number_literal "1")) (; ";")) (expression_statement "pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5);" (assignment_expression "pcVar5 = (char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5)" (identifier "pcVar5") (= "=") (cast_expression "(char *)dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5)" (identifier "dcgettext") (argument_list "("gprof",\n                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"\n                                   ,5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""%s: warning: ignoring basic-block exec counts (use -l or --line)\n"" (" """) (string_content "%s: warning: ignoring basic-block exec counts (use -l or --line)") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);" (call_expression "fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1)" (identifier "fprintf") (argument_list "(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1)" (( "(") (pointer_expression "*(FILE **)PTR_stderr_0002cfcc" (* "*") (cast_expression "(FILE **)PTR_stderr_0002cfcc" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_stderr_0002cfcc"))) (, ",") (identifier "pcVar5") (, ",") (identifier "uVar1") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_0001374e:\n      uVar6 = uVar6 + 1;" (statement_identifier "LAB_0001374e") (: ":") (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" (identifier "uVar6") (= "=") (binary_expression "uVar6 + 1" (identifier "uVar6") (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (local_34 <= uVar6) {\n        return;\n      }" (if "if") (parenthesized_expression "(local_34 <= uVar6)" (( "(") (binary_expression "local_34 <= uVar6" (identifier "local_34") (<= "<=") (identifier "uVar6")) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (goto_statement "goto LAB_0001375b;" (goto "goto") (statement_identifier "LAB_0001375b") (; ";")) (} "}"))) (expression_statement "puVar3 = (undefined4 *)FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28);" (assignment_expression "puVar3 = (undefined4 *)FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28)" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28)" (identifier "FUN_0001d480") (argument_list "(PTR_DAT_0002cfd8,local_2c,local_28)" (( "(") (identifier "PTR_DAT_0002cfd8") (, ",") (identifier "local_2c") (, ",") (identifier "local_28") () ")"))))) (; ";")) (if_statement "if (puVar3 == (undefined4 *)0x0) goto LAB_0001374e;" (if "if") (parenthesized_expression "(puVar3 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar3 == (undefined4 *)0x0" (identifier "puVar3") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001374e;" (goto "goto") (statement_identifier "LAB_0001374e") (; ";"))) (if_statement "if ((DAT_0002e158 & 0x800) != 0) {\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0]);\n    }" (if "if") (parenthesized_expression "((DAT_0002e158 & 0x800) != 0)" (( "(") (binary_expression "(DAT_0002e158 & 0x800) != 0" (parenthesized_expression "(DAT_0002e158 & 0x800)" (( "(") (binary_expression "DAT_0002e158 & 0x800" (identifier "DAT_0002e158") (& "&") (number_literal "0x800")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0]);\n    }" ({ "{") (expression_statement "printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0]);" (call_expression "printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0])" (identifier "printf") (argument_list "("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],\n             local_24[0])" (( "(") (string_literal ""[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n"" (" """) (string_content "[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu") (escape_sequence "\n") (" """)) (, ",") (identifier "local_2c") (, ",") (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (, ",") (subscript_expression "puVar3[4]" (identifier "puVar3") ([ "[") (number_literal "4") (] "]")) (, ",") (subscript_expression "puVar3[6]" (identifier "puVar3") ([ "[") (number_literal "6") (] "]")) (, ",") (subscript_expression "local_24[0]" (identifier "local_24") ([ "[") (number_literal "0") (] "]")) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      if ((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)) {\n        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;\n        puVar3[(iVar2 + 4) * 2 + 3] = local_28;\n        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];\n        goto LAB_0001374e;\n      }\n      iVar2 = iVar2 + 1;\n    } while (iVar2 != 10);" (do "do") (compound_statement "{\n      if ((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)) {\n        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;\n        puVar3[(iVar2 + 4) * 2 + 3] = local_28;\n        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];\n        goto LAB_0001374e;\n      }\n      iVar2 = iVar2 + 1;\n    }" ({ "{") (if_statement "if ((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)) {\n        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;\n        puVar3[(iVar2 + 4) * 2 + 3] = local_28;\n        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];\n        goto LAB_0001374e;\n      }" (if "if") (parenthesized_expression "((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c))" (( "(") (binary_expression "(puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||\n         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)" (parenthesized_expression "(puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0)" (( "(") (binary_expression "puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0" (binary_expression "puVar3[iVar2 * 2 + 0xb] == 0" (subscript_expression "puVar3[iVar2 * 2 + 0xb]" (identifier "puVar3") ([ "[") (binary_expression "iVar2 * 2 + 0xb" (binary_expression "iVar2 * 2" (identifier "iVar2") (* "*") (number_literal "2")) (+ "+") (number_literal "0xb")) (] "]")) (== "==") (number_literal "0")) (&& "&&") (binary_expression "puVar3[iVar2 * 2 + 10] == 0" (subscript_expression "puVar3[iVar2 * 2 + 10]" (identifier "puVar3") ([ "[") (binary_expression "iVar2 * 2 + 10" (binary_expression "iVar2 * 2" (identifier "iVar2") (* "*") (number_literal "2")) (+ "+") (number_literal "10")) (] "]")) (== "==") (number_literal "0"))) () ")")) (|| "||") (parenthesized_expression "(puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)" (( "(") (binary_expression "puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c" (binary_expression "puVar3[iVar2 * 2 + 0xb] == local_28" (subscript_expression "puVar3[iVar2 * 2 + 0xb]" (identifier "puVar3") ([ "[") (binary_expression "iVar2 * 2 + 0xb" (binary_expression "iVar2 * 2" (identifier "iVar2") (* "*") (number_literal "2")) (+ "+") (number_literal "0xb")) (] "]")) (== "==") (identifier "local_28")) (&& "&&") (binary_expression "puVar3[iVar2 * 2 + 10] == local_2c" (subscript_expression "puVar3[iVar2 * 2 + 10]" (identifier "puVar3") ([ "[") (binary_expression "iVar2 * 2 + 10" (binary_expression "iVar2 * 2" (identifier "iVar2") (* "*") (number_literal "2")) (+ "+") (number_literal "10")) (] "]")) (== "==") (identifier "local_2c"))) () ")"))) () ")")) (compound_statement "{\n        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;\n        puVar3[(iVar2 + 4) * 2 + 3] = local_28;\n        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];\n        goto LAB_0001374e;\n      }" ({ "{") (expression_statement "puVar3[(iVar2 + 4) * 2 + 2] = local_2c;" (assignment_expression "puVar3[(iVar2 + 4) * 2 + 2] = local_2c" (subscript_expression "puVar3[(iVar2 + 4) * 2 + 2]" (identifier "puVar3") ([ "[") (binary_expression "(iVar2 + 4) * 2 + 2" (binary_expression "(iVar2 + 4) * 2" (parenthesized_expression "(iVar2 + 4)" (( "(") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) () ")")) (* "*") (number_literal "2")) (+ "+") (number_literal "2")) (] "]")) (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar3[(iVar2 + 4) * 2 + 3] = local_28;" (assignment_expression "puVar3[(iVar2 + 4) * 2 + 3] = local_28" (subscript_expression "puVar3[(iVar2 + 4) * 2 + 3]" (identifier "puVar3") ([ "[") (binary_expression "(iVar2 + 4) * 2 + 3" (binary_expression "(iVar2 + 4) * 2" (parenthesized_expression "(iVar2 + 4)" (( "(") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) () ")")) (* "*") (number_literal "2")) (+ "+") (number_literal "3")) (] "]")) (= "=") (identifier "local_28")) (; ";")) (expression_statement "puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];" (assignment_expression "puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0]" (subscript_expression "puVar3[iVar2 + 0x1e]" (identifier "puVar3") ([ "[") (binary_expression "iVar2 + 0x1e" (identifier "iVar2") (+ "+") (number_literal "0x1e")) (] "]")) (= "=") (binary_expression "puVar3[iVar2 + 0x1e] + local_24[0]" (subscript_expression "puVar3[iVar2 + 0x1e]" (identifier "puVar3") ([ "[") (binary_expression "iVar2 + 0x1e" (identifier "iVar2") (+ "+") (number_literal "0x1e")) (] "]")) (+ "+") (subscript_expression "local_24[0]" (identifier "local_24") ([ "[") (number_literal "0") (] "]")))) (; ";")) (goto_statement "goto LAB_0001374e;" (goto "goto") (statement_identifier "LAB_0001374e") (; ";")) (} "}"))) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" (identifier "iVar2") (= "=") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar2 != 10)" (( "(") (binary_expression "iVar2 != 10" (identifier "iVar2") (!= "!=") (number_literal "10")) () ")")) (; ";")) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" (identifier "uVar6") (= "=") (binary_expression "uVar6 + 1" (identifier "uVar6") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (local_34 <= uVar6) {\n      return;\n    }" (if "if") (parenthesized_expression "(local_34 <= uVar6)" (( "(") (binary_expression "local_34 <= uVar6" (identifier "local_34") (<= "<=") (identifier "uVar6")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (} "}")))

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

void function_1(type_1 *ifp,char *filename)

{
  int var_21;
  int var_22;
  char *pcVar3;
  int var_2;
  type_2 *var_18;
  size_t var_10;
  char *pcVar7;
  type_3 var_15;
  type_3 var_8;
  int line_num;
  type_4 addr;
  type_4 ncalls;
  type_5 uStack_14;
  
  uStack_14 = 0x136c9;
  var_2 = var_1(ifp,&var_8);
  pcVar3 = whoami;
  if (var_2 != 0) {
    pcVar7 = (char *)var_3("gprof","%s: %s: unexpected end of file\n",5,ifp);
    var_4(*(type_1 **)PTR_stderr_0002cfcc,pcVar7,pcVar3,filename);
                    /* WARNING: Subroutine does not return */
    var_5(1);
  }
  var_8 = (type_3)(*core_bfd->xvec->bfd_getx32)(&var_8);
  if (var_6 == 0) {
    do {
      var_2 = var_7((type_1 *)ifp);
    } while (1 < var_2 + 1U);
  }
  if (var_8 == 0) {
    return;
  }
  var_15 = 0;
LAB_0001375b:
  do {
    if (var_6 == 0) {
      var_10 = var_9(&ncalls,8,1,(type_1 *)ifp);
      if ((var_10 != 1) || (var_10 = var_9(&addr,8,1,(type_1 *)ifp), var_10 != 1)) {
LAB_000138e7:
        var_11(filename);
                    /* WARNING: Subroutine does not return */
        var_5(1);
      }
      do {
        var_2 = var_7((type_1 *)ifp);
      } while (1 < var_2 + 1U);
      do {
        var_2 = var_7((type_1 *)ifp);
      } while (1 < var_2 + 1U);
      var_10 = var_9(&line_num,4,1,(type_1 *)ifp);
      if (var_10 != 1) goto LAB_000138e7;
    }
    else {
      var_2 = var_12(ifp,&addr);
      if ((var_2 != 0) || (var_2 = var_12(ifp,&ncalls), var_2 != 0)) goto LAB_000138e7;
    }
    pcVar3 = whoami;
    if (var_13 == 0) {
      if (function_1::lexical_block_9::var_14 == 0) {
        bb_read_rec::lexical_block_9::var_14 = 1;
        pcVar7 = (char *)var_3("gprof",
                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"
                                   ,5);
        var_4(*(type_1 **)PTR_stderr_0002cfcc,pcVar7,pcVar3);
      }
LAB_0001374e:
      var_15 = var_15 + 1;
      if (var_8 <= var_15) {
        return;
      }
      goto LAB_0001375b;
    }
    var_18 = var_16((type_6 *)PTR_symtab_0002cfd8,var_17(addr._4_4_,(int)addr));
    if (var_18 == (type_2 *)0x0) goto LAB_0001374e;
    if ((var_19 & 0x800U) != 0) {
      var_20("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",(int)addr,(int)var_18->addr,var_18->name
             ,var_18->line_num,(int)ncalls);
    }
    var_2 = 0;
    do {
      var_21 = *(int *)((int)var_18->bb_addr + var_2 * 8 + 4);
      var_22 = (int)var_18->bb_addr[var_2];
      if ((var_21 == 0 && var_22 == 0) || (var_21 == addr._4_4_ && var_22 == (int)addr)) {
        *(int *)(var_18->bb_addr + var_2) = (int)addr;
        *(int *)((int)var_18->bb_addr + var_2 * 8 + 4) = addr._4_4_;
        var_18->bb_calls[var_2] = var_18->bb_calls[var_2] + (int)ncalls;
        goto LAB_0001374e;
      }
      var_2 = var_2 + 1;
    } while (var_2 != 10);
    var_15 = var_15 + 1;
    if (var_8 <= var_15) {
      return;
    }
  } while( true );
}


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

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

void MASKED(FILE *param_1,char *param_2)

{
  undefined4 uVar1;
  int iVar2;
  undefined4 *puVar3;
  size_t sVar4;
  char *pcVar5;
  uint uVar6;
  uint local_34;
  undefined1 local_30 [4];
  int local_2c;
  int local_28;
  int local_24 [4];
  undefined4 uStack_14;
  
  uStack_14 = 0x136c9;
  iVar2 = FUN_00019c60(param_1,&local_34);
  uVar1 = DAT_0002e508;
  if (iVar2 != 0) {
    pcVar5 = (char *)dcgettext("gprof","%s: %s: unexpected end of file\n",5,param_1);
    fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1,param_2);
                    /* WARNING: Subroutine does not return */
    FUN_0001adb0(1);
  }
  local_34 = (**(code **)(*(int *)(DAT_0002e4ec + 4) + 0x28))(&local_34);
  if (DAT_0002e12c == 0) {
    do {
      iVar2 = fgetc(param_1);
    } while (1 < iVar2 + 1U);
  }
  if (local_34 == 0) {
    return;
  }
  uVar6 = 0;
LAB_0001375b:
  do {
    if (DAT_0002e12c == 0) {
      sVar4 = fread(local_24,8,1,param_1);
      if ((sVar4 != 1) || (sVar4 = fread(&local_2c,8,1,param_1), sVar4 != 1)) {
LAB_000138e7:
        perror(param_2);
                    /* WARNING: Subroutine does not return */
        FUN_0001adb0(1);
      }
      do {
        iVar2 = fgetc(param_1);
      } while (1 < iVar2 + 1U);
      do {
        iVar2 = fgetc(param_1);
      } while (1 < iVar2 + 1U);
      sVar4 = fread(local_30,4,1,param_1);
      if (sVar4 != 1) goto LAB_000138e7;
    }
    else {
      iVar2 = FUN_00019cc0(param_1,&local_2c);
      if ((iVar2 != 0) || (iVar2 = FUN_00019cc0(param_1,local_24), iVar2 != 0)) goto LAB_000138e7;
    }
    uVar1 = DAT_0002e508;
    if (DAT_0002e144 == 0) {
      if (DAT_0002d4f0 == 0) {
        DAT_0002d4f0 = 1;
        pcVar5 = (char *)dcgettext("gprof",
                                   "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"
                                   ,5);
        fprintf(*(FILE **)PTR_stderr_0002cfcc,pcVar5,uVar1);
      }
LAB_0001374e:
      uVar6 = uVar6 + 1;
      if (local_34 <= uVar6) {
        return;
      }
      goto LAB_0001375b;
    }
    puVar3 = (undefined4 *)FUN_0001d480(PTR_DAT_0002cfd8,local_2c,local_28);
    if (puVar3 == (undefined4 *)0x0) goto LAB_0001374e;
    if ((DAT_0002e158 & 0x800) != 0) {
      printf("[bb_read_rec] 0x%lx->0x%lx (%s:%d) cnt=%lu\n",local_2c,*puVar3,puVar3[4],puVar3[6],
             local_24[0]);
    }
    iVar2 = 0;
    do {
      if ((puVar3[iVar2 * 2 + 0xb] == 0 && puVar3[iVar2 * 2 + 10] == 0) ||
         (puVar3[iVar2 * 2 + 0xb] == local_28 && puVar3[iVar2 * 2 + 10] == local_2c)) {
        puVar3[(iVar2 + 4) * 2 + 2] = local_2c;
        puVar3[(iVar2 + 4) * 2 + 3] = local_28;
        puVar3[iVar2 + 0x1e] = puVar3[iVar2 + 0x1e] + local_24[0];
        goto LAB_0001374e;
      }
      iVar2 = iVar2 + 1;
    } while (iVar2 != 10);
    uVar6 = uVar6 + 1;
    if (local_34 <= uVar6) {
      return;
    }
  } while( true );
}

