
bfd_boolean tg_start_block(void *p,bfd_vma addr)

{
  pr_handle *info_00;
  undefined8 uVar1;
  undefined8 uVar2;
  long lVar3;
  bfd_boolean bVar4;
  char *pcVar5;
  char *__ptr;
  pr_handle *info;
  FILE *pFVar6;
  char cVar7;
  char ab [22];
  
  if (*(int *)((long)p + 0x18) < 1) {
    return 1;
  }
  *(undefined4 *)((long)p + 0x18) = 0;
                    /* WARNING: Load size is inaccurate */
  fprintf(*p,"%s\t%s\t",*(undefined8 *)(*(long *)((long)p + 0x10) + 0x28),
          *(undefined8 *)((long)p + 0x20));
  free(*(void **)(*(long *)((long)p + 0x10) + 0x28));
  sprintf(ab,"0x%lx",addr);
  uVar1 = *(undefined8 *)((long)p + 0x30);
  uVar2 = *(undefined8 *)((long)p + 0x28);
                    /* WARNING: Load size is inaccurate */
  pFVar6 = *p;
  pc = bfd_scan_vma(ab,0,0x10);
  found = 0;
  bfd_map_over_sections(uVar2,find_address_in_section,uVar1);
  if (found == 0) {
    fwrite(&DAT_0013d55f,1,2,pFVar6);
  }
  else {
    fprintf(pFVar6,"%u",(ulong)line);
  }
  info_00 = (pr_handle *)((long)p + 0x10);
  __ptr = *(char **)(*(long *)((long)p + 0x10) + 0x18);
  lVar3 = *(long *)(*(long *)((long)p + 0x10) + 0x20);
  if (__ptr == (char *)0x0) {
    bVar4 = append_type(info_00,")");
    if (bVar4 == 0) {
      return 0;
    }
  }
  else {
    cVar7 = 'm';
    if (*__ptr != '\0') {
      pcVar5 = pop_type(info_00);
      goto joined_r0x00129813;
    }
  }
  __ptr = (char *)0x0;
  cVar7 = 'f';
  pcVar5 = pop_type(info_00);
joined_r0x00129813:
  if (pcVar5 == (char *)0x0) {
    return 0;
  }
                    /* WARNING: Load size is inaccurate */
  fprintf(*p,";\"\tkind:%c\ttype:%s",(ulong)(uint)(int)cVar7,pcVar5);
  if (lVar3 != 0) {
                    /* WARNING: Load size is inaccurate */
    fwrite("\tfile:",1,6,*p);
  }
                    /* WARNING: Load size is inaccurate */
  pFVar6 = *p;
  if (__ptr != (char *)0x0) {
    fprintf(pFVar6,"\tclass:%s",__ptr);
    free(__ptr);
                    /* WARNING: Load size is inaccurate */
    pFVar6 = *p;
  }
  fputc(10,pFVar6);
  return 1;
}



undefined8 FUN_00129640(undefined8 *param_1,undefined8 param_2)

{
  undefined8 *puVar1;
  undefined8 uVar2;
  undefined8 uVar3;
  long lVar4;
  int iVar5;
  long lVar6;
  char *__ptr;
  FILE *pFVar7;
  char cVar8;
  char acStack_48 [32];
  
  if (*(int *)(param_1 + 3) < 1) {
    return 1;
  }
  *(undefined4 *)(param_1 + 3) = 0;
  fprintf((FILE *)*param_1,"%s\t%s\t",*(undefined8 *)(param_1[2] + 0x28),param_1[4]);
  free(*(void **)(param_1[2] + 0x28));
  sprintf(acStack_48,"0x%lx",param_2);
  uVar2 = param_1[6];
  uVar3 = param_1[5];
  pFVar7 = (FILE *)*param_1;
  DAT_00159bf8 = bfd_scan_vma(acStack_48,0,0x10);
  DAT_00159be0 = 0;
  bfd_map_over_sections(uVar3,FUN_001268b0,uVar2);
  if (DAT_00159be0 == 0) {
    fwrite(&DAT_0013d55f,1,2,pFVar7);
  }
  else {
    fprintf(pFVar7,"%u",(ulong)DAT_00159be4);
  }
  puVar1 = param_1 + 2;
  __ptr = *(char **)(param_1[2] + 0x18);
  lVar4 = *(long *)(param_1[2] + 0x20);
  if (__ptr == (char *)0x0) {
    iVar5 = FUN_00127080(puVar1,")");
    if (iVar5 == 0) {
      return 0;
    }
  }
  else {
    cVar8 = 'm';
    if (*__ptr != '\0') {
      lVar6 = FUN_00126930(puVar1);
      goto joined_r0x00129813;
    }
  }
  __ptr = (char *)0x0;
  cVar8 = 'f';
  lVar6 = FUN_00126930(puVar1);
joined_r0x00129813:
  if (lVar6 == 0) {
    return 0;
  }
  fprintf((FILE *)*param_1,";\"\tkind:%c\ttype:%s",(ulong)(uint)(int)cVar8,lVar6);
  if (lVar4 != 0) {
    fwrite("\tfile:",1,6,(FILE *)*param_1);
  }
  pFVar7 = (FILE *)*param_1;
  if (__ptr != (char *)0x0) {
    fprintf(pFVar7,"\tclass:%s",__ptr);
    free(__ptr);
    pFVar7 = (FILE *)*param_1;
  }
  fputc(10,pFVar7);
  return 1;
}


MOV EDX,dword ptr [RDI + 0x18]
MOV EAX,0x1
TEST EDX,EDX
JG 0x00129650
RET
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
MOV RBP,RSI
LEA RSI,[0x1459ef]
PUSH RBX
MOV RBX,RDI
SUB RSP,0x20
MOV RAX,qword ptr [RDI + 0x10]
MOV dword ptr [RDI + 0x18],0x0
MOV RCX,qword ptr [RDI + 0x20]
MOV RDI,qword ptr [RDI]
MOV R12,RSP
MOV RDX,qword ptr [RAX + 0x28]
XOR EAX,EAX
CALL 0x00107850
MOV RAX,qword ptr [RBX + 0x10]
MOV RDI,qword ptr [RAX + 0x28]
CALL 0x00107070
MOV RDX,RBP
MOV RDI,R12
XOR EAX,EAX
LEA RSI,[0x14789b]
CALL 0x00107760
MOV R14,qword ptr [RBX + 0x30]
MOV R13,qword ptr [RBX + 0x28]
XOR ESI,ESI
MOV EDX,0x10
MOV RDI,R12
MOV RBP,qword ptr [RBX]
CALL 0x00107080
MOV RDX,R14
LEA RSI,[0x1268b0]
MOV RDI,R13
MOV qword ptr [0x00159bf8],RAX
MOV dword ptr [0x00159be0],0x0
CALL 0x001077d0
MOV EAX,dword ptr [0x00159be0]
TEST EAX,EAX
JNZ 0x001297c8
MOV RCX,RBP
MOV EDX,0x2
MOV ESI,0x1
LEA RDI,[0x13d55f]
CALL 0x00107780
MOV RAX,qword ptr [RBX + 0x10]
LEA R14,[RBX + 0x10]
MOV RBP,qword ptr [RAX + 0x18]
MOV R13,qword ptr [RAX + 0x20]
TEST RBP,RBP
JZ 0x001297e8
CMP byte ptr [RBP],0x0
MOV R12D,0x6d
JZ 0x00129800
MOV RDI,R14
CALL 0x00126930
TEST RAX,RAX
JZ 0x00129819
MOV RDI,qword ptr [RBX]
MOV RCX,RAX
XOR EAX,EAX
MOVSX EDX,R12B
LEA RSI,[0x1459f6]
CALL 0x00107850
TEST R13,R13
JZ 0x0012977e
MOV RCX,qword ptr [RBX]
MOV EDX,0x6
MOV ESI,0x1
LEA RDI,[0x1457ce]
CALL 0x00107780
MOV RDI,qword ptr [RBX]
TEST RBP,RBP
JZ 0x001297a2
MOV RDX,RBP
LEA RSI,[0x1457e0]
XOR EAX,EAX
CALL 0x00107850
MOV RDI,RBP
CALL 0x00107070
MOV RDI,qword ptr [RBX]
MOV RSI,RDI
MOV EDI,0xa
CALL 0x001073b0
ADD RSP,0x20
MOV EAX,0x1
POP RBX
POP RBP
POP R12
POP R13
POP R14
RET
MOV EDX,dword ptr [0x00159be4]
LEA RSI,[0x14594c]
MOV RDI,RBP
XOR EAX,EAX
CALL 0x00107850
JMP 0x0012970e
LEA RSI,[0x142459]
MOV RDI,R14
CALL 0x00127080
TEST EAX,EAX
JZ 0x00129819
NOP dword ptr [RAX + RAX*0x1]
MOV RDI,R14
XOR EBP,EBP
MOV R12D,0x66
CALL 0x00126930
TEST RAX,RAX
JNZ 0x00129748
ADD RSP,0x20
XOR EAX,EAX
POP RBX
POP RBP
POP R12
POP R13
POP R14
RET
(translation_unit "undefined8 FUN_00129640(undefined8 *param_1,undefined8 param_2)\n\n{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  long lVar4;\n  int iVar5;\n  long lVar6;\n  char *__ptr;\n  FILE *pFVar7;\n  char cVar8;\n  char acStack_48 [32];\n  \n  if (*(int *)(param_1 + 3) < 1) {\n    return 1;\n  }\n  *(undefined4 *)(param_1 + 3) = 0;\n  fprintf((FILE *)*param_1,"%s\t%s\t",*(undefined8 *)(param_1[2] + 0x28),param_1[4]);\n  free(*(void **)(param_1[2] + 0x28));\n  sprintf(acStack_48,"0x%lx",param_2);\n  uVar2 = param_1[6];\n  uVar3 = param_1[5];\n  pFVar7 = (FILE *)*param_1;\n  DAT_00159bf8 = bfd_scan_vma(acStack_48,0,0x10);\n  DAT_00159be0 = 0;\n  bfd_map_over_sections(uVar3,FUN_001268b0,uVar2);\n  if (DAT_00159be0 == 0) {\n    fwrite(&DAT_0013d55f,1,2,pFVar7);\n  }\n  else {\n    fprintf(pFVar7,"%u",(ulong)DAT_00159be4);\n  }\n  puVar1 = param_1 + 2;\n  __ptr = *(char **)(param_1[2] + 0x18);\n  lVar4 = *(long *)(param_1[2] + 0x20);\n  if (__ptr == (char *)0x0) {\n    iVar5 = FUN_00127080(puVar1,")");\n    if (iVar5 == 0) {\n      return 0;\n    }\n  }\n  else {\n    cVar8 = 'm';\n    if (*__ptr != '\0') {\n      lVar6 = FUN_00126930(puVar1);\n      goto joined_r0x00129813;\n    }\n  }\n  __ptr = (char *)0x0;\n  cVar8 = 'f';\n  lVar6 = FUN_00126930(puVar1);\njoined_r0x00129813:\n  if (lVar6 == 0) {\n    return 0;\n  }\n  fprintf((FILE *)*param_1,";\"\tkind:%c\ttype:%s",(ulong)(uint)(int)cVar8,lVar6);\n  if (lVar4 != 0) {\n    fwrite("\tfile:",1,6,(FILE *)*param_1);\n  }\n  pFVar7 = (FILE *)*param_1;\n  if (__ptr != (char *)0x0) {\n    fprintf(pFVar7,"\tclass:%s",__ptr);\n    free(__ptr);\n    pFVar7 = (FILE *)*param_1;\n  }\n  fputc(10,pFVar7);\n  return 1;\n}\n\n" (function_definition "undefined8 FUN_00129640(undefined8 *param_1,undefined8 param_2)\n\n{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  long lVar4;\n  int iVar5;\n  long lVar6;\n  char *__ptr;\n  FILE *pFVar7;\n  char cVar8;\n  char acStack_48 [32];\n  \n  if (*(int *)(param_1 + 3) < 1) {\n    return 1;\n  }\n  *(undefined4 *)(param_1 + 3) = 0;\n  fprintf((FILE *)*param_1,"%s\t%s\t",*(undefined8 *)(param_1[2] + 0x28),param_1[4]);\n  free(*(void **)(param_1[2] + 0x28));\n  sprintf(acStack_48,"0x%lx",param_2);\n  uVar2 = param_1[6];\n  uVar3 = param_1[5];\n  pFVar7 = (FILE *)*param_1;\n  DAT_00159bf8 = bfd_scan_vma(acStack_48,0,0x10);\n  DAT_00159be0 = 0;\n  bfd_map_over_sections(uVar3,FUN_001268b0,uVar2);\n  if (DAT_00159be0 == 0) {\n    fwrite(&DAT_0013d55f,1,2,pFVar7);\n  }\n  else {\n    fprintf(pFVar7,"%u",(ulong)DAT_00159be4);\n  }\n  puVar1 = param_1 + 2;\n  __ptr = *(char **)(param_1[2] + 0x18);\n  lVar4 = *(long *)(param_1[2] + 0x20);\n  if (__ptr == (char *)0x0) {\n    iVar5 = FUN_00127080(puVar1,")");\n    if (iVar5 == 0) {\n      return 0;\n    }\n  }\n  else {\n    cVar8 = 'm';\n    if (*__ptr != '\0') {\n      lVar6 = FUN_00126930(puVar1);\n      goto joined_r0x00129813;\n    }\n  }\n  __ptr = (char *)0x0;\n  cVar8 = 'f';\n  lVar6 = FUN_00126930(puVar1);\njoined_r0x00129813:\n  if (lVar6 == 0) {\n    return 0;\n  }\n  fprintf((FILE *)*param_1,";\"\tkind:%c\ttype:%s",(ulong)(uint)(int)cVar8,lVar6);\n  if (lVar4 != 0) {\n    fwrite("\tfile:",1,6,(FILE *)*param_1);\n  }\n  pFVar7 = (FILE *)*param_1;\n  if (__ptr != (char *)0x0) {\n    fprintf(pFVar7,"\tclass:%s",__ptr);\n    free(__ptr);\n    pFVar7 = (FILE *)*param_1;\n  }\n  fputc(10,pFVar7);\n  return 1;\n}" type_identifier (function_declarator "FUN_00129640(undefined8 *param_1,undefined8 param_2)" identifier (parameter_list "(undefined8 *param_1,undefined8 param_2)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) ))) (compound_statement "{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  long lVar4;\n  int iVar5;\n  long lVar6;\n  char *__ptr;\n  FILE *pFVar7;\n  char cVar8;\n  char acStack_48 [32];\n  \n  if (*(int *)(param_1 + 3) < 1) {\n    return 1;\n  }\n  *(undefined4 *)(param_1 + 3) = 0;\n  fprintf((FILE *)*param_1,"%s\t%s\t",*(undefined8 *)(param_1[2] + 0x28),param_1[4]);\n  free(*(void **)(param_1[2] + 0x28));\n  sprintf(acStack_48,"0x%lx",param_2);\n  uVar2 = param_1[6];\n  uVar3 = param_1[5];\n  pFVar7 = (FILE *)*param_1;\n  DAT_00159bf8 = bfd_scan_vma(acStack_48,0,0x10);\n  DAT_00159be0 = 0;\n  bfd_map_over_sections(uVar3,FUN_001268b0,uVar2);\n  if (DAT_00159be0 == 0) {\n    fwrite(&DAT_0013d55f,1,2,pFVar7);\n  }\n  else {\n    fprintf(pFVar7,"%u",(ulong)DAT_00159be4);\n  }\n  puVar1 = param_1 + 2;\n  __ptr = *(char **)(param_1[2] + 0x18);\n  lVar4 = *(long *)(param_1[2] + 0x20);\n  if (__ptr == (char *)0x0) {\n    iVar5 = FUN_00127080(puVar1,")");\n    if (iVar5 == 0) {\n      return 0;\n    }\n  }\n  else {\n    cVar8 = 'm';\n    if (*__ptr != '\0') {\n      lVar6 = FUN_00126930(puVar1);\n      goto joined_r0x00129813;\n    }\n  }\n  __ptr = (char *)0x0;\n  cVar8 = 'f';\n  lVar6 = FUN_00126930(puVar1);\njoined_r0x00129813:\n  if (lVar6 == 0) {\n    return 0;\n  }\n  fprintf((FILE *)*param_1,";\"\tkind:%c\ttype:%s",(ulong)(uint)(int)cVar8,lVar6);\n  if (lVar4 != 0) {\n    fwrite("\tfile:",1,6,(FILE *)*param_1);\n  }\n  pFVar7 = (FILE *)*param_1;\n  if (__ptr != (char *)0x0) {\n    fprintf(pFVar7,"\tclass:%s",__ptr);\n    free(__ptr);\n    pFVar7 = (FILE *)*param_1;\n  }\n  fputc(10,pFVar7);\n  return 1;\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "char *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "FILE *pFVar7;" type_identifier (pointer_declarator "*pFVar7" * identifier) ;) (declaration "char cVar8;" primitive_type identifier ;) (declaration "char acStack_48 [32];" primitive_type (array_declarator "acStack_48 [32]" identifier [ number_literal ]) ;) (if_statement "if (*(int *)(param_1 + 3) < 1) {\n    return 1;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 3) < 1)" ( (binary_expression "*(int *)(param_1 + 3) < 1" (pointer_expression "*(int *)(param_1 + 3)" * (cast_expression "(int *)(param_1 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "*(undefined4 *)(param_1 + 3) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 3) = 0" (pointer_expression "*(undefined4 *)(param_1 + 3)" * (cast_expression "(undefined4 *)(param_1 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "fprintf((FILE *)*param_1,"%s\t%s\t",*(undefined8 *)(param_1[2] + 0x28),param_1[4]);" (call_expression "fprintf((FILE *)*param_1,"%s\t%s\t",*(undefined8 *)(param_1[2] + 0x28),param_1[4])" identifier (argument_list "((FILE *)*param_1,"%s\t%s\t",*(undefined8 *)(param_1[2] + 0x28),param_1[4])" ( (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) , (string_literal ""%s\t%s\t"" " string_content escape_sequence string_content escape_sequence ") , (pointer_expression "*(undefined8 *)(param_1[2] + 0x28)" * (cast_expression "(undefined8 *)(param_1[2] + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + 0x28)" ( (binary_expression "param_1[2] + 0x28" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) )))) , (subscript_expression "param_1[4]" identifier [ number_literal ]) ))) ;) (expression_statement "free(*(void **)(param_1[2] + 0x28));" (call_expression "free(*(void **)(param_1[2] + 0x28))" identifier (argument_list "(*(void **)(param_1[2] + 0x28))" ( (pointer_expression "*(void **)(param_1[2] + 0x28)" * (cast_expression "(void **)(param_1[2] + 0x28)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[2] + 0x28)" ( (binary_expression "param_1[2] + 0x28" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) )))) ))) ;) (expression_statement "sprintf(acStack_48,"0x%lx",param_2);" (call_expression "sprintf(acStack_48,"0x%lx",param_2)" identifier (argument_list "(acStack_48,"0x%lx",param_2)" ( identifier , (string_literal ""0x%lx"" " string_content ") , identifier ))) ;) (expression_statement "uVar2 = param_1[6];" (assignment_expression "uVar2 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = param_1[5];" (assignment_expression "uVar3 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "pFVar7 = (FILE *)*param_1;" (assignment_expression "pFVar7 = (FILE *)*param_1" identifier = (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "DAT_00159bf8 = bfd_scan_vma(acStack_48,0,0x10);" (assignment_expression "DAT_00159bf8 = bfd_scan_vma(acStack_48,0,0x10)" identifier = (call_expression "bfd_scan_vma(acStack_48,0,0x10)" identifier (argument_list "(acStack_48,0,0x10)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "DAT_00159be0 = 0;" (assignment_expression "DAT_00159be0 = 0" identifier = number_literal) ;) (expression_statement "bfd_map_over_sections(uVar3,FUN_001268b0,uVar2);" (call_expression "bfd_map_over_sections(uVar3,FUN_001268b0,uVar2)" identifier (argument_list "(uVar3,FUN_001268b0,uVar2)" ( identifier , identifier , identifier ))) ;) (if_statement "if (DAT_00159be0 == 0) {\n    fwrite(&DAT_0013d55f,1,2,pFVar7);\n  }\n  else {\n    fprintf(pFVar7,"%u",(ulong)DAT_00159be4);\n  }" if (parenthesized_expression "(DAT_00159be0 == 0)" ( (binary_expression "DAT_00159be0 == 0" identifier == number_literal) )) (compound_statement "{\n    fwrite(&DAT_0013d55f,1,2,pFVar7);\n  }" { (expression_statement "fwrite(&DAT_0013d55f,1,2,pFVar7);" (call_expression "fwrite(&DAT_0013d55f,1,2,pFVar7)" identifier (argument_list "(&DAT_0013d55f,1,2,pFVar7)" ( (pointer_expression "&DAT_0013d55f" & identifier) , number_literal , number_literal , identifier ))) ;) }) (else_clause "else {\n    fprintf(pFVar7,"%u",(ulong)DAT_00159be4);\n  }" else (compound_statement "{\n    fprintf(pFVar7,"%u",(ulong)DAT_00159be4);\n  }" { (expression_statement "fprintf(pFVar7,"%u",(ulong)DAT_00159be4);" (call_expression "fprintf(pFVar7,"%u",(ulong)DAT_00159be4)" identifier (argument_list "(pFVar7,"%u",(ulong)DAT_00159be4)" ( identifier , (string_literal ""%u"" " string_content ") , (cast_expression "(ulong)DAT_00159be4" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) }))) (expression_statement "puVar1 = param_1 + 2;" (assignment_expression "puVar1 = param_1 + 2" identifier = (binary_expression "param_1 + 2" identifier + number_literal)) ;) (expression_statement "__ptr = *(char **)(param_1[2] + 0x18);" (assignment_expression "__ptr = *(char **)(param_1[2] + 0x18)" identifier = (pointer_expression "*(char **)(param_1[2] + 0x18)" * (cast_expression "(char **)(param_1[2] + 0x18)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[2] + 0x18)" ( (binary_expression "param_1[2] + 0x18" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "lVar4 = *(long *)(param_1[2] + 0x20);" (assignment_expression "lVar4 = *(long *)(param_1[2] + 0x20)" identifier = (pointer_expression "*(long *)(param_1[2] + 0x20)" * (cast_expression "(long *)(param_1[2] + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + 0x20)" ( (binary_expression "param_1[2] + 0x20" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) ))))) ;) (if_statement "if (__ptr == (char *)0x0) {\n    iVar5 = FUN_00127080(puVar1,")");\n    if (iVar5 == 0) {\n      return 0;\n    }\n  }\n  else {\n    cVar8 = 'm';\n    if (*__ptr != '\0') {\n      lVar6 = FUN_00126930(puVar1);\n      goto joined_r0x00129813;\n    }\n  }" if (parenthesized_expression "(__ptr == (char *)0x0)" ( (binary_expression "__ptr == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar5 = FUN_00127080(puVar1,")");\n    if (iVar5 == 0) {\n      return 0;\n    }\n  }" { (expression_statement "iVar5 = FUN_00127080(puVar1,")");" (assignment_expression "iVar5 = FUN_00127080(puVar1,")")" identifier = (call_expression "FUN_00127080(puVar1,")")" identifier (argument_list "(puVar1,")")" ( identifier , (string_literal "")"" " string_content ") )))) ;) (if_statement "if (iVar5 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n    cVar8 = 'm';\n    if (*__ptr != '\0') {\n      lVar6 = FUN_00126930(puVar1);\n      goto joined_r0x00129813;\n    }\n  }" else (compound_statement "{\n    cVar8 = 'm';\n    if (*__ptr != '\0') {\n      lVar6 = FUN_00126930(puVar1);\n      goto joined_r0x00129813;\n    }\n  }" { (expression_statement "cVar8 = 'm';" (assignment_expression "cVar8 = 'm'" identifier = (char_literal "'m'" ' character ')) ;) (if_statement "if (*__ptr != '\0') {\n      lVar6 = FUN_00126930(puVar1);\n      goto joined_r0x00129813;\n    }" if (parenthesized_expression "(*__ptr != '\0')" ( (binary_expression "*__ptr != '\0'" (pointer_expression "*__ptr" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      lVar6 = FUN_00126930(puVar1);\n      goto joined_r0x00129813;\n    }" { (expression_statement "lVar6 = FUN_00126930(puVar1);" (assignment_expression "lVar6 = FUN_00126930(puVar1)" identifier = (call_expression "FUN_00126930(puVar1)" identifier (argument_list "(puVar1)" ( identifier )))) ;) (goto_statement "goto joined_r0x00129813;" goto statement_identifier ;) })) }))) (expression_statement "__ptr = (char *)0x0;" (assignment_expression "__ptr = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "cVar8 = 'f';" (assignment_expression "cVar8 = 'f'" identifier = (char_literal "'f'" ' character ')) ;) (expression_statement "lVar6 = FUN_00126930(puVar1);" (assignment_expression "lVar6 = FUN_00126930(puVar1)" identifier = (call_expression "FUN_00126930(puVar1)" identifier (argument_list "(puVar1)" ( identifier )))) ;) (labeled_statement "joined_r0x00129813:\n  if (lVar6 == 0) {\n    return 0;\n  }" statement_identifier : (if_statement "if (lVar6 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(lVar6 == 0)" ( (binary_expression "lVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) }))) (expression_statement "fprintf((FILE *)*param_1,";\"\tkind:%c\ttype:%s",(ulong)(uint)(int)cVar8,lVar6);" (call_expression "fprintf((FILE *)*param_1,";\"\tkind:%c\ttype:%s",(ulong)(uint)(int)cVar8,lVar6)" identifier (argument_list "((FILE *)*param_1,";\"\tkind:%c\ttype:%s",(ulong)(uint)(int)cVar8,lVar6)" ( (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) , (string_literal "";\"\tkind:%c\ttype:%s"" " string_content escape_sequence escape_sequence string_content escape_sequence string_content ") , (cast_expression "(ulong)(uint)(int)cVar8" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)(int)cVar8" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(int)cVar8" ( (type_descriptor "int" primitive_type) ) identifier))) , identifier ))) ;) (if_statement "if (lVar4 != 0) {\n    fwrite("\tfile:",1,6,(FILE *)*param_1);\n  }" if (parenthesized_expression "(lVar4 != 0)" ( (binary_expression "lVar4 != 0" identifier != number_literal) )) (compound_statement "{\n    fwrite("\tfile:",1,6,(FILE *)*param_1);\n  }" { (expression_statement "fwrite("\tfile:",1,6,(FILE *)*param_1);" (call_expression "fwrite("\tfile:",1,6,(FILE *)*param_1)" identifier (argument_list "("\tfile:",1,6,(FILE *)*param_1)" ( (string_literal ""\tfile:"" " escape_sequence string_content ") , number_literal , number_literal , (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) ))) ;) })) (expression_statement "pFVar7 = (FILE *)*param_1;" (assignment_expression "pFVar7 = (FILE *)*param_1" identifier = (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (if_statement "if (__ptr != (char *)0x0) {\n    fprintf(pFVar7,"\tclass:%s",__ptr);\n    free(__ptr);\n    pFVar7 = (FILE *)*param_1;\n  }" if (parenthesized_expression "(__ptr != (char *)0x0)" ( (binary_expression "__ptr != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    fprintf(pFVar7,"\tclass:%s",__ptr);\n    free(__ptr);\n    pFVar7 = (FILE *)*param_1;\n  }" { (expression_statement "fprintf(pFVar7,"\tclass:%s",__ptr);" (call_expression "fprintf(pFVar7,"\tclass:%s",__ptr)" identifier (argument_list "(pFVar7,"\tclass:%s",__ptr)" ( identifier , (string_literal ""\tclass:%s"" " escape_sequence string_content ") , identifier ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "pFVar7 = (FILE *)*param_1;" (assignment_expression "pFVar7 = (FILE *)*param_1" identifier = (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) })) (expression_statement "fputc(10,pFVar7);" (call_expression "fputc(10,pFVar7)" identifier (argument_list "(10,pFVar7)" ( number_literal , identifier ))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "bfd_boolean tg_start_block(void *p,bfd_vma addr)\n\n{\n  pr_handle *info_00;\n  undefined8 uVar1;\n  undefined8 uVar2;\n  long lVar3;\n  bfd_boolean bVar4;\n  char *pcVar5;\n  char *__ptr;\n  pr_handle *info;\n  FILE *pFVar6;\n  char cVar7;\n  char ab [22];\n  \n  if (*(int *)((long)p + 0x18) < 1) {\n    return 1;\n  }\n  *(undefined4 *)((long)p + 0x18) = 0;\n                    /* WARNING: Load size is inaccurate */\n  fprintf(*p,"%s\t%s\t",*(undefined8 *)(*(long *)((long)p + 0x10) + 0x28),\n          *(undefined8 *)((long)p + 0x20));\n  free(*(void **)(*(long *)((long)p + 0x10) + 0x28));\n  sprintf(ab,"0x%lx",addr);\n  uVar1 = *(undefined8 *)((long)p + 0x30);\n  uVar2 = *(undefined8 *)((long)p + 0x28);\n                    /* WARNING: Load size is inaccurate */\n  pFVar6 = *p;\n  pc = bfd_scan_vma(ab,0,0x10);\n  found = 0;\n  bfd_map_over_sections(uVar2,find_address_in_section,uVar1);\n  if (found == 0) {\n    fwrite(&DAT_0013d55f,1,2,pFVar6);\n  }\n  else {\n    fprintf(pFVar6,"%u",(ulong)line);\n  }\n  info_00 = (pr_handle *)((long)p + 0x10);\n  __ptr = *(char **)(*(long *)((long)p + 0x10) + 0x18);\n  lVar3 = *(long *)(*(long *)((long)p + 0x10) + 0x20);\n  if (__ptr == (char *)0x0) {\n    bVar4 = append_type(info_00,")");\n    if (bVar4 == 0) {\n      return 0;\n    }\n  }\n  else {\n    cVar7 = 'm';\n    if (*__ptr != '\0') {\n      pcVar5 = pop_type(info_00);\n      goto joined_r0x00129813;\n    }\n  }\n  __ptr = (char *)0x0;\n  cVar7 = 'f';\n  pcVar5 = pop_type(info_00);\njoined_r0x00129813:\n  if (pcVar5 == (char *)0x0) {\n    return 0;\n  }\n                    /* WARNING: Load size is inaccurate */\n  fprintf(*p,";\"\tkind:%c\ttype:%s",(ulong)(uint)(int)cVar7,pcVar5);\n  if (lVar3 != 0) {\n                    /* WARNING: Load size is inaccurate */\n    fwrite("\tfile:",1,6,*p);\n  }\n                    /* WARNING: Load size is inaccurate */\n  pFVar6 = *p;\n  if (__ptr != (char *)0x0) {\n    fprintf(pFVar6,"\tclass:%s",__ptr);\n    free(__ptr);\n                    /* WARNING: Load size is inaccurate */\n    pFVar6 = *p;\n  }\n  fputc(10,pFVar6);\n  return 1;\n}\n\n" (function_definition "bfd_boolean tg_start_block(void *p,bfd_vma addr)\n\n{\n  pr_handle *info_00;\n  undefined8 uVar1;\n  undefined8 uVar2;\n  long lVar3;\n  bfd_boolean bVar4;\n  char *pcVar5;\n  char *__ptr;\n  pr_handle *info;\n  FILE *pFVar6;\n  char cVar7;\n  char ab [22];\n  \n  if (*(int *)((long)p + 0x18) < 1) {\n    return 1;\n  }\n  *(undefined4 *)((long)p + 0x18) = 0;\n                    /* WARNING: Load size is inaccurate */\n  fprintf(*p,"%s\t%s\t",*(undefined8 *)(*(long *)((long)p + 0x10) + 0x28),\n          *(undefined8 *)((long)p + 0x20));\n  free(*(void **)(*(long *)((long)p + 0x10) + 0x28));\n  sprintf(ab,"0x%lx",addr);\n  uVar1 = *(undefined8 *)((long)p + 0x30);\n  uVar2 = *(undefined8 *)((long)p + 0x28);\n                    /* WARNING: Load size is inaccurate */\n  pFVar6 = *p;\n  pc = bfd_scan_vma(ab,0,0x10);\n  found = 0;\n  bfd_map_over_sections(uVar2,find_address_in_section,uVar1);\n  if (found == 0) {\n    fwrite(&DAT_0013d55f,1,2,pFVar6);\n  }\n  else {\n    fprintf(pFVar6,"%u",(ulong)line);\n  }\n  info_00 = (pr_handle *)((long)p + 0x10);\n  __ptr = *(char **)(*(long *)((long)p + 0x10) + 0x18);\n  lVar3 = *(long *)(*(long *)((long)p + 0x10) + 0x20);\n  if (__ptr == (char *)0x0) {\n    bVar4 = append_type(info_00,")");\n    if (bVar4 == 0) {\n      return 0;\n    }\n  }\n  else {\n    cVar7 = 'm';\n    if (*__ptr != '\0') {\n      pcVar5 = pop_type(info_00);\n      goto joined_r0x00129813;\n    }\n  }\n  __ptr = (char *)0x0;\n  cVar7 = 'f';\n  pcVar5 = pop_type(info_00);\njoined_r0x00129813:\n  if (pcVar5 == (char *)0x0) {\n    return 0;\n  }\n                    /* WARNING: Load size is inaccurate */\n  fprintf(*p,";\"\tkind:%c\ttype:%s",(ulong)(uint)(int)cVar7,pcVar5);\n  if (lVar3 != 0) {\n                    /* WARNING: Load size is inaccurate */\n    fwrite("\tfile:",1,6,*p);\n  }\n                    /* WARNING: Load size is inaccurate */\n  pFVar6 = *p;\n  if (__ptr != (char *)0x0) {\n    fprintf(pFVar6,"\tclass:%s",__ptr);\n    free(__ptr);\n                    /* WARNING: Load size is inaccurate */\n    pFVar6 = *p;\n  }\n  fputc(10,pFVar6);\n  return 1;\n}" type_identifier (function_declarator "tg_start_block(void *p,bfd_vma addr)" identifier (parameter_list "(void *p,bfd_vma addr)" ( (parameter_declaration "void *p" primitive_type (pointer_declarator "*p" * identifier)) , (parameter_declaration "bfd_vma addr" type_identifier identifier) ))) (compound_statement "{\n  pr_handle *info_00;\n  undefined8 uVar1;\n  undefined8 uVar2;\n  long lVar3;\n  bfd_boolean bVar4;\n  char *pcVar5;\n  char *__ptr;\n  pr_handle *info;\n  FILE *pFVar6;\n  char cVar7;\n  char ab [22];\n  \n  if (*(int *)((long)p + 0x18) < 1) {\n    return 1;\n  }\n  *(undefined4 *)((long)p + 0x18) = 0;\n                    /* WARNING: Load size is inaccurate */\n  fprintf(*p,"%s\t%s\t",*(undefined8 *)(*(long *)((long)p + 0x10) + 0x28),\n          *(undefined8 *)((long)p + 0x20));\n  free(*(void **)(*(long *)((long)p + 0x10) + 0x28));\n  sprintf(ab,"0x%lx",addr);\n  uVar1 = *(undefined8 *)((long)p + 0x30);\n  uVar2 = *(undefined8 *)((long)p + 0x28);\n                    /* WARNING: Load size is inaccurate */\n  pFVar6 = *p;\n  pc = bfd_scan_vma(ab,0,0x10);\n  found = 0;\n  bfd_map_over_sections(uVar2,find_address_in_section,uVar1);\n  if (found == 0) {\n    fwrite(&DAT_0013d55f,1,2,pFVar6);\n  }\n  else {\n    fprintf(pFVar6,"%u",(ulong)line);\n  }\n  info_00 = (pr_handle *)((long)p + 0x10);\n  __ptr = *(char **)(*(long *)((long)p + 0x10) + 0x18);\n  lVar3 = *(long *)(*(long *)((long)p + 0x10) + 0x20);\n  if (__ptr == (char *)0x0) {\n    bVar4 = append_type(info_00,")");\n    if (bVar4 == 0) {\n      return 0;\n    }\n  }\n  else {\n    cVar7 = 'm';\n    if (*__ptr != '\0') {\n      pcVar5 = pop_type(info_00);\n      goto joined_r0x00129813;\n    }\n  }\n  __ptr = (char *)0x0;\n  cVar7 = 'f';\n  pcVar5 = pop_type(info_00);\njoined_r0x00129813:\n  if (pcVar5 == (char *)0x0) {\n    return 0;\n  }\n                    /* WARNING: Load size is inaccurate */\n  fprintf(*p,";\"\tkind:%c\ttype:%s",(ulong)(uint)(int)cVar7,pcVar5);\n  if (lVar3 != 0) {\n                    /* WARNING: Load size is inaccurate */\n    fwrite("\tfile:",1,6,*p);\n  }\n                    /* WARNING: Load size is inaccurate */\n  pFVar6 = *p;\n  if (__ptr != (char *)0x0) {\n    fprintf(pFVar6,"\tclass:%s",__ptr);\n    free(__ptr);\n                    /* WARNING: Load size is inaccurate */\n    pFVar6 = *p;\n  }\n  fputc(10,pFVar6);\n  return 1;\n}" { (declaration "pr_handle *info_00;" type_identifier (pointer_declarator "*info_00" * identifier) ;) (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "bfd_boolean bVar4;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "char *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "pr_handle *info;" type_identifier (pointer_declarator "*info" * identifier) ;) (declaration "FILE *pFVar6;" type_identifier (pointer_declarator "*pFVar6" * identifier) ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "char ab [22];" primitive_type (array_declarator "ab [22]" identifier [ number_literal ]) ;) (if_statement "if (*(int *)((long)p + 0x18) < 1) {\n    return 1;\n  }" if (parenthesized_expression "(*(int *)((long)p + 0x18) < 1)" ( (binary_expression "*(int *)((long)p + 0x18) < 1" (pointer_expression "*(int *)((long)p + 0x18)" * (cast_expression "(int *)((long)p + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p + 0x18)" ( (binary_expression "(long)p + 0x18" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) < number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "*(undefined4 *)((long)p + 0x18) = 0;" (assignment_expression "*(undefined4 *)((long)p + 0x18) = 0" (pointer_expression "*(undefined4 *)((long)p + 0x18)" * (cast_expression "(undefined4 *)((long)p + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p + 0x18)" ( (binary_expression "(long)p + 0x18" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) comment (expression_statement "fprintf(*p,"%s\t%s\t",*(undefined8 *)(*(long *)((long)p + 0x10) + 0x28),\n          *(undefined8 *)((long)p + 0x20));" (call_expression "fprintf(*p,"%s\t%s\t",*(undefined8 *)(*(long *)((long)p + 0x10) + 0x28),\n          *(undefined8 *)((long)p + 0x20))" identifier (argument_list "(*p,"%s\t%s\t",*(undefined8 *)(*(long *)((long)p + 0x10) + 0x28),\n          *(undefined8 *)((long)p + 0x20))" ( (pointer_expression "*p" * identifier) , (string_literal ""%s\t%s\t"" " string_content escape_sequence string_content escape_sequence ") , (pointer_expression "*(undefined8 *)(*(long *)((long)p + 0x10) + 0x28)" * (cast_expression "(undefined8 *)(*(long *)((long)p + 0x10) + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)((long)p + 0x10) + 0x28)" ( (binary_expression "*(long *)((long)p + 0x10) + 0x28" (pointer_expression "*(long *)((long)p + 0x10)" * (cast_expression "(long *)((long)p + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p + 0x10)" ( (binary_expression "(long)p + 0x10" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) )))) , (pointer_expression "*(undefined8 *)((long)p + 0x20)" * (cast_expression "(undefined8 *)((long)p + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p + 0x20)" ( (binary_expression "(long)p + 0x20" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ))) ;) (expression_statement "free(*(void **)(*(long *)((long)p + 0x10) + 0x28));" (call_expression "free(*(void **)(*(long *)((long)p + 0x10) + 0x28))" identifier (argument_list "(*(void **)(*(long *)((long)p + 0x10) + 0x28))" ( (pointer_expression "*(void **)(*(long *)((long)p + 0x10) + 0x28)" * (cast_expression "(void **)(*(long *)((long)p + 0x10) + 0x28)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)((long)p + 0x10) + 0x28)" ( (binary_expression "*(long *)((long)p + 0x10) + 0x28" (pointer_expression "*(long *)((long)p + 0x10)" * (cast_expression "(long *)((long)p + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p + 0x10)" ( (binary_expression "(long)p + 0x10" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) )))) ))) ;) (expression_statement "sprintf(ab,"0x%lx",addr);" (call_expression "sprintf(ab,"0x%lx",addr)" identifier (argument_list "(ab,"0x%lx",addr)" ( identifier , (string_literal ""0x%lx"" " string_content ") , identifier ))) ;) (expression_statement "uVar1 = *(undefined8 *)((long)p + 0x30);" (assignment_expression "uVar1 = *(undefined8 *)((long)p + 0x30)" identifier = (pointer_expression "*(undefined8 *)((long)p + 0x30)" * (cast_expression "(undefined8 *)((long)p + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p + 0x30)" ( (binary_expression "(long)p + 0x30" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar2 = *(undefined8 *)((long)p + 0x28);" (assignment_expression "uVar2 = *(undefined8 *)((long)p + 0x28)" identifier = (pointer_expression "*(undefined8 *)((long)p + 0x28)" * (cast_expression "(undefined8 *)((long)p + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p + 0x28)" ( (binary_expression "(long)p + 0x28" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) comment (expression_statement "pFVar6 = *p;" (assignment_expression "pFVar6 = *p" identifier = (pointer_expression "*p" * identifier)) ;) (expression_statement "pc = bfd_scan_vma(ab,0,0x10);" (assignment_expression "pc = bfd_scan_vma(ab,0,0x10)" identifier = (call_expression "bfd_scan_vma(ab,0,0x10)" identifier (argument_list "(ab,0,0x10)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "found = 0;" (assignment_expression "found = 0" identifier = number_literal) ;) (expression_statement "bfd_map_over_sections(uVar2,find_address_in_section,uVar1);" (call_expression "bfd_map_over_sections(uVar2,find_address_in_section,uVar1)" identifier (argument_list "(uVar2,find_address_in_section,uVar1)" ( identifier , identifier , identifier ))) ;) (if_statement "if (found == 0) {\n    fwrite(&DAT_0013d55f,1,2,pFVar6);\n  }\n  else {\n    fprintf(pFVar6,"%u",(ulong)line);\n  }" if (parenthesized_expression "(found == 0)" ( (binary_expression "found == 0" identifier == number_literal) )) (compound_statement "{\n    fwrite(&DAT_0013d55f,1,2,pFVar6);\n  }" { (expression_statement "fwrite(&DAT_0013d55f,1,2,pFVar6);" (call_expression "fwrite(&DAT_0013d55f,1,2,pFVar6)" identifier (argument_list "(&DAT_0013d55f,1,2,pFVar6)" ( (pointer_expression "&DAT_0013d55f" & identifier) , number_literal , number_literal , identifier ))) ;) }) (else_clause "else {\n    fprintf(pFVar6,"%u",(ulong)line);\n  }" else (compound_statement "{\n    fprintf(pFVar6,"%u",(ulong)line);\n  }" { (expression_statement "fprintf(pFVar6,"%u",(ulong)line);" (call_expression "fprintf(pFVar6,"%u",(ulong)line)" identifier (argument_list "(pFVar6,"%u",(ulong)line)" ( identifier , (string_literal ""%u"" " string_content ") , (cast_expression "(ulong)line" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) }))) (expression_statement "info_00 = (pr_handle *)((long)p + 0x10);" (assignment_expression "info_00 = (pr_handle *)((long)p + 0x10)" identifier = (cast_expression "(pr_handle *)((long)p + 0x10)" ( (type_descriptor "pr_handle *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p + 0x10)" ( (binary_expression "(long)p + 0x10" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "__ptr = *(char **)(*(long *)((long)p + 0x10) + 0x18);" (assignment_expression "__ptr = *(char **)(*(long *)((long)p + 0x10) + 0x18)" identifier = (pointer_expression "*(char **)(*(long *)((long)p + 0x10) + 0x18)" * (cast_expression "(char **)(*(long *)((long)p + 0x10) + 0x18)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)((long)p + 0x10) + 0x18)" ( (binary_expression "*(long *)((long)p + 0x10) + 0x18" (pointer_expression "*(long *)((long)p + 0x10)" * (cast_expression "(long *)((long)p + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p + 0x10)" ( (binary_expression "(long)p + 0x10" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "lVar3 = *(long *)(*(long *)((long)p + 0x10) + 0x20);" (assignment_expression "lVar3 = *(long *)(*(long *)((long)p + 0x10) + 0x20)" identifier = (pointer_expression "*(long *)(*(long *)((long)p + 0x10) + 0x20)" * (cast_expression "(long *)(*(long *)((long)p + 0x10) + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)((long)p + 0x10) + 0x20)" ( (binary_expression "*(long *)((long)p + 0x10) + 0x20" (pointer_expression "*(long *)((long)p + 0x10)" * (cast_expression "(long *)((long)p + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p + 0x10)" ( (binary_expression "(long)p + 0x10" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (__ptr == (char *)0x0) {\n    bVar4 = append_type(info_00,")");\n    if (bVar4 == 0) {\n      return 0;\n    }\n  }\n  else {\n    cVar7 = 'm';\n    if (*__ptr != '\0') {\n      pcVar5 = pop_type(info_00);\n      goto joined_r0x00129813;\n    }\n  }" if (parenthesized_expression "(__ptr == (char *)0x0)" ( (binary_expression "__ptr == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    bVar4 = append_type(info_00,")");\n    if (bVar4 == 0) {\n      return 0;\n    }\n  }" { (expression_statement "bVar4 = append_type(info_00,")");" (assignment_expression "bVar4 = append_type(info_00,")")" identifier = (call_expression "append_type(info_00,")")" identifier (argument_list "(info_00,")")" ( identifier , (string_literal "")"" " string_content ") )))) ;) (if_statement "if (bVar4 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n    cVar7 = 'm';\n    if (*__ptr != '\0') {\n      pcVar5 = pop_type(info_00);\n      goto joined_r0x00129813;\n    }\n  }" else (compound_statement "{\n    cVar7 = 'm';\n    if (*__ptr != '\0') {\n      pcVar5 = pop_type(info_00);\n      goto joined_r0x00129813;\n    }\n  }" { (expression_statement "cVar7 = 'm';" (assignment_expression "cVar7 = 'm'" identifier = (char_literal "'m'" ' character ')) ;) (if_statement "if (*__ptr != '\0') {\n      pcVar5 = pop_type(info_00);\n      goto joined_r0x00129813;\n    }" if (parenthesized_expression "(*__ptr != '\0')" ( (binary_expression "*__ptr != '\0'" (pointer_expression "*__ptr" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pcVar5 = pop_type(info_00);\n      goto joined_r0x00129813;\n    }" { (expression_statement "pcVar5 = pop_type(info_00);" (assignment_expression "pcVar5 = pop_type(info_00)" identifier = (call_expression "pop_type(info_00)" identifier (argument_list "(info_00)" ( identifier )))) ;) (goto_statement "goto joined_r0x00129813;" goto statement_identifier ;) })) }))) (expression_statement "__ptr = (char *)0x0;" (assignment_expression "__ptr = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "cVar7 = 'f';" (assignment_expression "cVar7 = 'f'" identifier = (char_literal "'f'" ' character ')) ;) (expression_statement "pcVar5 = pop_type(info_00);" (assignment_expression "pcVar5 = pop_type(info_00)" identifier = (call_expression "pop_type(info_00)" identifier (argument_list "(info_00)" ( identifier )))) ;) (labeled_statement "joined_r0x00129813:\n  if (pcVar5 == (char *)0x0) {\n    return 0;\n  }" statement_identifier : (if_statement "if (pcVar5 == (char *)0x0) {\n    return 0;\n  }" if (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (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 ;) }))) comment (expression_statement "fprintf(*p,";\"\tkind:%c\ttype:%s",(ulong)(uint)(int)cVar7,pcVar5);" (call_expression "fprintf(*p,";\"\tkind:%c\ttype:%s",(ulong)(uint)(int)cVar7,pcVar5)" identifier (argument_list "(*p,";\"\tkind:%c\ttype:%s",(ulong)(uint)(int)cVar7,pcVar5)" ( (pointer_expression "*p" * identifier) , (string_literal "";\"\tkind:%c\ttype:%s"" " string_content escape_sequence escape_sequence string_content escape_sequence string_content ") , (cast_expression "(ulong)(uint)(int)cVar7" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)(int)cVar7" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(int)cVar7" ( (type_descriptor "int" primitive_type) ) identifier))) , identifier ))) ;) (if_statement "if (lVar3 != 0) {\n                    /* WARNING: Load size is inaccurate */\n    fwrite("\tfile:",1,6,*p);\n  }" if (parenthesized_expression "(lVar3 != 0)" ( (binary_expression "lVar3 != 0" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Load size is inaccurate */\n    fwrite("\tfile:",1,6,*p);\n  }" { comment (expression_statement "fwrite("\tfile:",1,6,*p);" (call_expression "fwrite("\tfile:",1,6,*p)" identifier (argument_list "("\tfile:",1,6,*p)" ( (string_literal ""\tfile:"" " escape_sequence string_content ") , number_literal , number_literal , (pointer_expression "*p" * identifier) ))) ;) })) comment (expression_statement "pFVar6 = *p;" (assignment_expression "pFVar6 = *p" identifier = (pointer_expression "*p" * identifier)) ;) (if_statement "if (__ptr != (char *)0x0) {\n    fprintf(pFVar6,"\tclass:%s",__ptr);\n    free(__ptr);\n                    /* WARNING: Load size is inaccurate */\n    pFVar6 = *p;\n  }" if (parenthesized_expression "(__ptr != (char *)0x0)" ( (binary_expression "__ptr != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    fprintf(pFVar6,"\tclass:%s",__ptr);\n    free(__ptr);\n                    /* WARNING: Load size is inaccurate */\n    pFVar6 = *p;\n  }" { (expression_statement "fprintf(pFVar6,"\tclass:%s",__ptr);" (call_expression "fprintf(pFVar6,"\tclass:%s",__ptr)" identifier (argument_list "(pFVar6,"\tclass:%s",__ptr)" ( identifier , (string_literal ""\tclass:%s"" " escape_sequence string_content ") , identifier ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) comment (expression_statement "pFVar6 = *p;" (assignment_expression "pFVar6 = *p" identifier = (pointer_expression "*p" * identifier)) ;) })) (expression_statement "fputc(10,pFVar6);" (call_expression "fputc(10,pFVar6)" identifier (argument_list "(10,pFVar6)" ( number_literal , identifier ))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "undefined8 FUN_00129640(undefined8 *param_1,undefined8 param_2)\n\n{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  long lVar4;\n  int iVar5;\n  long lVar6;\n  char *__ptr;\n  FILE *pFVar7;\n  char cVar8;\n  char acStack_48 [32];\n  \n  if (*(int *)(param_1 + 3) < 1) {\n    return 1;\n  }\n  *(undefined4 *)(param_1 + 3) = 0;\n  fprintf((FILE *)*param_1,"%s\t%s\t",*(undefined8 *)(param_1[2] + 0x28),param_1[4]);\n  free(*(void **)(param_1[2] + 0x28));\n  sprintf(acStack_48,"0x%lx",param_2);\n  uVar2 = param_1[6];\n  uVar3 = param_1[5];\n  pFVar7 = (FILE *)*param_1;\n  DAT_00159bf8 = bfd_scan_vma(acStack_48,0,0x10);\n  DAT_00159be0 = 0;\n  bfd_map_over_sections(uVar3,FUN_001268b0,uVar2);\n  if (DAT_00159be0 == 0) {\n    fwrite(&DAT_0013d55f,1,2,pFVar7);\n  }\n  else {\n    fprintf(pFVar7,"%u",(ulong)DAT_00159be4);\n  }\n  puVar1 = param_1 + 2;\n  __ptr = *(char **)(param_1[2] + 0x18);\n  lVar4 = *(long *)(param_1[2] + 0x20);\n  if (__ptr == (char *)0x0) {\n    iVar5 = FUN_00127080(puVar1,")");\n    if (iVar5 == 0) {\n      return 0;\n    }\n  }\n  else {\n    cVar8 = 'm';\n    if (*__ptr != '\0') {\n      lVar6 = FUN_00126930(puVar1);\n      goto joined_r0x00129813;\n    }\n  }\n  __ptr = (char *)0x0;\n  cVar8 = 'f';\n  lVar6 = FUN_00126930(puVar1);\njoined_r0x00129813:\n  if (lVar6 == 0) {\n    return 0;\n  }\n  fprintf((FILE *)*param_1,";\"\tkind:%c\ttype:%s",(ulong)(uint)(int)cVar8,lVar6);\n  if (lVar4 != 0) {\n    fwrite("\tfile:",1,6,(FILE *)*param_1);\n  }\n  pFVar7 = (FILE *)*param_1;\n  if (__ptr != (char *)0x0) {\n    fprintf(pFVar7,"\tclass:%s",__ptr);\n    free(__ptr);\n    pFVar7 = (FILE *)*param_1;\n  }\n  fputc(10,pFVar7);\n  return 1;\n}\n\n" (function_definition "undefined8 FUN_00129640(undefined8 *param_1,undefined8 param_2)\n\n{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  long lVar4;\n  int iVar5;\n  long lVar6;\n  char *__ptr;\n  FILE *pFVar7;\n  char cVar8;\n  char acStack_48 [32];\n  \n  if (*(int *)(param_1 + 3) < 1) {\n    return 1;\n  }\n  *(undefined4 *)(param_1 + 3) = 0;\n  fprintf((FILE *)*param_1,"%s\t%s\t",*(undefined8 *)(param_1[2] + 0x28),param_1[4]);\n  free(*(void **)(param_1[2] + 0x28));\n  sprintf(acStack_48,"0x%lx",param_2);\n  uVar2 = param_1[6];\n  uVar3 = param_1[5];\n  pFVar7 = (FILE *)*param_1;\n  DAT_00159bf8 = bfd_scan_vma(acStack_48,0,0x10);\n  DAT_00159be0 = 0;\n  bfd_map_over_sections(uVar3,FUN_001268b0,uVar2);\n  if (DAT_00159be0 == 0) {\n    fwrite(&DAT_0013d55f,1,2,pFVar7);\n  }\n  else {\n    fprintf(pFVar7,"%u",(ulong)DAT_00159be4);\n  }\n  puVar1 = param_1 + 2;\n  __ptr = *(char **)(param_1[2] + 0x18);\n  lVar4 = *(long *)(param_1[2] + 0x20);\n  if (__ptr == (char *)0x0) {\n    iVar5 = FUN_00127080(puVar1,")");\n    if (iVar5 == 0) {\n      return 0;\n    }\n  }\n  else {\n    cVar8 = 'm';\n    if (*__ptr != '\0') {\n      lVar6 = FUN_00126930(puVar1);\n      goto joined_r0x00129813;\n    }\n  }\n  __ptr = (char *)0x0;\n  cVar8 = 'f';\n  lVar6 = FUN_00126930(puVar1);\njoined_r0x00129813:\n  if (lVar6 == 0) {\n    return 0;\n  }\n  fprintf((FILE *)*param_1,";\"\tkind:%c\ttype:%s",(ulong)(uint)(int)cVar8,lVar6);\n  if (lVar4 != 0) {\n    fwrite("\tfile:",1,6,(FILE *)*param_1);\n  }\n  pFVar7 = (FILE *)*param_1;\n  if (__ptr != (char *)0x0) {\n    fprintf(pFVar7,"\tclass:%s",__ptr);\n    free(__ptr);\n    pFVar7 = (FILE *)*param_1;\n  }\n  fputc(10,pFVar7);\n  return 1;\n}" type_identifier (function_declarator "FUN_00129640(undefined8 *param_1,undefined8 param_2)" identifier (parameter_list "(undefined8 *param_1,undefined8 param_2)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) ))) (compound_statement "{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  long lVar4;\n  int iVar5;\n  long lVar6;\n  char *__ptr;\n  FILE *pFVar7;\n  char cVar8;\n  char acStack_48 [32];\n  \n  if (*(int *)(param_1 + 3) < 1) {\n    return 1;\n  }\n  *(undefined4 *)(param_1 + 3) = 0;\n  fprintf((FILE *)*param_1,"%s\t%s\t",*(undefined8 *)(param_1[2] + 0x28),param_1[4]);\n  free(*(void **)(param_1[2] + 0x28));\n  sprintf(acStack_48,"0x%lx",param_2);\n  uVar2 = param_1[6];\n  uVar3 = param_1[5];\n  pFVar7 = (FILE *)*param_1;\n  DAT_00159bf8 = bfd_scan_vma(acStack_48,0,0x10);\n  DAT_00159be0 = 0;\n  bfd_map_over_sections(uVar3,FUN_001268b0,uVar2);\n  if (DAT_00159be0 == 0) {\n    fwrite(&DAT_0013d55f,1,2,pFVar7);\n  }\n  else {\n    fprintf(pFVar7,"%u",(ulong)DAT_00159be4);\n  }\n  puVar1 = param_1 + 2;\n  __ptr = *(char **)(param_1[2] + 0x18);\n  lVar4 = *(long *)(param_1[2] + 0x20);\n  if (__ptr == (char *)0x0) {\n    iVar5 = FUN_00127080(puVar1,")");\n    if (iVar5 == 0) {\n      return 0;\n    }\n  }\n  else {\n    cVar8 = 'm';\n    if (*__ptr != '\0') {\n      lVar6 = FUN_00126930(puVar1);\n      goto joined_r0x00129813;\n    }\n  }\n  __ptr = (char *)0x0;\n  cVar8 = 'f';\n  lVar6 = FUN_00126930(puVar1);\njoined_r0x00129813:\n  if (lVar6 == 0) {\n    return 0;\n  }\n  fprintf((FILE *)*param_1,";\"\tkind:%c\ttype:%s",(ulong)(uint)(int)cVar8,lVar6);\n  if (lVar4 != 0) {\n    fwrite("\tfile:",1,6,(FILE *)*param_1);\n  }\n  pFVar7 = (FILE *)*param_1;\n  if (__ptr != (char *)0x0) {\n    fprintf(pFVar7,"\tclass:%s",__ptr);\n    free(__ptr);\n    pFVar7 = (FILE *)*param_1;\n  }\n  fputc(10,pFVar7);\n  return 1;\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "char *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "FILE *pFVar7;" type_identifier (pointer_declarator "*pFVar7" * identifier) ;) (declaration "char cVar8;" primitive_type identifier ;) (declaration "char acStack_48 [32];" primitive_type (array_declarator "acStack_48 [32]" identifier [ number_literal ]) ;) (if_statement "if (*(int *)(param_1 + 3) < 1) {\n    return 1;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 3) < 1)" ( (binary_expression "*(int *)(param_1 + 3) < 1" (pointer_expression "*(int *)(param_1 + 3)" * (cast_expression "(int *)(param_1 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "*(undefined4 *)(param_1 + 3) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 3) = 0" (pointer_expression "*(undefined4 *)(param_1 + 3)" * (cast_expression "(undefined4 *)(param_1 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "fprintf((FILE *)*param_1,"%s\t%s\t",*(undefined8 *)(param_1[2] + 0x28),param_1[4]);" (call_expression "fprintf((FILE *)*param_1,"%s\t%s\t",*(undefined8 *)(param_1[2] + 0x28),param_1[4])" identifier (argument_list "((FILE *)*param_1,"%s\t%s\t",*(undefined8 *)(param_1[2] + 0x28),param_1[4])" ( (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) , (string_literal ""%s\t%s\t"" " string_content escape_sequence string_content escape_sequence ") , (pointer_expression "*(undefined8 *)(param_1[2] + 0x28)" * (cast_expression "(undefined8 *)(param_1[2] + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + 0x28)" ( (binary_expression "param_1[2] + 0x28" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) )))) , (subscript_expression "param_1[4]" identifier [ number_literal ]) ))) ;) (expression_statement "free(*(void **)(param_1[2] + 0x28));" (call_expression "free(*(void **)(param_1[2] + 0x28))" identifier (argument_list "(*(void **)(param_1[2] + 0x28))" ( (pointer_expression "*(void **)(param_1[2] + 0x28)" * (cast_expression "(void **)(param_1[2] + 0x28)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[2] + 0x28)" ( (binary_expression "param_1[2] + 0x28" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) )))) ))) ;) (expression_statement "sprintf(acStack_48,"0x%lx",param_2);" (call_expression "sprintf(acStack_48,"0x%lx",param_2)" identifier (argument_list "(acStack_48,"0x%lx",param_2)" ( identifier , (string_literal ""0x%lx"" " string_content ") , identifier ))) ;) (expression_statement "uVar2 = param_1[6];" (assignment_expression "uVar2 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = param_1[5];" (assignment_expression "uVar3 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "pFVar7 = (FILE *)*param_1;" (assignment_expression "pFVar7 = (FILE *)*param_1" identifier = (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "DAT_00159bf8 = bfd_scan_vma(acStack_48,0,0x10);" (assignment_expression "DAT_00159bf8 = bfd_scan_vma(acStack_48,0,0x10)" identifier = (call_expression "bfd_scan_vma(acStack_48,0,0x10)" identifier (argument_list "(acStack_48,0,0x10)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "DAT_00159be0 = 0;" (assignment_expression "DAT_00159be0 = 0" identifier = number_literal) ;) (expression_statement "bfd_map_over_sections(uVar3,FUN_001268b0,uVar2);" (call_expression "bfd_map_over_sections(uVar3,FUN_001268b0,uVar2)" identifier (argument_list "(uVar3,FUN_001268b0,uVar2)" ( identifier , identifier , identifier ))) ;) (if_statement "if (DAT_00159be0 == 0) {\n    fwrite(&DAT_0013d55f,1,2,pFVar7);\n  }\n  else {\n    fprintf(pFVar7,"%u",(ulong)DAT_00159be4);\n  }" if (parenthesized_expression "(DAT_00159be0 == 0)" ( (binary_expression "DAT_00159be0 == 0" identifier == number_literal) )) (compound_statement "{\n    fwrite(&DAT_0013d55f,1,2,pFVar7);\n  }" { (expression_statement "fwrite(&DAT_0013d55f,1,2,pFVar7);" (call_expression "fwrite(&DAT_0013d55f,1,2,pFVar7)" identifier (argument_list "(&DAT_0013d55f,1,2,pFVar7)" ( (pointer_expression "&DAT_0013d55f" & identifier) , number_literal , number_literal , identifier ))) ;) }) (else_clause "else {\n    fprintf(pFVar7,"%u",(ulong)DAT_00159be4);\n  }" else (compound_statement "{\n    fprintf(pFVar7,"%u",(ulong)DAT_00159be4);\n  }" { (expression_statement "fprintf(pFVar7,"%u",(ulong)DAT_00159be4);" (call_expression "fprintf(pFVar7,"%u",(ulong)DAT_00159be4)" identifier (argument_list "(pFVar7,"%u",(ulong)DAT_00159be4)" ( identifier , (string_literal ""%u"" " string_content ") , (cast_expression "(ulong)DAT_00159be4" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) }))) (expression_statement "puVar1 = param_1 + 2;" (assignment_expression "puVar1 = param_1 + 2" identifier = (binary_expression "param_1 + 2" identifier + number_literal)) ;) (expression_statement "__ptr = *(char **)(param_1[2] + 0x18);" (assignment_expression "__ptr = *(char **)(param_1[2] + 0x18)" identifier = (pointer_expression "*(char **)(param_1[2] + 0x18)" * (cast_expression "(char **)(param_1[2] + 0x18)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[2] + 0x18)" ( (binary_expression "param_1[2] + 0x18" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "lVar4 = *(long *)(param_1[2] + 0x20);" (assignment_expression "lVar4 = *(long *)(param_1[2] + 0x20)" identifier = (pointer_expression "*(long *)(param_1[2] + 0x20)" * (cast_expression "(long *)(param_1[2] + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + 0x20)" ( (binary_expression "param_1[2] + 0x20" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) ))))) ;) (if_statement "if (__ptr == (char *)0x0) {\n    iVar5 = FUN_00127080(puVar1,")");\n    if (iVar5 == 0) {\n      return 0;\n    }\n  }\n  else {\n    cVar8 = 'm';\n    if (*__ptr != '\0') {\n      lVar6 = FUN_00126930(puVar1);\n      goto joined_r0x00129813;\n    }\n  }" if (parenthesized_expression "(__ptr == (char *)0x0)" ( (binary_expression "__ptr == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar5 = FUN_00127080(puVar1,")");\n    if (iVar5 == 0) {\n      return 0;\n    }\n  }" { (expression_statement "iVar5 = FUN_00127080(puVar1,")");" (assignment_expression "iVar5 = FUN_00127080(puVar1,")")" identifier = (call_expression "FUN_00127080(puVar1,")")" identifier (argument_list "(puVar1,")")" ( identifier , (string_literal "")"" " string_content ") )))) ;) (if_statement "if (iVar5 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n    cVar8 = 'm';\n    if (*__ptr != '\0') {\n      lVar6 = FUN_00126930(puVar1);\n      goto joined_r0x00129813;\n    }\n  }" else (compound_statement "{\n    cVar8 = 'm';\n    if (*__ptr != '\0') {\n      lVar6 = FUN_00126930(puVar1);\n      goto joined_r0x00129813;\n    }\n  }" { (expression_statement "cVar8 = 'm';" (assignment_expression "cVar8 = 'm'" identifier = (char_literal "'m'" ' character ')) ;) (if_statement "if (*__ptr != '\0') {\n      lVar6 = FUN_00126930(puVar1);\n      goto joined_r0x00129813;\n    }" if (parenthesized_expression "(*__ptr != '\0')" ( (binary_expression "*__ptr != '\0'" (pointer_expression "*__ptr" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      lVar6 = FUN_00126930(puVar1);\n      goto joined_r0x00129813;\n    }" { (expression_statement "lVar6 = FUN_00126930(puVar1);" (assignment_expression "lVar6 = FUN_00126930(puVar1)" identifier = (call_expression "FUN_00126930(puVar1)" identifier (argument_list "(puVar1)" ( identifier )))) ;) (goto_statement "goto joined_r0x00129813;" goto statement_identifier ;) })) }))) (expression_statement "__ptr = (char *)0x0;" (assignment_expression "__ptr = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "cVar8 = 'f';" (assignment_expression "cVar8 = 'f'" identifier = (char_literal "'f'" ' character ')) ;) (expression_statement "lVar6 = FUN_00126930(puVar1);" (assignment_expression "lVar6 = FUN_00126930(puVar1)" identifier = (call_expression "FUN_00126930(puVar1)" identifier (argument_list "(puVar1)" ( identifier )))) ;) (labeled_statement "joined_r0x00129813:\n  if (lVar6 == 0) {\n    return 0;\n  }" statement_identifier : (if_statement "if (lVar6 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(lVar6 == 0)" ( (binary_expression "lVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) }))) (expression_statement "fprintf((FILE *)*param_1,";\"\tkind:%c\ttype:%s",(ulong)(uint)(int)cVar8,lVar6);" (call_expression "fprintf((FILE *)*param_1,";\"\tkind:%c\ttype:%s",(ulong)(uint)(int)cVar8,lVar6)" identifier (argument_list "((FILE *)*param_1,";\"\tkind:%c\ttype:%s",(ulong)(uint)(int)cVar8,lVar6)" ( (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) , (string_literal "";\"\tkind:%c\ttype:%s"" " string_content escape_sequence escape_sequence string_content escape_sequence string_content ") , (cast_expression "(ulong)(uint)(int)cVar8" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)(int)cVar8" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(int)cVar8" ( (type_descriptor "int" primitive_type) ) identifier))) , identifier ))) ;) (if_statement "if (lVar4 != 0) {\n    fwrite("\tfile:",1,6,(FILE *)*param_1);\n  }" if (parenthesized_expression "(lVar4 != 0)" ( (binary_expression "lVar4 != 0" identifier != number_literal) )) (compound_statement "{\n    fwrite("\tfile:",1,6,(FILE *)*param_1);\n  }" { (expression_statement "fwrite("\tfile:",1,6,(FILE *)*param_1);" (call_expression "fwrite("\tfile:",1,6,(FILE *)*param_1)" identifier (argument_list "("\tfile:",1,6,(FILE *)*param_1)" ( (string_literal ""\tfile:"" " escape_sequence string_content ") , number_literal , number_literal , (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) ))) ;) })) (expression_statement "pFVar7 = (FILE *)*param_1;" (assignment_expression "pFVar7 = (FILE *)*param_1" identifier = (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (if_statement "if (__ptr != (char *)0x0) {\n    fprintf(pFVar7,"\tclass:%s",__ptr);\n    free(__ptr);\n    pFVar7 = (FILE *)*param_1;\n  }" if (parenthesized_expression "(__ptr != (char *)0x0)" ( (binary_expression "__ptr != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    fprintf(pFVar7,"\tclass:%s",__ptr);\n    free(__ptr);\n    pFVar7 = (FILE *)*param_1;\n  }" { (expression_statement "fprintf(pFVar7,"\tclass:%s",__ptr);" (call_expression "fprintf(pFVar7,"\tclass:%s",__ptr)" identifier (argument_list "(pFVar7,"\tclass:%s",__ptr)" ( identifier , (string_literal ""\tclass:%s"" " escape_sequence string_content ") , identifier ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "pFVar7 = (FILE *)*param_1;" (assignment_expression "pFVar7 = (FILE *)*param_1" identifier = (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) })) (expression_statement "fputc(10,pFVar7);" (call_expression "fputc(10,pFVar7)" identifier (argument_list "(10,pFVar7)" ( number_literal , identifier ))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) , (string_literal " string_content escape_sequence string_content escape_sequence ") , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' character ')) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) }))) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) , (string_literal " string_content escape_sequence escape_sequence string_content escape_sequence string_content ") , (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " escape_sequence string_content ") , LIT , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " escape_sequence string_content ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) (return_statement return LIT ;) })))
(function_definition "undefined8 FUN_00129640(undefined8 *param_1,undefined8 param_2)\n\n{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  long lVar4;\n  int iVar5;\n  long lVar6;\n  char *__ptr;\n  FILE *pFVar7;\n  char cVar8;\n  char acStack_48 [32];\n  \n  if (*(int *)(param_1 + 3) < 1) {\n    return 1;\n  }\n  *(undefined4 *)(param_1 + 3) = 0;\n  fprintf((FILE *)*param_1,"%s\t%s\t",*(undefined8 *)(param_1[2] + 0x28),param_1[4]);\n  free(*(void **)(param_1[2] + 0x28));\n  sprintf(acStack_48,"0x%lx",param_2);\n  uVar2 = param_1[6];\n  uVar3 = param_1[5];\n  pFVar7 = (FILE *)*param_1;\n  DAT_00159bf8 = bfd_scan_vma(acStack_48,0,0x10);\n  DAT_00159be0 = 0;\n  bfd_map_over_sections(uVar3,FUN_001268b0,uVar2);\n  if (DAT_00159be0 == 0) {\n    fwrite(&DAT_0013d55f,1,2,pFVar7);\n  }\n  else {\n    fprintf(pFVar7,"%u",(ulong)DAT_00159be4);\n  }\n  puVar1 = param_1 + 2;\n  __ptr = *(char **)(param_1[2] + 0x18);\n  lVar4 = *(long *)(param_1[2] + 0x20);\n  if (__ptr == (char *)0x0) {\n    iVar5 = FUN_00127080(puVar1,")");\n    if (iVar5 == 0) {\n      return 0;\n    }\n  }\n  else {\n    cVar8 = 'm';\n    if (*__ptr != '\0') {\n      lVar6 = FUN_00126930(puVar1);\n      goto joined_r0x00129813;\n    }\n  }\n  __ptr = (char *)0x0;\n  cVar8 = 'f';\n  lVar6 = FUN_00126930(puVar1);\njoined_r0x00129813:\n  if (lVar6 == 0) {\n    return 0;\n  }\n  fprintf((FILE *)*param_1,";\"\tkind:%c\ttype:%s",(ulong)(uint)(int)cVar8,lVar6);\n  if (lVar4 != 0) {\n    fwrite("\tfile:",1,6,(FILE *)*param_1);\n  }\n  pFVar7 = (FILE *)*param_1;\n  if (__ptr != (char *)0x0) {\n    fprintf(pFVar7,"\tclass:%s",__ptr);\n    free(__ptr);\n    pFVar7 = (FILE *)*param_1;\n  }\n  fputc(10,pFVar7);\n  return 1;\n}" (type_identifier "undefined8") (function_declarator "FUN_00129640(undefined8 *param_1,undefined8 param_2)" (identifier "FUN_00129640") (parameter_list "(undefined8 *param_1,undefined8 param_2)" (( "(") (parameter_declaration "undefined8 *param_1" (type_identifier "undefined8") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) () ")"))) (compound_statement "{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  long lVar4;\n  int iVar5;\n  long lVar6;\n  char *__ptr;\n  FILE *pFVar7;\n  char cVar8;\n  char acStack_48 [32];\n  \n  if (*(int *)(param_1 + 3) < 1) {\n    return 1;\n  }\n  *(undefined4 *)(param_1 + 3) = 0;\n  fprintf((FILE *)*param_1,"%s\t%s\t",*(undefined8 *)(param_1[2] + 0x28),param_1[4]);\n  free(*(void **)(param_1[2] + 0x28));\n  sprintf(acStack_48,"0x%lx",param_2);\n  uVar2 = param_1[6];\n  uVar3 = param_1[5];\n  pFVar7 = (FILE *)*param_1;\n  DAT_00159bf8 = bfd_scan_vma(acStack_48,0,0x10);\n  DAT_00159be0 = 0;\n  bfd_map_over_sections(uVar3,FUN_001268b0,uVar2);\n  if (DAT_00159be0 == 0) {\n    fwrite(&DAT_0013d55f,1,2,pFVar7);\n  }\n  else {\n    fprintf(pFVar7,"%u",(ulong)DAT_00159be4);\n  }\n  puVar1 = param_1 + 2;\n  __ptr = *(char **)(param_1[2] + 0x18);\n  lVar4 = *(long *)(param_1[2] + 0x20);\n  if (__ptr == (char *)0x0) {\n    iVar5 = FUN_00127080(puVar1,")");\n    if (iVar5 == 0) {\n      return 0;\n    }\n  }\n  else {\n    cVar8 = 'm';\n    if (*__ptr != '\0') {\n      lVar6 = FUN_00126930(puVar1);\n      goto joined_r0x00129813;\n    }\n  }\n  __ptr = (char *)0x0;\n  cVar8 = 'f';\n  lVar6 = FUN_00126930(puVar1);\njoined_r0x00129813:\n  if (lVar6 == 0) {\n    return 0;\n  }\n  fprintf((FILE *)*param_1,";\"\tkind:%c\ttype:%s",(ulong)(uint)(int)cVar8,lVar6);\n  if (lVar4 != 0) {\n    fwrite("\tfile:",1,6,(FILE *)*param_1);\n  }\n  pFVar7 = (FILE *)*param_1;\n  if (__ptr != (char *)0x0) {\n    fprintf(pFVar7,"\tclass:%s",__ptr);\n    free(__ptr);\n    pFVar7 = (FILE *)*param_1;\n  }\n  fputc(10,pFVar7);\n  return 1;\n}" ({ "{") (declaration "undefined8 *puVar1;" (type_identifier "undefined8") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (declaration "undefined8 uVar3;" (type_identifier "undefined8") (identifier "uVar3") (; ";")) (declaration "long lVar4;" (sized_type_specifier "long" (long "long")) (identifier "lVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "long lVar6;" (sized_type_specifier "long" (long "long")) (identifier "lVar6") (; ";")) (declaration "char *__ptr;" (primitive_type "char") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "FILE *pFVar7;" (type_identifier "FILE") (pointer_declarator "*pFVar7" (* "*") (identifier "pFVar7")) (; ";")) (declaration "char cVar8;" (primitive_type "char") (identifier "cVar8") (; ";")) (declaration "char acStack_48 [32];" (primitive_type "char") (array_declarator "acStack_48 [32]" (identifier "acStack_48") ([ "[") (number_literal "32") (] "]")) (; ";")) (if_statement "if (*(int *)(param_1 + 3) < 1) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 3) < 1)" (( "(") (binary_expression "*(int *)(param_1 + 3) < 1" (pointer_expression "*(int *)(param_1 + 3)" (* "*") (cast_expression "(int *)(param_1 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 3)" (( "(") (binary_expression "param_1 + 3" (identifier "param_1") (+ "+") (number_literal "3")) () ")")))) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(param_1 + 3) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 3) = 0" (pointer_expression "*(undefined4 *)(param_1 + 3)" (* "*") (cast_expression "(undefined4 *)(param_1 + 3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 3)" (( "(") (binary_expression "param_1 + 3" (identifier "param_1") (+ "+") (number_literal "3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "fprintf((FILE *)*param_1,"%s\t%s\t",*(undefined8 *)(param_1[2] + 0x28),param_1[4]);" (call_expression "fprintf((FILE *)*param_1,"%s\t%s\t",*(undefined8 *)(param_1[2] + 0x28),param_1[4])" (identifier "fprintf") (argument_list "((FILE *)*param_1,"%s\t%s\t",*(undefined8 *)(param_1[2] + 0x28),param_1[4])" (( "(") (cast_expression "(FILE *)*param_1" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (, ",") (string_literal ""%s\t%s\t"" (" """) (string_content "%s") (escape_sequence "\t") (string_content "%s") (escape_sequence "\t") (" """)) (, ",") (pointer_expression "*(undefined8 *)(param_1[2] + 0x28)" (* "*") (cast_expression "(undefined8 *)(param_1[2] + 0x28)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[2] + 0x28)" (( "(") (binary_expression "param_1[2] + 0x28" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x28")) () ")")))) (, ",") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) () ")"))) (; ";")) (expression_statement "free(*(void **)(param_1[2] + 0x28));" (call_expression "free(*(void **)(param_1[2] + 0x28))" (identifier "free") (argument_list "(*(void **)(param_1[2] + 0x28))" (( "(") (pointer_expression "*(void **)(param_1[2] + 0x28)" (* "*") (cast_expression "(void **)(param_1[2] + 0x28)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1[2] + 0x28)" (( "(") (binary_expression "param_1[2] + 0x28" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x28")) () ")")))) () ")"))) (; ";")) (expression_statement "sprintf(acStack_48,"0x%lx",param_2);" (call_expression "sprintf(acStack_48,"0x%lx",param_2)" (identifier "sprintf") (argument_list "(acStack_48,"0x%lx",param_2)" (( "(") (identifier "acStack_48") (, ",") (string_literal ""0x%lx"" (" """) (string_content "0x%lx") (" """)) (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "uVar2 = param_1[6];" (assignment_expression "uVar2 = param_1[6]" (identifier "uVar2") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "uVar3 = param_1[5];" (assignment_expression "uVar3 = param_1[5]" (identifier "uVar3") (= "=") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "pFVar7 = (FILE *)*param_1;" (assignment_expression "pFVar7 = (FILE *)*param_1" (identifier "pFVar7") (= "=") (cast_expression "(FILE *)*param_1" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "DAT_00159bf8 = bfd_scan_vma(acStack_48,0,0x10);" (assignment_expression "DAT_00159bf8 = bfd_scan_vma(acStack_48,0,0x10)" (identifier "DAT_00159bf8") (= "=") (call_expression "bfd_scan_vma(acStack_48,0,0x10)" (identifier "bfd_scan_vma") (argument_list "(acStack_48,0,0x10)" (( "(") (identifier "acStack_48") (, ",") (number_literal "0") (, ",") (number_literal "0x10") () ")")))) (; ";")) (expression_statement "DAT_00159be0 = 0;" (assignment_expression "DAT_00159be0 = 0" (identifier "DAT_00159be0") (= "=") (number_literal "0")) (; ";")) (expression_statement "bfd_map_over_sections(uVar3,FUN_001268b0,uVar2);" (call_expression "bfd_map_over_sections(uVar3,FUN_001268b0,uVar2)" (identifier "bfd_map_over_sections") (argument_list "(uVar3,FUN_001268b0,uVar2)" (( "(") (identifier "uVar3") (, ",") (identifier "FUN_001268b0") (, ",") (identifier "uVar2") () ")"))) (; ";")) (if_statement "if (DAT_00159be0 == 0) {\n    fwrite(&DAT_0013d55f,1,2,pFVar7);\n  }\n  else {\n    fprintf(pFVar7,"%u",(ulong)DAT_00159be4);\n  }" (if "if") (parenthesized_expression "(DAT_00159be0 == 0)" (( "(") (binary_expression "DAT_00159be0 == 0" (identifier "DAT_00159be0") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    fwrite(&DAT_0013d55f,1,2,pFVar7);\n  }" ({ "{") (expression_statement "fwrite(&DAT_0013d55f,1,2,pFVar7);" (call_expression "fwrite(&DAT_0013d55f,1,2,pFVar7)" (identifier "fwrite") (argument_list "(&DAT_0013d55f,1,2,pFVar7)" (( "(") (pointer_expression "&DAT_0013d55f" (& "&") (identifier "DAT_0013d55f")) (, ",") (number_literal "1") (, ",") (number_literal "2") (, ",") (identifier "pFVar7") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    fprintf(pFVar7,"%u",(ulong)DAT_00159be4);\n  }" (else "else") (compound_statement "{\n    fprintf(pFVar7,"%u",(ulong)DAT_00159be4);\n  }" ({ "{") (expression_statement "fprintf(pFVar7,"%u",(ulong)DAT_00159be4);" (call_expression "fprintf(pFVar7,"%u",(ulong)DAT_00159be4)" (identifier "fprintf") (argument_list "(pFVar7,"%u",(ulong)DAT_00159be4)" (( "(") (identifier "pFVar7") (, ",") (string_literal ""%u"" (" """) (string_content "%u") (" """)) (, ",") (cast_expression "(ulong)DAT_00159be4" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "DAT_00159be4")) () ")"))) (; ";")) (} "}")))) (expression_statement "puVar1 = param_1 + 2;" (assignment_expression "puVar1 = param_1 + 2" (identifier "puVar1") (= "=") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "__ptr = *(char **)(param_1[2] + 0x18);" (assignment_expression "__ptr = *(char **)(param_1[2] + 0x18)" (identifier "__ptr") (= "=") (pointer_expression "*(char **)(param_1[2] + 0x18)" (* "*") (cast_expression "(char **)(param_1[2] + 0x18)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1[2] + 0x18)" (( "(") (binary_expression "param_1[2] + 0x18" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "lVar4 = *(long *)(param_1[2] + 0x20);" (assignment_expression "lVar4 = *(long *)(param_1[2] + 0x20)" (identifier "lVar4") (= "=") (pointer_expression "*(long *)(param_1[2] + 0x20)" (* "*") (cast_expression "(long *)(param_1[2] + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[2] + 0x20)" (( "(") (binary_expression "param_1[2] + 0x20" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (if_statement "if (__ptr == (char *)0x0) {\n    iVar5 = FUN_00127080(puVar1,")");\n    if (iVar5 == 0) {\n      return 0;\n    }\n  }\n  else {\n    cVar8 = 'm';\n    if (*__ptr != '\0') {\n      lVar6 = FUN_00126930(puVar1);\n      goto joined_r0x00129813;\n    }\n  }" (if "if") (parenthesized_expression "(__ptr == (char *)0x0)" (( "(") (binary_expression "__ptr == (char *)0x0" (identifier "__ptr") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    iVar5 = FUN_00127080(puVar1,")");\n    if (iVar5 == 0) {\n      return 0;\n    }\n  }" ({ "{") (expression_statement "iVar5 = FUN_00127080(puVar1,")");" (assignment_expression "iVar5 = FUN_00127080(puVar1,")")" (identifier "iVar5") (= "=") (call_expression "FUN_00127080(puVar1,")")" (identifier "FUN_00127080") (argument_list "(puVar1,")")" (( "(") (identifier "puVar1") (, ",") (string_literal "")"" (" """) (string_content ")") (" """)) () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    cVar8 = 'm';\n    if (*__ptr != '\0') {\n      lVar6 = FUN_00126930(puVar1);\n      goto joined_r0x00129813;\n    }\n  }" (else "else") (compound_statement "{\n    cVar8 = 'm';\n    if (*__ptr != '\0') {\n      lVar6 = FUN_00126930(puVar1);\n      goto joined_r0x00129813;\n    }\n  }" ({ "{") (expression_statement "cVar8 = 'm';" (assignment_expression "cVar8 = 'm'" (identifier "cVar8") (= "=") (char_literal "'m'" (' "'") (character "m") (' "'"))) (; ";")) (if_statement "if (*__ptr != '\0') {\n      lVar6 = FUN_00126930(puVar1);\n      goto joined_r0x00129813;\n    }" (if "if") (parenthesized_expression "(*__ptr != '\0')" (( "(") (binary_expression "*__ptr != '\0'" (pointer_expression "*__ptr" (* "*") (identifier "__ptr")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      lVar6 = FUN_00126930(puVar1);\n      goto joined_r0x00129813;\n    }" ({ "{") (expression_statement "lVar6 = FUN_00126930(puVar1);" (assignment_expression "lVar6 = FUN_00126930(puVar1)" (identifier "lVar6") (= "=") (call_expression "FUN_00126930(puVar1)" (identifier "FUN_00126930") (argument_list "(puVar1)" (( "(") (identifier "puVar1") () ")")))) (; ";")) (goto_statement "goto joined_r0x00129813;" (goto "goto") (statement_identifier "joined_r0x00129813") (; ";")) (} "}"))) (} "}")))) (expression_statement "__ptr = (char *)0x0;" (assignment_expression "__ptr = (char *)0x0" (identifier "__ptr") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "cVar8 = 'f';" (assignment_expression "cVar8 = 'f'" (identifier "cVar8") (= "=") (char_literal "'f'" (' "'") (character "f") (' "'"))) (; ";")) (expression_statement "lVar6 = FUN_00126930(puVar1);" (assignment_expression "lVar6 = FUN_00126930(puVar1)" (identifier "lVar6") (= "=") (call_expression "FUN_00126930(puVar1)" (identifier "FUN_00126930") (argument_list "(puVar1)" (( "(") (identifier "puVar1") () ")")))) (; ";")) (labeled_statement "joined_r0x00129813:\n  if (lVar6 == 0) {\n    return 0;\n  }" (statement_identifier "joined_r0x00129813") (: ":") (if_statement "if (lVar6 == 0) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(lVar6 == 0)" (( "(") (binary_expression "lVar6 == 0" (identifier "lVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))) (expression_statement "fprintf((FILE *)*param_1,";\"\tkind:%c\ttype:%s",(ulong)(uint)(int)cVar8,lVar6);" (call_expression "fprintf((FILE *)*param_1,";\"\tkind:%c\ttype:%s",(ulong)(uint)(int)cVar8,lVar6)" (identifier "fprintf") (argument_list "((FILE *)*param_1,";\"\tkind:%c\ttype:%s",(ulong)(uint)(int)cVar8,lVar6)" (( "(") (cast_expression "(FILE *)*param_1" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (, ",") (string_literal "";\"\tkind:%c\ttype:%s"" (" """) (string_content ";") (escape_sequence "\"") (escape_sequence "\t") (string_content "kind:%c") (escape_sequence "\t") (string_content "type:%s") (" """)) (, ",") (cast_expression "(ulong)(uint)(int)cVar8" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (cast_expression "(uint)(int)cVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(int)cVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar8")))) (, ",") (identifier "lVar6") () ")"))) (; ";")) (if_statement "if (lVar4 != 0) {\n    fwrite("\tfile:",1,6,(FILE *)*param_1);\n  }" (if "if") (parenthesized_expression "(lVar4 != 0)" (( "(") (binary_expression "lVar4 != 0" (identifier "lVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    fwrite("\tfile:",1,6,(FILE *)*param_1);\n  }" ({ "{") (expression_statement "fwrite("\tfile:",1,6,(FILE *)*param_1);" (call_expression "fwrite("\tfile:",1,6,(FILE *)*param_1)" (identifier "fwrite") (argument_list "("\tfile:",1,6,(FILE *)*param_1)" (( "(") (string_literal ""\tfile:"" (" """) (escape_sequence "\t") (string_content "file:") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "6") (, ",") (cast_expression "(FILE *)*param_1" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) () ")"))) (; ";")) (} "}"))) (expression_statement "pFVar7 = (FILE *)*param_1;" (assignment_expression "pFVar7 = (FILE *)*param_1" (identifier "pFVar7") (= "=") (cast_expression "(FILE *)*param_1" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (if_statement "if (__ptr != (char *)0x0) {\n    fprintf(pFVar7,"\tclass:%s",__ptr);\n    free(__ptr);\n    pFVar7 = (FILE *)*param_1;\n  }" (if "if") (parenthesized_expression "(__ptr != (char *)0x0)" (( "(") (binary_expression "__ptr != (char *)0x0" (identifier "__ptr") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    fprintf(pFVar7,"\tclass:%s",__ptr);\n    free(__ptr);\n    pFVar7 = (FILE *)*param_1;\n  }" ({ "{") (expression_statement "fprintf(pFVar7,"\tclass:%s",__ptr);" (call_expression "fprintf(pFVar7,"\tclass:%s",__ptr)" (identifier "fprintf") (argument_list "(pFVar7,"\tclass:%s",__ptr)" (( "(") (identifier "pFVar7") (, ",") (string_literal ""\tclass:%s"" (" """) (escape_sequence "\t") (string_content "class:%s") (" """)) (, ",") (identifier "__ptr") () ")"))) (; ";")) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (expression_statement "pFVar7 = (FILE *)*param_1;" (assignment_expression "pFVar7 = (FILE *)*param_1" (identifier "pFVar7") (= "=") (cast_expression "(FILE *)*param_1" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (} "}"))) (expression_statement "fputc(10,pFVar7);" (call_expression "fputc(10,pFVar7)" (identifier "fputc") (argument_list "(10,pFVar7)" (( "(") (number_literal "10") (, ",") (identifier "pFVar7") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

type_1 function_1(void *p,type_2 addr)

{
  type_3 *info_00;
  type_4 uVar1;
  type_4 uVar2;
  long var_13;
  type_1 var_10;
  char *var_12;
  char *var_8;
  type_3 *info;
  type_5 *pFVar6;
  char cVar7;
  char ab [22];
  
  if (*(int *)((long)p + 0x18) < 1) {
    return 1;
  }
  *(type_6 *)((long)p + 0x18) = 0;
                    /* WARNING: Load size is inaccurate */
  var_1(*p,"%s\t%s\t",*(type_4 *)(*(long *)((long)p + 0x10) + 0x28),
          *(type_4 *)((long)p + 0x20));
  var_2(*(void **)(*(long *)((long)p + 0x10) + 0x28));
  var_3(ab,"0x%lx",addr);
  uVar1 = *(type_4 *)((long)p + 0x30);
  uVar2 = *(type_4 *)((long)p + 0x28);
                    /* WARNING: Load size is inaccurate */
  pFVar6 = *p;
  pc = var_4(ab,0,0x10);
  var_6 = 0;
  var_5(uVar2,find_address_in_section,uVar1);
  if (var_6 == 0) {
    var_7(&DAT_0013d55f,1,2,pFVar6);
  }
  else {
    var_1(pFVar6,"%u",(type_7)line);
  }
  info_00 = (type_3 *)((long)p + 0x10);
  var_8 = *(char **)(*(long *)((long)p + 0x10) + 0x18);
  var_13 = *(long *)(*(long *)((long)p + 0x10) + 0x20);
  if (var_8 == (char *)0x0) {
    var_10 = var_9(info_00,")");
    if (var_10 == 0) {
      return 0;
    }
  }
  else {
    cVar7 = 'm';
    if (*var_8 != '\0') {
      var_12 = var_11(info_00);
      goto joined_r0x00129813;
    }
  }
  var_8 = (char *)0x0;
  cVar7 = 'f';
  var_12 = var_11(info_00);
joined_r0x00129813:
  if (var_12 == (char *)0x0) {
    return 0;
  }
                    /* WARNING: Load size is inaccurate */
  var_1(*p,";\"\tkind:%c\ttype:%s",(type_7)(type_8)(int)cVar7,var_12);
  if (var_13 != 0) {
                    /* WARNING: Load size is inaccurate */
    var_7("\tfile:",1,6,*p);
  }
                    /* WARNING: Load size is inaccurate */
  pFVar6 = *p;
  if (var_8 != (char *)0x0) {
    var_1(pFVar6,"\tclass:%s",var_8);
    var_2(var_8);
                    /* WARNING: Load size is inaccurate */
    pFVar6 = *p;
  }
  var_14(10,pFVar6);
  return 1;
}


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

undefined8 MASKED(undefined8 *param_1,undefined8 param_2)

{
  undefined8 *puVar1;
  undefined8 uVar2;
  undefined8 uVar3;
  long lVar4;
  int iVar5;
  long lVar6;
  char *__ptr;
  FILE *pFVar7;
  char cVar8;
  char acStack_48 [32];
  
  if (*(int *)(param_1 + 3) < 1) {
    return 1;
  }
  *(undefined4 *)(param_1 + 3) = 0;
  fprintf((FILE *)*param_1,"%s\t%s\t",*(undefined8 *)(param_1[2] + 0x28),param_1[4]);
  free(*(void **)(param_1[2] + 0x28));
  sprintf(acStack_48,"0x%lx",param_2);
  uVar2 = param_1[6];
  uVar3 = param_1[5];
  pFVar7 = (FILE *)*param_1;
  DAT_00159bf8 = bfd_scan_vma(acStack_48,0,0x10);
  DAT_00159be0 = 0;
  bfd_map_over_sections(uVar3,FUN_001268b0,uVar2);
  if (DAT_00159be0 == 0) {
    fwrite(&DAT_0013d55f,1,2,pFVar7);
  }
  else {
    fprintf(pFVar7,"%u",(ulong)DAT_00159be4);
  }
  puVar1 = param_1 + 2;
  __ptr = *(char **)(param_1[2] + 0x18);
  lVar4 = *(long *)(param_1[2] + 0x20);
  if (__ptr == (char *)0x0) {
    iVar5 = FUN_00127080(puVar1,")");
    if (iVar5 == 0) {
      return 0;
    }
  }
  else {
    cVar8 = 'm';
    if (*__ptr != '\0') {
      lVar6 = FUN_00126930(puVar1);
      goto joined_r0x00129813;
    }
  }
  __ptr = (char *)0x0;
  cVar8 = 'f';
  lVar6 = FUN_00126930(puVar1);
joined_r0x00129813:
  if (lVar6 == 0) {
    return 0;
  }
  fprintf((FILE *)*param_1,";\"\tkind:%c\ttype:%s",(ulong)(uint)(int)cVar8,lVar6);
  if (lVar4 != 0) {
    fwrite("\tfile:",1,6,(FILE *)*param_1);
  }
  pFVar7 = (FILE *)*param_1;
  if (__ptr != (char *)0x0) {
    fprintf(pFVar7,"\tclass:%s",__ptr);
    free(__ptr);
    pFVar7 = (FILE *)*param_1;
  }
  fputc(10,pFVar7);
  return 1;
}

