
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* WARNING: Unknown calling convention */

int print_name_only(Sym *self)

{
  bfd_boolean bVar1;
  size_t sVar2;
  Source_File *pSVar3;
  char *pcVar4;
  uint uVar5;
  uint uVar6;
  uint *puVar7;
  uint *puVar8;
  char *pcVar9;
  bool bVar10;
  char *local_420;
  char buf [1024];
  
  pcVar9 = self->name;
  if (pcVar9 == (char *)0x0) {
    return 0;
  }
  if (((bsd_style_output == 0) && (demangle != 0)) &&
     (local_420 = (char *)bfd_demangle(core_bfd,pcVar9), local_420 != (char *)0x0)) {
    printf("%s",local_420);
    sVar2 = strlen(local_420);
    if ((line_granularity != 0 || inline_file_names != 0) &&
       (pSVar3 = self->file, pSVar3 != (Source_File *)0x0)) goto LAB_0001d568;
  }
  else {
    printf("%s",pcVar9);
    sVar2 = strlen(pcVar9);
    if (line_granularity == 0 && inline_file_names == 0) goto LAB_0001d623;
    local_420 = (char *)0x0;
    pSVar3 = self->file;
    if (pSVar3 == (Source_File *)0x0) goto LAB_0001d623;
LAB_0001d568:
    bVar1 = line_granularity;
    pcVar9 = pSVar3->name;
    if (print_path == 0) {
      pcVar4 = strrchr(pcVar9,0x2f);
      if (pcVar4 != (char *)0x0) {
        pcVar9 = pcVar4 + 1;
      }
    }
    if (bVar1 == 0) {
      sprintf(buf," (%s:%d)");
    }
    else {
      sprintf(buf," (%s:%d @ %lx)",pcVar9,self->line_num,self->addr);
    }
    printf("%s",buf);
    puVar8 = (uint *)buf;
    do {
      puVar7 = puVar8;
      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;
      uVar6 = uVar5 & 0x80808080;
      puVar8 = puVar7 + 1;
    } while (uVar6 == 0);
    bVar10 = (uVar5 & 0x8080) == 0;
    if (bVar10) {
      uVar6 = uVar6 >> 0x10;
    }
    if (bVar10) {
      puVar8 = (uint *)((int)puVar7 + 6);
    }
    sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)buf);
    if (local_420 == (char *)0x0) goto LAB_0001d623;
  }
  free(local_420);
LAB_0001d623:
  if ((debug_level & 2U) != 0) {
    printf("{%d} ",(self->cg).top_order);
  }
  if ((debug_level & 0x400U) == 0) {
    return sVar2;
  }
  printf("%4.0f%% ",(double)(_DAT_000211d8 * (float)(self->cg).prop.fract));
  return sVar2;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

size_t FUN_0001d4d0(undefined4 *param_1)

{
  int iVar1;
  size_t sVar2;
  int iVar3;
  char *pcVar4;
  uint uVar5;
  uint uVar6;
  uint *puVar7;
  uint *puVar8;
  char *pcVar9;
  bool bVar10;
  char *local_420;
  uint local_41c [258];
  undefined4 uStack_14;
  
  uStack_14 = 0x1d4dd;
  pcVar9 = (char *)param_1[2];
  if (pcVar9 == (char *)0x0) {
    return 0;
  }
  if (((DAT_0002d150 == 0) && (DAT_0002c1c4 != 0)) &&
     (local_420 = (char *)bfd_demangle(DAT_0002d478,pcVar9), local_420 != (char *)0x0)) {
    printf("%s",local_420);
    sVar2 = strlen(local_420);
    if ((DAT_0002d144 != 0 || DAT_0002d138 != 0) && (iVar3 = param_1[3], iVar3 != 0))
    goto LAB_0001d568;
  }
  else {
    printf("%s",pcVar9);
    sVar2 = strlen(pcVar9);
    if (DAT_0002d144 == 0 && DAT_0002d138 == 0) goto LAB_0001d623;
    local_420 = (char *)0x0;
    iVar3 = param_1[3];
    if (iVar3 == 0) goto LAB_0001d623;
LAB_0001d568:
    iVar1 = DAT_0002d144;
    pcVar9 = *(char **)(iVar3 + 4);
    if (DAT_0002d140 == 0) {
      pcVar4 = strrchr(pcVar9,0x2f);
      if (pcVar4 != (char *)0x0) {
        pcVar9 = pcVar4 + 1;
      }
    }
    if (iVar1 == 0) {
      sprintf((char *)local_41c," (%s:%d)");
    }
    else {
      sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);
    }
    printf("%s",local_41c);
    puVar8 = local_41c;
    do {
      puVar7 = puVar8;
      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;
      uVar6 = uVar5 & 0x80808080;
      puVar8 = puVar7 + 1;
    } while (uVar6 == 0);
    bVar10 = (uVar5 & 0x8080) == 0;
    if (bVar10) {
      uVar6 = uVar6 >> 0x10;
    }
    if (bVar10) {
      puVar8 = (uint *)((int)puVar7 + 6);
    }
    sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c);
    if (local_420 == (char *)0x0) goto LAB_0001d623;
  }
  free(local_420);
LAB_0001d623:
  if ((_DAT_0002d158 & 2) != 0) {
    printf("{%d} ",param_1[0x25]);
  }
  if ((_DAT_0002d158 & 0x400) == 0) {
    return sVar2;
  }
  printf("%4.0f%% ",(double)(_DAT_000211d8 * (float)*(double *)(param_1 + 0x27)));
  return sVar2;
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
XOR ESI,ESI
PUSH EBX
CALL 0x00013030
ADD EBX,0xeb23
SUB ESP,0x41c
MOV EAX,dword ptr [EBP + 0x8]
MOV EDI,dword ptr [EAX + 0x8]
TEST EDI,EDI
JZ 0x0001d634
LEA EAX,[EBX + 0x1150]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JNZ 0x0001d513
LEA EAX,[EBX + 0x1c4]
MOV ESI,dword ptr [EAX]
TEST ESI,ESI
JNZ 0x0001d6c0
SUB ESP,0x8
LEA EAX,[EBX + 0xffff742a]
PUSH EDI
PUSH EAX
MOV dword ptr [EBP + 0xfffffbe0],EAX
CALL 0x00012070
MOV dword ptr [ESP],EDI
CALL 0x000122e0
ADD ESP,0x10
MOV EDI,EAX
MOV ESI,EAX
LEA EAX,[EBX + 0x1144]
MOV EDX,dword ptr [EAX]
LEA EAX,[EBX + 0x1138]
MOV ECX,EDX
OR ECX,dword ptr [EAX]
JZ 0x0001d623
MOV dword ptr [EBP + 0xfffffbe4],0x0
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x0001d623
MOV ESI,dword ptr [EAX + 0x4]
LEA EAX,[EBX + 0x1140]
MOV ECX,dword ptr [EAX]
TEST ECX,ECX
JNZ 0x0001d599
SUB ESP,0x8
MOV dword ptr [EBP + 0xfffffbdc],EDX
PUSH 0x2f
PUSH ESI
CALL 0x000123a0
ADD ESP,0x10
MOV EDX,dword ptr [EBP + 0xfffffbdc]
LEA ECX,[EAX + 0x1]
TEST EAX,EAX
CMOVNZ ESI,ECX
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x10]
TEST EDX,EDX
JNZ 0x0001d698
PUSH EAX
LEA EAX,[EBX + 0xffff7143]
PUSH ESI
LEA ESI,[EBP + 0xfffffbe8]
PUSH EAX
PUSH ESI
CALL 0x00012400
ADD ESP,0x10
SUB ESP,0x8
PUSH ESI
PUSH dword ptr [EBP + 0xfffffbe0]
CALL 0x00012070
MOV EDX,ESI
MOV ECX,dword ptr [EDX]
ADD EDX,0x4
LEA EAX,[ECX + 0xfefefeff]
NOT ECX
AND EAX,ECX
AND EAX,0x80808080
JZ 0x0001d5d0
MOV ECX,EAX
SHR ECX,0x10
TEST EAX,0x8080
CMOVZ EAX,ECX
LEA ECX,[EDX + 0x2]
CMOVZ EDX,ECX
MOV ECX,EAX
ADD CL,AL
MOV EAX,dword ptr [EBP + 0xfffffbe4]
SBB EDX,0x3
ADD ESP,0x10
SUB EDX,ESI
LEA ESI,[EDX + EDI*0x1]
TEST EAX,EAX
JZ 0x0001d623
SUB ESP,0xc
PUSH dword ptr [EBP + 0xfffffbe4]
CALL 0x00012090
ADD ESP,0x10
LEA EDI,[EBX + 0x1158]
MOV EAX,dword ptr [EDI]
TEST AL,0x2
JNZ 0x0001d670
TEST AH,0x4
JNZ 0x0001d640
LEA ESP,[EBP + -0xc]
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EBP + 0x8]
FLD dword ptr [EBX + 0xffff51d8]
SUB ESP,0xc
FMUL qword ptr [EAX + 0x9c]
LEA EAX,[EBX + 0xffff7152]
FSTP qword ptr [ESP]
PUSH EAX
CALL 0x00012070
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EBP + 0x8]
SUB ESP,0x8
PUSH dword ptr [EAX + 0x94]
LEA EAX,[EBX + 0xffff714c]
PUSH EAX
CALL 0x00012070
MOV EAX,dword ptr [EDI]
ADD ESP,0x10
TEST AH,0x4
JZ 0x0001d634
JMP 0x0001d640
MOV EDX,dword ptr [EBP + 0x8]
SUB ESP,0xc
PUSH dword ptr [EDX]
PUSH EAX
LEA EAX,[EBX + 0xffff7134]
PUSH ESI
LEA ESI,[EBP + 0xfffffbe8]
PUSH EAX
PUSH ESI
CALL 0x00012400
ADD ESP,0x20
JMP 0x0001d5bf
LEA EAX,[EBX + 0x1478]
SUB ESP,0x4
PUSH 0x3
PUSH EDI
PUSH dword ptr [EAX]
CALL 0x00012390
ADD ESP,0x10
MOV dword ptr [EBP + 0xfffffbe4],EAX
TEST EAX,EAX
JZ 0x0001d513
MOV ESI,dword ptr [EBP + 0xfffffbe4]
SUB ESP,0x8
LEA EAX,[EBX + 0xffff742a]
MOV dword ptr [EBP + 0xfffffbe0],EAX
PUSH ESI
PUSH EAX
CALL 0x00012070
MOV dword ptr [ESP],ESI
CALL 0x000122e0
ADD ESP,0x10
MOV EDI,EAX
MOV ESI,EAX
LEA EAX,[EBX + 0x1144]
MOV EDX,dword ptr [EAX]
LEA EAX,[EBX + 0x1138]
MOV ECX,EDX
OR ECX,dword ptr [EAX]
JZ 0x0001d612
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JNZ 0x0001d568
JMP 0x0001d612
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nsize_t FUN_0001d4d0(undefined4 *param_1)\n\n{\n  int iVar1;\n  size_t sVar2;\n  int iVar3;\n  char *pcVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint *puVar8;\n  char *pcVar9;\n  bool bVar10;\n  char *local_420;\n  uint local_41c [258];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1d4dd;\n  pcVar9 = (char *)param_1[2];\n  if (pcVar9 == (char *)0x0) {\n    return 0;\n  }\n  if (((DAT_0002d150 == 0) && (DAT_0002c1c4 != 0)) &&\n     (local_420 = (char *)bfd_demangle(DAT_0002d478,pcVar9), local_420 != (char *)0x0)) {\n    printf("%s",local_420);\n    sVar2 = strlen(local_420);\n    if ((DAT_0002d144 != 0 || DAT_0002d138 != 0) && (iVar3 = param_1[3], iVar3 != 0))\n    goto LAB_0001d568;\n  }\n  else {\n    printf("%s",pcVar9);\n    sVar2 = strlen(pcVar9);\n    if (DAT_0002d144 == 0 && DAT_0002d138 == 0) goto LAB_0001d623;\n    local_420 = (char *)0x0;\n    iVar3 = param_1[3];\n    if (iVar3 == 0) goto LAB_0001d623;\nLAB_0001d568:\n    iVar1 = DAT_0002d144;\n    pcVar9 = *(char **)(iVar3 + 4);\n    if (DAT_0002d140 == 0) {\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }\n    if (iVar1 == 0) {\n      sprintf((char *)local_41c," (%s:%d)");\n    }\n    else {\n      sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);\n    }\n    printf("%s",local_41c);\n    puVar8 = local_41c;\n    do {\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    } while (uVar6 == 0);\n    bVar10 = (uVar5 & 0x8080) == 0;\n    if (bVar10) {\n      uVar6 = uVar6 >> 0x10;\n    }\n    if (bVar10) {\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }\n    sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c);\n    if (local_420 == (char *)0x0) goto LAB_0001d623;\n  }\n  free(local_420);\nLAB_0001d623:\n  if ((_DAT_0002d158 & 2) != 0) {\n    printf("{%d} ",param_1[0x25]);\n  }\n  if ((_DAT_0002d158 & 0x400) == 0) {\n    return sVar2;\n  }\n  printf("%4.0f%% ",(double)(_DAT_000211d8 * (float)*(double *)(param_1 + 0x27)));\n  return sVar2;\n}\n\n" comment comment (function_definition "size_t FUN_0001d4d0(undefined4 *param_1)\n\n{\n  int iVar1;\n  size_t sVar2;\n  int iVar3;\n  char *pcVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint *puVar8;\n  char *pcVar9;\n  bool bVar10;\n  char *local_420;\n  uint local_41c [258];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1d4dd;\n  pcVar9 = (char *)param_1[2];\n  if (pcVar9 == (char *)0x0) {\n    return 0;\n  }\n  if (((DAT_0002d150 == 0) && (DAT_0002c1c4 != 0)) &&\n     (local_420 = (char *)bfd_demangle(DAT_0002d478,pcVar9), local_420 != (char *)0x0)) {\n    printf("%s",local_420);\n    sVar2 = strlen(local_420);\n    if ((DAT_0002d144 != 0 || DAT_0002d138 != 0) && (iVar3 = param_1[3], iVar3 != 0))\n    goto LAB_0001d568;\n  }\n  else {\n    printf("%s",pcVar9);\n    sVar2 = strlen(pcVar9);\n    if (DAT_0002d144 == 0 && DAT_0002d138 == 0) goto LAB_0001d623;\n    local_420 = (char *)0x0;\n    iVar3 = param_1[3];\n    if (iVar3 == 0) goto LAB_0001d623;\nLAB_0001d568:\n    iVar1 = DAT_0002d144;\n    pcVar9 = *(char **)(iVar3 + 4);\n    if (DAT_0002d140 == 0) {\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }\n    if (iVar1 == 0) {\n      sprintf((char *)local_41c," (%s:%d)");\n    }\n    else {\n      sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);\n    }\n    printf("%s",local_41c);\n    puVar8 = local_41c;\n    do {\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    } while (uVar6 == 0);\n    bVar10 = (uVar5 & 0x8080) == 0;\n    if (bVar10) {\n      uVar6 = uVar6 >> 0x10;\n    }\n    if (bVar10) {\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }\n    sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c);\n    if (local_420 == (char *)0x0) goto LAB_0001d623;\n  }\n  free(local_420);\nLAB_0001d623:\n  if ((_DAT_0002d158 & 2) != 0) {\n    printf("{%d} ",param_1[0x25]);\n  }\n  if ((_DAT_0002d158 & 0x400) == 0) {\n    return sVar2;\n  }\n  printf("%4.0f%% ",(double)(_DAT_000211d8 * (float)*(double *)(param_1 + 0x27)));\n  return sVar2;\n}" primitive_type (function_declarator "FUN_0001d4d0(undefined4 *param_1)" identifier (parameter_list "(undefined4 *param_1)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  size_t sVar2;\n  int iVar3;\n  char *pcVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint *puVar8;\n  char *pcVar9;\n  bool bVar10;\n  char *local_420;\n  uint local_41c [258];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1d4dd;\n  pcVar9 = (char *)param_1[2];\n  if (pcVar9 == (char *)0x0) {\n    return 0;\n  }\n  if (((DAT_0002d150 == 0) && (DAT_0002c1c4 != 0)) &&\n     (local_420 = (char *)bfd_demangle(DAT_0002d478,pcVar9), local_420 != (char *)0x0)) {\n    printf("%s",local_420);\n    sVar2 = strlen(local_420);\n    if ((DAT_0002d144 != 0 || DAT_0002d138 != 0) && (iVar3 = param_1[3], iVar3 != 0))\n    goto LAB_0001d568;\n  }\n  else {\n    printf("%s",pcVar9);\n    sVar2 = strlen(pcVar9);\n    if (DAT_0002d144 == 0 && DAT_0002d138 == 0) goto LAB_0001d623;\n    local_420 = (char *)0x0;\n    iVar3 = param_1[3];\n    if (iVar3 == 0) goto LAB_0001d623;\nLAB_0001d568:\n    iVar1 = DAT_0002d144;\n    pcVar9 = *(char **)(iVar3 + 4);\n    if (DAT_0002d140 == 0) {\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }\n    if (iVar1 == 0) {\n      sprintf((char *)local_41c," (%s:%d)");\n    }\n    else {\n      sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);\n    }\n    printf("%s",local_41c);\n    puVar8 = local_41c;\n    do {\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    } while (uVar6 == 0);\n    bVar10 = (uVar5 & 0x8080) == 0;\n    if (bVar10) {\n      uVar6 = uVar6 >> 0x10;\n    }\n    if (bVar10) {\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }\n    sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c);\n    if (local_420 == (char *)0x0) goto LAB_0001d623;\n  }\n  free(local_420);\nLAB_0001d623:\n  if ((_DAT_0002d158 & 2) != 0) {\n    printf("{%d} ",param_1[0x25]);\n  }\n  if ((_DAT_0002d158 & 0x400) == 0) {\n    return sVar2;\n  }\n  printf("%4.0f%% ",(double)(_DAT_000211d8 * (float)*(double *)(param_1 + 0x27)));\n  return sVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "char *local_420;" primitive_type (pointer_declarator "*local_420" * identifier) ;) (declaration "uint local_41c [258];" type_identifier (array_declarator "local_41c [258]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x1d4dd;" (assignment_expression "uStack_14 = 0x1d4dd" identifier = number_literal) ;) (expression_statement "pcVar9 = (char *)param_1[2];" (assignment_expression "pcVar9 = (char *)param_1[2]" identifier = (cast_expression "(char *)param_1[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (if_statement "if (pcVar9 == (char *)0x0) {\n    return 0;\n  }" if (parenthesized_expression "(pcVar9 == (char *)0x0)" ( (binary_expression "pcVar9 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (((DAT_0002d150 == 0) && (DAT_0002c1c4 != 0)) &&\n     (local_420 = (char *)bfd_demangle(DAT_0002d478,pcVar9), local_420 != (char *)0x0)) {\n    printf("%s",local_420);\n    sVar2 = strlen(local_420);\n    if ((DAT_0002d144 != 0 || DAT_0002d138 != 0) && (iVar3 = param_1[3], iVar3 != 0))\n    goto LAB_0001d568;\n  }\n  else {\n    printf("%s",pcVar9);\n    sVar2 = strlen(pcVar9);\n    if (DAT_0002d144 == 0 && DAT_0002d138 == 0) goto LAB_0001d623;\n    local_420 = (char *)0x0;\n    iVar3 = param_1[3];\n    if (iVar3 == 0) goto LAB_0001d623;\nLAB_0001d568:\n    iVar1 = DAT_0002d144;\n    pcVar9 = *(char **)(iVar3 + 4);\n    if (DAT_0002d140 == 0) {\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }\n    if (iVar1 == 0) {\n      sprintf((char *)local_41c," (%s:%d)");\n    }\n    else {\n      sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);\n    }\n    printf("%s",local_41c);\n    puVar8 = local_41c;\n    do {\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    } while (uVar6 == 0);\n    bVar10 = (uVar5 & 0x8080) == 0;\n    if (bVar10) {\n      uVar6 = uVar6 >> 0x10;\n    }\n    if (bVar10) {\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }\n    sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c);\n    if (local_420 == (char *)0x0) goto LAB_0001d623;\n  }" if (parenthesized_expression "(((DAT_0002d150 == 0) && (DAT_0002c1c4 != 0)) &&\n     (local_420 = (char *)bfd_demangle(DAT_0002d478,pcVar9), local_420 != (char *)0x0))" ( (binary_expression "((DAT_0002d150 == 0) && (DAT_0002c1c4 != 0)) &&\n     (local_420 = (char *)bfd_demangle(DAT_0002d478,pcVar9), local_420 != (char *)0x0)" (parenthesized_expression "((DAT_0002d150 == 0) && (DAT_0002c1c4 != 0))" ( (binary_expression "(DAT_0002d150 == 0) && (DAT_0002c1c4 != 0)" (parenthesized_expression "(DAT_0002d150 == 0)" ( (binary_expression "DAT_0002d150 == 0" identifier == number_literal) )) && (parenthesized_expression "(DAT_0002c1c4 != 0)" ( (binary_expression "DAT_0002c1c4 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(local_420 = (char *)bfd_demangle(DAT_0002d478,pcVar9), local_420 != (char *)0x0)" ( (comma_expression "local_420 = (char *)bfd_demangle(DAT_0002d478,pcVar9), local_420 != (char *)0x0" (assignment_expression "local_420 = (char *)bfd_demangle(DAT_0002d478,pcVar9)" identifier = (cast_expression "(char *)bfd_demangle(DAT_0002d478,pcVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_demangle(DAT_0002d478,pcVar9)" identifier (argument_list "(DAT_0002d478,pcVar9)" ( identifier , identifier ))))) , (binary_expression "local_420 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    printf("%s",local_420);\n    sVar2 = strlen(local_420);\n    if ((DAT_0002d144 != 0 || DAT_0002d138 != 0) && (iVar3 = param_1[3], iVar3 != 0))\n    goto LAB_0001d568;\n  }" { (expression_statement "printf("%s",local_420);" (call_expression "printf("%s",local_420)" identifier (argument_list "("%s",local_420)" ( (string_literal ""%s"" " string_content ") , identifier ))) ;) (expression_statement "sVar2 = strlen(local_420);" (assignment_expression "sVar2 = strlen(local_420)" identifier = (call_expression "strlen(local_420)" identifier (argument_list "(local_420)" ( identifier )))) ;) (if_statement "if ((DAT_0002d144 != 0 || DAT_0002d138 != 0) && (iVar3 = param_1[3], iVar3 != 0))\n    goto LAB_0001d568;" if (parenthesized_expression "((DAT_0002d144 != 0 || DAT_0002d138 != 0) && (iVar3 = param_1[3], iVar3 != 0))" ( (binary_expression "(DAT_0002d144 != 0 || DAT_0002d138 != 0) && (iVar3 = param_1[3], iVar3 != 0)" (parenthesized_expression "(DAT_0002d144 != 0 || DAT_0002d138 != 0)" ( (binary_expression "DAT_0002d144 != 0 || DAT_0002d138 != 0" (binary_expression "DAT_0002d144 != 0" identifier != number_literal) || (binary_expression "DAT_0002d138 != 0" identifier != number_literal)) )) && (parenthesized_expression "(iVar3 = param_1[3], iVar3 != 0)" ( (comma_expression "iVar3 = param_1[3], iVar3 != 0" (assignment_expression "iVar3 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0001d568;" goto statement_identifier ;)) }) (else_clause "else {\n    printf("%s",pcVar9);\n    sVar2 = strlen(pcVar9);\n    if (DAT_0002d144 == 0 && DAT_0002d138 == 0) goto LAB_0001d623;\n    local_420 = (char *)0x0;\n    iVar3 = param_1[3];\n    if (iVar3 == 0) goto LAB_0001d623;\nLAB_0001d568:\n    iVar1 = DAT_0002d144;\n    pcVar9 = *(char **)(iVar3 + 4);\n    if (DAT_0002d140 == 0) {\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }\n    if (iVar1 == 0) {\n      sprintf((char *)local_41c," (%s:%d)");\n    }\n    else {\n      sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);\n    }\n    printf("%s",local_41c);\n    puVar8 = local_41c;\n    do {\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    } while (uVar6 == 0);\n    bVar10 = (uVar5 & 0x8080) == 0;\n    if (bVar10) {\n      uVar6 = uVar6 >> 0x10;\n    }\n    if (bVar10) {\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }\n    sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c);\n    if (local_420 == (char *)0x0) goto LAB_0001d623;\n  }" else (compound_statement "{\n    printf("%s",pcVar9);\n    sVar2 = strlen(pcVar9);\n    if (DAT_0002d144 == 0 && DAT_0002d138 == 0) goto LAB_0001d623;\n    local_420 = (char *)0x0;\n    iVar3 = param_1[3];\n    if (iVar3 == 0) goto LAB_0001d623;\nLAB_0001d568:\n    iVar1 = DAT_0002d144;\n    pcVar9 = *(char **)(iVar3 + 4);\n    if (DAT_0002d140 == 0) {\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }\n    if (iVar1 == 0) {\n      sprintf((char *)local_41c," (%s:%d)");\n    }\n    else {\n      sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);\n    }\n    printf("%s",local_41c);\n    puVar8 = local_41c;\n    do {\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    } while (uVar6 == 0);\n    bVar10 = (uVar5 & 0x8080) == 0;\n    if (bVar10) {\n      uVar6 = uVar6 >> 0x10;\n    }\n    if (bVar10) {\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }\n    sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c);\n    if (local_420 == (char *)0x0) goto LAB_0001d623;\n  }" { (expression_statement "printf("%s",pcVar9);" (call_expression "printf("%s",pcVar9)" identifier (argument_list "("%s",pcVar9)" ( (string_literal ""%s"" " string_content ") , identifier ))) ;) (expression_statement "sVar2 = strlen(pcVar9);" (assignment_expression "sVar2 = strlen(pcVar9)" identifier = (call_expression "strlen(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier )))) ;) (if_statement "if (DAT_0002d144 == 0 && DAT_0002d138 == 0) goto LAB_0001d623;" if (parenthesized_expression "(DAT_0002d144 == 0 && DAT_0002d138 == 0)" ( (binary_expression "DAT_0002d144 == 0 && DAT_0002d138 == 0" (binary_expression "DAT_0002d144 == 0" identifier == number_literal) && (binary_expression "DAT_0002d138 == 0" identifier == number_literal)) )) (goto_statement "goto LAB_0001d623;" goto statement_identifier ;)) (expression_statement "local_420 = (char *)0x0;" (assignment_expression "local_420 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar3 = param_1[3];" (assignment_expression "iVar3 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (if_statement "if (iVar3 == 0) goto LAB_0001d623;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001d623;" goto statement_identifier ;)) (labeled_statement "LAB_0001d568:\n    iVar1 = DAT_0002d144;" statement_identifier : (expression_statement "iVar1 = DAT_0002d144;" (assignment_expression "iVar1 = DAT_0002d144" identifier = identifier) ;)) (expression_statement "pcVar9 = *(char **)(iVar3 + 4);" (assignment_expression "pcVar9 = *(char **)(iVar3 + 4)" identifier = (pointer_expression "*(char **)(iVar3 + 4)" * (cast_expression "(char **)(iVar3 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (if_statement "if (DAT_0002d140 == 0) {\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }" if (parenthesized_expression "(DAT_0002d140 == 0)" ( (binary_expression "DAT_0002d140 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }" { (expression_statement "pcVar4 = strrchr(pcVar9,0x2f);" (assignment_expression "pcVar4 = strrchr(pcVar9,0x2f)" identifier = (call_expression "strrchr(pcVar9,0x2f)" identifier (argument_list "(pcVar9,0x2f)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }" if (parenthesized_expression "(pcVar4 != (char *)0x0)" ( (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar9 = pcVar4 + 1;\n      }" { (expression_statement "pcVar9 = pcVar4 + 1;" (assignment_expression "pcVar9 = pcVar4 + 1" identifier = (binary_expression "pcVar4 + 1" identifier + number_literal)) ;) })) })) (if_statement "if (iVar1 == 0) {\n      sprintf((char *)local_41c," (%s:%d)");\n    }\n    else {\n      sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      sprintf((char *)local_41c," (%s:%d)");\n    }" { (expression_statement "sprintf((char *)local_41c," (%s:%d)");" (call_expression "sprintf((char *)local_41c," (%s:%d)")" identifier (argument_list "((char *)local_41c," (%s:%d)")" ( (cast_expression "(char *)local_41c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal "" (%s:%d)"" " string_content ") ))) ;) }) (else_clause "else {\n      sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);\n    }" else (compound_statement "{\n      sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);\n    }" { (expression_statement "sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);" (call_expression "sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1)" identifier (argument_list "((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1)" ( (cast_expression "(char *)local_41c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal "" (%s:%d @ %lx)"" " string_content ") , identifier , (subscript_expression "param_1[4]" identifier [ number_literal ]) , (pointer_expression "*param_1" * identifier) ))) ;) }))) (expression_statement "printf("%s",local_41c);" (call_expression "printf("%s",local_41c)" identifier (argument_list "("%s",local_41c)" ( (string_literal ""%s"" " string_content ") , identifier ))) ;) (expression_statement "puVar8 = local_41c;" (assignment_expression "puVar8 = local_41c" identifier = identifier) ;) (do_statement "do {\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    } while (uVar6 == 0);" do (compound_statement "{\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    }" { (expression_statement "puVar7 = puVar8;" (assignment_expression "puVar7 = puVar8" identifier = identifier) ;) (expression_statement "uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;" (assignment_expression "uVar5 = *puVar7 + 0xfefefeff & ~*puVar7" identifier = (binary_expression "*puVar7 + 0xfefefeff & ~*puVar7" (binary_expression "*puVar7 + 0xfefefeff" (pointer_expression "*puVar7" * identifier) + number_literal) & (unary_expression "~*puVar7" ~ (pointer_expression "*puVar7" * identifier)))) ;) (expression_statement "uVar6 = uVar5 & 0x80808080;" (assignment_expression "uVar6 = uVar5 & 0x80808080" identifier = (binary_expression "uVar5 & 0x80808080" identifier & number_literal)) ;) (expression_statement "puVar8 = puVar7 + 1;" (assignment_expression "puVar8 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) ;) (expression_statement "bVar10 = (uVar5 & 0x8080) == 0;" (assignment_expression "bVar10 = (uVar5 & 0x8080) == 0" identifier = (binary_expression "(uVar5 & 0x8080) == 0" (parenthesized_expression "(uVar5 & 0x8080)" ( (binary_expression "uVar5 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar10) {\n      uVar6 = uVar6 >> 0x10;\n    }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n      uVar6 = uVar6 >> 0x10;\n    }" { (expression_statement "uVar6 = uVar6 >> 0x10;" (assignment_expression "uVar6 = uVar6 >> 0x10" identifier = (binary_expression "uVar6 >> 0x10" identifier >> number_literal)) ;) })) (if_statement "if (bVar10) {\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }" { (expression_statement "puVar8 = (uint *)((int)puVar7 + 6);" (assignment_expression "puVar8 = (uint *)((int)puVar7 + 6)" identifier = (cast_expression "(uint *)((int)puVar7 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 6)" ( (binary_expression "(int)puVar7 + 6" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c);" (assignment_expression "sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c)" identifier = (binary_expression "(int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c)" (binary_expression "(int)puVar8 + sVar2" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + (parenthesized_expression "((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c)" ( (binary_expression "(-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c" (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))" ( (binary_expression "-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)" number_literal - (cast_expression "(uint)CARRY1((byte)uVar6,(byte)uVar6)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY1((byte)uVar6,(byte)uVar6)" identifier (argument_list "((byte)uVar6,(byte)uVar6)" ( (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) )) - (cast_expression "(int)local_41c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (local_420 == (char *)0x0) goto LAB_0001d623;" if (parenthesized_expression "(local_420 == (char *)0x0)" ( (binary_expression "local_420 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001d623;" goto statement_identifier ;)) }))) (expression_statement "free(local_420);" (call_expression "free(local_420)" identifier (argument_list "(local_420)" ( identifier ))) ;) (labeled_statement "LAB_0001d623:\n  if ((_DAT_0002d158 & 2) != 0) {\n    printf("{%d} ",param_1[0x25]);\n  }" statement_identifier : (if_statement "if ((_DAT_0002d158 & 2) != 0) {\n    printf("{%d} ",param_1[0x25]);\n  }" if (parenthesized_expression "((_DAT_0002d158 & 2) != 0)" ( (binary_expression "(_DAT_0002d158 & 2) != 0" (parenthesized_expression "(_DAT_0002d158 & 2)" ( (binary_expression "_DAT_0002d158 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    printf("{%d} ",param_1[0x25]);\n  }" { (expression_statement "printf("{%d} ",param_1[0x25]);" (call_expression "printf("{%d} ",param_1[0x25])" identifier (argument_list "("{%d} ",param_1[0x25])" ( (string_literal ""{%d} "" " string_content ") , (subscript_expression "param_1[0x25]" identifier [ number_literal ]) ))) ;) }))) (if_statement "if ((_DAT_0002d158 & 0x400) == 0) {\n    return sVar2;\n  }" if (parenthesized_expression "((_DAT_0002d158 & 0x400) == 0)" ( (binary_expression "(_DAT_0002d158 & 0x400) == 0" (parenthesized_expression "(_DAT_0002d158 & 0x400)" ( (binary_expression "_DAT_0002d158 & 0x400" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    return sVar2;\n  }" { (return_statement "return sVar2;" return identifier ;) })) (expression_statement "printf("%4.0f%% ",(double)(_DAT_000211d8 * (float)*(double *)(param_1 + 0x27)));" (call_expression "printf("%4.0f%% ",(double)(_DAT_000211d8 * (float)*(double *)(param_1 + 0x27)))" identifier (argument_list "("%4.0f%% ",(double)(_DAT_000211d8 * (float)*(double *)(param_1 + 0x27)))" ( (string_literal ""%4.0f%% "" " string_content ") , (cast_expression "(double)(_DAT_000211d8 * (float)*(double *)(param_1 + 0x27))" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(_DAT_000211d8 * (float)*(double *)(param_1 + 0x27))" ( (binary_expression "_DAT_000211d8 * (float)*(double *)(param_1 + 0x27)" identifier * (cast_expression "(float)*(double *)(param_1 + 0x27)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_1 + 0x27)" * (cast_expression "(double *)(param_1 + 0x27)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x27)" ( (binary_expression "param_1 + 0x27" identifier + number_literal) )))))) ))) ))) ;) (return_statement "return sVar2;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n/* WARNING: Unknown calling convention */\n\nint print_name_only(Sym *self)\n\n{\n  bfd_boolean bVar1;\n  size_t sVar2;\n  Source_File *pSVar3;\n  char *pcVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint *puVar8;\n  char *pcVar9;\n  bool bVar10;\n  char *local_420;\n  char buf [1024];\n  \n  pcVar9 = self->name;\n  if (pcVar9 == (char *)0x0) {\n    return 0;\n  }\n  if (((bsd_style_output == 0) && (demangle != 0)) &&\n     (local_420 = (char *)bfd_demangle(core_bfd,pcVar9), local_420 != (char *)0x0)) {\n    printf("%s",local_420);\n    sVar2 = strlen(local_420);\n    if ((line_granularity != 0 || inline_file_names != 0) &&\n       (pSVar3 = self->file, pSVar3 != (Source_File *)0x0)) goto LAB_0001d568;\n  }\n  else {\n    printf("%s",pcVar9);\n    sVar2 = strlen(pcVar9);\n    if (line_granularity == 0 && inline_file_names == 0) goto LAB_0001d623;\n    local_420 = (char *)0x0;\n    pSVar3 = self->file;\n    if (pSVar3 == (Source_File *)0x0) goto LAB_0001d623;\nLAB_0001d568:\n    bVar1 = line_granularity;\n    pcVar9 = pSVar3->name;\n    if (print_path == 0) {\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }\n    if (bVar1 == 0) {\n      sprintf(buf," (%s:%d)");\n    }\n    else {\n      sprintf(buf," (%s:%d @ %lx)",pcVar9,self->line_num,self->addr);\n    }\n    printf("%s",buf);\n    puVar8 = (uint *)buf;\n    do {\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    } while (uVar6 == 0);\n    bVar10 = (uVar5 & 0x8080) == 0;\n    if (bVar10) {\n      uVar6 = uVar6 >> 0x10;\n    }\n    if (bVar10) {\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }\n    sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)buf);\n    if (local_420 == (char *)0x0) goto LAB_0001d623;\n  }\n  free(local_420);\nLAB_0001d623:\n  if ((debug_level & 2U) != 0) {\n    printf("{%d} ",(self->cg).top_order);\n  }\n  if ((debug_level & 0x400U) == 0) {\n    return sVar2;\n  }\n  printf("%4.0f%% ",(double)(_DAT_000211d8 * (float)(self->cg).prop.fract));\n  return sVar2;\n}\n\n" comment comment comment (function_definition "int print_name_only(Sym *self)\n\n{\n  bfd_boolean bVar1;\n  size_t sVar2;\n  Source_File *pSVar3;\n  char *pcVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint *puVar8;\n  char *pcVar9;\n  bool bVar10;\n  char *local_420;\n  char buf [1024];\n  \n  pcVar9 = self->name;\n  if (pcVar9 == (char *)0x0) {\n    return 0;\n  }\n  if (((bsd_style_output == 0) && (demangle != 0)) &&\n     (local_420 = (char *)bfd_demangle(core_bfd,pcVar9), local_420 != (char *)0x0)) {\n    printf("%s",local_420);\n    sVar2 = strlen(local_420);\n    if ((line_granularity != 0 || inline_file_names != 0) &&\n       (pSVar3 = self->file, pSVar3 != (Source_File *)0x0)) goto LAB_0001d568;\n  }\n  else {\n    printf("%s",pcVar9);\n    sVar2 = strlen(pcVar9);\n    if (line_granularity == 0 && inline_file_names == 0) goto LAB_0001d623;\n    local_420 = (char *)0x0;\n    pSVar3 = self->file;\n    if (pSVar3 == (Source_File *)0x0) goto LAB_0001d623;\nLAB_0001d568:\n    bVar1 = line_granularity;\n    pcVar9 = pSVar3->name;\n    if (print_path == 0) {\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }\n    if (bVar1 == 0) {\n      sprintf(buf," (%s:%d)");\n    }\n    else {\n      sprintf(buf," (%s:%d @ %lx)",pcVar9,self->line_num,self->addr);\n    }\n    printf("%s",buf);\n    puVar8 = (uint *)buf;\n    do {\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    } while (uVar6 == 0);\n    bVar10 = (uVar5 & 0x8080) == 0;\n    if (bVar10) {\n      uVar6 = uVar6 >> 0x10;\n    }\n    if (bVar10) {\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }\n    sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)buf);\n    if (local_420 == (char *)0x0) goto LAB_0001d623;\n  }\n  free(local_420);\nLAB_0001d623:\n  if ((debug_level & 2U) != 0) {\n    printf("{%d} ",(self->cg).top_order);\n  }\n  if ((debug_level & 0x400U) == 0) {\n    return sVar2;\n  }\n  printf("%4.0f%% ",(double)(_DAT_000211d8 * (float)(self->cg).prop.fract));\n  return sVar2;\n}" primitive_type (function_declarator "print_name_only(Sym *self)" identifier (parameter_list "(Sym *self)" ( (parameter_declaration "Sym *self" type_identifier (pointer_declarator "*self" * identifier)) ))) (compound_statement "{\n  bfd_boolean bVar1;\n  size_t sVar2;\n  Source_File *pSVar3;\n  char *pcVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint *puVar8;\n  char *pcVar9;\n  bool bVar10;\n  char *local_420;\n  char buf [1024];\n  \n  pcVar9 = self->name;\n  if (pcVar9 == (char *)0x0) {\n    return 0;\n  }\n  if (((bsd_style_output == 0) && (demangle != 0)) &&\n     (local_420 = (char *)bfd_demangle(core_bfd,pcVar9), local_420 != (char *)0x0)) {\n    printf("%s",local_420);\n    sVar2 = strlen(local_420);\n    if ((line_granularity != 0 || inline_file_names != 0) &&\n       (pSVar3 = self->file, pSVar3 != (Source_File *)0x0)) goto LAB_0001d568;\n  }\n  else {\n    printf("%s",pcVar9);\n    sVar2 = strlen(pcVar9);\n    if (line_granularity == 0 && inline_file_names == 0) goto LAB_0001d623;\n    local_420 = (char *)0x0;\n    pSVar3 = self->file;\n    if (pSVar3 == (Source_File *)0x0) goto LAB_0001d623;\nLAB_0001d568:\n    bVar1 = line_granularity;\n    pcVar9 = pSVar3->name;\n    if (print_path == 0) {\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }\n    if (bVar1 == 0) {\n      sprintf(buf," (%s:%d)");\n    }\n    else {\n      sprintf(buf," (%s:%d @ %lx)",pcVar9,self->line_num,self->addr);\n    }\n    printf("%s",buf);\n    puVar8 = (uint *)buf;\n    do {\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    } while (uVar6 == 0);\n    bVar10 = (uVar5 & 0x8080) == 0;\n    if (bVar10) {\n      uVar6 = uVar6 >> 0x10;\n    }\n    if (bVar10) {\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }\n    sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)buf);\n    if (local_420 == (char *)0x0) goto LAB_0001d623;\n  }\n  free(local_420);\nLAB_0001d623:\n  if ((debug_level & 2U) != 0) {\n    printf("{%d} ",(self->cg).top_order);\n  }\n  if ((debug_level & 0x400U) == 0) {\n    return sVar2;\n  }\n  printf("%4.0f%% ",(double)(_DAT_000211d8 * (float)(self->cg).prop.fract));\n  return sVar2;\n}" { (declaration "bfd_boolean bVar1;" type_identifier identifier ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "Source_File *pSVar3;" type_identifier (pointer_declarator "*pSVar3" * identifier) ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "char *local_420;" primitive_type (pointer_declarator "*local_420" * identifier) ;) (declaration "char buf [1024];" primitive_type (array_declarator "buf [1024]" identifier [ number_literal ]) ;) (expression_statement "pcVar9 = self->name;" (assignment_expression "pcVar9 = self->name" identifier = (field_expression "self->name" identifier -> field_identifier)) ;) (if_statement "if (pcVar9 == (char *)0x0) {\n    return 0;\n  }" if (parenthesized_expression "(pcVar9 == (char *)0x0)" ( (binary_expression "pcVar9 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (((bsd_style_output == 0) && (demangle != 0)) &&\n     (local_420 = (char *)bfd_demangle(core_bfd,pcVar9), local_420 != (char *)0x0)) {\n    printf("%s",local_420);\n    sVar2 = strlen(local_420);\n    if ((line_granularity != 0 || inline_file_names != 0) &&\n       (pSVar3 = self->file, pSVar3 != (Source_File *)0x0)) goto LAB_0001d568;\n  }\n  else {\n    printf("%s",pcVar9);\n    sVar2 = strlen(pcVar9);\n    if (line_granularity == 0 && inline_file_names == 0) goto LAB_0001d623;\n    local_420 = (char *)0x0;\n    pSVar3 = self->file;\n    if (pSVar3 == (Source_File *)0x0) goto LAB_0001d623;\nLAB_0001d568:\n    bVar1 = line_granularity;\n    pcVar9 = pSVar3->name;\n    if (print_path == 0) {\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }\n    if (bVar1 == 0) {\n      sprintf(buf," (%s:%d)");\n    }\n    else {\n      sprintf(buf," (%s:%d @ %lx)",pcVar9,self->line_num,self->addr);\n    }\n    printf("%s",buf);\n    puVar8 = (uint *)buf;\n    do {\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    } while (uVar6 == 0);\n    bVar10 = (uVar5 & 0x8080) == 0;\n    if (bVar10) {\n      uVar6 = uVar6 >> 0x10;\n    }\n    if (bVar10) {\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }\n    sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)buf);\n    if (local_420 == (char *)0x0) goto LAB_0001d623;\n  }" if (parenthesized_expression "(((bsd_style_output == 0) && (demangle != 0)) &&\n     (local_420 = (char *)bfd_demangle(core_bfd,pcVar9), local_420 != (char *)0x0))" ( (binary_expression "((bsd_style_output == 0) && (demangle != 0)) &&\n     (local_420 = (char *)bfd_demangle(core_bfd,pcVar9), local_420 != (char *)0x0)" (parenthesized_expression "((bsd_style_output == 0) && (demangle != 0))" ( (binary_expression "(bsd_style_output == 0) && (demangle != 0)" (parenthesized_expression "(bsd_style_output == 0)" ( (binary_expression "bsd_style_output == 0" identifier == number_literal) )) && (parenthesized_expression "(demangle != 0)" ( (binary_expression "demangle != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(local_420 = (char *)bfd_demangle(core_bfd,pcVar9), local_420 != (char *)0x0)" ( (comma_expression "local_420 = (char *)bfd_demangle(core_bfd,pcVar9), local_420 != (char *)0x0" (assignment_expression "local_420 = (char *)bfd_demangle(core_bfd,pcVar9)" identifier = (cast_expression "(char *)bfd_demangle(core_bfd,pcVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_demangle(core_bfd,pcVar9)" identifier (argument_list "(core_bfd,pcVar9)" ( identifier , identifier ))))) , (binary_expression "local_420 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    printf("%s",local_420);\n    sVar2 = strlen(local_420);\n    if ((line_granularity != 0 || inline_file_names != 0) &&\n       (pSVar3 = self->file, pSVar3 != (Source_File *)0x0)) goto LAB_0001d568;\n  }" { (expression_statement "printf("%s",local_420);" (call_expression "printf("%s",local_420)" identifier (argument_list "("%s",local_420)" ( (string_literal ""%s"" " string_content ") , identifier ))) ;) (expression_statement "sVar2 = strlen(local_420);" (assignment_expression "sVar2 = strlen(local_420)" identifier = (call_expression "strlen(local_420)" identifier (argument_list "(local_420)" ( identifier )))) ;) (if_statement "if ((line_granularity != 0 || inline_file_names != 0) &&\n       (pSVar3 = self->file, pSVar3 != (Source_File *)0x0)) goto LAB_0001d568;" if (parenthesized_expression "((line_granularity != 0 || inline_file_names != 0) &&\n       (pSVar3 = self->file, pSVar3 != (Source_File *)0x0))" ( (binary_expression "(line_granularity != 0 || inline_file_names != 0) &&\n       (pSVar3 = self->file, pSVar3 != (Source_File *)0x0)" (parenthesized_expression "(line_granularity != 0 || inline_file_names != 0)" ( (binary_expression "line_granularity != 0 || inline_file_names != 0" (binary_expression "line_granularity != 0" identifier != number_literal) || (binary_expression "inline_file_names != 0" identifier != number_literal)) )) && (parenthesized_expression "(pSVar3 = self->file, pSVar3 != (Source_File *)0x0)" ( (comma_expression "pSVar3 = self->file, pSVar3 != (Source_File *)0x0" (assignment_expression "pSVar3 = self->file" identifier = (field_expression "self->file" identifier -> field_identifier)) , (binary_expression "pSVar3 != (Source_File *)0x0" identifier != (cast_expression "(Source_File *)0x0" ( (type_descriptor "Source_File *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_0001d568;" goto statement_identifier ;)) }) (else_clause "else {\n    printf("%s",pcVar9);\n    sVar2 = strlen(pcVar9);\n    if (line_granularity == 0 && inline_file_names == 0) goto LAB_0001d623;\n    local_420 = (char *)0x0;\n    pSVar3 = self->file;\n    if (pSVar3 == (Source_File *)0x0) goto LAB_0001d623;\nLAB_0001d568:\n    bVar1 = line_granularity;\n    pcVar9 = pSVar3->name;\n    if (print_path == 0) {\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }\n    if (bVar1 == 0) {\n      sprintf(buf," (%s:%d)");\n    }\n    else {\n      sprintf(buf," (%s:%d @ %lx)",pcVar9,self->line_num,self->addr);\n    }\n    printf("%s",buf);\n    puVar8 = (uint *)buf;\n    do {\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    } while (uVar6 == 0);\n    bVar10 = (uVar5 & 0x8080) == 0;\n    if (bVar10) {\n      uVar6 = uVar6 >> 0x10;\n    }\n    if (bVar10) {\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }\n    sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)buf);\n    if (local_420 == (char *)0x0) goto LAB_0001d623;\n  }" else (compound_statement "{\n    printf("%s",pcVar9);\n    sVar2 = strlen(pcVar9);\n    if (line_granularity == 0 && inline_file_names == 0) goto LAB_0001d623;\n    local_420 = (char *)0x0;\n    pSVar3 = self->file;\n    if (pSVar3 == (Source_File *)0x0) goto LAB_0001d623;\nLAB_0001d568:\n    bVar1 = line_granularity;\n    pcVar9 = pSVar3->name;\n    if (print_path == 0) {\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }\n    if (bVar1 == 0) {\n      sprintf(buf," (%s:%d)");\n    }\n    else {\n      sprintf(buf," (%s:%d @ %lx)",pcVar9,self->line_num,self->addr);\n    }\n    printf("%s",buf);\n    puVar8 = (uint *)buf;\n    do {\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    } while (uVar6 == 0);\n    bVar10 = (uVar5 & 0x8080) == 0;\n    if (bVar10) {\n      uVar6 = uVar6 >> 0x10;\n    }\n    if (bVar10) {\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }\n    sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)buf);\n    if (local_420 == (char *)0x0) goto LAB_0001d623;\n  }" { (expression_statement "printf("%s",pcVar9);" (call_expression "printf("%s",pcVar9)" identifier (argument_list "("%s",pcVar9)" ( (string_literal ""%s"" " string_content ") , identifier ))) ;) (expression_statement "sVar2 = strlen(pcVar9);" (assignment_expression "sVar2 = strlen(pcVar9)" identifier = (call_expression "strlen(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier )))) ;) (if_statement "if (line_granularity == 0 && inline_file_names == 0) goto LAB_0001d623;" if (parenthesized_expression "(line_granularity == 0 && inline_file_names == 0)" ( (binary_expression "line_granularity == 0 && inline_file_names == 0" (binary_expression "line_granularity == 0" identifier == number_literal) && (binary_expression "inline_file_names == 0" identifier == number_literal)) )) (goto_statement "goto LAB_0001d623;" goto statement_identifier ;)) (expression_statement "local_420 = (char *)0x0;" (assignment_expression "local_420 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pSVar3 = self->file;" (assignment_expression "pSVar3 = self->file" identifier = (field_expression "self->file" identifier -> field_identifier)) ;) (if_statement "if (pSVar3 == (Source_File *)0x0) goto LAB_0001d623;" if (parenthesized_expression "(pSVar3 == (Source_File *)0x0)" ( (binary_expression "pSVar3 == (Source_File *)0x0" identifier == (cast_expression "(Source_File *)0x0" ( (type_descriptor "Source_File *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001d623;" goto statement_identifier ;)) (labeled_statement "LAB_0001d568:\n    bVar1 = line_granularity;" statement_identifier : (expression_statement "bVar1 = line_granularity;" (assignment_expression "bVar1 = line_granularity" identifier = identifier) ;)) (expression_statement "pcVar9 = pSVar3->name;" (assignment_expression "pcVar9 = pSVar3->name" identifier = (field_expression "pSVar3->name" identifier -> field_identifier)) ;) (if_statement "if (print_path == 0) {\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }" if (parenthesized_expression "(print_path == 0)" ( (binary_expression "print_path == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }" { (expression_statement "pcVar4 = strrchr(pcVar9,0x2f);" (assignment_expression "pcVar4 = strrchr(pcVar9,0x2f)" identifier = (call_expression "strrchr(pcVar9,0x2f)" identifier (argument_list "(pcVar9,0x2f)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }" if (parenthesized_expression "(pcVar4 != (char *)0x0)" ( (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar9 = pcVar4 + 1;\n      }" { (expression_statement "pcVar9 = pcVar4 + 1;" (assignment_expression "pcVar9 = pcVar4 + 1" identifier = (binary_expression "pcVar4 + 1" identifier + number_literal)) ;) })) })) (if_statement "if (bVar1 == 0) {\n      sprintf(buf," (%s:%d)");\n    }\n    else {\n      sprintf(buf," (%s:%d @ %lx)",pcVar9,self->line_num,self->addr);\n    }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      sprintf(buf," (%s:%d)");\n    }" { (expression_statement "sprintf(buf," (%s:%d)");" (call_expression "sprintf(buf," (%s:%d)")" identifier (argument_list "(buf," (%s:%d)")" ( identifier , (string_literal "" (%s:%d)"" " string_content ") ))) ;) }) (else_clause "else {\n      sprintf(buf," (%s:%d @ %lx)",pcVar9,self->line_num,self->addr);\n    }" else (compound_statement "{\n      sprintf(buf," (%s:%d @ %lx)",pcVar9,self->line_num,self->addr);\n    }" { (expression_statement "sprintf(buf," (%s:%d @ %lx)",pcVar9,self->line_num,self->addr);" (call_expression "sprintf(buf," (%s:%d @ %lx)",pcVar9,self->line_num,self->addr)" identifier (argument_list "(buf," (%s:%d @ %lx)",pcVar9,self->line_num,self->addr)" ( identifier , (string_literal "" (%s:%d @ %lx)"" " string_content ") , identifier , (field_expression "self->line_num" identifier -> field_identifier) , (field_expression "self->addr" identifier -> field_identifier) ))) ;) }))) (expression_statement "printf("%s",buf);" (call_expression "printf("%s",buf)" identifier (argument_list "("%s",buf)" ( (string_literal ""%s"" " string_content ") , identifier ))) ;) (expression_statement "puVar8 = (uint *)buf;" (assignment_expression "puVar8 = (uint *)buf" identifier = (cast_expression "(uint *)buf" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    } while (uVar6 == 0);" do (compound_statement "{\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    }" { (expression_statement "puVar7 = puVar8;" (assignment_expression "puVar7 = puVar8" identifier = identifier) ;) (expression_statement "uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;" (assignment_expression "uVar5 = *puVar7 + 0xfefefeff & ~*puVar7" identifier = (binary_expression "*puVar7 + 0xfefefeff & ~*puVar7" (binary_expression "*puVar7 + 0xfefefeff" (pointer_expression "*puVar7" * identifier) + number_literal) & (unary_expression "~*puVar7" ~ (pointer_expression "*puVar7" * identifier)))) ;) (expression_statement "uVar6 = uVar5 & 0x80808080;" (assignment_expression "uVar6 = uVar5 & 0x80808080" identifier = (binary_expression "uVar5 & 0x80808080" identifier & number_literal)) ;) (expression_statement "puVar8 = puVar7 + 1;" (assignment_expression "puVar8 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) ;) (expression_statement "bVar10 = (uVar5 & 0x8080) == 0;" (assignment_expression "bVar10 = (uVar5 & 0x8080) == 0" identifier = (binary_expression "(uVar5 & 0x8080) == 0" (parenthesized_expression "(uVar5 & 0x8080)" ( (binary_expression "uVar5 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar10) {\n      uVar6 = uVar6 >> 0x10;\n    }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n      uVar6 = uVar6 >> 0x10;\n    }" { (expression_statement "uVar6 = uVar6 >> 0x10;" (assignment_expression "uVar6 = uVar6 >> 0x10" identifier = (binary_expression "uVar6 >> 0x10" identifier >> number_literal)) ;) })) (if_statement "if (bVar10) {\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }" { (expression_statement "puVar8 = (uint *)((int)puVar7 + 6);" (assignment_expression "puVar8 = (uint *)((int)puVar7 + 6)" identifier = (cast_expression "(uint *)((int)puVar7 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 6)" ( (binary_expression "(int)puVar7 + 6" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)buf);" (assignment_expression "sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)buf)" identifier = (binary_expression "(int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)buf)" (binary_expression "(int)puVar8 + sVar2" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + (parenthesized_expression "((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)buf)" ( (binary_expression "(-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)buf" (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))" ( (binary_expression "-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)" number_literal - (cast_expression "(uint)CARRY1((byte)uVar6,(byte)uVar6)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY1((byte)uVar6,(byte)uVar6)" identifier (argument_list "((byte)uVar6,(byte)uVar6)" ( (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) )) - (cast_expression "(int)buf" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (local_420 == (char *)0x0) goto LAB_0001d623;" if (parenthesized_expression "(local_420 == (char *)0x0)" ( (binary_expression "local_420 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001d623;" goto statement_identifier ;)) }))) (expression_statement "free(local_420);" (call_expression "free(local_420)" identifier (argument_list "(local_420)" ( identifier ))) ;) (labeled_statement "LAB_0001d623:\n  if ((debug_level & 2U) != 0) {\n    printf("{%d} ",(self->cg).top_order);\n  }" statement_identifier : (if_statement "if ((debug_level & 2U) != 0) {\n    printf("{%d} ",(self->cg).top_order);\n  }" if (parenthesized_expression "((debug_level & 2U) != 0)" ( (binary_expression "(debug_level & 2U) != 0" (parenthesized_expression "(debug_level & 2U)" ( (binary_expression "debug_level & 2U" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    printf("{%d} ",(self->cg).top_order);\n  }" { (expression_statement "printf("{%d} ",(self->cg).top_order);" (call_expression "printf("{%d} ",(self->cg).top_order)" identifier (argument_list "("{%d} ",(self->cg).top_order)" ( (string_literal ""{%d} "" " string_content ") , (field_expression "(self->cg).top_order" (parenthesized_expression "(self->cg)" ( (field_expression "self->cg" identifier -> field_identifier) )) . field_identifier) ))) ;) }))) (if_statement "if ((debug_level & 0x400U) == 0) {\n    return sVar2;\n  }" if (parenthesized_expression "((debug_level & 0x400U) == 0)" ( (binary_expression "(debug_level & 0x400U) == 0" (parenthesized_expression "(debug_level & 0x400U)" ( (binary_expression "debug_level & 0x400U" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    return sVar2;\n  }" { (return_statement "return sVar2;" return identifier ;) })) (expression_statement "printf("%4.0f%% ",(double)(_DAT_000211d8 * (float)(self->cg).prop.fract));" (call_expression "printf("%4.0f%% ",(double)(_DAT_000211d8 * (float)(self->cg).prop.fract))" identifier (argument_list "("%4.0f%% ",(double)(_DAT_000211d8 * (float)(self->cg).prop.fract))" ( (string_literal ""%4.0f%% "" " string_content ") , (cast_expression "(double)(_DAT_000211d8 * (float)(self->cg).prop.fract)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(_DAT_000211d8 * (float)(self->cg).prop.fract)" ( (binary_expression "_DAT_000211d8 * (float)(self->cg).prop.fract" identifier * (cast_expression "(float)(self->cg).prop.fract" ( (type_descriptor "float" primitive_type) ) (field_expression "(self->cg).prop.fract" (field_expression "(self->cg).prop" (parenthesized_expression "(self->cg)" ( (field_expression "self->cg" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ))) ))) ;) (return_statement "return sVar2;" return identifier ;) })))
(translation_unit "size_t FUN_0001d4d0(undefined4 *param_1)\n\n{\n  int iVar1;\n  size_t sVar2;\n  int iVar3;\n  char *pcVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint *puVar8;\n  char *pcVar9;\n  bool bVar10;\n  char *local_420;\n  uint local_41c [258];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1d4dd;\n  pcVar9 = (char *)param_1[2];\n  if (pcVar9 == (char *)0x0) {\n    return 0;\n  }\n  if (((DAT_0002d150 == 0) && (DAT_0002c1c4 != 0)) &&\n     (local_420 = (char *)bfd_demangle(DAT_0002d478,pcVar9), local_420 != (char *)0x0)) {\n    printf("%s",local_420);\n    sVar2 = strlen(local_420);\n    if ((DAT_0002d144 != 0 || DAT_0002d138 != 0) && (iVar3 = param_1[3], iVar3 != 0))\n    goto LAB_0001d568;\n  }\n  else {\n    printf("%s",pcVar9);\n    sVar2 = strlen(pcVar9);\n    if (DAT_0002d144 == 0 && DAT_0002d138 == 0) goto LAB_0001d623;\n    local_420 = (char *)0x0;\n    iVar3 = param_1[3];\n    if (iVar3 == 0) goto LAB_0001d623;\nLAB_0001d568:\n    iVar1 = DAT_0002d144;\n    pcVar9 = *(char **)(iVar3 + 4);\n    if (DAT_0002d140 == 0) {\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }\n    if (iVar1 == 0) {\n      sprintf((char *)local_41c," (%s:%d)");\n    }\n    else {\n      sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);\n    }\n    printf("%s",local_41c);\n    puVar8 = local_41c;\n    do {\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    } while (uVar6 == 0);\n    bVar10 = (uVar5 & 0x8080) == 0;\n    if (bVar10) {\n      uVar6 = uVar6 >> 0x10;\n    }\n    if (bVar10) {\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }\n    sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c);\n    if (local_420 == (char *)0x0) goto LAB_0001d623;\n  }\n  free(local_420);\nLAB_0001d623:\n  if ((_DAT_0002d158 & 2) != 0) {\n    printf("{%d} ",param_1[0x25]);\n  }\n  if ((_DAT_0002d158 & 0x400) == 0) {\n    return sVar2;\n  }\n  printf("%4.0f%% ",(double)(_DAT_000211d8 * (float)*(double *)(param_1 + 0x27)));\n  return sVar2;\n}\n\n" (function_definition "size_t FUN_0001d4d0(undefined4 *param_1)\n\n{\n  int iVar1;\n  size_t sVar2;\n  int iVar3;\n  char *pcVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint *puVar8;\n  char *pcVar9;\n  bool bVar10;\n  char *local_420;\n  uint local_41c [258];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1d4dd;\n  pcVar9 = (char *)param_1[2];\n  if (pcVar9 == (char *)0x0) {\n    return 0;\n  }\n  if (((DAT_0002d150 == 0) && (DAT_0002c1c4 != 0)) &&\n     (local_420 = (char *)bfd_demangle(DAT_0002d478,pcVar9), local_420 != (char *)0x0)) {\n    printf("%s",local_420);\n    sVar2 = strlen(local_420);\n    if ((DAT_0002d144 != 0 || DAT_0002d138 != 0) && (iVar3 = param_1[3], iVar3 != 0))\n    goto LAB_0001d568;\n  }\n  else {\n    printf("%s",pcVar9);\n    sVar2 = strlen(pcVar9);\n    if (DAT_0002d144 == 0 && DAT_0002d138 == 0) goto LAB_0001d623;\n    local_420 = (char *)0x0;\n    iVar3 = param_1[3];\n    if (iVar3 == 0) goto LAB_0001d623;\nLAB_0001d568:\n    iVar1 = DAT_0002d144;\n    pcVar9 = *(char **)(iVar3 + 4);\n    if (DAT_0002d140 == 0) {\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }\n    if (iVar1 == 0) {\n      sprintf((char *)local_41c," (%s:%d)");\n    }\n    else {\n      sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);\n    }\n    printf("%s",local_41c);\n    puVar8 = local_41c;\n    do {\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    } while (uVar6 == 0);\n    bVar10 = (uVar5 & 0x8080) == 0;\n    if (bVar10) {\n      uVar6 = uVar6 >> 0x10;\n    }\n    if (bVar10) {\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }\n    sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c);\n    if (local_420 == (char *)0x0) goto LAB_0001d623;\n  }\n  free(local_420);\nLAB_0001d623:\n  if ((_DAT_0002d158 & 2) != 0) {\n    printf("{%d} ",param_1[0x25]);\n  }\n  if ((_DAT_0002d158 & 0x400) == 0) {\n    return sVar2;\n  }\n  printf("%4.0f%% ",(double)(_DAT_000211d8 * (float)*(double *)(param_1 + 0x27)));\n  return sVar2;\n}" primitive_type (function_declarator "FUN_0001d4d0(undefined4 *param_1)" identifier (parameter_list "(undefined4 *param_1)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  size_t sVar2;\n  int iVar3;\n  char *pcVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint *puVar8;\n  char *pcVar9;\n  bool bVar10;\n  char *local_420;\n  uint local_41c [258];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1d4dd;\n  pcVar9 = (char *)param_1[2];\n  if (pcVar9 == (char *)0x0) {\n    return 0;\n  }\n  if (((DAT_0002d150 == 0) && (DAT_0002c1c4 != 0)) &&\n     (local_420 = (char *)bfd_demangle(DAT_0002d478,pcVar9), local_420 != (char *)0x0)) {\n    printf("%s",local_420);\n    sVar2 = strlen(local_420);\n    if ((DAT_0002d144 != 0 || DAT_0002d138 != 0) && (iVar3 = param_1[3], iVar3 != 0))\n    goto LAB_0001d568;\n  }\n  else {\n    printf("%s",pcVar9);\n    sVar2 = strlen(pcVar9);\n    if (DAT_0002d144 == 0 && DAT_0002d138 == 0) goto LAB_0001d623;\n    local_420 = (char *)0x0;\n    iVar3 = param_1[3];\n    if (iVar3 == 0) goto LAB_0001d623;\nLAB_0001d568:\n    iVar1 = DAT_0002d144;\n    pcVar9 = *(char **)(iVar3 + 4);\n    if (DAT_0002d140 == 0) {\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }\n    if (iVar1 == 0) {\n      sprintf((char *)local_41c," (%s:%d)");\n    }\n    else {\n      sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);\n    }\n    printf("%s",local_41c);\n    puVar8 = local_41c;\n    do {\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    } while (uVar6 == 0);\n    bVar10 = (uVar5 & 0x8080) == 0;\n    if (bVar10) {\n      uVar6 = uVar6 >> 0x10;\n    }\n    if (bVar10) {\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }\n    sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c);\n    if (local_420 == (char *)0x0) goto LAB_0001d623;\n  }\n  free(local_420);\nLAB_0001d623:\n  if ((_DAT_0002d158 & 2) != 0) {\n    printf("{%d} ",param_1[0x25]);\n  }\n  if ((_DAT_0002d158 & 0x400) == 0) {\n    return sVar2;\n  }\n  printf("%4.0f%% ",(double)(_DAT_000211d8 * (float)*(double *)(param_1 + 0x27)));\n  return sVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "char *local_420;" primitive_type (pointer_declarator "*local_420" * identifier) ;) (declaration "uint local_41c [258];" type_identifier (array_declarator "local_41c [258]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x1d4dd;" (assignment_expression "uStack_14 = 0x1d4dd" identifier = number_literal) ;) (expression_statement "pcVar9 = (char *)param_1[2];" (assignment_expression "pcVar9 = (char *)param_1[2]" identifier = (cast_expression "(char *)param_1[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (if_statement "if (pcVar9 == (char *)0x0) {\n    return 0;\n  }" if (parenthesized_expression "(pcVar9 == (char *)0x0)" ( (binary_expression "pcVar9 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (((DAT_0002d150 == 0) && (DAT_0002c1c4 != 0)) &&\n     (local_420 = (char *)bfd_demangle(DAT_0002d478,pcVar9), local_420 != (char *)0x0)) {\n    printf("%s",local_420);\n    sVar2 = strlen(local_420);\n    if ((DAT_0002d144 != 0 || DAT_0002d138 != 0) && (iVar3 = param_1[3], iVar3 != 0))\n    goto LAB_0001d568;\n  }\n  else {\n    printf("%s",pcVar9);\n    sVar2 = strlen(pcVar9);\n    if (DAT_0002d144 == 0 && DAT_0002d138 == 0) goto LAB_0001d623;\n    local_420 = (char *)0x0;\n    iVar3 = param_1[3];\n    if (iVar3 == 0) goto LAB_0001d623;\nLAB_0001d568:\n    iVar1 = DAT_0002d144;\n    pcVar9 = *(char **)(iVar3 + 4);\n    if (DAT_0002d140 == 0) {\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }\n    if (iVar1 == 0) {\n      sprintf((char *)local_41c," (%s:%d)");\n    }\n    else {\n      sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);\n    }\n    printf("%s",local_41c);\n    puVar8 = local_41c;\n    do {\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    } while (uVar6 == 0);\n    bVar10 = (uVar5 & 0x8080) == 0;\n    if (bVar10) {\n      uVar6 = uVar6 >> 0x10;\n    }\n    if (bVar10) {\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }\n    sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c);\n    if (local_420 == (char *)0x0) goto LAB_0001d623;\n  }" if (parenthesized_expression "(((DAT_0002d150 == 0) && (DAT_0002c1c4 != 0)) &&\n     (local_420 = (char *)bfd_demangle(DAT_0002d478,pcVar9), local_420 != (char *)0x0))" ( (binary_expression "((DAT_0002d150 == 0) && (DAT_0002c1c4 != 0)) &&\n     (local_420 = (char *)bfd_demangle(DAT_0002d478,pcVar9), local_420 != (char *)0x0)" (parenthesized_expression "((DAT_0002d150 == 0) && (DAT_0002c1c4 != 0))" ( (binary_expression "(DAT_0002d150 == 0) && (DAT_0002c1c4 != 0)" (parenthesized_expression "(DAT_0002d150 == 0)" ( (binary_expression "DAT_0002d150 == 0" identifier == number_literal) )) && (parenthesized_expression "(DAT_0002c1c4 != 0)" ( (binary_expression "DAT_0002c1c4 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(local_420 = (char *)bfd_demangle(DAT_0002d478,pcVar9), local_420 != (char *)0x0)" ( (comma_expression "local_420 = (char *)bfd_demangle(DAT_0002d478,pcVar9), local_420 != (char *)0x0" (assignment_expression "local_420 = (char *)bfd_demangle(DAT_0002d478,pcVar9)" identifier = (cast_expression "(char *)bfd_demangle(DAT_0002d478,pcVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_demangle(DAT_0002d478,pcVar9)" identifier (argument_list "(DAT_0002d478,pcVar9)" ( identifier , identifier ))))) , (binary_expression "local_420 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    printf("%s",local_420);\n    sVar2 = strlen(local_420);\n    if ((DAT_0002d144 != 0 || DAT_0002d138 != 0) && (iVar3 = param_1[3], iVar3 != 0))\n    goto LAB_0001d568;\n  }" { (expression_statement "printf("%s",local_420);" (call_expression "printf("%s",local_420)" identifier (argument_list "("%s",local_420)" ( (string_literal ""%s"" " string_content ") , identifier ))) ;) (expression_statement "sVar2 = strlen(local_420);" (assignment_expression "sVar2 = strlen(local_420)" identifier = (call_expression "strlen(local_420)" identifier (argument_list "(local_420)" ( identifier )))) ;) (if_statement "if ((DAT_0002d144 != 0 || DAT_0002d138 != 0) && (iVar3 = param_1[3], iVar3 != 0))\n    goto LAB_0001d568;" if (parenthesized_expression "((DAT_0002d144 != 0 || DAT_0002d138 != 0) && (iVar3 = param_1[3], iVar3 != 0))" ( (binary_expression "(DAT_0002d144 != 0 || DAT_0002d138 != 0) && (iVar3 = param_1[3], iVar3 != 0)" (parenthesized_expression "(DAT_0002d144 != 0 || DAT_0002d138 != 0)" ( (binary_expression "DAT_0002d144 != 0 || DAT_0002d138 != 0" (binary_expression "DAT_0002d144 != 0" identifier != number_literal) || (binary_expression "DAT_0002d138 != 0" identifier != number_literal)) )) && (parenthesized_expression "(iVar3 = param_1[3], iVar3 != 0)" ( (comma_expression "iVar3 = param_1[3], iVar3 != 0" (assignment_expression "iVar3 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0001d568;" goto statement_identifier ;)) }) (else_clause "else {\n    printf("%s",pcVar9);\n    sVar2 = strlen(pcVar9);\n    if (DAT_0002d144 == 0 && DAT_0002d138 == 0) goto LAB_0001d623;\n    local_420 = (char *)0x0;\n    iVar3 = param_1[3];\n    if (iVar3 == 0) goto LAB_0001d623;\nLAB_0001d568:\n    iVar1 = DAT_0002d144;\n    pcVar9 = *(char **)(iVar3 + 4);\n    if (DAT_0002d140 == 0) {\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }\n    if (iVar1 == 0) {\n      sprintf((char *)local_41c," (%s:%d)");\n    }\n    else {\n      sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);\n    }\n    printf("%s",local_41c);\n    puVar8 = local_41c;\n    do {\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    } while (uVar6 == 0);\n    bVar10 = (uVar5 & 0x8080) == 0;\n    if (bVar10) {\n      uVar6 = uVar6 >> 0x10;\n    }\n    if (bVar10) {\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }\n    sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c);\n    if (local_420 == (char *)0x0) goto LAB_0001d623;\n  }" else (compound_statement "{\n    printf("%s",pcVar9);\n    sVar2 = strlen(pcVar9);\n    if (DAT_0002d144 == 0 && DAT_0002d138 == 0) goto LAB_0001d623;\n    local_420 = (char *)0x0;\n    iVar3 = param_1[3];\n    if (iVar3 == 0) goto LAB_0001d623;\nLAB_0001d568:\n    iVar1 = DAT_0002d144;\n    pcVar9 = *(char **)(iVar3 + 4);\n    if (DAT_0002d140 == 0) {\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }\n    if (iVar1 == 0) {\n      sprintf((char *)local_41c," (%s:%d)");\n    }\n    else {\n      sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);\n    }\n    printf("%s",local_41c);\n    puVar8 = local_41c;\n    do {\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    } while (uVar6 == 0);\n    bVar10 = (uVar5 & 0x8080) == 0;\n    if (bVar10) {\n      uVar6 = uVar6 >> 0x10;\n    }\n    if (bVar10) {\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }\n    sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c);\n    if (local_420 == (char *)0x0) goto LAB_0001d623;\n  }" { (expression_statement "printf("%s",pcVar9);" (call_expression "printf("%s",pcVar9)" identifier (argument_list "("%s",pcVar9)" ( (string_literal ""%s"" " string_content ") , identifier ))) ;) (expression_statement "sVar2 = strlen(pcVar9);" (assignment_expression "sVar2 = strlen(pcVar9)" identifier = (call_expression "strlen(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier )))) ;) (if_statement "if (DAT_0002d144 == 0 && DAT_0002d138 == 0) goto LAB_0001d623;" if (parenthesized_expression "(DAT_0002d144 == 0 && DAT_0002d138 == 0)" ( (binary_expression "DAT_0002d144 == 0 && DAT_0002d138 == 0" (binary_expression "DAT_0002d144 == 0" identifier == number_literal) && (binary_expression "DAT_0002d138 == 0" identifier == number_literal)) )) (goto_statement "goto LAB_0001d623;" goto statement_identifier ;)) (expression_statement "local_420 = (char *)0x0;" (assignment_expression "local_420 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar3 = param_1[3];" (assignment_expression "iVar3 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (if_statement "if (iVar3 == 0) goto LAB_0001d623;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001d623;" goto statement_identifier ;)) (labeled_statement "LAB_0001d568:\n    iVar1 = DAT_0002d144;" statement_identifier : (expression_statement "iVar1 = DAT_0002d144;" (assignment_expression "iVar1 = DAT_0002d144" identifier = identifier) ;)) (expression_statement "pcVar9 = *(char **)(iVar3 + 4);" (assignment_expression "pcVar9 = *(char **)(iVar3 + 4)" identifier = (pointer_expression "*(char **)(iVar3 + 4)" * (cast_expression "(char **)(iVar3 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (if_statement "if (DAT_0002d140 == 0) {\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }" if (parenthesized_expression "(DAT_0002d140 == 0)" ( (binary_expression "DAT_0002d140 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }" { (expression_statement "pcVar4 = strrchr(pcVar9,0x2f);" (assignment_expression "pcVar4 = strrchr(pcVar9,0x2f)" identifier = (call_expression "strrchr(pcVar9,0x2f)" identifier (argument_list "(pcVar9,0x2f)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }" if (parenthesized_expression "(pcVar4 != (char *)0x0)" ( (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar9 = pcVar4 + 1;\n      }" { (expression_statement "pcVar9 = pcVar4 + 1;" (assignment_expression "pcVar9 = pcVar4 + 1" identifier = (binary_expression "pcVar4 + 1" identifier + number_literal)) ;) })) })) (if_statement "if (iVar1 == 0) {\n      sprintf((char *)local_41c," (%s:%d)");\n    }\n    else {\n      sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      sprintf((char *)local_41c," (%s:%d)");\n    }" { (expression_statement "sprintf((char *)local_41c," (%s:%d)");" (call_expression "sprintf((char *)local_41c," (%s:%d)")" identifier (argument_list "((char *)local_41c," (%s:%d)")" ( (cast_expression "(char *)local_41c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal "" (%s:%d)"" " string_content ") ))) ;) }) (else_clause "else {\n      sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);\n    }" else (compound_statement "{\n      sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);\n    }" { (expression_statement "sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);" (call_expression "sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1)" identifier (argument_list "((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1)" ( (cast_expression "(char *)local_41c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal "" (%s:%d @ %lx)"" " string_content ") , identifier , (subscript_expression "param_1[4]" identifier [ number_literal ]) , (pointer_expression "*param_1" * identifier) ))) ;) }))) (expression_statement "printf("%s",local_41c);" (call_expression "printf("%s",local_41c)" identifier (argument_list "("%s",local_41c)" ( (string_literal ""%s"" " string_content ") , identifier ))) ;) (expression_statement "puVar8 = local_41c;" (assignment_expression "puVar8 = local_41c" identifier = identifier) ;) (do_statement "do {\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    } while (uVar6 == 0);" do (compound_statement "{\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    }" { (expression_statement "puVar7 = puVar8;" (assignment_expression "puVar7 = puVar8" identifier = identifier) ;) (expression_statement "uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;" (assignment_expression "uVar5 = *puVar7 + 0xfefefeff & ~*puVar7" identifier = (binary_expression "*puVar7 + 0xfefefeff & ~*puVar7" (binary_expression "*puVar7 + 0xfefefeff" (pointer_expression "*puVar7" * identifier) + number_literal) & (unary_expression "~*puVar7" ~ (pointer_expression "*puVar7" * identifier)))) ;) (expression_statement "uVar6 = uVar5 & 0x80808080;" (assignment_expression "uVar6 = uVar5 & 0x80808080" identifier = (binary_expression "uVar5 & 0x80808080" identifier & number_literal)) ;) (expression_statement "puVar8 = puVar7 + 1;" (assignment_expression "puVar8 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) ;) (expression_statement "bVar10 = (uVar5 & 0x8080) == 0;" (assignment_expression "bVar10 = (uVar5 & 0x8080) == 0" identifier = (binary_expression "(uVar5 & 0x8080) == 0" (parenthesized_expression "(uVar5 & 0x8080)" ( (binary_expression "uVar5 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar10) {\n      uVar6 = uVar6 >> 0x10;\n    }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n      uVar6 = uVar6 >> 0x10;\n    }" { (expression_statement "uVar6 = uVar6 >> 0x10;" (assignment_expression "uVar6 = uVar6 >> 0x10" identifier = (binary_expression "uVar6 >> 0x10" identifier >> number_literal)) ;) })) (if_statement "if (bVar10) {\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }" { (expression_statement "puVar8 = (uint *)((int)puVar7 + 6);" (assignment_expression "puVar8 = (uint *)((int)puVar7 + 6)" identifier = (cast_expression "(uint *)((int)puVar7 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 6)" ( (binary_expression "(int)puVar7 + 6" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c);" (assignment_expression "sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c)" identifier = (binary_expression "(int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c)" (binary_expression "(int)puVar8 + sVar2" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + (parenthesized_expression "((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c)" ( (binary_expression "(-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c" (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))" ( (binary_expression "-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)" number_literal - (cast_expression "(uint)CARRY1((byte)uVar6,(byte)uVar6)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY1((byte)uVar6,(byte)uVar6)" identifier (argument_list "((byte)uVar6,(byte)uVar6)" ( (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) )) - (cast_expression "(int)local_41c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (local_420 == (char *)0x0) goto LAB_0001d623;" if (parenthesized_expression "(local_420 == (char *)0x0)" ( (binary_expression "local_420 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001d623;" goto statement_identifier ;)) }))) (expression_statement "free(local_420);" (call_expression "free(local_420)" identifier (argument_list "(local_420)" ( identifier ))) ;) (labeled_statement "LAB_0001d623:\n  if ((_DAT_0002d158 & 2) != 0) {\n    printf("{%d} ",param_1[0x25]);\n  }" statement_identifier : (if_statement "if ((_DAT_0002d158 & 2) != 0) {\n    printf("{%d} ",param_1[0x25]);\n  }" if (parenthesized_expression "((_DAT_0002d158 & 2) != 0)" ( (binary_expression "(_DAT_0002d158 & 2) != 0" (parenthesized_expression "(_DAT_0002d158 & 2)" ( (binary_expression "_DAT_0002d158 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    printf("{%d} ",param_1[0x25]);\n  }" { (expression_statement "printf("{%d} ",param_1[0x25]);" (call_expression "printf("{%d} ",param_1[0x25])" identifier (argument_list "("{%d} ",param_1[0x25])" ( (string_literal ""{%d} "" " string_content ") , (subscript_expression "param_1[0x25]" identifier [ number_literal ]) ))) ;) }))) (if_statement "if ((_DAT_0002d158 & 0x400) == 0) {\n    return sVar2;\n  }" if (parenthesized_expression "((_DAT_0002d158 & 0x400) == 0)" ( (binary_expression "(_DAT_0002d158 & 0x400) == 0" (parenthesized_expression "(_DAT_0002d158 & 0x400)" ( (binary_expression "_DAT_0002d158 & 0x400" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    return sVar2;\n  }" { (return_statement "return sVar2;" return identifier ;) })) (expression_statement "printf("%4.0f%% ",(double)(_DAT_000211d8 * (float)*(double *)(param_1 + 0x27)));" (call_expression "printf("%4.0f%% ",(double)(_DAT_000211d8 * (float)*(double *)(param_1 + 0x27)))" identifier (argument_list "("%4.0f%% ",(double)(_DAT_000211d8 * (float)*(double *)(param_1 + 0x27)))" ( (string_literal ""%4.0f%% "" " string_content ") , (cast_expression "(double)(_DAT_000211d8 * (float)*(double *)(param_1 + 0x27))" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(_DAT_000211d8 * (float)*(double *)(param_1 + 0x27))" ( (binary_expression "_DAT_000211d8 * (float)*(double *)(param_1 + 0x27)" identifier * (cast_expression "(float)*(double *)(param_1 + 0x27)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_1 + 0x27)" * (cast_expression "(double *)(param_1 + 0x27)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x27)" ( (binary_expression "param_1 + 0x27" identifier + number_literal) )))))) ))) ))) ;) (return_statement "return sVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") , IDENT , (subscript_expression IDENT [ LIT ]) , (pointer_expression * IDENT) ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * IDENT) + LIT) & (unary_expression ~ (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) })) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))))) )) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (labeled_statement 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 ") , (subscript_expression IDENT [ LIT ]) ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ))) ))) ;) (return_statement return IDENT ;) })))
(function_definition "size_t FUN_0001d4d0(undefined4 *param_1)\n\n{\n  int iVar1;\n  size_t sVar2;\n  int iVar3;\n  char *pcVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint *puVar8;\n  char *pcVar9;\n  bool bVar10;\n  char *local_420;\n  uint local_41c [258];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1d4dd;\n  pcVar9 = (char *)param_1[2];\n  if (pcVar9 == (char *)0x0) {\n    return 0;\n  }\n  if (((DAT_0002d150 == 0) && (DAT_0002c1c4 != 0)) &&\n     (local_420 = (char *)bfd_demangle(DAT_0002d478,pcVar9), local_420 != (char *)0x0)) {\n    printf("%s",local_420);\n    sVar2 = strlen(local_420);\n    if ((DAT_0002d144 != 0 || DAT_0002d138 != 0) && (iVar3 = param_1[3], iVar3 != 0))\n    goto LAB_0001d568;\n  }\n  else {\n    printf("%s",pcVar9);\n    sVar2 = strlen(pcVar9);\n    if (DAT_0002d144 == 0 && DAT_0002d138 == 0) goto LAB_0001d623;\n    local_420 = (char *)0x0;\n    iVar3 = param_1[3];\n    if (iVar3 == 0) goto LAB_0001d623;\nLAB_0001d568:\n    iVar1 = DAT_0002d144;\n    pcVar9 = *(char **)(iVar3 + 4);\n    if (DAT_0002d140 == 0) {\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }\n    if (iVar1 == 0) {\n      sprintf((char *)local_41c," (%s:%d)");\n    }\n    else {\n      sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);\n    }\n    printf("%s",local_41c);\n    puVar8 = local_41c;\n    do {\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    } while (uVar6 == 0);\n    bVar10 = (uVar5 & 0x8080) == 0;\n    if (bVar10) {\n      uVar6 = uVar6 >> 0x10;\n    }\n    if (bVar10) {\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }\n    sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c);\n    if (local_420 == (char *)0x0) goto LAB_0001d623;\n  }\n  free(local_420);\nLAB_0001d623:\n  if ((_DAT_0002d158 & 2) != 0) {\n    printf("{%d} ",param_1[0x25]);\n  }\n  if ((_DAT_0002d158 & 0x400) == 0) {\n    return sVar2;\n  }\n  printf("%4.0f%% ",(double)(_DAT_000211d8 * (float)*(double *)(param_1 + 0x27)));\n  return sVar2;\n}" (primitive_type "size_t") (function_declarator "FUN_0001d4d0(undefined4 *param_1)" (identifier "FUN_0001d4d0") (parameter_list "(undefined4 *param_1)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  int iVar1;\n  size_t sVar2;\n  int iVar3;\n  char *pcVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint *puVar8;\n  char *pcVar9;\n  bool bVar10;\n  char *local_420;\n  uint local_41c [258];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1d4dd;\n  pcVar9 = (char *)param_1[2];\n  if (pcVar9 == (char *)0x0) {\n    return 0;\n  }\n  if (((DAT_0002d150 == 0) && (DAT_0002c1c4 != 0)) &&\n     (local_420 = (char *)bfd_demangle(DAT_0002d478,pcVar9), local_420 != (char *)0x0)) {\n    printf("%s",local_420);\n    sVar2 = strlen(local_420);\n    if ((DAT_0002d144 != 0 || DAT_0002d138 != 0) && (iVar3 = param_1[3], iVar3 != 0))\n    goto LAB_0001d568;\n  }\n  else {\n    printf("%s",pcVar9);\n    sVar2 = strlen(pcVar9);\n    if (DAT_0002d144 == 0 && DAT_0002d138 == 0) goto LAB_0001d623;\n    local_420 = (char *)0x0;\n    iVar3 = param_1[3];\n    if (iVar3 == 0) goto LAB_0001d623;\nLAB_0001d568:\n    iVar1 = DAT_0002d144;\n    pcVar9 = *(char **)(iVar3 + 4);\n    if (DAT_0002d140 == 0) {\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }\n    if (iVar1 == 0) {\n      sprintf((char *)local_41c," (%s:%d)");\n    }\n    else {\n      sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);\n    }\n    printf("%s",local_41c);\n    puVar8 = local_41c;\n    do {\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    } while (uVar6 == 0);\n    bVar10 = (uVar5 & 0x8080) == 0;\n    if (bVar10) {\n      uVar6 = uVar6 >> 0x10;\n    }\n    if (bVar10) {\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }\n    sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c);\n    if (local_420 == (char *)0x0) goto LAB_0001d623;\n  }\n  free(local_420);\nLAB_0001d623:\n  if ((_DAT_0002d158 & 2) != 0) {\n    printf("{%d} ",param_1[0x25]);\n  }\n  if ((_DAT_0002d158 & 0x400) == 0) {\n    return sVar2;\n  }\n  printf("%4.0f%% ",(double)(_DAT_000211d8 * (float)*(double *)(param_1 + 0x27)));\n  return sVar2;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "size_t sVar2;" (primitive_type "size_t") (identifier "sVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "char *pcVar4;" (primitive_type "char") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "uint *puVar7;" (type_identifier "uint") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "uint *puVar8;" (type_identifier "uint") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "char *pcVar9;" (primitive_type "char") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "bool bVar10;" (primitive_type "bool") (identifier "bVar10") (; ";")) (declaration "char *local_420;" (primitive_type "char") (pointer_declarator "*local_420" (* "*") (identifier "local_420")) (; ";")) (declaration "uint local_41c [258];" (type_identifier "uint") (array_declarator "local_41c [258]" (identifier "local_41c") ([ "[") (number_literal "258") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x1d4dd;" (assignment_expression "uStack_14 = 0x1d4dd" (identifier "uStack_14") (= "=") (number_literal "0x1d4dd")) (; ";")) (expression_statement "pcVar9 = (char *)param_1[2];" (assignment_expression "pcVar9 = (char *)param_1[2]" (identifier "pcVar9") (= "=") (cast_expression "(char *)param_1[2]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if (pcVar9 == (char *)0x0) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(pcVar9 == (char *)0x0)" (( "(") (binary_expression "pcVar9 == (char *)0x0" (identifier "pcVar9") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (((DAT_0002d150 == 0) && (DAT_0002c1c4 != 0)) &&\n     (local_420 = (char *)bfd_demangle(DAT_0002d478,pcVar9), local_420 != (char *)0x0)) {\n    printf("%s",local_420);\n    sVar2 = strlen(local_420);\n    if ((DAT_0002d144 != 0 || DAT_0002d138 != 0) && (iVar3 = param_1[3], iVar3 != 0))\n    goto LAB_0001d568;\n  }\n  else {\n    printf("%s",pcVar9);\n    sVar2 = strlen(pcVar9);\n    if (DAT_0002d144 == 0 && DAT_0002d138 == 0) goto LAB_0001d623;\n    local_420 = (char *)0x0;\n    iVar3 = param_1[3];\n    if (iVar3 == 0) goto LAB_0001d623;\nLAB_0001d568:\n    iVar1 = DAT_0002d144;\n    pcVar9 = *(char **)(iVar3 + 4);\n    if (DAT_0002d140 == 0) {\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }\n    if (iVar1 == 0) {\n      sprintf((char *)local_41c," (%s:%d)");\n    }\n    else {\n      sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);\n    }\n    printf("%s",local_41c);\n    puVar8 = local_41c;\n    do {\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    } while (uVar6 == 0);\n    bVar10 = (uVar5 & 0x8080) == 0;\n    if (bVar10) {\n      uVar6 = uVar6 >> 0x10;\n    }\n    if (bVar10) {\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }\n    sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c);\n    if (local_420 == (char *)0x0) goto LAB_0001d623;\n  }" (if "if") (parenthesized_expression "(((DAT_0002d150 == 0) && (DAT_0002c1c4 != 0)) &&\n     (local_420 = (char *)bfd_demangle(DAT_0002d478,pcVar9), local_420 != (char *)0x0))" (( "(") (binary_expression "((DAT_0002d150 == 0) && (DAT_0002c1c4 != 0)) &&\n     (local_420 = (char *)bfd_demangle(DAT_0002d478,pcVar9), local_420 != (char *)0x0)" (parenthesized_expression "((DAT_0002d150 == 0) && (DAT_0002c1c4 != 0))" (( "(") (binary_expression "(DAT_0002d150 == 0) && (DAT_0002c1c4 != 0)" (parenthesized_expression "(DAT_0002d150 == 0)" (( "(") (binary_expression "DAT_0002d150 == 0" (identifier "DAT_0002d150") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(DAT_0002c1c4 != 0)" (( "(") (binary_expression "DAT_0002c1c4 != 0" (identifier "DAT_0002c1c4") (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_420 = (char *)bfd_demangle(DAT_0002d478,pcVar9), local_420 != (char *)0x0)" (( "(") (comma_expression "local_420 = (char *)bfd_demangle(DAT_0002d478,pcVar9), local_420 != (char *)0x0" (assignment_expression "local_420 = (char *)bfd_demangle(DAT_0002d478,pcVar9)" (identifier "local_420") (= "=") (cast_expression "(char *)bfd_demangle(DAT_0002d478,pcVar9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "bfd_demangle(DAT_0002d478,pcVar9)" (identifier "bfd_demangle") (argument_list "(DAT_0002d478,pcVar9)" (( "(") (identifier "DAT_0002d478") (, ",") (identifier "pcVar9") () ")"))))) (, ",") (binary_expression "local_420 != (char *)0x0" (identifier "local_420") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n    printf("%s",local_420);\n    sVar2 = strlen(local_420);\n    if ((DAT_0002d144 != 0 || DAT_0002d138 != 0) && (iVar3 = param_1[3], iVar3 != 0))\n    goto LAB_0001d568;\n  }" ({ "{") (expression_statement "printf("%s",local_420);" (call_expression "printf("%s",local_420)" (identifier "printf") (argument_list "("%s",local_420)" (( "(") (string_literal ""%s"" (" """) (string_content "%s") (" """)) (, ",") (identifier "local_420") () ")"))) (; ";")) (expression_statement "sVar2 = strlen(local_420);" (assignment_expression "sVar2 = strlen(local_420)" (identifier "sVar2") (= "=") (call_expression "strlen(local_420)" (identifier "strlen") (argument_list "(local_420)" (( "(") (identifier "local_420") () ")")))) (; ";")) (if_statement "if ((DAT_0002d144 != 0 || DAT_0002d138 != 0) && (iVar3 = param_1[3], iVar3 != 0))\n    goto LAB_0001d568;" (if "if") (parenthesized_expression "((DAT_0002d144 != 0 || DAT_0002d138 != 0) && (iVar3 = param_1[3], iVar3 != 0))" (( "(") (binary_expression "(DAT_0002d144 != 0 || DAT_0002d138 != 0) && (iVar3 = param_1[3], iVar3 != 0)" (parenthesized_expression "(DAT_0002d144 != 0 || DAT_0002d138 != 0)" (( "(") (binary_expression "DAT_0002d144 != 0 || DAT_0002d138 != 0" (binary_expression "DAT_0002d144 != 0" (identifier "DAT_0002d144") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "DAT_0002d138 != 0" (identifier "DAT_0002d138") (!= "!=") (number_literal "0"))) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = param_1[3], iVar3 != 0)" (( "(") (comma_expression "iVar3 = param_1[3], iVar3 != 0" (assignment_expression "iVar3 = param_1[3]" (identifier "iVar3") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (, ",") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0001d568;" (goto "goto") (statement_identifier "LAB_0001d568") (; ";"))) (} "}")) (else_clause "else {\n    printf("%s",pcVar9);\n    sVar2 = strlen(pcVar9);\n    if (DAT_0002d144 == 0 && DAT_0002d138 == 0) goto LAB_0001d623;\n    local_420 = (char *)0x0;\n    iVar3 = param_1[3];\n    if (iVar3 == 0) goto LAB_0001d623;\nLAB_0001d568:\n    iVar1 = DAT_0002d144;\n    pcVar9 = *(char **)(iVar3 + 4);\n    if (DAT_0002d140 == 0) {\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }\n    if (iVar1 == 0) {\n      sprintf((char *)local_41c," (%s:%d)");\n    }\n    else {\n      sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);\n    }\n    printf("%s",local_41c);\n    puVar8 = local_41c;\n    do {\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    } while (uVar6 == 0);\n    bVar10 = (uVar5 & 0x8080) == 0;\n    if (bVar10) {\n      uVar6 = uVar6 >> 0x10;\n    }\n    if (bVar10) {\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }\n    sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c);\n    if (local_420 == (char *)0x0) goto LAB_0001d623;\n  }" (else "else") (compound_statement "{\n    printf("%s",pcVar9);\n    sVar2 = strlen(pcVar9);\n    if (DAT_0002d144 == 0 && DAT_0002d138 == 0) goto LAB_0001d623;\n    local_420 = (char *)0x0;\n    iVar3 = param_1[3];\n    if (iVar3 == 0) goto LAB_0001d623;\nLAB_0001d568:\n    iVar1 = DAT_0002d144;\n    pcVar9 = *(char **)(iVar3 + 4);\n    if (DAT_0002d140 == 0) {\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }\n    if (iVar1 == 0) {\n      sprintf((char *)local_41c," (%s:%d)");\n    }\n    else {\n      sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);\n    }\n    printf("%s",local_41c);\n    puVar8 = local_41c;\n    do {\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    } while (uVar6 == 0);\n    bVar10 = (uVar5 & 0x8080) == 0;\n    if (bVar10) {\n      uVar6 = uVar6 >> 0x10;\n    }\n    if (bVar10) {\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }\n    sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c);\n    if (local_420 == (char *)0x0) goto LAB_0001d623;\n  }" ({ "{") (expression_statement "printf("%s",pcVar9);" (call_expression "printf("%s",pcVar9)" (identifier "printf") (argument_list "("%s",pcVar9)" (( "(") (string_literal ""%s"" (" """) (string_content "%s") (" """)) (, ",") (identifier "pcVar9") () ")"))) (; ";")) (expression_statement "sVar2 = strlen(pcVar9);" (assignment_expression "sVar2 = strlen(pcVar9)" (identifier "sVar2") (= "=") (call_expression "strlen(pcVar9)" (identifier "strlen") (argument_list "(pcVar9)" (( "(") (identifier "pcVar9") () ")")))) (; ";")) (if_statement "if (DAT_0002d144 == 0 && DAT_0002d138 == 0) goto LAB_0001d623;" (if "if") (parenthesized_expression "(DAT_0002d144 == 0 && DAT_0002d138 == 0)" (( "(") (binary_expression "DAT_0002d144 == 0 && DAT_0002d138 == 0" (binary_expression "DAT_0002d144 == 0" (identifier "DAT_0002d144") (== "==") (number_literal "0")) (&& "&&") (binary_expression "DAT_0002d138 == 0" (identifier "DAT_0002d138") (== "==") (number_literal "0"))) () ")")) (goto_statement "goto LAB_0001d623;" (goto "goto") (statement_identifier "LAB_0001d623") (; ";"))) (expression_statement "local_420 = (char *)0x0;" (assignment_expression "local_420 = (char *)0x0" (identifier "local_420") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar3 = param_1[3];" (assignment_expression "iVar3 = param_1[3]" (identifier "iVar3") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_0001d623;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001d623;" (goto "goto") (statement_identifier "LAB_0001d623") (; ";"))) (labeled_statement "LAB_0001d568:\n    iVar1 = DAT_0002d144;" (statement_identifier "LAB_0001d568") (: ":") (expression_statement "iVar1 = DAT_0002d144;" (assignment_expression "iVar1 = DAT_0002d144" (identifier "iVar1") (= "=") (identifier "DAT_0002d144")) (; ";"))) (expression_statement "pcVar9 = *(char **)(iVar3 + 4);" (assignment_expression "pcVar9 = *(char **)(iVar3 + 4)" (identifier "pcVar9") (= "=") (pointer_expression "*(char **)(iVar3 + 4)" (* "*") (cast_expression "(char **)(iVar3 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (DAT_0002d140 == 0) {\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }" (if "if") (parenthesized_expression "(DAT_0002d140 == 0)" (( "(") (binary_expression "DAT_0002d140 == 0" (identifier "DAT_0002d140") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar4 = strrchr(pcVar9,0x2f);\n      if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }\n    }" ({ "{") (expression_statement "pcVar4 = strrchr(pcVar9,0x2f);" (assignment_expression "pcVar4 = strrchr(pcVar9,0x2f)" (identifier "pcVar4") (= "=") (call_expression "strrchr(pcVar9,0x2f)" (identifier "strrchr") (argument_list "(pcVar9,0x2f)" (( "(") (identifier "pcVar9") (, ",") (number_literal "0x2f") () ")")))) (; ";")) (if_statement "if (pcVar4 != (char *)0x0) {\n        pcVar9 = pcVar4 + 1;\n      }" (if "if") (parenthesized_expression "(pcVar4 != (char *)0x0)" (( "(") (binary_expression "pcVar4 != (char *)0x0" (identifier "pcVar4") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        pcVar9 = pcVar4 + 1;\n      }" ({ "{") (expression_statement "pcVar9 = pcVar4 + 1;" (assignment_expression "pcVar9 = pcVar4 + 1" (identifier "pcVar9") (= "=") (binary_expression "pcVar4 + 1" (identifier "pcVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (iVar1 == 0) {\n      sprintf((char *)local_41c," (%s:%d)");\n    }\n    else {\n      sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);\n    }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      sprintf((char *)local_41c," (%s:%d)");\n    }" ({ "{") (expression_statement "sprintf((char *)local_41c," (%s:%d)");" (call_expression "sprintf((char *)local_41c," (%s:%d)")" (identifier "sprintf") (argument_list "((char *)local_41c," (%s:%d)")" (( "(") (cast_expression "(char *)local_41c" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_41c")) (, ",") (string_literal "" (%s:%d)"" (" """) (string_content " (%s:%d)") (" """)) () ")"))) (; ";")) (} "}")) (else_clause "else {\n      sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);\n    }" (else "else") (compound_statement "{\n      sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);\n    }" ({ "{") (expression_statement "sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);" (call_expression "sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1)" (identifier "sprintf") (argument_list "((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1)" (( "(") (cast_expression "(char *)local_41c" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_41c")) (, ",") (string_literal "" (%s:%d @ %lx)"" (" """) (string_content " (%s:%d @ %lx)") (" """)) (, ",") (identifier "pcVar9") (, ",") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (, ",") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")"))) (; ";")) (} "}")))) (expression_statement "printf("%s",local_41c);" (call_expression "printf("%s",local_41c)" (identifier "printf") (argument_list "("%s",local_41c)" (( "(") (string_literal ""%s"" (" """) (string_content "%s") (" """)) (, ",") (identifier "local_41c") () ")"))) (; ";")) (expression_statement "puVar8 = local_41c;" (assignment_expression "puVar8 = local_41c" (identifier "puVar8") (= "=") (identifier "local_41c")) (; ";")) (do_statement "do {\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    } while (uVar6 == 0);" (do "do") (compound_statement "{\n      puVar7 = puVar8;\n      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;\n      uVar6 = uVar5 & 0x80808080;\n      puVar8 = puVar7 + 1;\n    }" ({ "{") (expression_statement "puVar7 = puVar8;" (assignment_expression "puVar7 = puVar8" (identifier "puVar7") (= "=") (identifier "puVar8")) (; ";")) (expression_statement "uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;" (assignment_expression "uVar5 = *puVar7 + 0xfefefeff & ~*puVar7" (identifier "uVar5") (= "=") (binary_expression "*puVar7 + 0xfefefeff & ~*puVar7" (binary_expression "*puVar7 + 0xfefefeff" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (+ "+") (number_literal "0xfefefeff")) (& "&") (unary_expression "~*puVar7" (~ "~") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))))) (; ";")) (expression_statement "uVar6 = uVar5 & 0x80808080;" (assignment_expression "uVar6 = uVar5 & 0x80808080" (identifier "uVar6") (= "=") (binary_expression "uVar5 & 0x80808080" (identifier "uVar5") (& "&") (number_literal "0x80808080"))) (; ";")) (expression_statement "puVar8 = puVar7 + 1;" (assignment_expression "puVar8 = puVar7 + 1" (identifier "puVar8") (= "=") (binary_expression "puVar7 + 1" (identifier "puVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "bVar10 = (uVar5 & 0x8080) == 0;" (assignment_expression "bVar10 = (uVar5 & 0x8080) == 0" (identifier "bVar10") (= "=") (binary_expression "(uVar5 & 0x8080) == 0" (parenthesized_expression "(uVar5 & 0x8080)" (( "(") (binary_expression "uVar5 & 0x8080" (identifier "uVar5") (& "&") (number_literal "0x8080")) () ")")) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar10) {\n      uVar6 = uVar6 >> 0x10;\n    }" (if "if") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (compound_statement "{\n      uVar6 = uVar6 >> 0x10;\n    }" ({ "{") (expression_statement "uVar6 = uVar6 >> 0x10;" (assignment_expression "uVar6 = uVar6 >> 0x10" (identifier "uVar6") (= "=") (binary_expression "uVar6 >> 0x10" (identifier "uVar6") (>> ">>") (number_literal "0x10"))) (; ";")) (} "}"))) (if_statement "if (bVar10) {\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }" (if "if") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (compound_statement "{\n      puVar8 = (uint *)((int)puVar7 + 6);\n    }" ({ "{") (expression_statement "puVar8 = (uint *)((int)puVar7 + 6);" (assignment_expression "puVar8 = (uint *)((int)puVar7 + 6)" (identifier "puVar8") (= "=") (cast_expression "(uint *)((int)puVar7 + 6)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + 6)" (( "(") (binary_expression "(int)puVar7 + 6" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (number_literal "6")) () ")")))) (; ";")) (} "}"))) (expression_statement "sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c);" (assignment_expression "sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c)" (identifier "sVar2") (= "=") (binary_expression "(int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c)" (binary_expression "(int)puVar8 + sVar2" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (+ "+") (identifier "sVar2")) (+ "+") (parenthesized_expression "((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c)" (( "(") (binary_expression "(-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c" (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))" (( "(") (binary_expression "-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)" (number_literal "-3") (- "-") (cast_expression "(uint)CARRY1((byte)uVar6,(byte)uVar6)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY1((byte)uVar6,(byte)uVar6)" (identifier "CARRY1") (argument_list "((byte)uVar6,(byte)uVar6)" (( "(") (cast_expression "(byte)uVar6" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar6")) (, ",") (cast_expression "(byte)uVar6" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar6")) () ")"))))) () ")")) (- "-") (cast_expression "(int)local_41c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_41c"))) () ")")))) (; ";")) (if_statement "if (local_420 == (char *)0x0) goto LAB_0001d623;" (if "if") (parenthesized_expression "(local_420 == (char *)0x0)" (( "(") (binary_expression "local_420 == (char *)0x0" (identifier "local_420") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001d623;" (goto "goto") (statement_identifier "LAB_0001d623") (; ";"))) (} "}")))) (expression_statement "free(local_420);" (call_expression "free(local_420)" (identifier "free") (argument_list "(local_420)" (( "(") (identifier "local_420") () ")"))) (; ";")) (labeled_statement "LAB_0001d623:\n  if ((_DAT_0002d158 & 2) != 0) {\n    printf("{%d} ",param_1[0x25]);\n  }" (statement_identifier "LAB_0001d623") (: ":") (if_statement "if ((_DAT_0002d158 & 2) != 0) {\n    printf("{%d} ",param_1[0x25]);\n  }" (if "if") (parenthesized_expression "((_DAT_0002d158 & 2) != 0)" (( "(") (binary_expression "(_DAT_0002d158 & 2) != 0" (parenthesized_expression "(_DAT_0002d158 & 2)" (( "(") (binary_expression "_DAT_0002d158 & 2" (identifier "_DAT_0002d158") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    printf("{%d} ",param_1[0x25]);\n  }" ({ "{") (expression_statement "printf("{%d} ",param_1[0x25]);" (call_expression "printf("{%d} ",param_1[0x25])" (identifier "printf") (argument_list "("{%d} ",param_1[0x25])" (( "(") (string_literal ""{%d} "" (" """) (string_content "{%d} ") (" """)) (, ",") (subscript_expression "param_1[0x25]" (identifier "param_1") ([ "[") (number_literal "0x25") (] "]")) () ")"))) (; ";")) (} "}")))) (if_statement "if ((_DAT_0002d158 & 0x400) == 0) {\n    return sVar2;\n  }" (if "if") (parenthesized_expression "((_DAT_0002d158 & 0x400) == 0)" (( "(") (binary_expression "(_DAT_0002d158 & 0x400) == 0" (parenthesized_expression "(_DAT_0002d158 & 0x400)" (( "(") (binary_expression "_DAT_0002d158 & 0x400" (identifier "_DAT_0002d158") (& "&") (number_literal "0x400")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return sVar2;\n  }" ({ "{") (return_statement "return sVar2;" (return "return") (identifier "sVar2") (; ";")) (} "}"))) (expression_statement "printf("%4.0f%% ",(double)(_DAT_000211d8 * (float)*(double *)(param_1 + 0x27)));" (call_expression "printf("%4.0f%% ",(double)(_DAT_000211d8 * (float)*(double *)(param_1 + 0x27)))" (identifier "printf") (argument_list "("%4.0f%% ",(double)(_DAT_000211d8 * (float)*(double *)(param_1 + 0x27)))" (( "(") (string_literal ""%4.0f%% "" (" """) (string_content "%4.0f%% ") (" """)) (, ",") (cast_expression "(double)(_DAT_000211d8 * (float)*(double *)(param_1 + 0x27))" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "(_DAT_000211d8 * (float)*(double *)(param_1 + 0x27))" (( "(") (binary_expression "_DAT_000211d8 * (float)*(double *)(param_1 + 0x27)" (identifier "_DAT_000211d8") (* "*") (cast_expression "(float)*(double *)(param_1 + 0x27)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(param_1 + 0x27)" (* "*") (cast_expression "(double *)(param_1 + 0x27)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x27)" (( "(") (binary_expression "param_1 + 0x27" (identifier "param_1") (+ "+") (number_literal "0x27")) () ")")))))) () ")"))) () ")"))) (; ";")) (return_statement "return sVar2;" (return "return") (identifier "sVar2") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* WARNING: Unknown calling convention */

int function_1(type_1 *self)

{
  type_2 var_14;
  size_t var_19;
  type_3 *var_10;
  char *var_13;
  type_4 var_16;
  type_4 var_18;
  type_4 *var_17;
  type_4 *puVar8;
  char *var_1;
  bool bVar10;
  char *var_5;
  char buf [1024];
  
  var_1 = self->name;
  if (var_1 == (char *)0x0) {
    return 0;
  }
  if (((var_2 == 0) && (var_3 != 0)) &&
     (var_5 = (char *)var_4(core_bfd,var_1), var_5 != (char *)0x0)) {
    var_6("%s",var_5);
    var_19 = var_7(var_5);
    if ((var_8 != 0 || var_9 != 0) &&
       (var_10 = self->file, var_10 != (type_3 *)0x0)) goto LAB_0001d568;
  }
  else {
    var_6("%s",var_1);
    var_19 = var_7(var_1);
    if (var_8 == 0 && var_9 == 0) goto LAB_0001d623;
    var_5 = (char *)0x0;
    var_10 = self->file;
    if (var_10 == (type_3 *)0x0) goto LAB_0001d623;
LAB_0001d568:
    var_14 = var_8;
    var_1 = var_10->name;
    if (var_11 == 0) {
      var_13 = var_12(var_1,0x2f);
      if (var_13 != (char *)0x0) {
        var_1 = var_13 + 1;
      }
    }
    if (var_14 == 0) {
      var_15(buf," (%s:%d)");
    }
    else {
      var_15(buf," (%s:%d @ %lx)",var_1,self->line_num,self->addr);
    }
    var_6("%s",buf);
    puVar8 = (type_4 *)buf;
    do {
      var_17 = puVar8;
      var_16 = *var_17 + 0xfefefeff & ~*var_17;
      var_18 = var_16 & 0x80808080;
      puVar8 = var_17 + 1;
    } while (var_18 == 0);
    bVar10 = (var_16 & 0x8080) == 0;
    if (bVar10) {
      var_18 = var_18 >> 0x10;
    }
    if (bVar10) {
      puVar8 = (type_4 *)((int)var_17 + 6);
    }
    var_19 = (int)puVar8 + var_19 + ((-3 - (type_4)var_20((type_5)var_18,(type_5)var_18)) - (int)buf);
    if (var_5 == (char *)0x0) goto LAB_0001d623;
  }
  var_21(var_5);
LAB_0001d623:
  if ((var_22 & 2U) != 0) {
    var_6("{%d} ",(self->cg).top_order);
  }
  if ((var_22 & 0x400U) == 0) {
    return var_19;
  }
  var_6("%4.0f%% ",(double)(var_23 * (float)(self->cg).prop.fract));
  return var_19;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

size_t MASKED(undefined4 *param_1)

{
  int iVar1;
  size_t sVar2;
  int iVar3;
  char *pcVar4;
  uint uVar5;
  uint uVar6;
  uint *puVar7;
  uint *puVar8;
  char *pcVar9;
  bool bVar10;
  char *local_420;
  uint local_41c [258];
  undefined4 uStack_14;
  
  uStack_14 = 0x1d4dd;
  pcVar9 = (char *)param_1[2];
  if (pcVar9 == (char *)0x0) {
    return 0;
  }
  if (((DAT_0002d150 == 0) && (DAT_0002c1c4 != 0)) &&
     (local_420 = (char *)bfd_demangle(DAT_0002d478,pcVar9), local_420 != (char *)0x0)) {
    printf("%s",local_420);
    sVar2 = strlen(local_420);
    if ((DAT_0002d144 != 0 || DAT_0002d138 != 0) && (iVar3 = param_1[3], iVar3 != 0))
    goto LAB_0001d568;
  }
  else {
    printf("%s",pcVar9);
    sVar2 = strlen(pcVar9);
    if (DAT_0002d144 == 0 && DAT_0002d138 == 0) goto LAB_0001d623;
    local_420 = (char *)0x0;
    iVar3 = param_1[3];
    if (iVar3 == 0) goto LAB_0001d623;
LAB_0001d568:
    iVar1 = DAT_0002d144;
    pcVar9 = *(char **)(iVar3 + 4);
    if (DAT_0002d140 == 0) {
      pcVar4 = strrchr(pcVar9,0x2f);
      if (pcVar4 != (char *)0x0) {
        pcVar9 = pcVar4 + 1;
      }
    }
    if (iVar1 == 0) {
      sprintf((char *)local_41c," (%s:%d)");
    }
    else {
      sprintf((char *)local_41c," (%s:%d @ %lx)",pcVar9,param_1[4],*param_1);
    }
    printf("%s",local_41c);
    puVar8 = local_41c;
    do {
      puVar7 = puVar8;
      uVar5 = *puVar7 + 0xfefefeff & ~*puVar7;
      uVar6 = uVar5 & 0x80808080;
      puVar8 = puVar7 + 1;
    } while (uVar6 == 0);
    bVar10 = (uVar5 & 0x8080) == 0;
    if (bVar10) {
      uVar6 = uVar6 >> 0x10;
    }
    if (bVar10) {
      puVar8 = (uint *)((int)puVar7 + 6);
    }
    sVar2 = (int)puVar8 + sVar2 + ((-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)) - (int)local_41c);
    if (local_420 == (char *)0x0) goto LAB_0001d623;
  }
  free(local_420);
LAB_0001d623:
  if ((_DAT_0002d158 & 2) != 0) {
    printf("{%d} ",param_1[0x25]);
  }
  if ((_DAT_0002d158 & 0x400) == 0) {
    return sVar2;
  }
  printf("%4.0f%% ",(double)(_DAT_000211d8 * (float)*(double *)(param_1 + 0x27)));
  return sVar2;
}

