
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: void print_output_section(Mapfile * this, Output_section * os) */

void __thiscall gold::Mapfile::print_output_section(Mapfile *this,Output_section *os)

{
  char sizebuf [50];
  
}



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

void FUN_0028a520(undefined4 *param_1,int *param_2)

{
  int iVar1;
  byte bVar2;
  size_t sVar3;
  int iVar4;
  FILE *__s;
  undefined4 extraout_ECX;
  int iVar5;
  undefined8 uVar6;
  char *__s_00;
  char local_4e [58];
  undefined4 uStack_14;
  
  uStack_14 = 0x28a529;
  if (*(char *)((int)param_1 + 6) == '\0') {
    FUN_00289f80();
  }
  fprintf((FILE *)*param_1,"\n%s",param_2[8]);
  sVar3 = strlen((char *)param_2[8]);
  FUN_0028a120(param_1,sVar3,0x10);
  __s_00 = local_4e;
  snprintf(__s_00,0x32,"0x%llx",param_2[3],param_2[4]);
  if ((*(byte *)(param_2 + 7) & 1) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/output.h",0xc5,"address",extraout_ECX);
  }
  iVar5 = param_2[1];
  if (*(int *)(DAT_005ea7c8 + 0xc) != 0) {
    iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);
    iVar4 = iVar1 + 3;
    if (-1 < iVar1) {
      iVar4 = iVar1;
    }
    fprintf((FILE *)*param_1,"0x%0*llx %10s",iVar4 >> 2,iVar5,param_2[2],__s_00);
    if (*(code **)(*param_2 + 0x10) == FUN_001440b0) {
      bVar2 = *(byte *)(param_2 + 0x24) >> 7;
    }
    else {
      bVar2 = (**(code **)(*param_2 + 0x10))(param_2);
    }
    if (bVar2 != 0) {
      if (*(code **)(*param_2 + 0x14) == FUN_00144240) {
        if (-1 < (char)param_2[0x24]) {
                    /* WARNING: Subroutine does not return */
          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);
        }
        uVar6 = *(undefined8 *)(param_2 + 0xd);
      }
      else {
        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);
      }
      iVar5 = (int)((ulonglong)uVar6 >> 0x20);
      if (*(int *)(DAT_005ea7c8 + 0xc) == 0) goto LAB_0028a6ce;
      iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);
      iVar4 = iVar1 + 3;
      if (-1 < iVar1) {
        iVar4 = iVar1;
      }
      fprintf((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00);
    }
    __s = (FILE *)*param_1;
    if ((*(byte *)(param_2 + 0x24) & 0x20) != 0) {
      fwrite(" (before compression)",1,0x15,__s);
      __s = (FILE *)*param_1;
    }
    putc(10,__s);
    return;
  }
LAB_0028a6ce:
                    /* WARNING: Subroutine does not return */
  FUN_002446e0("../../gold/parameters.h",0x69,"target",iVar5);
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00050b50
ADD EBX,0x35fad7
SUB ESP,0x5c
MOV EDI,dword ptr [ESP + 0x70]
MOV ESI,dword ptr [ESP + 0x74]
CMP byte ptr [EDI + 0x6],0x0
JZ 0x0028a680
SUB ESP,0x4
LEA EAX,[EBX + 0xffea18c1]
PUSH dword ptr [ESI + 0x20]
PUSH EAX
PUSH dword ptr [EDI]
CALL 0x00039370
POP EBP
PUSH dword ptr [ESI + 0x20]
CALL 0x00039330
ADD ESP,0xc
PUSH 0x10
PUSH EAX
PUSH EDI
CALL 0x0028a120
POP EAX
LEA EAX,[EBX + 0xffea18ab]
PUSH dword ptr [ESI + 0x10]
PUSH dword ptr [ESI + 0xc]
PUSH EAX
PUSH 0x32
LEA EAX,[ESP + 0x3a]
MOV dword ptr [ESP + 0x28],EAX
PUSH EAX
CALL 0x00039980
ADD ESP,0x20
TEST byte ptr [ESI + 0x1c],0x1
JZ 0x0028a6e4
LEA EBP,[EBX + 0x7c8]
MOV EDX,dword ptr [ESI + 0x4]
MOV ECX,dword ptr [ESI + 0x8]
MOV EAX,dword ptr [EBP]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x0028a6ce
MOV EAX,dword ptr [EAX + 0x4]
SUB ESP,0x8
PUSH dword ptr [ESP + 0x14]
PUSH ECX
PUSH EDX
MOV EDX,dword ptr [EAX]
TEST EDX,EDX
LEA EAX,[EDX + 0x3]
CMOVNS EAX,EDX
SAR EAX,0x2
PUSH EAX
LEA EAX,[EBX + 0xffea18c5]
PUSH EAX
PUSH dword ptr [EDI]
CALL 0x00039370
MOV EAX,dword ptr [ESI]
LEA EDX,[EBX + 0xffb5a0b0]
ADD ESP,0x20
MOV EAX,dword ptr [EAX + 0x10]
CMP EAX,EDX
JNZ 0x0028a6b0
MOVZX EAX,byte ptr [ESI + 0x90]
SHR AL,0x7
TEST AL,AL
JZ 0x0028a659
MOV EAX,dword ptr [ESI]
LEA EDX,[EBX + 0xffb5a240]
MOV EAX,dword ptr [EAX + 0x14]
CMP EAX,EDX
JNZ 0x0028a6c0
CMP byte ptr [ESI + 0x90],0x0
JNS 0x0028a6fd
MOV EAX,dword ptr [ESI + 0x34]
MOV EDX,dword ptr [ESI + 0x38]
MOV ECX,dword ptr [EBP]
MOV ECX,dword ptr [ECX + 0xc]
TEST ECX,ECX
JZ 0x0028a6ce
SUB ESP,0xc
PUSH EDX
PUSH EAX
MOV EAX,dword ptr [ECX + 0x4]
MOV EDX,dword ptr [EAX]
TEST EDX,EDX
LEA EAX,[EDX + 0x3]
CMOVNS EAX,EDX
SAR EAX,0x2
PUSH EAX
LEA EAX,[EBX + 0xffea18d3]
PUSH EAX
PUSH dword ptr [EDI]
CALL 0x00039370
ADD ESP,0x20
MOV EAX,dword ptr [EDI]
TEST byte ptr [ESI + 0x90],0x20
JNZ 0x0028a690
SUB ESP,0x8
PUSH EAX
PUSH 0xa
CALL 0x00039110
ADD ESP,0x6c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,EDI
CALL 0x00289f80
JMP 0x0028a544
PUSH EAX
LEA EAX,[EBX + 0xffea18ea]
PUSH 0x15
PUSH 0x1
PUSH EAX
CALL 0x000392b0
MOV EAX,dword ptr [EDI]
ADD ESP,0x10
JMP 0x0028a664
SUB ESP,0xc
PUSH ESI
CALL EAX
ADD ESP,0x10
JMP 0x0028a5fa
SUB ESP,0xc
PUSH ESI
CALL EAX
ADD ESP,0x10
JMP 0x0028a624
LEA EAX,[EBX + 0xffea1a00]
PUSH EDX
PUSH EAX
LEA EAX,[EBX + 0xffe5e26d]
PUSH 0x69
PUSH EAX
CALL 0x002446e0
LEA EAX,[EBX + 0xffea1a08]
PUSH ECX
PUSH EAX
LEA EAX,[EBX + 0xffe6335d]
PUSH 0xc5
PUSH EAX
CALL 0x002446e0
PUSH EAX
LEA EAX,[EBX + 0xffea19b0]
PUSH EAX
LEA EAX,[EBX + 0xffe6335d]
PUSH 0x107b
PUSH EAX
CALL 0x002446e0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_0028a520(undefined4 *param_1,int *param_2)\n\n{\n  int iVar1;\n  byte bVar2;\n  size_t sVar3;\n  int iVar4;\n  FILE *__s;\n  undefined4 extraout_ECX;\n  int iVar5;\n  undefined8 uVar6;\n  char *__s_00;\n  char local_4e [58];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x28a529;\n  if (*(char *)((int)param_1 + 6) == '\0') {\n    FUN_00289f80();\n  }\n  fprintf((FILE *)*param_1,"\n%s",param_2[8]);\n  sVar3 = strlen((char *)param_2[8]);\n  FUN_0028a120(param_1,sVar3,0x10);\n  __s_00 = local_4e;\n  snprintf(__s_00,0x32,"0x%llx",param_2[3],param_2[4]);\n  if ((*(byte *)(param_2 + 7) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/output.h",0xc5,"address",extraout_ECX);\n  }\n  iVar5 = param_2[1];\n  if (*(int *)(DAT_005ea7c8 + 0xc) != 0) {\n    iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n    iVar4 = iVar1 + 3;\n    if (-1 < iVar1) {\n      iVar4 = iVar1;\n    }\n    fprintf((FILE *)*param_1,"0x%0*llx %10s",iVar4 >> 2,iVar5,param_2[2],__s_00);\n    if (*(code **)(*param_2 + 0x10) == FUN_001440b0) {\n      bVar2 = *(byte *)(param_2 + 0x24) >> 7;\n    }\n    else {\n      bVar2 = (**(code **)(*param_2 + 0x10))(param_2);\n    }\n    if (bVar2 != 0) {\n      if (*(code **)(*param_2 + 0x14) == FUN_00144240) {\n        if (-1 < (char)param_2[0x24]) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }\n        uVar6 = *(undefined8 *)(param_2 + 0xd);\n      }\n      else {\n        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);\n      }\n      iVar5 = (int)((ulonglong)uVar6 >> 0x20);\n      if (*(int *)(DAT_005ea7c8 + 0xc) == 0) goto LAB_0028a6ce;\n      iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n      iVar4 = iVar1 + 3;\n      if (-1 < iVar1) {\n        iVar4 = iVar1;\n      }\n      fprintf((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00);\n    }\n    __s = (FILE *)*param_1;\n    if ((*(byte *)(param_2 + 0x24) & 0x20) != 0) {\n      fwrite(" (before compression)",1,0x15,__s);\n      __s = (FILE *)*param_1;\n    }\n    putc(10,__s);\n    return;\n  }\nLAB_0028a6ce:\n                    /* WARNING: Subroutine does not return */\n  FUN_002446e0("../../gold/parameters.h",0x69,"target",iVar5);\n}\n\n" comment (function_definition "void FUN_0028a520(undefined4 *param_1,int *param_2)\n\n{\n  int iVar1;\n  byte bVar2;\n  size_t sVar3;\n  int iVar4;\n  FILE *__s;\n  undefined4 extraout_ECX;\n  int iVar5;\n  undefined8 uVar6;\n  char *__s_00;\n  char local_4e [58];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x28a529;\n  if (*(char *)((int)param_1 + 6) == '\0') {\n    FUN_00289f80();\n  }\n  fprintf((FILE *)*param_1,"\n%s",param_2[8]);\n  sVar3 = strlen((char *)param_2[8]);\n  FUN_0028a120(param_1,sVar3,0x10);\n  __s_00 = local_4e;\n  snprintf(__s_00,0x32,"0x%llx",param_2[3],param_2[4]);\n  if ((*(byte *)(param_2 + 7) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/output.h",0xc5,"address",extraout_ECX);\n  }\n  iVar5 = param_2[1];\n  if (*(int *)(DAT_005ea7c8 + 0xc) != 0) {\n    iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n    iVar4 = iVar1 + 3;\n    if (-1 < iVar1) {\n      iVar4 = iVar1;\n    }\n    fprintf((FILE *)*param_1,"0x%0*llx %10s",iVar4 >> 2,iVar5,param_2[2],__s_00);\n    if (*(code **)(*param_2 + 0x10) == FUN_001440b0) {\n      bVar2 = *(byte *)(param_2 + 0x24) >> 7;\n    }\n    else {\n      bVar2 = (**(code **)(*param_2 + 0x10))(param_2);\n    }\n    if (bVar2 != 0) {\n      if (*(code **)(*param_2 + 0x14) == FUN_00144240) {\n        if (-1 < (char)param_2[0x24]) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }\n        uVar6 = *(undefined8 *)(param_2 + 0xd);\n      }\n      else {\n        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);\n      }\n      iVar5 = (int)((ulonglong)uVar6 >> 0x20);\n      if (*(int *)(DAT_005ea7c8 + 0xc) == 0) goto LAB_0028a6ce;\n      iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n      iVar4 = iVar1 + 3;\n      if (-1 < iVar1) {\n        iVar4 = iVar1;\n      }\n      fprintf((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00);\n    }\n    __s = (FILE *)*param_1;\n    if ((*(byte *)(param_2 + 0x24) & 0x20) != 0) {\n      fwrite(" (before compression)",1,0x15,__s);\n      __s = (FILE *)*param_1;\n    }\n    putc(10,__s);\n    return;\n  }\nLAB_0028a6ce:\n                    /* WARNING: Subroutine does not return */\n  FUN_002446e0("../../gold/parameters.h",0x69,"target",iVar5);\n}" primitive_type (function_declarator "FUN_0028a520(undefined4 *param_1,int *param_2)" identifier (parameter_list "(undefined4 *param_1,int *param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  byte bVar2;\n  size_t sVar3;\n  int iVar4;\n  FILE *__s;\n  undefined4 extraout_ECX;\n  int iVar5;\n  undefined8 uVar6;\n  char *__s_00;\n  char local_4e [58];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x28a529;\n  if (*(char *)((int)param_1 + 6) == '\0') {\n    FUN_00289f80();\n  }\n  fprintf((FILE *)*param_1,"\n%s",param_2[8]);\n  sVar3 = strlen((char *)param_2[8]);\n  FUN_0028a120(param_1,sVar3,0x10);\n  __s_00 = local_4e;\n  snprintf(__s_00,0x32,"0x%llx",param_2[3],param_2[4]);\n  if ((*(byte *)(param_2 + 7) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/output.h",0xc5,"address",extraout_ECX);\n  }\n  iVar5 = param_2[1];\n  if (*(int *)(DAT_005ea7c8 + 0xc) != 0) {\n    iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n    iVar4 = iVar1 + 3;\n    if (-1 < iVar1) {\n      iVar4 = iVar1;\n    }\n    fprintf((FILE *)*param_1,"0x%0*llx %10s",iVar4 >> 2,iVar5,param_2[2],__s_00);\n    if (*(code **)(*param_2 + 0x10) == FUN_001440b0) {\n      bVar2 = *(byte *)(param_2 + 0x24) >> 7;\n    }\n    else {\n      bVar2 = (**(code **)(*param_2 + 0x10))(param_2);\n    }\n    if (bVar2 != 0) {\n      if (*(code **)(*param_2 + 0x14) == FUN_00144240) {\n        if (-1 < (char)param_2[0x24]) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }\n        uVar6 = *(undefined8 *)(param_2 + 0xd);\n      }\n      else {\n        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);\n      }\n      iVar5 = (int)((ulonglong)uVar6 >> 0x20);\n      if (*(int *)(DAT_005ea7c8 + 0xc) == 0) goto LAB_0028a6ce;\n      iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n      iVar4 = iVar1 + 3;\n      if (-1 < iVar1) {\n        iVar4 = iVar1;\n      }\n      fprintf((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00);\n    }\n    __s = (FILE *)*param_1;\n    if ((*(byte *)(param_2 + 0x24) & 0x20) != 0) {\n      fwrite(" (before compression)",1,0x15,__s);\n      __s = (FILE *)*param_1;\n    }\n    putc(10,__s);\n    return;\n  }\nLAB_0028a6ce:\n                    /* WARNING: Subroutine does not return */\n  FUN_002446e0("../../gold/parameters.h",0x69,"target",iVar5);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "FILE *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "char *__s_00;" primitive_type (pointer_declarator "*__s_00" * identifier) ;) (declaration "char local_4e [58];" primitive_type (array_declarator "local_4e [58]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x28a529;" (assignment_expression "uStack_14 = 0x28a529" identifier = number_literal) ;) (if_statement "if (*(char *)((int)param_1 + 6) == '\0') {\n    FUN_00289f80();\n  }" if (parenthesized_expression "(*(char *)((int)param_1 + 6) == '\0')" ( (binary_expression "*(char *)((int)param_1 + 6) == '\0'" (pointer_expression "*(char *)((int)param_1 + 6)" * (cast_expression "(char *)((int)param_1 + 6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 6)" ( (binary_expression "(int)param_1 + 6" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    FUN_00289f80();\n  }" { (expression_statement "FUN_00289f80();" (call_expression "FUN_00289f80()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "fprintf((FILE *)*param_1,"\n%s",param_2[8]);" (call_expression "fprintf((FILE *)*param_1,"\n%s",param_2[8])" identifier (argument_list "((FILE *)*param_1,"\n%s",param_2[8])" ( (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) , (string_literal ""\n%s"" " escape_sequence string_content ") , (subscript_expression "param_2[8]" identifier [ number_literal ]) ))) ;) (expression_statement "sVar3 = strlen((char *)param_2[8]);" (assignment_expression "sVar3 = strlen((char *)param_2[8])" identifier = (call_expression "strlen((char *)param_2[8])" identifier (argument_list "((char *)param_2[8])" ( (cast_expression "(char *)param_2[8]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[8]" identifier [ number_literal ])) )))) ;) (expression_statement "FUN_0028a120(param_1,sVar3,0x10);" (call_expression "FUN_0028a120(param_1,sVar3,0x10)" identifier (argument_list "(param_1,sVar3,0x10)" ( identifier , identifier , number_literal ))) ;) (expression_statement "__s_00 = local_4e;" (assignment_expression "__s_00 = local_4e" identifier = identifier) ;) (expression_statement "snprintf(__s_00,0x32,"0x%llx",param_2[3],param_2[4]);" (call_expression "snprintf(__s_00,0x32,"0x%llx",param_2[3],param_2[4])" identifier (argument_list "(__s_00,0x32,"0x%llx",param_2[3],param_2[4])" ( identifier , number_literal , (string_literal ""0x%llx"" " string_content ") , (subscript_expression "param_2[3]" identifier [ number_literal ]) , (subscript_expression "param_2[4]" identifier [ number_literal ]) ))) ;) (if_statement "if ((*(byte *)(param_2 + 7) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/output.h",0xc5,"address",extraout_ECX);\n  }" if (parenthesized_expression "((*(byte *)(param_2 + 7) & 1) == 0)" ( (binary_expression "(*(byte *)(param_2 + 7) & 1) == 0" (parenthesized_expression "(*(byte *)(param_2 + 7) & 1)" ( (binary_expression "*(byte *)(param_2 + 7) & 1" (pointer_expression "*(byte *)(param_2 + 7)" * (cast_expression "(byte *)(param_2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/output.h",0xc5,"address",extraout_ECX);\n  }" { comment (expression_statement "FUN_002446e0("../../gold/output.h",0xc5,"address",extraout_ECX);" (call_expression "FUN_002446e0("../../gold/output.h",0xc5,"address",extraout_ECX)" identifier (argument_list "("../../gold/output.h",0xc5,"address",extraout_ECX)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""address"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar5 = param_2[1];" (assignment_expression "iVar5 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (if_statement "if (*(int *)(DAT_005ea7c8 + 0xc) != 0) {\n    iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n    iVar4 = iVar1 + 3;\n    if (-1 < iVar1) {\n      iVar4 = iVar1;\n    }\n    fprintf((FILE *)*param_1,"0x%0*llx %10s",iVar4 >> 2,iVar5,param_2[2],__s_00);\n    if (*(code **)(*param_2 + 0x10) == FUN_001440b0) {\n      bVar2 = *(byte *)(param_2 + 0x24) >> 7;\n    }\n    else {\n      bVar2 = (**(code **)(*param_2 + 0x10))(param_2);\n    }\n    if (bVar2 != 0) {\n      if (*(code **)(*param_2 + 0x14) == FUN_00144240) {\n        if (-1 < (char)param_2[0x24]) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }\n        uVar6 = *(undefined8 *)(param_2 + 0xd);\n      }\n      else {\n        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);\n      }\n      iVar5 = (int)((ulonglong)uVar6 >> 0x20);\n      if (*(int *)(DAT_005ea7c8 + 0xc) == 0) goto LAB_0028a6ce;\n      iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n      iVar4 = iVar1 + 3;\n      if (-1 < iVar1) {\n        iVar4 = iVar1;\n      }\n      fprintf((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00);\n    }\n    __s = (FILE *)*param_1;\n    if ((*(byte *)(param_2 + 0x24) & 0x20) != 0) {\n      fwrite(" (before compression)",1,0x15,__s);\n      __s = (FILE *)*param_1;\n    }\n    putc(10,__s);\n    return;\n  }" if (parenthesized_expression "(*(int *)(DAT_005ea7c8 + 0xc) != 0)" ( (binary_expression "*(int *)(DAT_005ea7c8 + 0xc) != 0" (pointer_expression "*(int *)(DAT_005ea7c8 + 0xc)" * (cast_expression "(int *)(DAT_005ea7c8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 0xc)" ( (binary_expression "DAT_005ea7c8 + 0xc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n    iVar4 = iVar1 + 3;\n    if (-1 < iVar1) {\n      iVar4 = iVar1;\n    }\n    fprintf((FILE *)*param_1,"0x%0*llx %10s",iVar4 >> 2,iVar5,param_2[2],__s_00);\n    if (*(code **)(*param_2 + 0x10) == FUN_001440b0) {\n      bVar2 = *(byte *)(param_2 + 0x24) >> 7;\n    }\n    else {\n      bVar2 = (**(code **)(*param_2 + 0x10))(param_2);\n    }\n    if (bVar2 != 0) {\n      if (*(code **)(*param_2 + 0x14) == FUN_00144240) {\n        if (-1 < (char)param_2[0x24]) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }\n        uVar6 = *(undefined8 *)(param_2 + 0xd);\n      }\n      else {\n        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);\n      }\n      iVar5 = (int)((ulonglong)uVar6 >> 0x20);\n      if (*(int *)(DAT_005ea7c8 + 0xc) == 0) goto LAB_0028a6ce;\n      iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n      iVar4 = iVar1 + 3;\n      if (-1 < iVar1) {\n        iVar4 = iVar1;\n      }\n      fprintf((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00);\n    }\n    __s = (FILE *)*param_1;\n    if ((*(byte *)(param_2 + 0x24) & 0x20) != 0) {\n      fwrite(" (before compression)",1,0x15,__s);\n      __s = (FILE *)*param_1;\n    }\n    putc(10,__s);\n    return;\n  }" { (expression_statement "iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);" (assignment_expression "iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4)" identifier = (pointer_expression "**(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_005ea7c8 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_005ea7c8 + 0xc) + 4" (pointer_expression "*(int *)(DAT_005ea7c8 + 0xc)" * (cast_expression "(int *)(DAT_005ea7c8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 0xc)" ( (binary_expression "DAT_005ea7c8 + 0xc" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "iVar4 = iVar1 + 3;" (assignment_expression "iVar4 = iVar1 + 3" identifier = (binary_expression "iVar1 + 3" identifier + number_literal)) ;) (if_statement "if (-1 < iVar1) {\n      iVar4 = iVar1;\n    }" if (parenthesized_expression "(-1 < iVar1)" ( (binary_expression "-1 < iVar1" number_literal < identifier) )) (compound_statement "{\n      iVar4 = iVar1;\n    }" { (expression_statement "iVar4 = iVar1;" (assignment_expression "iVar4 = iVar1" identifier = identifier) ;) })) (expression_statement "fprintf((FILE *)*param_1,"0x%0*llx %10s",iVar4 >> 2,iVar5,param_2[2],__s_00);" (call_expression "fprintf((FILE *)*param_1,"0x%0*llx %10s",iVar4 >> 2,iVar5,param_2[2],__s_00)" identifier (argument_list "((FILE *)*param_1,"0x%0*llx %10s",iVar4 >> 2,iVar5,param_2[2],__s_00)" ( (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) , (string_literal ""0x%0*llx %10s"" " string_content ") , (binary_expression "iVar4 >> 2" identifier >> number_literal) , identifier , (subscript_expression "param_2[2]" identifier [ number_literal ]) , identifier ))) ;) (if_statement "if (*(code **)(*param_2 + 0x10) == FUN_001440b0) {\n      bVar2 = *(byte *)(param_2 + 0x24) >> 7;\n    }\n    else {\n      bVar2 = (**(code **)(*param_2 + 0x10))(param_2);\n    }" if (parenthesized_expression "(*(code **)(*param_2 + 0x10) == FUN_001440b0)" ( (binary_expression "*(code **)(*param_2 + 0x10) == FUN_001440b0" (pointer_expression "*(code **)(*param_2 + 0x10)" * (cast_expression "(code **)(*param_2 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x10)" ( (binary_expression "*param_2 + 0x10" (pointer_expression "*param_2" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n      bVar2 = *(byte *)(param_2 + 0x24) >> 7;\n    }" { (expression_statement "bVar2 = *(byte *)(param_2 + 0x24) >> 7;" (assignment_expression "bVar2 = *(byte *)(param_2 + 0x24) >> 7" identifier = (binary_expression "*(byte *)(param_2 + 0x24) >> 7" (pointer_expression "*(byte *)(param_2 + 0x24)" * (cast_expression "(byte *)(param_2 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x24)" ( (binary_expression "param_2 + 0x24" identifier + number_literal) )))) >> number_literal)) ;) }) (else_clause "else {\n      bVar2 = (**(code **)(*param_2 + 0x10))(param_2);\n    }" else (compound_statement "{\n      bVar2 = (**(code **)(*param_2 + 0x10))(param_2);\n    }" { (expression_statement "bVar2 = (**(code **)(*param_2 + 0x10))(param_2);" (assignment_expression "bVar2 = (**(code **)(*param_2 + 0x10))(param_2)" identifier = (call_expression "(**(code **)(*param_2 + 0x10))(param_2)" (parenthesized_expression "(**(code **)(*param_2 + 0x10))" ( (pointer_expression "**(code **)(*param_2 + 0x10)" * (pointer_expression "*(code **)(*param_2 + 0x10)" * (cast_expression "(code **)(*param_2 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x10)" ( (binary_expression "*param_2 + 0x10" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) }))) (if_statement "if (bVar2 != 0) {\n      if (*(code **)(*param_2 + 0x14) == FUN_00144240) {\n        if (-1 < (char)param_2[0x24]) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }\n        uVar6 = *(undefined8 *)(param_2 + 0xd);\n      }\n      else {\n        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);\n      }\n      iVar5 = (int)((ulonglong)uVar6 >> 0x20);\n      if (*(int *)(DAT_005ea7c8 + 0xc) == 0) goto LAB_0028a6ce;\n      iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n      iVar4 = iVar1 + 3;\n      if (-1 < iVar1) {\n        iVar4 = iVar1;\n      }\n      fprintf((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00);\n    }" if (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      if (*(code **)(*param_2 + 0x14) == FUN_00144240) {\n        if (-1 < (char)param_2[0x24]) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }\n        uVar6 = *(undefined8 *)(param_2 + 0xd);\n      }\n      else {\n        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);\n      }\n      iVar5 = (int)((ulonglong)uVar6 >> 0x20);\n      if (*(int *)(DAT_005ea7c8 + 0xc) == 0) goto LAB_0028a6ce;\n      iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n      iVar4 = iVar1 + 3;\n      if (-1 < iVar1) {\n        iVar4 = iVar1;\n      }\n      fprintf((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00);\n    }" { (if_statement "if (*(code **)(*param_2 + 0x14) == FUN_00144240) {\n        if (-1 < (char)param_2[0x24]) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }\n        uVar6 = *(undefined8 *)(param_2 + 0xd);\n      }\n      else {\n        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);\n      }" if (parenthesized_expression "(*(code **)(*param_2 + 0x14) == FUN_00144240)" ( (binary_expression "*(code **)(*param_2 + 0x14) == FUN_00144240" (pointer_expression "*(code **)(*param_2 + 0x14)" * (cast_expression "(code **)(*param_2 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x14)" ( (binary_expression "*param_2 + 0x14" (pointer_expression "*param_2" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n        if (-1 < (char)param_2[0x24]) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }\n        uVar6 = *(undefined8 *)(param_2 + 0xd);\n      }" { (if_statement "if (-1 < (char)param_2[0x24]) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }" if (parenthesized_expression "(-1 < (char)param_2[0x24])" ( (binary_expression "-1 < (char)param_2[0x24]" number_literal < (cast_expression "(char)param_2[0x24]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_2[0x24]" identifier [ number_literal ]))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }" { comment (expression_statement "FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);" (call_expression "FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240)" identifier (argument_list "("../../gold/output.h",0x107b,"do_load_address",FUN_00144240)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""do_load_address"" " string_content ") , identifier ))) ;) })) (expression_statement "uVar6 = *(undefined8 *)(param_2 + 0xd);" (assignment_expression "uVar6 = *(undefined8 *)(param_2 + 0xd)" identifier = (pointer_expression "*(undefined8 *)(param_2 + 0xd)" * (cast_expression "(undefined8 *)(param_2 + 0xd)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xd)" ( (binary_expression "param_2 + 0xd" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);\n      }" else (compound_statement "{\n        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);\n      }" { (expression_statement "uVar6 = (**(code **)(*param_2 + 0x14))(param_2);" (assignment_expression "uVar6 = (**(code **)(*param_2 + 0x14))(param_2)" identifier = (call_expression "(**(code **)(*param_2 + 0x14))(param_2)" (parenthesized_expression "(**(code **)(*param_2 + 0x14))" ( (pointer_expression "**(code **)(*param_2 + 0x14)" * (pointer_expression "*(code **)(*param_2 + 0x14)" * (cast_expression "(code **)(*param_2 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x14)" ( (binary_expression "*param_2 + 0x14" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) }))) (expression_statement "iVar5 = (int)((ulonglong)uVar6 >> 0x20);" (assignment_expression "iVar5 = (int)((ulonglong)uVar6 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar6 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar6 >> 0x20)" ( (binary_expression "(ulonglong)uVar6 >> 0x20" (cast_expression "(ulonglong)uVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (*(int *)(DAT_005ea7c8 + 0xc) == 0) goto LAB_0028a6ce;" if (parenthesized_expression "(*(int *)(DAT_005ea7c8 + 0xc) == 0)" ( (binary_expression "*(int *)(DAT_005ea7c8 + 0xc) == 0" (pointer_expression "*(int *)(DAT_005ea7c8 + 0xc)" * (cast_expression "(int *)(DAT_005ea7c8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 0xc)" ( (binary_expression "DAT_005ea7c8 + 0xc" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0028a6ce;" goto statement_identifier ;)) (expression_statement "iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);" (assignment_expression "iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4)" identifier = (pointer_expression "**(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_005ea7c8 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_005ea7c8 + 0xc) + 4" (pointer_expression "*(int *)(DAT_005ea7c8 + 0xc)" * (cast_expression "(int *)(DAT_005ea7c8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 0xc)" ( (binary_expression "DAT_005ea7c8 + 0xc" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "iVar4 = iVar1 + 3;" (assignment_expression "iVar4 = iVar1 + 3" identifier = (binary_expression "iVar1 + 3" identifier + number_literal)) ;) (if_statement "if (-1 < iVar1) {\n        iVar4 = iVar1;\n      }" if (parenthesized_expression "(-1 < iVar1)" ( (binary_expression "-1 < iVar1" number_literal < identifier) )) (compound_statement "{\n        iVar4 = iVar1;\n      }" { (expression_statement "iVar4 = iVar1;" (assignment_expression "iVar4 = iVar1" identifier = identifier) ;) })) (expression_statement "fprintf((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00);" (call_expression "fprintf((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00)" identifier (argument_list "((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00)" ( (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) , (string_literal "" load address 0x%-*llx"" " string_content ") , (binary_expression "iVar4 >> 2" identifier >> number_literal) , (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , identifier ))) ;) })) (expression_statement "__s = (FILE *)*param_1;" (assignment_expression "__s = (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 ((*(byte *)(param_2 + 0x24) & 0x20) != 0) {\n      fwrite(" (before compression)",1,0x15,__s);\n      __s = (FILE *)*param_1;\n    }" if (parenthesized_expression "((*(byte *)(param_2 + 0x24) & 0x20) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0x24) & 0x20) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x24) & 0x20)" ( (binary_expression "*(byte *)(param_2 + 0x24) & 0x20" (pointer_expression "*(byte *)(param_2 + 0x24)" * (cast_expression "(byte *)(param_2 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x24)" ( (binary_expression "param_2 + 0x24" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" (before compression)",1,0x15,__s);\n      __s = (FILE *)*param_1;\n    }" { (expression_statement "fwrite(" (before compression)",1,0x15,__s);" (call_expression "fwrite(" (before compression)",1,0x15,__s)" identifier (argument_list "(" (before compression)",1,0x15,__s)" ( (string_literal "" (before compression)"" " string_content ") , number_literal , number_literal , identifier ))) ;) (expression_statement "__s = (FILE *)*param_1;" (assignment_expression "__s = (FILE *)*param_1" identifier = (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) })) (expression_statement "putc(10,__s);" (call_expression "putc(10,__s)" identifier (argument_list "(10,__s)" ( number_literal , identifier ))) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_0028a6ce:\n                    /* WARNING: Subroutine does not return */\n  FUN_002446e0("../../gold/parameters.h",0x69,"target",iVar5);" statement_identifier : comment (expression_statement "FUN_002446e0("../../gold/parameters.h",0x69,"target",iVar5);" (call_expression "FUN_002446e0("../../gold/parameters.h",0x69,"target",iVar5)" identifier (argument_list "("../../gold/parameters.h",0x69,"target",iVar5)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") , identifier ))) ;)) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* DWARF original prototype: void print_output_section(Mapfile * this, Output_section * os) */\n\nvoid __thiscall gold::Mapfile::print_output_section(Mapfile *this,Output_section *os)\n\n{\n  char sizebuf [50];\n  \n}\n\n" comment comment (function_definition "void __thiscall gold::Mapfile::print_output_section(Mapfile *this,Output_section *os)\n\n{\n  char sizebuf [50];\n  \n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Mapfile::" identifier : : identifier : :) (function_declarator "print_output_section(Mapfile *this,Output_section *os)" identifier (parameter_list "(Mapfile *this,Output_section *os)" ( (parameter_declaration "Mapfile *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Output_section *os" type_identifier (pointer_declarator "*os" * identifier)) ))) (compound_statement "{\n  char sizebuf [50];\n  \n}" { (declaration "char sizebuf [50];" primitive_type (array_declarator "sizebuf [50]" identifier [ number_literal ]) ;) })))
(translation_unit "void FUN_0028a520(undefined4 *param_1,int *param_2)\n\n{\n  int iVar1;\n  byte bVar2;\n  size_t sVar3;\n  int iVar4;\n  FILE *__s;\n  undefined4 extraout_ECX;\n  int iVar5;\n  undefined8 uVar6;\n  char *__s_00;\n  char local_4e [58];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x28a529;\n  if (*(char *)((int)param_1 + 6) == '\0') {\n    FUN_00289f80();\n  }\n  fprintf((FILE *)*param_1,"\n%s",param_2[8]);\n  sVar3 = strlen((char *)param_2[8]);\n  FUN_0028a120(param_1,sVar3,0x10);\n  __s_00 = local_4e;\n  snprintf(__s_00,0x32,"0x%llx",param_2[3],param_2[4]);\n  if ((*(byte *)(param_2 + 7) & 1) == 0) {\n                    \n    FUN_002446e0("../../gold/output.h",0xc5,"address",extraout_ECX);\n  }\n  iVar5 = param_2[1];\n  if (*(int *)(DAT_005ea7c8 + 0xc) != 0) {\n    iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n    iVar4 = iVar1 + 3;\n    if (-1 < iVar1) {\n      iVar4 = iVar1;\n    }\n    fprintf((FILE *)*param_1,"0x%0*llx %10s",iVar4 >> 2,iVar5,param_2[2],__s_00);\n    if (*(code **)(*param_2 + 0x10) == FUN_001440b0) {\n      bVar2 = *(byte *)(param_2 + 0x24) >> 7;\n    }\n    else {\n      bVar2 = (**(code **)(*param_2 + 0x10))(param_2);\n    }\n    if (bVar2 != 0) {\n      if (*(code **)(*param_2 + 0x14) == FUN_00144240) {\n        if (-1 < (char)param_2[0x24]) {\n                    \n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }\n        uVar6 = *(undefined8 *)(param_2 + 0xd);\n      }\n      else {\n        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);\n      }\n      iVar5 = (int)((ulonglong)uVar6 >> 0x20);\n      if (*(int *)(DAT_005ea7c8 + 0xc) == 0) goto LAB_0028a6ce;\n      iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n      iVar4 = iVar1 + 3;\n      if (-1 < iVar1) {\n        iVar4 = iVar1;\n      }\n      fprintf((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00);\n    }\n    __s = (FILE *)*param_1;\n    if ((*(byte *)(param_2 + 0x24) & 0x20) != 0) {\n      fwrite(" (before compression)",1,0x15,__s);\n      __s = (FILE *)*param_1;\n    }\n    putc(10,__s);\n    return;\n  }\nLAB_0028a6ce:\n                    \n  FUN_002446e0("../../gold/parameters.h",0x69,"target",iVar5);\n}\n\n" (function_definition "void FUN_0028a520(undefined4 *param_1,int *param_2)\n\n{\n  int iVar1;\n  byte bVar2;\n  size_t sVar3;\n  int iVar4;\n  FILE *__s;\n  undefined4 extraout_ECX;\n  int iVar5;\n  undefined8 uVar6;\n  char *__s_00;\n  char local_4e [58];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x28a529;\n  if (*(char *)((int)param_1 + 6) == '\0') {\n    FUN_00289f80();\n  }\n  fprintf((FILE *)*param_1,"\n%s",param_2[8]);\n  sVar3 = strlen((char *)param_2[8]);\n  FUN_0028a120(param_1,sVar3,0x10);\n  __s_00 = local_4e;\n  snprintf(__s_00,0x32,"0x%llx",param_2[3],param_2[4]);\n  if ((*(byte *)(param_2 + 7) & 1) == 0) {\n                    \n    FUN_002446e0("../../gold/output.h",0xc5,"address",extraout_ECX);\n  }\n  iVar5 = param_2[1];\n  if (*(int *)(DAT_005ea7c8 + 0xc) != 0) {\n    iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n    iVar4 = iVar1 + 3;\n    if (-1 < iVar1) {\n      iVar4 = iVar1;\n    }\n    fprintf((FILE *)*param_1,"0x%0*llx %10s",iVar4 >> 2,iVar5,param_2[2],__s_00);\n    if (*(code **)(*param_2 + 0x10) == FUN_001440b0) {\n      bVar2 = *(byte *)(param_2 + 0x24) >> 7;\n    }\n    else {\n      bVar2 = (**(code **)(*param_2 + 0x10))(param_2);\n    }\n    if (bVar2 != 0) {\n      if (*(code **)(*param_2 + 0x14) == FUN_00144240) {\n        if (-1 < (char)param_2[0x24]) {\n                    \n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }\n        uVar6 = *(undefined8 *)(param_2 + 0xd);\n      }\n      else {\n        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);\n      }\n      iVar5 = (int)((ulonglong)uVar6 >> 0x20);\n      if (*(int *)(DAT_005ea7c8 + 0xc) == 0) goto LAB_0028a6ce;\n      iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n      iVar4 = iVar1 + 3;\n      if (-1 < iVar1) {\n        iVar4 = iVar1;\n      }\n      fprintf((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00);\n    }\n    __s = (FILE *)*param_1;\n    if ((*(byte *)(param_2 + 0x24) & 0x20) != 0) {\n      fwrite(" (before compression)",1,0x15,__s);\n      __s = (FILE *)*param_1;\n    }\n    putc(10,__s);\n    return;\n  }\nLAB_0028a6ce:\n                    \n  FUN_002446e0("../../gold/parameters.h",0x69,"target",iVar5);\n}" primitive_type (function_declarator "FUN_0028a520(undefined4 *param_1,int *param_2)" identifier (parameter_list "(undefined4 *param_1,int *param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  byte bVar2;\n  size_t sVar3;\n  int iVar4;\n  FILE *__s;\n  undefined4 extraout_ECX;\n  int iVar5;\n  undefined8 uVar6;\n  char *__s_00;\n  char local_4e [58];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x28a529;\n  if (*(char *)((int)param_1 + 6) == '\0') {\n    FUN_00289f80();\n  }\n  fprintf((FILE *)*param_1,"\n%s",param_2[8]);\n  sVar3 = strlen((char *)param_2[8]);\n  FUN_0028a120(param_1,sVar3,0x10);\n  __s_00 = local_4e;\n  snprintf(__s_00,0x32,"0x%llx",param_2[3],param_2[4]);\n  if ((*(byte *)(param_2 + 7) & 1) == 0) {\n                    \n    FUN_002446e0("../../gold/output.h",0xc5,"address",extraout_ECX);\n  }\n  iVar5 = param_2[1];\n  if (*(int *)(DAT_005ea7c8 + 0xc) != 0) {\n    iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n    iVar4 = iVar1 + 3;\n    if (-1 < iVar1) {\n      iVar4 = iVar1;\n    }\n    fprintf((FILE *)*param_1,"0x%0*llx %10s",iVar4 >> 2,iVar5,param_2[2],__s_00);\n    if (*(code **)(*param_2 + 0x10) == FUN_001440b0) {\n      bVar2 = *(byte *)(param_2 + 0x24) >> 7;\n    }\n    else {\n      bVar2 = (**(code **)(*param_2 + 0x10))(param_2);\n    }\n    if (bVar2 != 0) {\n      if (*(code **)(*param_2 + 0x14) == FUN_00144240) {\n        if (-1 < (char)param_2[0x24]) {\n                    \n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }\n        uVar6 = *(undefined8 *)(param_2 + 0xd);\n      }\n      else {\n        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);\n      }\n      iVar5 = (int)((ulonglong)uVar6 >> 0x20);\n      if (*(int *)(DAT_005ea7c8 + 0xc) == 0) goto LAB_0028a6ce;\n      iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n      iVar4 = iVar1 + 3;\n      if (-1 < iVar1) {\n        iVar4 = iVar1;\n      }\n      fprintf((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00);\n    }\n    __s = (FILE *)*param_1;\n    if ((*(byte *)(param_2 + 0x24) & 0x20) != 0) {\n      fwrite(" (before compression)",1,0x15,__s);\n      __s = (FILE *)*param_1;\n    }\n    putc(10,__s);\n    return;\n  }\nLAB_0028a6ce:\n                    \n  FUN_002446e0("../../gold/parameters.h",0x69,"target",iVar5);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "FILE *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "char *__s_00;" primitive_type (pointer_declarator "*__s_00" * identifier) ;) (declaration "char local_4e [58];" primitive_type (array_declarator "local_4e [58]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x28a529;" (assignment_expression "uStack_14 = 0x28a529" identifier = number_literal) ;) (if_statement "if (*(char *)((int)param_1 + 6) == '\0') {\n    FUN_00289f80();\n  }" if (parenthesized_expression "(*(char *)((int)param_1 + 6) == '\0')" ( (binary_expression "*(char *)((int)param_1 + 6) == '\0'" (pointer_expression "*(char *)((int)param_1 + 6)" * (cast_expression "(char *)((int)param_1 + 6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 6)" ( (binary_expression "(int)param_1 + 6" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    FUN_00289f80();\n  }" { (expression_statement "FUN_00289f80();" (call_expression "FUN_00289f80()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "fprintf((FILE *)*param_1,"\n%s",param_2[8]);" (call_expression "fprintf((FILE *)*param_1,"\n%s",param_2[8])" identifier (argument_list "((FILE *)*param_1,"\n%s",param_2[8])" ( (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) , (string_literal ""\n%s"" " escape_sequence string_content ") , (subscript_expression "param_2[8]" identifier [ number_literal ]) ))) ;) (expression_statement "sVar3 = strlen((char *)param_2[8]);" (assignment_expression "sVar3 = strlen((char *)param_2[8])" identifier = (call_expression "strlen((char *)param_2[8])" identifier (argument_list "((char *)param_2[8])" ( (cast_expression "(char *)param_2[8]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[8]" identifier [ number_literal ])) )))) ;) (expression_statement "FUN_0028a120(param_1,sVar3,0x10);" (call_expression "FUN_0028a120(param_1,sVar3,0x10)" identifier (argument_list "(param_1,sVar3,0x10)" ( identifier , identifier , number_literal ))) ;) (expression_statement "__s_00 = local_4e;" (assignment_expression "__s_00 = local_4e" identifier = identifier) ;) (expression_statement "snprintf(__s_00,0x32,"0x%llx",param_2[3],param_2[4]);" (call_expression "snprintf(__s_00,0x32,"0x%llx",param_2[3],param_2[4])" identifier (argument_list "(__s_00,0x32,"0x%llx",param_2[3],param_2[4])" ( identifier , number_literal , (string_literal ""0x%llx"" " string_content ") , (subscript_expression "param_2[3]" identifier [ number_literal ]) , (subscript_expression "param_2[4]" identifier [ number_literal ]) ))) ;) (if_statement "if ((*(byte *)(param_2 + 7) & 1) == 0) {\n                    \n    FUN_002446e0("../../gold/output.h",0xc5,"address",extraout_ECX);\n  }" if (parenthesized_expression "((*(byte *)(param_2 + 7) & 1) == 0)" ( (binary_expression "(*(byte *)(param_2 + 7) & 1) == 0" (parenthesized_expression "(*(byte *)(param_2 + 7) & 1)" ( (binary_expression "*(byte *)(param_2 + 7) & 1" (pointer_expression "*(byte *)(param_2 + 7)" * (cast_expression "(byte *)(param_2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/output.h",0xc5,"address",extraout_ECX);\n  }" { (expression_statement "FUN_002446e0("../../gold/output.h",0xc5,"address",extraout_ECX);" (call_expression "FUN_002446e0("../../gold/output.h",0xc5,"address",extraout_ECX)" identifier (argument_list "("../../gold/output.h",0xc5,"address",extraout_ECX)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""address"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar5 = param_2[1];" (assignment_expression "iVar5 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (if_statement "if (*(int *)(DAT_005ea7c8 + 0xc) != 0) {\n    iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n    iVar4 = iVar1 + 3;\n    if (-1 < iVar1) {\n      iVar4 = iVar1;\n    }\n    fprintf((FILE *)*param_1,"0x%0*llx %10s",iVar4 >> 2,iVar5,param_2[2],__s_00);\n    if (*(code **)(*param_2 + 0x10) == FUN_001440b0) {\n      bVar2 = *(byte *)(param_2 + 0x24) >> 7;\n    }\n    else {\n      bVar2 = (**(code **)(*param_2 + 0x10))(param_2);\n    }\n    if (bVar2 != 0) {\n      if (*(code **)(*param_2 + 0x14) == FUN_00144240) {\n        if (-1 < (char)param_2[0x24]) {\n                    \n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }\n        uVar6 = *(undefined8 *)(param_2 + 0xd);\n      }\n      else {\n        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);\n      }\n      iVar5 = (int)((ulonglong)uVar6 >> 0x20);\n      if (*(int *)(DAT_005ea7c8 + 0xc) == 0) goto LAB_0028a6ce;\n      iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n      iVar4 = iVar1 + 3;\n      if (-1 < iVar1) {\n        iVar4 = iVar1;\n      }\n      fprintf((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00);\n    }\n    __s = (FILE *)*param_1;\n    if ((*(byte *)(param_2 + 0x24) & 0x20) != 0) {\n      fwrite(" (before compression)",1,0x15,__s);\n      __s = (FILE *)*param_1;\n    }\n    putc(10,__s);\n    return;\n  }" if (parenthesized_expression "(*(int *)(DAT_005ea7c8 + 0xc) != 0)" ( (binary_expression "*(int *)(DAT_005ea7c8 + 0xc) != 0" (pointer_expression "*(int *)(DAT_005ea7c8 + 0xc)" * (cast_expression "(int *)(DAT_005ea7c8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 0xc)" ( (binary_expression "DAT_005ea7c8 + 0xc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n    iVar4 = iVar1 + 3;\n    if (-1 < iVar1) {\n      iVar4 = iVar1;\n    }\n    fprintf((FILE *)*param_1,"0x%0*llx %10s",iVar4 >> 2,iVar5,param_2[2],__s_00);\n    if (*(code **)(*param_2 + 0x10) == FUN_001440b0) {\n      bVar2 = *(byte *)(param_2 + 0x24) >> 7;\n    }\n    else {\n      bVar2 = (**(code **)(*param_2 + 0x10))(param_2);\n    }\n    if (bVar2 != 0) {\n      if (*(code **)(*param_2 + 0x14) == FUN_00144240) {\n        if (-1 < (char)param_2[0x24]) {\n                    \n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }\n        uVar6 = *(undefined8 *)(param_2 + 0xd);\n      }\n      else {\n        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);\n      }\n      iVar5 = (int)((ulonglong)uVar6 >> 0x20);\n      if (*(int *)(DAT_005ea7c8 + 0xc) == 0) goto LAB_0028a6ce;\n      iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n      iVar4 = iVar1 + 3;\n      if (-1 < iVar1) {\n        iVar4 = iVar1;\n      }\n      fprintf((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00);\n    }\n    __s = (FILE *)*param_1;\n    if ((*(byte *)(param_2 + 0x24) & 0x20) != 0) {\n      fwrite(" (before compression)",1,0x15,__s);\n      __s = (FILE *)*param_1;\n    }\n    putc(10,__s);\n    return;\n  }" { (expression_statement "iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);" (assignment_expression "iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4)" identifier = (pointer_expression "**(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_005ea7c8 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_005ea7c8 + 0xc) + 4" (pointer_expression "*(int *)(DAT_005ea7c8 + 0xc)" * (cast_expression "(int *)(DAT_005ea7c8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 0xc)" ( (binary_expression "DAT_005ea7c8 + 0xc" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "iVar4 = iVar1 + 3;" (assignment_expression "iVar4 = iVar1 + 3" identifier = (binary_expression "iVar1 + 3" identifier + number_literal)) ;) (if_statement "if (-1 < iVar1) {\n      iVar4 = iVar1;\n    }" if (parenthesized_expression "(-1 < iVar1)" ( (binary_expression "-1 < iVar1" number_literal < identifier) )) (compound_statement "{\n      iVar4 = iVar1;\n    }" { (expression_statement "iVar4 = iVar1;" (assignment_expression "iVar4 = iVar1" identifier = identifier) ;) })) (expression_statement "fprintf((FILE *)*param_1,"0x%0*llx %10s",iVar4 >> 2,iVar5,param_2[2],__s_00);" (call_expression "fprintf((FILE *)*param_1,"0x%0*llx %10s",iVar4 >> 2,iVar5,param_2[2],__s_00)" identifier (argument_list "((FILE *)*param_1,"0x%0*llx %10s",iVar4 >> 2,iVar5,param_2[2],__s_00)" ( (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) , (string_literal ""0x%0*llx %10s"" " string_content ") , (binary_expression "iVar4 >> 2" identifier >> number_literal) , identifier , (subscript_expression "param_2[2]" identifier [ number_literal ]) , identifier ))) ;) (if_statement "if (*(code **)(*param_2 + 0x10) == FUN_001440b0) {\n      bVar2 = *(byte *)(param_2 + 0x24) >> 7;\n    }\n    else {\n      bVar2 = (**(code **)(*param_2 + 0x10))(param_2);\n    }" if (parenthesized_expression "(*(code **)(*param_2 + 0x10) == FUN_001440b0)" ( (binary_expression "*(code **)(*param_2 + 0x10) == FUN_001440b0" (pointer_expression "*(code **)(*param_2 + 0x10)" * (cast_expression "(code **)(*param_2 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x10)" ( (binary_expression "*param_2 + 0x10" (pointer_expression "*param_2" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n      bVar2 = *(byte *)(param_2 + 0x24) >> 7;\n    }" { (expression_statement "bVar2 = *(byte *)(param_2 + 0x24) >> 7;" (assignment_expression "bVar2 = *(byte *)(param_2 + 0x24) >> 7" identifier = (binary_expression "*(byte *)(param_2 + 0x24) >> 7" (pointer_expression "*(byte *)(param_2 + 0x24)" * (cast_expression "(byte *)(param_2 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x24)" ( (binary_expression "param_2 + 0x24" identifier + number_literal) )))) >> number_literal)) ;) }) (else_clause "else {\n      bVar2 = (**(code **)(*param_2 + 0x10))(param_2);\n    }" else (compound_statement "{\n      bVar2 = (**(code **)(*param_2 + 0x10))(param_2);\n    }" { (expression_statement "bVar2 = (**(code **)(*param_2 + 0x10))(param_2);" (assignment_expression "bVar2 = (**(code **)(*param_2 + 0x10))(param_2)" identifier = (call_expression "(**(code **)(*param_2 + 0x10))(param_2)" (parenthesized_expression "(**(code **)(*param_2 + 0x10))" ( (pointer_expression "**(code **)(*param_2 + 0x10)" * (pointer_expression "*(code **)(*param_2 + 0x10)" * (cast_expression "(code **)(*param_2 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x10)" ( (binary_expression "*param_2 + 0x10" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) }))) (if_statement "if (bVar2 != 0) {\n      if (*(code **)(*param_2 + 0x14) == FUN_00144240) {\n        if (-1 < (char)param_2[0x24]) {\n                    \n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }\n        uVar6 = *(undefined8 *)(param_2 + 0xd);\n      }\n      else {\n        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);\n      }\n      iVar5 = (int)((ulonglong)uVar6 >> 0x20);\n      if (*(int *)(DAT_005ea7c8 + 0xc) == 0) goto LAB_0028a6ce;\n      iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n      iVar4 = iVar1 + 3;\n      if (-1 < iVar1) {\n        iVar4 = iVar1;\n      }\n      fprintf((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00);\n    }" if (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      if (*(code **)(*param_2 + 0x14) == FUN_00144240) {\n        if (-1 < (char)param_2[0x24]) {\n                    \n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }\n        uVar6 = *(undefined8 *)(param_2 + 0xd);\n      }\n      else {\n        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);\n      }\n      iVar5 = (int)((ulonglong)uVar6 >> 0x20);\n      if (*(int *)(DAT_005ea7c8 + 0xc) == 0) goto LAB_0028a6ce;\n      iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n      iVar4 = iVar1 + 3;\n      if (-1 < iVar1) {\n        iVar4 = iVar1;\n      }\n      fprintf((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00);\n    }" { (if_statement "if (*(code **)(*param_2 + 0x14) == FUN_00144240) {\n        if (-1 < (char)param_2[0x24]) {\n                    \n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }\n        uVar6 = *(undefined8 *)(param_2 + 0xd);\n      }\n      else {\n        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);\n      }" if (parenthesized_expression "(*(code **)(*param_2 + 0x14) == FUN_00144240)" ( (binary_expression "*(code **)(*param_2 + 0x14) == FUN_00144240" (pointer_expression "*(code **)(*param_2 + 0x14)" * (cast_expression "(code **)(*param_2 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x14)" ( (binary_expression "*param_2 + 0x14" (pointer_expression "*param_2" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n        if (-1 < (char)param_2[0x24]) {\n                    \n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }\n        uVar6 = *(undefined8 *)(param_2 + 0xd);\n      }" { (if_statement "if (-1 < (char)param_2[0x24]) {\n                    \n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }" if (parenthesized_expression "(-1 < (char)param_2[0x24])" ( (binary_expression "-1 < (char)param_2[0x24]" number_literal < (cast_expression "(char)param_2[0x24]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_2[0x24]" identifier [ number_literal ]))) )) (compound_statement "{\n                    \n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }" { (expression_statement "FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);" (call_expression "FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240)" identifier (argument_list "("../../gold/output.h",0x107b,"do_load_address",FUN_00144240)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""do_load_address"" " string_content ") , identifier ))) ;) })) (expression_statement "uVar6 = *(undefined8 *)(param_2 + 0xd);" (assignment_expression "uVar6 = *(undefined8 *)(param_2 + 0xd)" identifier = (pointer_expression "*(undefined8 *)(param_2 + 0xd)" * (cast_expression "(undefined8 *)(param_2 + 0xd)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xd)" ( (binary_expression "param_2 + 0xd" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);\n      }" else (compound_statement "{\n        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);\n      }" { (expression_statement "uVar6 = (**(code **)(*param_2 + 0x14))(param_2);" (assignment_expression "uVar6 = (**(code **)(*param_2 + 0x14))(param_2)" identifier = (call_expression "(**(code **)(*param_2 + 0x14))(param_2)" (parenthesized_expression "(**(code **)(*param_2 + 0x14))" ( (pointer_expression "**(code **)(*param_2 + 0x14)" * (pointer_expression "*(code **)(*param_2 + 0x14)" * (cast_expression "(code **)(*param_2 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x14)" ( (binary_expression "*param_2 + 0x14" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) }))) (expression_statement "iVar5 = (int)((ulonglong)uVar6 >> 0x20);" (assignment_expression "iVar5 = (int)((ulonglong)uVar6 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar6 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar6 >> 0x20)" ( (binary_expression "(ulonglong)uVar6 >> 0x20" (cast_expression "(ulonglong)uVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (*(int *)(DAT_005ea7c8 + 0xc) == 0) goto LAB_0028a6ce;" if (parenthesized_expression "(*(int *)(DAT_005ea7c8 + 0xc) == 0)" ( (binary_expression "*(int *)(DAT_005ea7c8 + 0xc) == 0" (pointer_expression "*(int *)(DAT_005ea7c8 + 0xc)" * (cast_expression "(int *)(DAT_005ea7c8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 0xc)" ( (binary_expression "DAT_005ea7c8 + 0xc" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0028a6ce;" goto statement_identifier ;)) (expression_statement "iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);" (assignment_expression "iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4)" identifier = (pointer_expression "**(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_005ea7c8 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_005ea7c8 + 0xc) + 4" (pointer_expression "*(int *)(DAT_005ea7c8 + 0xc)" * (cast_expression "(int *)(DAT_005ea7c8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 0xc)" ( (binary_expression "DAT_005ea7c8 + 0xc" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "iVar4 = iVar1 + 3;" (assignment_expression "iVar4 = iVar1 + 3" identifier = (binary_expression "iVar1 + 3" identifier + number_literal)) ;) (if_statement "if (-1 < iVar1) {\n        iVar4 = iVar1;\n      }" if (parenthesized_expression "(-1 < iVar1)" ( (binary_expression "-1 < iVar1" number_literal < identifier) )) (compound_statement "{\n        iVar4 = iVar1;\n      }" { (expression_statement "iVar4 = iVar1;" (assignment_expression "iVar4 = iVar1" identifier = identifier) ;) })) (expression_statement "fprintf((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00);" (call_expression "fprintf((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00)" identifier (argument_list "((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00)" ( (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) , (string_literal "" load address 0x%-*llx"" " string_content ") , (binary_expression "iVar4 >> 2" identifier >> number_literal) , (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , identifier ))) ;) })) (expression_statement "__s = (FILE *)*param_1;" (assignment_expression "__s = (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 ((*(byte *)(param_2 + 0x24) & 0x20) != 0) {\n      fwrite(" (before compression)",1,0x15,__s);\n      __s = (FILE *)*param_1;\n    }" if (parenthesized_expression "((*(byte *)(param_2 + 0x24) & 0x20) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0x24) & 0x20) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x24) & 0x20)" ( (binary_expression "*(byte *)(param_2 + 0x24) & 0x20" (pointer_expression "*(byte *)(param_2 + 0x24)" * (cast_expression "(byte *)(param_2 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x24)" ( (binary_expression "param_2 + 0x24" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" (before compression)",1,0x15,__s);\n      __s = (FILE *)*param_1;\n    }" { (expression_statement "fwrite(" (before compression)",1,0x15,__s);" (call_expression "fwrite(" (before compression)",1,0x15,__s)" identifier (argument_list "(" (before compression)",1,0x15,__s)" ( (string_literal "" (before compression)"" " string_content ") , number_literal , number_literal , identifier ))) ;) (expression_statement "__s = (FILE *)*param_1;" (assignment_expression "__s = (FILE *)*param_1" identifier = (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) })) (expression_statement "putc(10,__s);" (call_expression "putc(10,__s)" identifier (argument_list "(10,__s)" ( number_literal , identifier ))) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_0028a6ce:\n                    \n  FUN_002446e0("../../gold/parameters.h",0x69,"target",iVar5);" statement_identifier : (expression_statement "FUN_002446e0("../../gold/parameters.h",0x69,"target",iVar5);" (call_expression "FUN_002446e0("../../gold/parameters.h",0x69,"target",iVar5)" identifier (argument_list "("../../gold/parameters.h",0x69,"target",iVar5)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") , identifier ))) ;)) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) , (string_literal " escape_sequence string_content ") , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content ") , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression 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 { (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) , (string_literal " string_content ") , (binary_expression IDENT >> LIT) , IDENT , (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) , (string_literal " string_content ") , (binary_expression IDENT >> LIT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , 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 ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;)) })))
(function_definition "void FUN_0028a520(undefined4 *param_1,int *param_2)\n\n{\n  int iVar1;\n  byte bVar2;\n  size_t sVar3;\n  int iVar4;\n  FILE *__s;\n  undefined4 extraout_ECX;\n  int iVar5;\n  undefined8 uVar6;\n  char *__s_00;\n  char local_4e [58];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x28a529;\n  if (*(char *)((int)param_1 + 6) == '\0') {\n    FUN_00289f80();\n  }\n  fprintf((FILE *)*param_1,"\n%s",param_2[8]);\n  sVar3 = strlen((char *)param_2[8]);\n  FUN_0028a120(param_1,sVar3,0x10);\n  __s_00 = local_4e;\n  snprintf(__s_00,0x32,"0x%llx",param_2[3],param_2[4]);\n  if ((*(byte *)(param_2 + 7) & 1) == 0) {\n                    \n    FUN_002446e0("../../gold/output.h",0xc5,"address",extraout_ECX);\n  }\n  iVar5 = param_2[1];\n  if (*(int *)(DAT_005ea7c8 + 0xc) != 0) {\n    iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n    iVar4 = iVar1 + 3;\n    if (-1 < iVar1) {\n      iVar4 = iVar1;\n    }\n    fprintf((FILE *)*param_1,"0x%0*llx %10s",iVar4 >> 2,iVar5,param_2[2],__s_00);\n    if (*(code **)(*param_2 + 0x10) == FUN_001440b0) {\n      bVar2 = *(byte *)(param_2 + 0x24) >> 7;\n    }\n    else {\n      bVar2 = (**(code **)(*param_2 + 0x10))(param_2);\n    }\n    if (bVar2 != 0) {\n      if (*(code **)(*param_2 + 0x14) == FUN_00144240) {\n        if (-1 < (char)param_2[0x24]) {\n                    \n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }\n        uVar6 = *(undefined8 *)(param_2 + 0xd);\n      }\n      else {\n        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);\n      }\n      iVar5 = (int)((ulonglong)uVar6 >> 0x20);\n      if (*(int *)(DAT_005ea7c8 + 0xc) == 0) goto LAB_0028a6ce;\n      iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n      iVar4 = iVar1 + 3;\n      if (-1 < iVar1) {\n        iVar4 = iVar1;\n      }\n      fprintf((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00);\n    }\n    __s = (FILE *)*param_1;\n    if ((*(byte *)(param_2 + 0x24) & 0x20) != 0) {\n      fwrite(" (before compression)",1,0x15,__s);\n      __s = (FILE *)*param_1;\n    }\n    putc(10,__s);\n    return;\n  }\nLAB_0028a6ce:\n                    \n  FUN_002446e0("../../gold/parameters.h",0x69,"target",iVar5);\n}" (primitive_type "void") (function_declarator "FUN_0028a520(undefined4 *param_1,int *param_2)" (identifier "FUN_0028a520") (parameter_list "(undefined4 *param_1,int *param_2)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  int iVar1;\n  byte bVar2;\n  size_t sVar3;\n  int iVar4;\n  FILE *__s;\n  undefined4 extraout_ECX;\n  int iVar5;\n  undefined8 uVar6;\n  char *__s_00;\n  char local_4e [58];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x28a529;\n  if (*(char *)((int)param_1 + 6) == '\0') {\n    FUN_00289f80();\n  }\n  fprintf((FILE *)*param_1,"\n%s",param_2[8]);\n  sVar3 = strlen((char *)param_2[8]);\n  FUN_0028a120(param_1,sVar3,0x10);\n  __s_00 = local_4e;\n  snprintf(__s_00,0x32,"0x%llx",param_2[3],param_2[4]);\n  if ((*(byte *)(param_2 + 7) & 1) == 0) {\n                    \n    FUN_002446e0("../../gold/output.h",0xc5,"address",extraout_ECX);\n  }\n  iVar5 = param_2[1];\n  if (*(int *)(DAT_005ea7c8 + 0xc) != 0) {\n    iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n    iVar4 = iVar1 + 3;\n    if (-1 < iVar1) {\n      iVar4 = iVar1;\n    }\n    fprintf((FILE *)*param_1,"0x%0*llx %10s",iVar4 >> 2,iVar5,param_2[2],__s_00);\n    if (*(code **)(*param_2 + 0x10) == FUN_001440b0) {\n      bVar2 = *(byte *)(param_2 + 0x24) >> 7;\n    }\n    else {\n      bVar2 = (**(code **)(*param_2 + 0x10))(param_2);\n    }\n    if (bVar2 != 0) {\n      if (*(code **)(*param_2 + 0x14) == FUN_00144240) {\n        if (-1 < (char)param_2[0x24]) {\n                    \n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }\n        uVar6 = *(undefined8 *)(param_2 + 0xd);\n      }\n      else {\n        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);\n      }\n      iVar5 = (int)((ulonglong)uVar6 >> 0x20);\n      if (*(int *)(DAT_005ea7c8 + 0xc) == 0) goto LAB_0028a6ce;\n      iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n      iVar4 = iVar1 + 3;\n      if (-1 < iVar1) {\n        iVar4 = iVar1;\n      }\n      fprintf((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00);\n    }\n    __s = (FILE *)*param_1;\n    if ((*(byte *)(param_2 + 0x24) & 0x20) != 0) {\n      fwrite(" (before compression)",1,0x15,__s);\n      __s = (FILE *)*param_1;\n    }\n    putc(10,__s);\n    return;\n  }\nLAB_0028a6ce:\n                    \n  FUN_002446e0("../../gold/parameters.h",0x69,"target",iVar5);\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "size_t sVar3;" (primitive_type "size_t") (identifier "sVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "FILE *__s;" (type_identifier "FILE") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "undefined4 extraout_ECX;" (type_identifier "undefined4") (identifier "extraout_ECX") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined8 uVar6;" (type_identifier "undefined8") (identifier "uVar6") (; ";")) (declaration "char *__s_00;" (primitive_type "char") (pointer_declarator "*__s_00" (* "*") (identifier "__s_00")) (; ";")) (declaration "char local_4e [58];" (primitive_type "char") (array_declarator "local_4e [58]" (identifier "local_4e") ([ "[") (number_literal "58") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x28a529;" (assignment_expression "uStack_14 = 0x28a529" (identifier "uStack_14") (= "=") (number_literal "0x28a529")) (; ";")) (if_statement "if (*(char *)((int)param_1 + 6) == '\0') {\n    FUN_00289f80();\n  }" (if "if") (parenthesized_expression "(*(char *)((int)param_1 + 6) == '\0')" (( "(") (binary_expression "*(char *)((int)param_1 + 6) == '\0'" (pointer_expression "*(char *)((int)param_1 + 6)" (* "*") (cast_expression "(char *)((int)param_1 + 6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 6)" (( "(") (binary_expression "(int)param_1 + 6" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "6")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    FUN_00289f80();\n  }" ({ "{") (expression_statement "FUN_00289f80();" (call_expression "FUN_00289f80()" (identifier "FUN_00289f80") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "fprintf((FILE *)*param_1,"\n%s",param_2[8]);" (call_expression "fprintf((FILE *)*param_1,"\n%s",param_2[8])" (identifier "fprintf") (argument_list "((FILE *)*param_1,"\n%s",param_2[8])" (( "(") (cast_expression "(FILE *)*param_1" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (, ",") (string_literal ""\n%s"" (" """) (escape_sequence "\n") (string_content "%s") (" """)) (, ",") (subscript_expression "param_2[8]" (identifier "param_2") ([ "[") (number_literal "8") (] "]")) () ")"))) (; ";")) (expression_statement "sVar3 = strlen((char *)param_2[8]);" (assignment_expression "sVar3 = strlen((char *)param_2[8])" (identifier "sVar3") (= "=") (call_expression "strlen((char *)param_2[8])" (identifier "strlen") (argument_list "((char *)param_2[8])" (( "(") (cast_expression "(char *)param_2[8]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[8]" (identifier "param_2") ([ "[") (number_literal "8") (] "]"))) () ")")))) (; ";")) (expression_statement "FUN_0028a120(param_1,sVar3,0x10);" (call_expression "FUN_0028a120(param_1,sVar3,0x10)" (identifier "FUN_0028a120") (argument_list "(param_1,sVar3,0x10)" (( "(") (identifier "param_1") (, ",") (identifier "sVar3") (, ",") (number_literal "0x10") () ")"))) (; ";")) (expression_statement "__s_00 = local_4e;" (assignment_expression "__s_00 = local_4e" (identifier "__s_00") (= "=") (identifier "local_4e")) (; ";")) (expression_statement "snprintf(__s_00,0x32,"0x%llx",param_2[3],param_2[4]);" (call_expression "snprintf(__s_00,0x32,"0x%llx",param_2[3],param_2[4])" (identifier "snprintf") (argument_list "(__s_00,0x32,"0x%llx",param_2[3],param_2[4])" (( "(") (identifier "__s_00") (, ",") (number_literal "0x32") (, ",") (string_literal ""0x%llx"" (" """) (string_content "0x%llx") (" """)) (, ",") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (, ",") (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]")) () ")"))) (; ";")) (if_statement "if ((*(byte *)(param_2 + 7) & 1) == 0) {\n                    \n    FUN_002446e0("../../gold/output.h",0xc5,"address",extraout_ECX);\n  }" (if "if") (parenthesized_expression "((*(byte *)(param_2 + 7) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(param_2 + 7) & 1) == 0" (parenthesized_expression "(*(byte *)(param_2 + 7) & 1)" (( "(") (binary_expression "*(byte *)(param_2 + 7) & 1" (pointer_expression "*(byte *)(param_2 + 7)" (* "*") (cast_expression "(byte *)(param_2 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 7)" (( "(") (binary_expression "param_2 + 7" (identifier "param_2") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/output.h",0xc5,"address",extraout_ECX);\n  }" ({ "{") (expression_statement "FUN_002446e0("../../gold/output.h",0xc5,"address",extraout_ECX);" (call_expression "FUN_002446e0("../../gold/output.h",0xc5,"address",extraout_ECX)" (identifier "FUN_002446e0") (argument_list "("../../gold/output.h",0xc5,"address",extraout_ECX)" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xc5") (, ",") (string_literal ""address"" (" """) (string_content "address") (" """)) (, ",") (identifier "extraout_ECX") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar5 = param_2[1];" (assignment_expression "iVar5 = param_2[1]" (identifier "iVar5") (= "=") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (*(int *)(DAT_005ea7c8 + 0xc) != 0) {\n    iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n    iVar4 = iVar1 + 3;\n    if (-1 < iVar1) {\n      iVar4 = iVar1;\n    }\n    fprintf((FILE *)*param_1,"0x%0*llx %10s",iVar4 >> 2,iVar5,param_2[2],__s_00);\n    if (*(code **)(*param_2 + 0x10) == FUN_001440b0) {\n      bVar2 = *(byte *)(param_2 + 0x24) >> 7;\n    }\n    else {\n      bVar2 = (**(code **)(*param_2 + 0x10))(param_2);\n    }\n    if (bVar2 != 0) {\n      if (*(code **)(*param_2 + 0x14) == FUN_00144240) {\n        if (-1 < (char)param_2[0x24]) {\n                    \n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }\n        uVar6 = *(undefined8 *)(param_2 + 0xd);\n      }\n      else {\n        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);\n      }\n      iVar5 = (int)((ulonglong)uVar6 >> 0x20);\n      if (*(int *)(DAT_005ea7c8 + 0xc) == 0) goto LAB_0028a6ce;\n      iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n      iVar4 = iVar1 + 3;\n      if (-1 < iVar1) {\n        iVar4 = iVar1;\n      }\n      fprintf((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00);\n    }\n    __s = (FILE *)*param_1;\n    if ((*(byte *)(param_2 + 0x24) & 0x20) != 0) {\n      fwrite(" (before compression)",1,0x15,__s);\n      __s = (FILE *)*param_1;\n    }\n    putc(10,__s);\n    return;\n  }" (if "if") (parenthesized_expression "(*(int *)(DAT_005ea7c8 + 0xc) != 0)" (( "(") (binary_expression "*(int *)(DAT_005ea7c8 + 0xc) != 0" (pointer_expression "*(int *)(DAT_005ea7c8 + 0xc)" (* "*") (cast_expression "(int *)(DAT_005ea7c8 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_005ea7c8 + 0xc)" (( "(") (binary_expression "DAT_005ea7c8 + 0xc" (identifier "DAT_005ea7c8") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n    iVar4 = iVar1 + 3;\n    if (-1 < iVar1) {\n      iVar4 = iVar1;\n    }\n    fprintf((FILE *)*param_1,"0x%0*llx %10s",iVar4 >> 2,iVar5,param_2[2],__s_00);\n    if (*(code **)(*param_2 + 0x10) == FUN_001440b0) {\n      bVar2 = *(byte *)(param_2 + 0x24) >> 7;\n    }\n    else {\n      bVar2 = (**(code **)(*param_2 + 0x10))(param_2);\n    }\n    if (bVar2 != 0) {\n      if (*(code **)(*param_2 + 0x14) == FUN_00144240) {\n        if (-1 < (char)param_2[0x24]) {\n                    \n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }\n        uVar6 = *(undefined8 *)(param_2 + 0xd);\n      }\n      else {\n        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);\n      }\n      iVar5 = (int)((ulonglong)uVar6 >> 0x20);\n      if (*(int *)(DAT_005ea7c8 + 0xc) == 0) goto LAB_0028a6ce;\n      iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n      iVar4 = iVar1 + 3;\n      if (-1 < iVar1) {\n        iVar4 = iVar1;\n      }\n      fprintf((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00);\n    }\n    __s = (FILE *)*param_1;\n    if ((*(byte *)(param_2 + 0x24) & 0x20) != 0) {\n      fwrite(" (before compression)",1,0x15,__s);\n      __s = (FILE *)*param_1;\n    }\n    putc(10,__s);\n    return;\n  }" ({ "{") (expression_statement "iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);" (assignment_expression "iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4)" (identifier "iVar1") (= "=") (pointer_expression "**(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4)" (* "*") (pointer_expression "*(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4)" (* "*") (cast_expression "(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(DAT_005ea7c8 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(DAT_005ea7c8 + 0xc) + 4" (pointer_expression "*(int *)(DAT_005ea7c8 + 0xc)" (* "*") (cast_expression "(int *)(DAT_005ea7c8 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_005ea7c8 + 0xc)" (( "(") (binary_expression "DAT_005ea7c8 + 0xc" (identifier "DAT_005ea7c8") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")")))))) (; ";")) (expression_statement "iVar4 = iVar1 + 3;" (assignment_expression "iVar4 = iVar1 + 3" (identifier "iVar4") (= "=") (binary_expression "iVar1 + 3" (identifier "iVar1") (+ "+") (number_literal "3"))) (; ";")) (if_statement "if (-1 < iVar1) {\n      iVar4 = iVar1;\n    }" (if "if") (parenthesized_expression "(-1 < iVar1)" (( "(") (binary_expression "-1 < iVar1" (number_literal "-1") (< "<") (identifier "iVar1")) () ")")) (compound_statement "{\n      iVar4 = iVar1;\n    }" ({ "{") (expression_statement "iVar4 = iVar1;" (assignment_expression "iVar4 = iVar1" (identifier "iVar4") (= "=") (identifier "iVar1")) (; ";")) (} "}"))) (expression_statement "fprintf((FILE *)*param_1,"0x%0*llx %10s",iVar4 >> 2,iVar5,param_2[2],__s_00);" (call_expression "fprintf((FILE *)*param_1,"0x%0*llx %10s",iVar4 >> 2,iVar5,param_2[2],__s_00)" (identifier "fprintf") (argument_list "((FILE *)*param_1,"0x%0*llx %10s",iVar4 >> 2,iVar5,param_2[2],__s_00)" (( "(") (cast_expression "(FILE *)*param_1" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (, ",") (string_literal ""0x%0*llx %10s"" (" """) (string_content "0x%0*llx %10s") (" """)) (, ",") (binary_expression "iVar4 >> 2" (identifier "iVar4") (>> ">>") (number_literal "2")) (, ",") (identifier "iVar5") (, ",") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (, ",") (identifier "__s_00") () ")"))) (; ";")) (if_statement "if (*(code **)(*param_2 + 0x10) == FUN_001440b0) {\n      bVar2 = *(byte *)(param_2 + 0x24) >> 7;\n    }\n    else {\n      bVar2 = (**(code **)(*param_2 + 0x10))(param_2);\n    }" (if "if") (parenthesized_expression "(*(code **)(*param_2 + 0x10) == FUN_001440b0)" (( "(") (binary_expression "*(code **)(*param_2 + 0x10) == FUN_001440b0" (pointer_expression "*(code **)(*param_2 + 0x10)" (* "*") (cast_expression "(code **)(*param_2 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0x10)" (( "(") (binary_expression "*param_2 + 0x10" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x10")) () ")")))) (== "==") (identifier "FUN_001440b0")) () ")")) (compound_statement "{\n      bVar2 = *(byte *)(param_2 + 0x24) >> 7;\n    }" ({ "{") (expression_statement "bVar2 = *(byte *)(param_2 + 0x24) >> 7;" (assignment_expression "bVar2 = *(byte *)(param_2 + 0x24) >> 7" (identifier "bVar2") (= "=") (binary_expression "*(byte *)(param_2 + 0x24) >> 7" (pointer_expression "*(byte *)(param_2 + 0x24)" (* "*") (cast_expression "(byte *)(param_2 + 0x24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x24)" (( "(") (binary_expression "param_2 + 0x24" (identifier "param_2") (+ "+") (number_literal "0x24")) () ")")))) (>> ">>") (number_literal "7"))) (; ";")) (} "}")) (else_clause "else {\n      bVar2 = (**(code **)(*param_2 + 0x10))(param_2);\n    }" (else "else") (compound_statement "{\n      bVar2 = (**(code **)(*param_2 + 0x10))(param_2);\n    }" ({ "{") (expression_statement "bVar2 = (**(code **)(*param_2 + 0x10))(param_2);" (assignment_expression "bVar2 = (**(code **)(*param_2 + 0x10))(param_2)" (identifier "bVar2") (= "=") (call_expression "(**(code **)(*param_2 + 0x10))(param_2)" (parenthesized_expression "(**(code **)(*param_2 + 0x10))" (( "(") (pointer_expression "**(code **)(*param_2 + 0x10)" (* "*") (pointer_expression "*(code **)(*param_2 + 0x10)" (* "*") (cast_expression "(code **)(*param_2 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0x10)" (( "(") (binary_expression "*param_2 + 0x10" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (} "}")))) (if_statement "if (bVar2 != 0) {\n      if (*(code **)(*param_2 + 0x14) == FUN_00144240) {\n        if (-1 < (char)param_2[0x24]) {\n                    \n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }\n        uVar6 = *(undefined8 *)(param_2 + 0xd);\n      }\n      else {\n        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);\n      }\n      iVar5 = (int)((ulonglong)uVar6 >> 0x20);\n      if (*(int *)(DAT_005ea7c8 + 0xc) == 0) goto LAB_0028a6ce;\n      iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n      iVar4 = iVar1 + 3;\n      if (-1 < iVar1) {\n        iVar4 = iVar1;\n      }\n      fprintf((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00);\n    }" (if "if") (parenthesized_expression "(bVar2 != 0)" (( "(") (binary_expression "bVar2 != 0" (identifier "bVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (*(code **)(*param_2 + 0x14) == FUN_00144240) {\n        if (-1 < (char)param_2[0x24]) {\n                    \n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }\n        uVar6 = *(undefined8 *)(param_2 + 0xd);\n      }\n      else {\n        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);\n      }\n      iVar5 = (int)((ulonglong)uVar6 >> 0x20);\n      if (*(int *)(DAT_005ea7c8 + 0xc) == 0) goto LAB_0028a6ce;\n      iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);\n      iVar4 = iVar1 + 3;\n      if (-1 < iVar1) {\n        iVar4 = iVar1;\n      }\n      fprintf((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00);\n    }" ({ "{") (if_statement "if (*(code **)(*param_2 + 0x14) == FUN_00144240) {\n        if (-1 < (char)param_2[0x24]) {\n                    \n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }\n        uVar6 = *(undefined8 *)(param_2 + 0xd);\n      }\n      else {\n        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);\n      }" (if "if") (parenthesized_expression "(*(code **)(*param_2 + 0x14) == FUN_00144240)" (( "(") (binary_expression "*(code **)(*param_2 + 0x14) == FUN_00144240" (pointer_expression "*(code **)(*param_2 + 0x14)" (* "*") (cast_expression "(code **)(*param_2 + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0x14)" (( "(") (binary_expression "*param_2 + 0x14" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x14")) () ")")))) (== "==") (identifier "FUN_00144240")) () ")")) (compound_statement "{\n        if (-1 < (char)param_2[0x24]) {\n                    \n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }\n        uVar6 = *(undefined8 *)(param_2 + 0xd);\n      }" ({ "{") (if_statement "if (-1 < (char)param_2[0x24]) {\n                    \n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }" (if "if") (parenthesized_expression "(-1 < (char)param_2[0x24])" (( "(") (binary_expression "-1 < (char)param_2[0x24]" (number_literal "-1") (< "<") (cast_expression "(char)param_2[0x24]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_2[0x24]" (identifier "param_2") ([ "[") (number_literal "0x24") (] "]")))) () ")")) (compound_statement "{\n                    \n          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);\n        }" ({ "{") (expression_statement "FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);" (call_expression "FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240)" (identifier "FUN_002446e0") (argument_list "("../../gold/output.h",0x107b,"do_load_address",FUN_00144240)" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x107b") (, ",") (string_literal ""do_load_address"" (" """) (string_content "do_load_address") (" """)) (, ",") (identifier "FUN_00144240") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar6 = *(undefined8 *)(param_2 + 0xd);" (assignment_expression "uVar6 = *(undefined8 *)(param_2 + 0xd)" (identifier "uVar6") (= "=") (pointer_expression "*(undefined8 *)(param_2 + 0xd)" (* "*") (cast_expression "(undefined8 *)(param_2 + 0xd)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xd)" (( "(") (binary_expression "param_2 + 0xd" (identifier "param_2") (+ "+") (number_literal "0xd")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);\n      }" (else "else") (compound_statement "{\n        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);\n      }" ({ "{") (expression_statement "uVar6 = (**(code **)(*param_2 + 0x14))(param_2);" (assignment_expression "uVar6 = (**(code **)(*param_2 + 0x14))(param_2)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(*param_2 + 0x14))(param_2)" (parenthesized_expression "(**(code **)(*param_2 + 0x14))" (( "(") (pointer_expression "**(code **)(*param_2 + 0x14)" (* "*") (pointer_expression "*(code **)(*param_2 + 0x14)" (* "*") (cast_expression "(code **)(*param_2 + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0x14)" (( "(") (binary_expression "*param_2 + 0x14" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (} "}")))) (expression_statement "iVar5 = (int)((ulonglong)uVar6 >> 0x20);" (assignment_expression "iVar5 = (int)((ulonglong)uVar6 >> 0x20)" (identifier "iVar5") (= "=") (cast_expression "(int)((ulonglong)uVar6 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar6 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar6 >> 0x20" (cast_expression "(ulonglong)uVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar6")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if (*(int *)(DAT_005ea7c8 + 0xc) == 0) goto LAB_0028a6ce;" (if "if") (parenthesized_expression "(*(int *)(DAT_005ea7c8 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(DAT_005ea7c8 + 0xc) == 0" (pointer_expression "*(int *)(DAT_005ea7c8 + 0xc)" (* "*") (cast_expression "(int *)(DAT_005ea7c8 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_005ea7c8 + 0xc)" (( "(") (binary_expression "DAT_005ea7c8 + 0xc" (identifier "DAT_005ea7c8") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0028a6ce;" (goto "goto") (statement_identifier "LAB_0028a6ce") (; ";"))) (expression_statement "iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);" (assignment_expression "iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4)" (identifier "iVar1") (= "=") (pointer_expression "**(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4)" (* "*") (pointer_expression "*(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4)" (* "*") (cast_expression "(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(DAT_005ea7c8 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(DAT_005ea7c8 + 0xc) + 4" (pointer_expression "*(int *)(DAT_005ea7c8 + 0xc)" (* "*") (cast_expression "(int *)(DAT_005ea7c8 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_005ea7c8 + 0xc)" (( "(") (binary_expression "DAT_005ea7c8 + 0xc" (identifier "DAT_005ea7c8") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")")))))) (; ";")) (expression_statement "iVar4 = iVar1 + 3;" (assignment_expression "iVar4 = iVar1 + 3" (identifier "iVar4") (= "=") (binary_expression "iVar1 + 3" (identifier "iVar1") (+ "+") (number_literal "3"))) (; ";")) (if_statement "if (-1 < iVar1) {\n        iVar4 = iVar1;\n      }" (if "if") (parenthesized_expression "(-1 < iVar1)" (( "(") (binary_expression "-1 < iVar1" (number_literal "-1") (< "<") (identifier "iVar1")) () ")")) (compound_statement "{\n        iVar4 = iVar1;\n      }" ({ "{") (expression_statement "iVar4 = iVar1;" (assignment_expression "iVar4 = iVar1" (identifier "iVar4") (= "=") (identifier "iVar1")) (; ";")) (} "}"))) (expression_statement "fprintf((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00);" (call_expression "fprintf((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00)" (identifier "fprintf") (argument_list "((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00)" (( "(") (cast_expression "(FILE *)*param_1" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (, ",") (string_literal "" load address 0x%-*llx"" (" """) (string_content " load address 0x%-*llx") (" """)) (, ",") (binary_expression "iVar4 >> 2" (identifier "iVar4") (>> ">>") (number_literal "2")) (, ",") (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6")) (, ",") (identifier "iVar5") (, ",") (identifier "__s_00") () ")"))) (; ";")) (} "}"))) (expression_statement "__s = (FILE *)*param_1;" (assignment_expression "__s = (FILE *)*param_1" (identifier "__s") (= "=") (cast_expression "(FILE *)*param_1" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (if_statement "if ((*(byte *)(param_2 + 0x24) & 0x20) != 0) {\n      fwrite(" (before compression)",1,0x15,__s);\n      __s = (FILE *)*param_1;\n    }" (if "if") (parenthesized_expression "((*(byte *)(param_2 + 0x24) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)(param_2 + 0x24) & 0x20) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x24) & 0x20)" (( "(") (binary_expression "*(byte *)(param_2 + 0x24) & 0x20" (pointer_expression "*(byte *)(param_2 + 0x24)" (* "*") (cast_expression "(byte *)(param_2 + 0x24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x24)" (( "(") (binary_expression "param_2 + 0x24" (identifier "param_2") (+ "+") (number_literal "0x24")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      fwrite(" (before compression)",1,0x15,__s);\n      __s = (FILE *)*param_1;\n    }" ({ "{") (expression_statement "fwrite(" (before compression)",1,0x15,__s);" (call_expression "fwrite(" (before compression)",1,0x15,__s)" (identifier "fwrite") (argument_list "(" (before compression)",1,0x15,__s)" (( "(") (string_literal "" (before compression)"" (" """) (string_content " (before compression)") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0x15") (, ",") (identifier "__s") () ")"))) (; ";")) (expression_statement "__s = (FILE *)*param_1;" (assignment_expression "__s = (FILE *)*param_1" (identifier "__s") (= "=") (cast_expression "(FILE *)*param_1" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (} "}"))) (expression_statement "putc(10,__s);" (call_expression "putc(10,__s)" (identifier "putc") (argument_list "(10,__s)" (( "(") (number_literal "10") (, ",") (identifier "__s") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (labeled_statement "LAB_0028a6ce:\n                    \n  FUN_002446e0("../../gold/parameters.h",0x69,"target",iVar5);" (statement_identifier "LAB_0028a6ce") (: ":") (expression_statement "FUN_002446e0("../../gold/parameters.h",0x69,"target",iVar5);" (call_expression "FUN_002446e0("../../gold/parameters.h",0x69,"target",iVar5)" (identifier "FUN_002446e0") (argument_list "("../../gold/parameters.h",0x69,"target",iVar5)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x69") (, ",") (string_literal ""target"" (" """) (string_content "target") (" """)) (, ",") (identifier "iVar5") () ")"))) (; ";"))) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: void print_output_section(Mapfile * this, Output_section * os) */

void __thiscall gold::type_1::function_1(type_1 *this,type_2 *os)

{
  char sizebuf [50];
  
}


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

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

void MASKED(undefined4 *param_1,int *param_2)

{
  int iVar1;
  byte bVar2;
  size_t sVar3;
  int iVar4;
  FILE *__s;
  undefined4 extraout_ECX;
  int iVar5;
  undefined8 uVar6;
  char *__s_00;
  char local_4e [58];
  undefined4 uStack_14;
  
  uStack_14 = 0x28a529;
  if (*(char *)((int)param_1 + 6) == '\0') {
    FUN_00289f80();
  }
  fprintf((FILE *)*param_1,"\n%s",param_2[8]);
  sVar3 = strlen((char *)param_2[8]);
  FUN_0028a120(param_1,sVar3,0x10);
  __s_00 = local_4e;
  snprintf(__s_00,0x32,"0x%llx",param_2[3],param_2[4]);
  if ((*(byte *)(param_2 + 7) & 1) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/output.h",0xc5,"address",extraout_ECX);
  }
  iVar5 = param_2[1];
  if (*(int *)(DAT_005ea7c8 + 0xc) != 0) {
    iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);
    iVar4 = iVar1 + 3;
    if (-1 < iVar1) {
      iVar4 = iVar1;
    }
    fprintf((FILE *)*param_1,"0x%0*llx %10s",iVar4 >> 2,iVar5,param_2[2],__s_00);
    if (*(code **)(*param_2 + 0x10) == FUN_001440b0) {
      bVar2 = *(byte *)(param_2 + 0x24) >> 7;
    }
    else {
      bVar2 = (**(code **)(*param_2 + 0x10))(param_2);
    }
    if (bVar2 != 0) {
      if (*(code **)(*param_2 + 0x14) == FUN_00144240) {
        if (-1 < (char)param_2[0x24]) {
                    /* WARNING: Subroutine does not return */
          FUN_002446e0("../../gold/output.h",0x107b,"do_load_address",FUN_00144240);
        }
        uVar6 = *(undefined8 *)(param_2 + 0xd);
      }
      else {
        uVar6 = (**(code **)(*param_2 + 0x14))(param_2);
      }
      iVar5 = (int)((ulonglong)uVar6 >> 0x20);
      if (*(int *)(DAT_005ea7c8 + 0xc) == 0) goto LAB_0028a6ce;
      iVar1 = **(int **)(*(int *)(DAT_005ea7c8 + 0xc) + 4);
      iVar4 = iVar1 + 3;
      if (-1 < iVar1) {
        iVar4 = iVar1;
      }
      fprintf((FILE *)*param_1," load address 0x%-*llx",iVar4 >> 2,(int)uVar6,iVar5,__s_00);
    }
    __s = (FILE *)*param_1;
    if ((*(byte *)(param_2 + 0x24) & 0x20) != 0) {
      fwrite(" (before compression)",1,0x15,__s);
      __s = (FILE *)*param_1;
    }
    putc(10,__s);
    return;
  }
LAB_0028a6ce:
                    /* WARNING: Subroutine does not return */
  FUN_002446e0("../../gold/parameters.h",0x69,"target",iVar5);
}

