
void minfo(char *fmt,...)

{
  char in_AL;
  asneeded_minfo *paVar1;
  undefined8 in_RCX;
  undefined8 in_RDX;
  undefined8 *puVar2;
  undefined8 in_RSI;
  undefined8 in_R8;
  undefined8 in_R9;
  undefined8 in_XMM0_Qa;
  undefined8 in_XMM1_Qa;
  undefined8 in_XMM2_Qa;
  undefined8 in_XMM3_Qa;
  undefined8 in_XMM4_Qa;
  undefined8 in_XMM5_Qa;
  undefined8 in_XMM6_Qa;
  undefined8 in_XMM7_Qa;
  va_list arg;
  undefined1 local_b8 [8];
  undefined8 local_b0;
  undefined8 local_a8;
  undefined8 local_a0;
  undefined8 local_98;
  undefined8 local_90;
  undefined8 local_88;
  undefined8 local_78;
  undefined8 local_68;
  undefined8 local_58;
  undefined8 local_48;
  undefined8 local_38;
  undefined8 local_28;
  undefined8 local_18;
  
  if (in_AL != '\0') {
    local_88 = in_XMM0_Qa;
    local_78 = in_XMM1_Qa;
    local_68 = in_XMM2_Qa;
    local_58 = in_XMM3_Qa;
    local_48 = in_XMM4_Qa;
    local_38 = in_XMM5_Qa;
    local_28 = in_XMM6_Qa;
    local_18 = in_XMM7_Qa;
  }
  if (config.map_file == (FILE *)0x0) {
    return;
  }
  arg[0].overflow_arg_area = &stack0x00000008;
  arg[0].gp_offset = 8;
  arg[0].reg_save_area = local_b8;
  arg[0].fp_offset = 0x30;
  local_b0 = in_RSI;
  local_a8 = in_RDX;
  local_a0 = in_RCX;
  local_98 = in_R8;
  local_90 = in_R9;
  if (((*fmt != '%') || (fmt[1] != '!')) || (fmt[2] != '\0')) {
    vfinfo(config.map_file,fmt,arg,0);
    return;
  }
  paVar1 = (asneeded_minfo *)xmalloc(0x20);
  paVar1->next = (asneeded_minfo *)0x0;
  if (arg[0].gp_offset < 0x30) {
    paVar1->soname = *(char **)((long)arg[0].reg_save_area + (ulong)arg[0].gp_offset);
    puVar2 = (undefined8 *)arg[0].overflow_arg_area;
    if (arg[0].gp_offset + 8 < 0x30) {
      paVar1->ref = *(bfd **)((long)arg[0].reg_save_area + (ulong)(arg[0].gp_offset + 8));
      if (arg[0].gp_offset + 0x10 < 0x30) {
        arg[0].overflow_arg_area =
             (void *)((ulong)(arg[0].gp_offset + 0x10) + (long)arg[0].reg_save_area);
      }
      goto LAB_00125413;
    }
  }
  else {
                    /* WARNING: Load size is inaccurate */
    paVar1->soname = *arg[0].overflow_arg_area;
    puVar2 = (undefined8 *)((long)arg[0].overflow_arg_area + 8);
  }
  arg[0].overflow_arg_area = puVar2 + 1;
  paVar1->ref = (bfd *)*puVar2;
LAB_00125413:
                    /* WARNING: Load size is inaccurate */
  paVar1->name = *arg[0].overflow_arg_area;
  *asneeded_list_tail = paVar1;
  asneeded_list_tail = (asneeded_minfo **)paVar1;
  return;
}



void FUN_00125300(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,
                 undefined8 param_5,undefined8 param_6,undefined8 param_7,undefined8 param_8,
                 char *param_9,undefined8 param_10,undefined8 param_11,undefined8 param_12,
                 undefined8 param_13,undefined8 param_14)

{
  char in_AL;
  undefined8 *puVar1;
  undefined8 *puVar2;
  uint local_d0 [2];
  undefined8 *local_c8;
  undefined1 *local_c0;
  undefined1 local_b8 [8];
  undefined8 local_b0;
  undefined8 local_a8;
  undefined8 local_a0;
  undefined8 local_98;
  undefined8 local_90;
  undefined8 local_88;
  undefined8 local_78;
  undefined8 local_68;
  undefined8 local_58;
  undefined8 local_48;
  undefined8 local_38;
  undefined8 local_28;
  undefined8 local_18;
  
  if (in_AL != '\0') {
    local_88 = param_1;
    local_78 = param_2;
    local_68 = param_3;
    local_58 = param_4;
    local_48 = param_5;
    local_38 = param_6;
    local_28 = param_7;
    local_18 = param_8;
  }
  if (DAT_0017bbd8 == 0) {
    return;
  }
  local_c8 = (undefined8 *)&stack0x00000008;
  local_d0[0] = 8;
  local_c0 = local_b8;
  local_d0[1] = 0x30;
  local_b0 = param_10;
  local_a8 = param_11;
  local_a0 = param_12;
  local_98 = param_13;
  local_90 = param_14;
  if (((*param_9 != '%') || (param_9[1] != '!')) || (param_9[2] != '\0')) {
    FUN_00124350(DAT_0017bbd8,param_9,local_d0,0);
    return;
  }
  puVar1 = (undefined8 *)xmalloc(0x20,param_9);
  *puVar1 = 0;
  if (local_d0[0] < 0x30) {
    puVar1[1] = *(undefined8 *)(local_c0 + local_d0[0]);
    puVar2 = local_c8;
    if (local_d0[0] + 8 < 0x30) {
      puVar1[2] = *(undefined8 *)(local_c0 + (local_d0[0] + 8));
      if (local_d0[0] + 0x10 < 0x30) {
        local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));
      }
      goto LAB_00125413;
    }
  }
  else {
    puVar1[1] = *local_c8;
    puVar2 = local_c8 + 1;
  }
  local_c8 = puVar2 + 1;
  puVar1[2] = *puVar2;
LAB_00125413:
  puVar1[3] = *local_c8;
  *DAT_0017b950 = puVar1;
  DAT_0017b950 = puVar1;
  return;
}


SUB RSP,0xd8
MOV qword ptr [RSP + 0x28],RSI
MOV qword ptr [RSP + 0x30],RDX
MOV qword ptr [RSP + 0x38],RCX
MOV qword ptr [RSP + 0x40],R8
MOV qword ptr [RSP + 0x48],R9
TEST AL,AL
JZ 0x0012535b
MOVAPS xmmword ptr [RSP + 0x50],XMM0
MOVAPS xmmword ptr [RSP + 0x60],XMM1
MOVAPS xmmword ptr [RSP + 0x70],XMM2
MOVAPS xmmword ptr [RSP + 0x80],XMM3
MOVAPS xmmword ptr [RSP + 0x90],XMM4
MOVAPS xmmword ptr [RSP + 0xa0],XMM5
MOVAPS xmmword ptr [RSP + 0xb0],XMM6
MOVAPS xmmword ptr [RSP + 0xc0],XMM7
CMP qword ptr [0x0017bbd8],0x0
JZ 0x001253ad
LEA RAX,[RSP + 0xe0]
CMP byte ptr [RDI],0x25
MOV RSI,RDI
MOV dword ptr [RSP + 0x8],0x8
MOV qword ptr [RSP + 0x10],RAX
LEA RAX,[RSP + 0x20]
MOV dword ptr [RSP + 0xc],0x30
MOV qword ptr [RSP + 0x18],RAX
JNZ 0x0012539a
CMP byte ptr [RDI + 0x1],0x21
JZ 0x001253b8
MOV RDI,qword ptr [0x0017bbd8]
LEA RDX,[RSP + 0x8]
XOR ECX,ECX
CALL 0x00124350
ADD RSP,0xd8
RET
CMP byte ptr [RDI + 0x2],0x0
JNZ 0x0012539a
MOV EDI,0x20
CALL 0x00109c60
MOV ECX,dword ptr [RSP + 0x8]
MOV qword ptr [RAX],0x0
CMP ECX,0x2f
JA 0x00125430
MOV RDI,qword ptr [RSP + 0x18]
MOV ESI,ECX
LEA EDX,[RCX + 0x8]
MOV dword ptr [RSP + 0x8],EDX
MOV RSI,qword ptr [RDI + RSI*0x1]
MOV qword ptr [RAX + 0x8],RSI
CMP EDX,0x2f
JA 0x0012546d
MOV ESI,EDX
LEA EDX,[RCX + 0x10]
MOV dword ptr [RSP + 0x8],EDX
MOV RSI,qword ptr [RDI + RSI*0x1]
MOV qword ptr [RAX + 0x10],RSI
CMP EDX,0x2f
JA 0x00125466
ADD ECX,0x18
ADD RDX,RDI
MOV dword ptr [RSP + 0x8],ECX
MOV RDX,qword ptr [RDX]
MOV qword ptr [RAX + 0x18],RDX
MOV RDX,qword ptr [0x0017b950]
MOV qword ptr [RDX],RAX
MOV qword ptr [0x0017b950],RAX
JMP 0x001253ad
MOV RDX,qword ptr [RSP + 0x10]
MOV RCX,RDX
ADD RDX,0x8
MOV qword ptr [RSP + 0x10],RDX
MOV RCX,qword ptr [RCX]
MOV qword ptr [RAX + 0x8],RCX
MOV RCX,RDX
ADD RDX,0x8
MOV qword ptr [RSP + 0x10],RDX
MOV RCX,qword ptr [RCX]
MOV qword ptr [RAX + 0x10],RCX
LEA RCX,[RDX + 0x8]
MOV qword ptr [RSP + 0x10],RCX
JMP 0x00125413
MOV RDX,qword ptr [RSP + 0x10]
JMP 0x0012545b
MOV RDX,qword ptr [RSP + 0x10]
JMP 0x00125448
(translation_unit "void FUN_00125300(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined8 param_6,undefined8 param_7,undefined8 param_8,\n                 char *param_9,undefined8 param_10,undefined8 param_11,undefined8 param_12,\n                 undefined8 param_13,undefined8 param_14)\n\n{\n  char in_AL;\n  undefined8 *puVar1;\n  undefined8 *puVar2;\n  uint local_d0 [2];\n  undefined8 *local_c8;\n  undefined1 *local_c0;\n  undefined1 local_b8 [8];\n  undefined8 local_b0;\n  undefined8 local_a8;\n  undefined8 local_a0;\n  undefined8 local_98;\n  undefined8 local_90;\n  undefined8 local_88;\n  undefined8 local_78;\n  undefined8 local_68;\n  undefined8 local_58;\n  undefined8 local_48;\n  undefined8 local_38;\n  undefined8 local_28;\n  undefined8 local_18;\n  \n  if (in_AL != '\0') {\n    local_88 = param_1;\n    local_78 = param_2;\n    local_68 = param_3;\n    local_58 = param_4;\n    local_48 = param_5;\n    local_38 = param_6;\n    local_28 = param_7;\n    local_18 = param_8;\n  }\n  if (DAT_0017bbd8 == 0) {\n    return;\n  }\n  local_c8 = (undefined8 *)&stack0x00000008;\n  local_d0[0] = 8;\n  local_c0 = local_b8;\n  local_d0[1] = 0x30;\n  local_b0 = param_10;\n  local_a8 = param_11;\n  local_a0 = param_12;\n  local_98 = param_13;\n  local_90 = param_14;\n  if (((*param_9 != '%') || (param_9[1] != '!')) || (param_9[2] != '\0')) {\n    FUN_00124350(DAT_0017bbd8,param_9,local_d0,0);\n    return;\n  }\n  puVar1 = (undefined8 *)xmalloc(0x20,param_9);\n  *puVar1 = 0;\n  if (local_d0[0] < 0x30) {\n    puVar1[1] = *(undefined8 *)(local_c0 + local_d0[0]);\n    puVar2 = local_c8;\n    if (local_d0[0] + 8 < 0x30) {\n      puVar1[2] = *(undefined8 *)(local_c0 + (local_d0[0] + 8));\n      if (local_d0[0] + 0x10 < 0x30) {\n        local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));\n      }\n      goto LAB_00125413;\n    }\n  }\n  else {\n    puVar1[1] = *local_c8;\n    puVar2 = local_c8 + 1;\n  }\n  local_c8 = puVar2 + 1;\n  puVar1[2] = *puVar2;\nLAB_00125413:\n  puVar1[3] = *local_c8;\n  *DAT_0017b950 = puVar1;\n  DAT_0017b950 = puVar1;\n  return;\n}\n\n" (function_definition "void FUN_00125300(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined8 param_6,undefined8 param_7,undefined8 param_8,\n                 char *param_9,undefined8 param_10,undefined8 param_11,undefined8 param_12,\n                 undefined8 param_13,undefined8 param_14)\n\n{\n  char in_AL;\n  undefined8 *puVar1;\n  undefined8 *puVar2;\n  uint local_d0 [2];\n  undefined8 *local_c8;\n  undefined1 *local_c0;\n  undefined1 local_b8 [8];\n  undefined8 local_b0;\n  undefined8 local_a8;\n  undefined8 local_a0;\n  undefined8 local_98;\n  undefined8 local_90;\n  undefined8 local_88;\n  undefined8 local_78;\n  undefined8 local_68;\n  undefined8 local_58;\n  undefined8 local_48;\n  undefined8 local_38;\n  undefined8 local_28;\n  undefined8 local_18;\n  \n  if (in_AL != '\0') {\n    local_88 = param_1;\n    local_78 = param_2;\n    local_68 = param_3;\n    local_58 = param_4;\n    local_48 = param_5;\n    local_38 = param_6;\n    local_28 = param_7;\n    local_18 = param_8;\n  }\n  if (DAT_0017bbd8 == 0) {\n    return;\n  }\n  local_c8 = (undefined8 *)&stack0x00000008;\n  local_d0[0] = 8;\n  local_c0 = local_b8;\n  local_d0[1] = 0x30;\n  local_b0 = param_10;\n  local_a8 = param_11;\n  local_a0 = param_12;\n  local_98 = param_13;\n  local_90 = param_14;\n  if (((*param_9 != '%') || (param_9[1] != '!')) || (param_9[2] != '\0')) {\n    FUN_00124350(DAT_0017bbd8,param_9,local_d0,0);\n    return;\n  }\n  puVar1 = (undefined8 *)xmalloc(0x20,param_9);\n  *puVar1 = 0;\n  if (local_d0[0] < 0x30) {\n    puVar1[1] = *(undefined8 *)(local_c0 + local_d0[0]);\n    puVar2 = local_c8;\n    if (local_d0[0] + 8 < 0x30) {\n      puVar1[2] = *(undefined8 *)(local_c0 + (local_d0[0] + 8));\n      if (local_d0[0] + 0x10 < 0x30) {\n        local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));\n      }\n      goto LAB_00125413;\n    }\n  }\n  else {\n    puVar1[1] = *local_c8;\n    puVar2 = local_c8 + 1;\n  }\n  local_c8 = puVar2 + 1;\n  puVar1[2] = *puVar2;\nLAB_00125413:\n  puVar1[3] = *local_c8;\n  *DAT_0017b950 = puVar1;\n  DAT_0017b950 = puVar1;\n  return;\n}" primitive_type (function_declarator "FUN_00125300(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined8 param_6,undefined8 param_7,undefined8 param_8,\n                 char *param_9,undefined8 param_10,undefined8 param_11,undefined8 param_12,\n                 undefined8 param_13,undefined8 param_14)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined8 param_6,undefined8 param_7,undefined8 param_8,\n                 char *param_9,undefined8 param_10,undefined8 param_11,undefined8 param_12,\n                 undefined8 param_13,undefined8 param_14)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) , (parameter_declaration "undefined8 param_5" type_identifier identifier) , (parameter_declaration "undefined8 param_6" type_identifier identifier) , (parameter_declaration "undefined8 param_7" type_identifier identifier) , (parameter_declaration "undefined8 param_8" type_identifier identifier) , (parameter_declaration "char *param_9" primitive_type (pointer_declarator "*param_9" * identifier)) , (parameter_declaration "undefined8 param_10" type_identifier identifier) , (parameter_declaration "undefined8 param_11" type_identifier identifier) , (parameter_declaration "undefined8 param_12" type_identifier identifier) , (parameter_declaration "undefined8 param_13" type_identifier identifier) , (parameter_declaration "undefined8 param_14" type_identifier identifier) ))) (compound_statement "{\n  char in_AL;\n  undefined8 *puVar1;\n  undefined8 *puVar2;\n  uint local_d0 [2];\n  undefined8 *local_c8;\n  undefined1 *local_c0;\n  undefined1 local_b8 [8];\n  undefined8 local_b0;\n  undefined8 local_a8;\n  undefined8 local_a0;\n  undefined8 local_98;\n  undefined8 local_90;\n  undefined8 local_88;\n  undefined8 local_78;\n  undefined8 local_68;\n  undefined8 local_58;\n  undefined8 local_48;\n  undefined8 local_38;\n  undefined8 local_28;\n  undefined8 local_18;\n  \n  if (in_AL != '\0') {\n    local_88 = param_1;\n    local_78 = param_2;\n    local_68 = param_3;\n    local_58 = param_4;\n    local_48 = param_5;\n    local_38 = param_6;\n    local_28 = param_7;\n    local_18 = param_8;\n  }\n  if (DAT_0017bbd8 == 0) {\n    return;\n  }\n  local_c8 = (undefined8 *)&stack0x00000008;\n  local_d0[0] = 8;\n  local_c0 = local_b8;\n  local_d0[1] = 0x30;\n  local_b0 = param_10;\n  local_a8 = param_11;\n  local_a0 = param_12;\n  local_98 = param_13;\n  local_90 = param_14;\n  if (((*param_9 != '%') || (param_9[1] != '!')) || (param_9[2] != '\0')) {\n    FUN_00124350(DAT_0017bbd8,param_9,local_d0,0);\n    return;\n  }\n  puVar1 = (undefined8 *)xmalloc(0x20,param_9);\n  *puVar1 = 0;\n  if (local_d0[0] < 0x30) {\n    puVar1[1] = *(undefined8 *)(local_c0 + local_d0[0]);\n    puVar2 = local_c8;\n    if (local_d0[0] + 8 < 0x30) {\n      puVar1[2] = *(undefined8 *)(local_c0 + (local_d0[0] + 8));\n      if (local_d0[0] + 0x10 < 0x30) {\n        local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));\n      }\n      goto LAB_00125413;\n    }\n  }\n  else {\n    puVar1[1] = *local_c8;\n    puVar2 = local_c8 + 1;\n  }\n  local_c8 = puVar2 + 1;\n  puVar1[2] = *puVar2;\nLAB_00125413:\n  puVar1[3] = *local_c8;\n  *DAT_0017b950 = puVar1;\n  DAT_0017b950 = puVar1;\n  return;\n}" { (declaration "char in_AL;" primitive_type identifier ;) (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined8 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint local_d0 [2];" type_identifier (array_declarator "local_d0 [2]" identifier [ number_literal ]) ;) (declaration "undefined8 *local_c8;" type_identifier (pointer_declarator "*local_c8" * identifier) ;) (declaration "undefined1 *local_c0;" type_identifier (pointer_declarator "*local_c0" * identifier) ;) (declaration "undefined1 local_b8 [8];" type_identifier (array_declarator "local_b8 [8]" identifier [ number_literal ]) ;) (declaration "undefined8 local_b0;" type_identifier identifier ;) (declaration "undefined8 local_a8;" type_identifier identifier ;) (declaration "undefined8 local_a0;" type_identifier identifier ;) (declaration "undefined8 local_98;" type_identifier identifier ;) (declaration "undefined8 local_90;" type_identifier identifier ;) (declaration "undefined8 local_88;" type_identifier identifier ;) (declaration "undefined8 local_78;" type_identifier identifier ;) (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "undefined8 local_58;" type_identifier identifier ;) (declaration "undefined8 local_48;" type_identifier identifier ;) (declaration "undefined8 local_38;" type_identifier identifier ;) (declaration "undefined8 local_28;" type_identifier identifier ;) (declaration "undefined8 local_18;" type_identifier identifier ;) (if_statement "if (in_AL != '\0') {\n    local_88 = param_1;\n    local_78 = param_2;\n    local_68 = param_3;\n    local_58 = param_4;\n    local_48 = param_5;\n    local_38 = param_6;\n    local_28 = param_7;\n    local_18 = param_8;\n  }" if (parenthesized_expression "(in_AL != '\0')" ( (binary_expression "in_AL != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_88 = param_1;\n    local_78 = param_2;\n    local_68 = param_3;\n    local_58 = param_4;\n    local_48 = param_5;\n    local_38 = param_6;\n    local_28 = param_7;\n    local_18 = param_8;\n  }" { (expression_statement "local_88 = param_1;" (assignment_expression "local_88 = param_1" identifier = identifier) ;) (expression_statement "local_78 = param_2;" (assignment_expression "local_78 = param_2" identifier = identifier) ;) (expression_statement "local_68 = param_3;" (assignment_expression "local_68 = param_3" identifier = identifier) ;) (expression_statement "local_58 = param_4;" (assignment_expression "local_58 = param_4" identifier = identifier) ;) (expression_statement "local_48 = param_5;" (assignment_expression "local_48 = param_5" identifier = identifier) ;) (expression_statement "local_38 = param_6;" (assignment_expression "local_38 = param_6" identifier = identifier) ;) (expression_statement "local_28 = param_7;" (assignment_expression "local_28 = param_7" identifier = identifier) ;) (expression_statement "local_18 = param_8;" (assignment_expression "local_18 = param_8" identifier = identifier) ;) })) (if_statement "if (DAT_0017bbd8 == 0) {\n    return;\n  }" if (parenthesized_expression "(DAT_0017bbd8 == 0)" ( (binary_expression "DAT_0017bbd8 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "local_c8 = (undefined8 *)&stack0x00000008;" (assignment_expression "local_c8 = (undefined8 *)&stack0x00000008" identifier = (cast_expression "(undefined8 *)&stack0x00000008" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0x00000008" & identifier))) ;) (expression_statement "local_d0[0] = 8;" (assignment_expression "local_d0[0] = 8" (subscript_expression "local_d0[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_c0 = local_b8;" (assignment_expression "local_c0 = local_b8" identifier = identifier) ;) (expression_statement "local_d0[1] = 0x30;" (assignment_expression "local_d0[1] = 0x30" (subscript_expression "local_d0[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_b0 = param_10;" (assignment_expression "local_b0 = param_10" identifier = identifier) ;) (expression_statement "local_a8 = param_11;" (assignment_expression "local_a8 = param_11" identifier = identifier) ;) (expression_statement "local_a0 = param_12;" (assignment_expression "local_a0 = param_12" identifier = identifier) ;) (expression_statement "local_98 = param_13;" (assignment_expression "local_98 = param_13" identifier = identifier) ;) (expression_statement "local_90 = param_14;" (assignment_expression "local_90 = param_14" identifier = identifier) ;) (if_statement "if (((*param_9 != '%') || (param_9[1] != '!')) || (param_9[2] != '\0')) {\n    FUN_00124350(DAT_0017bbd8,param_9,local_d0,0);\n    return;\n  }" if (parenthesized_expression "(((*param_9 != '%') || (param_9[1] != '!')) || (param_9[2] != '\0'))" ( (binary_expression "((*param_9 != '%') || (param_9[1] != '!')) || (param_9[2] != '\0')" (parenthesized_expression "((*param_9 != '%') || (param_9[1] != '!'))" ( (binary_expression "(*param_9 != '%') || (param_9[1] != '!')" (parenthesized_expression "(*param_9 != '%')" ( (binary_expression "*param_9 != '%'" (pointer_expression "*param_9" * identifier) != (char_literal "'%'" ' character ')) )) || (parenthesized_expression "(param_9[1] != '!')" ( (binary_expression "param_9[1] != '!'" (subscript_expression "param_9[1]" identifier [ number_literal ]) != (char_literal "'!'" ' character ')) ))) )) || (parenthesized_expression "(param_9[2] != '\0')" ( (binary_expression "param_9[2] != '\0'" (subscript_expression "param_9[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    FUN_00124350(DAT_0017bbd8,param_9,local_d0,0);\n    return;\n  }" { (expression_statement "FUN_00124350(DAT_0017bbd8,param_9,local_d0,0);" (call_expression "FUN_00124350(DAT_0017bbd8,param_9,local_d0,0)" identifier (argument_list "(DAT_0017bbd8,param_9,local_d0,0)" ( identifier , identifier , identifier , number_literal ))) ;) (return_statement "return;" return ;) })) (expression_statement "puVar1 = (undefined8 *)xmalloc(0x20,param_9);" (assignment_expression "puVar1 = (undefined8 *)xmalloc(0x20,param_9)" identifier = (cast_expression "(undefined8 *)xmalloc(0x20,param_9)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x20,param_9)" identifier (argument_list "(0x20,param_9)" ( number_literal , identifier ))))) ;) (expression_statement "*puVar1 = 0;" (assignment_expression "*puVar1 = 0" (pointer_expression "*puVar1" * identifier) = number_literal) ;) (if_statement "if (local_d0[0] < 0x30) {\n    puVar1[1] = *(undefined8 *)(local_c0 + local_d0[0]);\n    puVar2 = local_c8;\n    if (local_d0[0] + 8 < 0x30) {\n      puVar1[2] = *(undefined8 *)(local_c0 + (local_d0[0] + 8));\n      if (local_d0[0] + 0x10 < 0x30) {\n        local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));\n      }\n      goto LAB_00125413;\n    }\n  }\n  else {\n    puVar1[1] = *local_c8;\n    puVar2 = local_c8 + 1;\n  }" if (parenthesized_expression "(local_d0[0] < 0x30)" ( (binary_expression "local_d0[0] < 0x30" (subscript_expression "local_d0[0]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n    puVar1[1] = *(undefined8 *)(local_c0 + local_d0[0]);\n    puVar2 = local_c8;\n    if (local_d0[0] + 8 < 0x30) {\n      puVar1[2] = *(undefined8 *)(local_c0 + (local_d0[0] + 8));\n      if (local_d0[0] + 0x10 < 0x30) {\n        local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));\n      }\n      goto LAB_00125413;\n    }\n  }" { (expression_statement "puVar1[1] = *(undefined8 *)(local_c0 + local_d0[0]);" (assignment_expression "puVar1[1] = *(undefined8 *)(local_c0 + local_d0[0])" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = (pointer_expression "*(undefined8 *)(local_c0 + local_d0[0])" * (cast_expression "(undefined8 *)(local_c0 + local_d0[0])" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c0 + local_d0[0])" ( (binary_expression "local_c0 + local_d0[0]" identifier + (subscript_expression "local_d0[0]" identifier [ number_literal ])) ))))) ;) (expression_statement "puVar2 = local_c8;" (assignment_expression "puVar2 = local_c8" identifier = identifier) ;) (if_statement "if (local_d0[0] + 8 < 0x30) {\n      puVar1[2] = *(undefined8 *)(local_c0 + (local_d0[0] + 8));\n      if (local_d0[0] + 0x10 < 0x30) {\n        local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));\n      }\n      goto LAB_00125413;\n    }" if (parenthesized_expression "(local_d0[0] + 8 < 0x30)" ( (binary_expression "local_d0[0] + 8 < 0x30" (binary_expression "local_d0[0] + 8" (subscript_expression "local_d0[0]" identifier [ number_literal ]) + number_literal) < number_literal) )) (compound_statement "{\n      puVar1[2] = *(undefined8 *)(local_c0 + (local_d0[0] + 8));\n      if (local_d0[0] + 0x10 < 0x30) {\n        local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));\n      }\n      goto LAB_00125413;\n    }" { (expression_statement "puVar1[2] = *(undefined8 *)(local_c0 + (local_d0[0] + 8));" (assignment_expression "puVar1[2] = *(undefined8 *)(local_c0 + (local_d0[0] + 8))" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = (pointer_expression "*(undefined8 *)(local_c0 + (local_d0[0] + 8))" * (cast_expression "(undefined8 *)(local_c0 + (local_d0[0] + 8))" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c0 + (local_d0[0] + 8))" ( (binary_expression "local_c0 + (local_d0[0] + 8)" identifier + (parenthesized_expression "(local_d0[0] + 8)" ( (binary_expression "local_d0[0] + 8" (subscript_expression "local_d0[0]" identifier [ number_literal ]) + number_literal) ))) ))))) ;) (if_statement "if (local_d0[0] + 0x10 < 0x30) {\n        local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));\n      }" if (parenthesized_expression "(local_d0[0] + 0x10 < 0x30)" ( (binary_expression "local_d0[0] + 0x10 < 0x30" (binary_expression "local_d0[0] + 0x10" (subscript_expression "local_d0[0]" identifier [ number_literal ]) + number_literal) < number_literal) )) (compound_statement "{\n        local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));\n      }" { (expression_statement "local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));" (assignment_expression "local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10))" identifier = (cast_expression "(undefined8 *)(local_c0 + (local_d0[0] + 0x10))" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c0 + (local_d0[0] + 0x10))" ( (binary_expression "local_c0 + (local_d0[0] + 0x10)" identifier + (parenthesized_expression "(local_d0[0] + 0x10)" ( (binary_expression "local_d0[0] + 0x10" (subscript_expression "local_d0[0]" identifier [ number_literal ]) + number_literal) ))) )))) ;) })) (goto_statement "goto LAB_00125413;" goto statement_identifier ;) })) }) (else_clause "else {\n    puVar1[1] = *local_c8;\n    puVar2 = local_c8 + 1;\n  }" else (compound_statement "{\n    puVar1[1] = *local_c8;\n    puVar2 = local_c8 + 1;\n  }" { (expression_statement "puVar1[1] = *local_c8;" (assignment_expression "puVar1[1] = *local_c8" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = (pointer_expression "*local_c8" * identifier)) ;) (expression_statement "puVar2 = local_c8 + 1;" (assignment_expression "puVar2 = local_c8 + 1" identifier = (binary_expression "local_c8 + 1" identifier + number_literal)) ;) }))) (expression_statement "local_c8 = puVar2 + 1;" (assignment_expression "local_c8 = puVar2 + 1" identifier = (binary_expression "puVar2 + 1" identifier + number_literal)) ;) (expression_statement "puVar1[2] = *puVar2;" (assignment_expression "puVar1[2] = *puVar2" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = (pointer_expression "*puVar2" * identifier)) ;) (labeled_statement "LAB_00125413:\n  puVar1[3] = *local_c8;" statement_identifier : (expression_statement "puVar1[3] = *local_c8;" (assignment_expression "puVar1[3] = *local_c8" (subscript_expression "puVar1[3]" identifier [ number_literal ]) = (pointer_expression "*local_c8" * identifier)) ;)) (expression_statement "*DAT_0017b950 = puVar1;" (assignment_expression "*DAT_0017b950 = puVar1" (pointer_expression "*DAT_0017b950" * identifier) = identifier) ;) (expression_statement "DAT_0017b950 = puVar1;" (assignment_expression "DAT_0017b950 = puVar1" identifier = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "void minfo(char *fmt,...)\n\n{\n  char in_AL;\n  asneeded_minfo *paVar1;\n  undefined8 in_RCX;\n  undefined8 in_RDX;\n  undefined8 *puVar2;\n  undefined8 in_RSI;\n  undefined8 in_R8;\n  undefined8 in_R9;\n  undefined8 in_XMM0_Qa;\n  undefined8 in_XMM1_Qa;\n  undefined8 in_XMM2_Qa;\n  undefined8 in_XMM3_Qa;\n  undefined8 in_XMM4_Qa;\n  undefined8 in_XMM5_Qa;\n  undefined8 in_XMM6_Qa;\n  undefined8 in_XMM7_Qa;\n  va_list arg;\n  undefined1 local_b8 [8];\n  undefined8 local_b0;\n  undefined8 local_a8;\n  undefined8 local_a0;\n  undefined8 local_98;\n  undefined8 local_90;\n  undefined8 local_88;\n  undefined8 local_78;\n  undefined8 local_68;\n  undefined8 local_58;\n  undefined8 local_48;\n  undefined8 local_38;\n  undefined8 local_28;\n  undefined8 local_18;\n  \n  if (in_AL != '\0') {\n    local_88 = in_XMM0_Qa;\n    local_78 = in_XMM1_Qa;\n    local_68 = in_XMM2_Qa;\n    local_58 = in_XMM3_Qa;\n    local_48 = in_XMM4_Qa;\n    local_38 = in_XMM5_Qa;\n    local_28 = in_XMM6_Qa;\n    local_18 = in_XMM7_Qa;\n  }\n  if (config.map_file == (FILE *)0x0) {\n    return;\n  }\n  arg[0].overflow_arg_area = &stack0x00000008;\n  arg[0].gp_offset = 8;\n  arg[0].reg_save_area = local_b8;\n  arg[0].fp_offset = 0x30;\n  local_b0 = in_RSI;\n  local_a8 = in_RDX;\n  local_a0 = in_RCX;\n  local_98 = in_R8;\n  local_90 = in_R9;\n  if (((*fmt != '%') || (fmt[1] != '!')) || (fmt[2] != '\0')) {\n    vfinfo(config.map_file,fmt,arg,0);\n    return;\n  }\n  paVar1 = (asneeded_minfo *)xmalloc(0x20);\n  paVar1->next = (asneeded_minfo *)0x0;\n  if (arg[0].gp_offset < 0x30) {\n    paVar1->soname = *(char **)((long)arg[0].reg_save_area + (ulong)arg[0].gp_offset);\n    puVar2 = (undefined8 *)arg[0].overflow_arg_area;\n    if (arg[0].gp_offset + 8 < 0x30) {\n      paVar1->ref = *(bfd **)((long)arg[0].reg_save_area + (ulong)(arg[0].gp_offset + 8));\n      if (arg[0].gp_offset + 0x10 < 0x30) {\n        arg[0].overflow_arg_area =\n             (void *)((ulong)(arg[0].gp_offset + 0x10) + (long)arg[0].reg_save_area);\n      }\n      goto LAB_00125413;\n    }\n  }\n  else {\n                    /* WARNING: Load size is inaccurate */\n    paVar1->soname = *arg[0].overflow_arg_area;\n    puVar2 = (undefined8 *)((long)arg[0].overflow_arg_area + 8);\n  }\n  arg[0].overflow_arg_area = puVar2 + 1;\n  paVar1->ref = (bfd *)*puVar2;\nLAB_00125413:\n                    /* WARNING: Load size is inaccurate */\n  paVar1->name = *arg[0].overflow_arg_area;\n  *asneeded_list_tail = paVar1;\n  asneeded_list_tail = (asneeded_minfo **)paVar1;\n  return;\n}\n\n" (function_definition "void minfo(char *fmt,...)\n\n{\n  char in_AL;\n  asneeded_minfo *paVar1;\n  undefined8 in_RCX;\n  undefined8 in_RDX;\n  undefined8 *puVar2;\n  undefined8 in_RSI;\n  undefined8 in_R8;\n  undefined8 in_R9;\n  undefined8 in_XMM0_Qa;\n  undefined8 in_XMM1_Qa;\n  undefined8 in_XMM2_Qa;\n  undefined8 in_XMM3_Qa;\n  undefined8 in_XMM4_Qa;\n  undefined8 in_XMM5_Qa;\n  undefined8 in_XMM6_Qa;\n  undefined8 in_XMM7_Qa;\n  va_list arg;\n  undefined1 local_b8 [8];\n  undefined8 local_b0;\n  undefined8 local_a8;\n  undefined8 local_a0;\n  undefined8 local_98;\n  undefined8 local_90;\n  undefined8 local_88;\n  undefined8 local_78;\n  undefined8 local_68;\n  undefined8 local_58;\n  undefined8 local_48;\n  undefined8 local_38;\n  undefined8 local_28;\n  undefined8 local_18;\n  \n  if (in_AL != '\0') {\n    local_88 = in_XMM0_Qa;\n    local_78 = in_XMM1_Qa;\n    local_68 = in_XMM2_Qa;\n    local_58 = in_XMM3_Qa;\n    local_48 = in_XMM4_Qa;\n    local_38 = in_XMM5_Qa;\n    local_28 = in_XMM6_Qa;\n    local_18 = in_XMM7_Qa;\n  }\n  if (config.map_file == (FILE *)0x0) {\n    return;\n  }\n  arg[0].overflow_arg_area = &stack0x00000008;\n  arg[0].gp_offset = 8;\n  arg[0].reg_save_area = local_b8;\n  arg[0].fp_offset = 0x30;\n  local_b0 = in_RSI;\n  local_a8 = in_RDX;\n  local_a0 = in_RCX;\n  local_98 = in_R8;\n  local_90 = in_R9;\n  if (((*fmt != '%') || (fmt[1] != '!')) || (fmt[2] != '\0')) {\n    vfinfo(config.map_file,fmt,arg,0);\n    return;\n  }\n  paVar1 = (asneeded_minfo *)xmalloc(0x20);\n  paVar1->next = (asneeded_minfo *)0x0;\n  if (arg[0].gp_offset < 0x30) {\n    paVar1->soname = *(char **)((long)arg[0].reg_save_area + (ulong)arg[0].gp_offset);\n    puVar2 = (undefined8 *)arg[0].overflow_arg_area;\n    if (arg[0].gp_offset + 8 < 0x30) {\n      paVar1->ref = *(bfd **)((long)arg[0].reg_save_area + (ulong)(arg[0].gp_offset + 8));\n      if (arg[0].gp_offset + 0x10 < 0x30) {\n        arg[0].overflow_arg_area =\n             (void *)((ulong)(arg[0].gp_offset + 0x10) + (long)arg[0].reg_save_area);\n      }\n      goto LAB_00125413;\n    }\n  }\n  else {\n                    /* WARNING: Load size is inaccurate */\n    paVar1->soname = *arg[0].overflow_arg_area;\n    puVar2 = (undefined8 *)((long)arg[0].overflow_arg_area + 8);\n  }\n  arg[0].overflow_arg_area = puVar2 + 1;\n  paVar1->ref = (bfd *)*puVar2;\nLAB_00125413:\n                    /* WARNING: Load size is inaccurate */\n  paVar1->name = *arg[0].overflow_arg_area;\n  *asneeded_list_tail = paVar1;\n  asneeded_list_tail = (asneeded_minfo **)paVar1;\n  return;\n}" primitive_type (function_declarator "minfo(char *fmt,...)" identifier (parameter_list "(char *fmt,...)" ( (parameter_declaration "char *fmt" primitive_type (pointer_declarator "*fmt" * identifier)) , (variadic_parameter "..." ...) ))) (compound_statement "{\n  char in_AL;\n  asneeded_minfo *paVar1;\n  undefined8 in_RCX;\n  undefined8 in_RDX;\n  undefined8 *puVar2;\n  undefined8 in_RSI;\n  undefined8 in_R8;\n  undefined8 in_R9;\n  undefined8 in_XMM0_Qa;\n  undefined8 in_XMM1_Qa;\n  undefined8 in_XMM2_Qa;\n  undefined8 in_XMM3_Qa;\n  undefined8 in_XMM4_Qa;\n  undefined8 in_XMM5_Qa;\n  undefined8 in_XMM6_Qa;\n  undefined8 in_XMM7_Qa;\n  va_list arg;\n  undefined1 local_b8 [8];\n  undefined8 local_b0;\n  undefined8 local_a8;\n  undefined8 local_a0;\n  undefined8 local_98;\n  undefined8 local_90;\n  undefined8 local_88;\n  undefined8 local_78;\n  undefined8 local_68;\n  undefined8 local_58;\n  undefined8 local_48;\n  undefined8 local_38;\n  undefined8 local_28;\n  undefined8 local_18;\n  \n  if (in_AL != '\0') {\n    local_88 = in_XMM0_Qa;\n    local_78 = in_XMM1_Qa;\n    local_68 = in_XMM2_Qa;\n    local_58 = in_XMM3_Qa;\n    local_48 = in_XMM4_Qa;\n    local_38 = in_XMM5_Qa;\n    local_28 = in_XMM6_Qa;\n    local_18 = in_XMM7_Qa;\n  }\n  if (config.map_file == (FILE *)0x0) {\n    return;\n  }\n  arg[0].overflow_arg_area = &stack0x00000008;\n  arg[0].gp_offset = 8;\n  arg[0].reg_save_area = local_b8;\n  arg[0].fp_offset = 0x30;\n  local_b0 = in_RSI;\n  local_a8 = in_RDX;\n  local_a0 = in_RCX;\n  local_98 = in_R8;\n  local_90 = in_R9;\n  if (((*fmt != '%') || (fmt[1] != '!')) || (fmt[2] != '\0')) {\n    vfinfo(config.map_file,fmt,arg,0);\n    return;\n  }\n  paVar1 = (asneeded_minfo *)xmalloc(0x20);\n  paVar1->next = (asneeded_minfo *)0x0;\n  if (arg[0].gp_offset < 0x30) {\n    paVar1->soname = *(char **)((long)arg[0].reg_save_area + (ulong)arg[0].gp_offset);\n    puVar2 = (undefined8 *)arg[0].overflow_arg_area;\n    if (arg[0].gp_offset + 8 < 0x30) {\n      paVar1->ref = *(bfd **)((long)arg[0].reg_save_area + (ulong)(arg[0].gp_offset + 8));\n      if (arg[0].gp_offset + 0x10 < 0x30) {\n        arg[0].overflow_arg_area =\n             (void *)((ulong)(arg[0].gp_offset + 0x10) + (long)arg[0].reg_save_area);\n      }\n      goto LAB_00125413;\n    }\n  }\n  else {\n                    /* WARNING: Load size is inaccurate */\n    paVar1->soname = *arg[0].overflow_arg_area;\n    puVar2 = (undefined8 *)((long)arg[0].overflow_arg_area + 8);\n  }\n  arg[0].overflow_arg_area = puVar2 + 1;\n  paVar1->ref = (bfd *)*puVar2;\nLAB_00125413:\n                    /* WARNING: Load size is inaccurate */\n  paVar1->name = *arg[0].overflow_arg_area;\n  *asneeded_list_tail = paVar1;\n  asneeded_list_tail = (asneeded_minfo **)paVar1;\n  return;\n}" { (declaration "char in_AL;" primitive_type identifier ;) (declaration "asneeded_minfo *paVar1;" type_identifier (pointer_declarator "*paVar1" * identifier) ;) (declaration "undefined8 in_RCX;" type_identifier identifier ;) (declaration "undefined8 in_RDX;" type_identifier identifier ;) (declaration "undefined8 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined8 in_RSI;" type_identifier identifier ;) (declaration "undefined8 in_R8;" type_identifier identifier ;) (declaration "undefined8 in_R9;" type_identifier identifier ;) (declaration "undefined8 in_XMM0_Qa;" type_identifier identifier ;) (declaration "undefined8 in_XMM1_Qa;" type_identifier identifier ;) (declaration "undefined8 in_XMM2_Qa;" type_identifier identifier ;) (declaration "undefined8 in_XMM3_Qa;" type_identifier identifier ;) (declaration "undefined8 in_XMM4_Qa;" type_identifier identifier ;) (declaration "undefined8 in_XMM5_Qa;" type_identifier identifier ;) (declaration "undefined8 in_XMM6_Qa;" type_identifier identifier ;) (declaration "undefined8 in_XMM7_Qa;" type_identifier identifier ;) (declaration "va_list arg;" type_identifier identifier ;) (declaration "undefined1 local_b8 [8];" type_identifier (array_declarator "local_b8 [8]" identifier [ number_literal ]) ;) (declaration "undefined8 local_b0;" type_identifier identifier ;) (declaration "undefined8 local_a8;" type_identifier identifier ;) (declaration "undefined8 local_a0;" type_identifier identifier ;) (declaration "undefined8 local_98;" type_identifier identifier ;) (declaration "undefined8 local_90;" type_identifier identifier ;) (declaration "undefined8 local_88;" type_identifier identifier ;) (declaration "undefined8 local_78;" type_identifier identifier ;) (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "undefined8 local_58;" type_identifier identifier ;) (declaration "undefined8 local_48;" type_identifier identifier ;) (declaration "undefined8 local_38;" type_identifier identifier ;) (declaration "undefined8 local_28;" type_identifier identifier ;) (declaration "undefined8 local_18;" type_identifier identifier ;) (if_statement "if (in_AL != '\0') {\n    local_88 = in_XMM0_Qa;\n    local_78 = in_XMM1_Qa;\n    local_68 = in_XMM2_Qa;\n    local_58 = in_XMM3_Qa;\n    local_48 = in_XMM4_Qa;\n    local_38 = in_XMM5_Qa;\n    local_28 = in_XMM6_Qa;\n    local_18 = in_XMM7_Qa;\n  }" if (parenthesized_expression "(in_AL != '\0')" ( (binary_expression "in_AL != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_88 = in_XMM0_Qa;\n    local_78 = in_XMM1_Qa;\n    local_68 = in_XMM2_Qa;\n    local_58 = in_XMM3_Qa;\n    local_48 = in_XMM4_Qa;\n    local_38 = in_XMM5_Qa;\n    local_28 = in_XMM6_Qa;\n    local_18 = in_XMM7_Qa;\n  }" { (expression_statement "local_88 = in_XMM0_Qa;" (assignment_expression "local_88 = in_XMM0_Qa" identifier = identifier) ;) (expression_statement "local_78 = in_XMM1_Qa;" (assignment_expression "local_78 = in_XMM1_Qa" identifier = identifier) ;) (expression_statement "local_68 = in_XMM2_Qa;" (assignment_expression "local_68 = in_XMM2_Qa" identifier = identifier) ;) (expression_statement "local_58 = in_XMM3_Qa;" (assignment_expression "local_58 = in_XMM3_Qa" identifier = identifier) ;) (expression_statement "local_48 = in_XMM4_Qa;" (assignment_expression "local_48 = in_XMM4_Qa" identifier = identifier) ;) (expression_statement "local_38 = in_XMM5_Qa;" (assignment_expression "local_38 = in_XMM5_Qa" identifier = identifier) ;) (expression_statement "local_28 = in_XMM6_Qa;" (assignment_expression "local_28 = in_XMM6_Qa" identifier = identifier) ;) (expression_statement "local_18 = in_XMM7_Qa;" (assignment_expression "local_18 = in_XMM7_Qa" identifier = identifier) ;) })) (if_statement "if (config.map_file == (FILE *)0x0) {\n    return;\n  }" if (parenthesized_expression "(config.map_file == (FILE *)0x0)" ( (binary_expression "config.map_file == (FILE *)0x0" (field_expression "config.map_file" identifier . field_identifier) == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "arg[0].overflow_arg_area = &stack0x00000008;" (assignment_expression "arg[0].overflow_arg_area = &stack0x00000008" (field_expression "arg[0].overflow_arg_area" (subscript_expression "arg[0]" identifier [ number_literal ]) . field_identifier) = (pointer_expression "&stack0x00000008" & identifier)) ;) (expression_statement "arg[0].gp_offset = 8;" (assignment_expression "arg[0].gp_offset = 8" (field_expression "arg[0].gp_offset" (subscript_expression "arg[0]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "arg[0].reg_save_area = local_b8;" (assignment_expression "arg[0].reg_save_area = local_b8" (field_expression "arg[0].reg_save_area" (subscript_expression "arg[0]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "arg[0].fp_offset = 0x30;" (assignment_expression "arg[0].fp_offset = 0x30" (field_expression "arg[0].fp_offset" (subscript_expression "arg[0]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "local_b0 = in_RSI;" (assignment_expression "local_b0 = in_RSI" identifier = identifier) ;) (expression_statement "local_a8 = in_RDX;" (assignment_expression "local_a8 = in_RDX" identifier = identifier) ;) (expression_statement "local_a0 = in_RCX;" (assignment_expression "local_a0 = in_RCX" identifier = identifier) ;) (expression_statement "local_98 = in_R8;" (assignment_expression "local_98 = in_R8" identifier = identifier) ;) (expression_statement "local_90 = in_R9;" (assignment_expression "local_90 = in_R9" identifier = identifier) ;) (if_statement "if (((*fmt != '%') || (fmt[1] != '!')) || (fmt[2] != '\0')) {\n    vfinfo(config.map_file,fmt,arg,0);\n    return;\n  }" if (parenthesized_expression "(((*fmt != '%') || (fmt[1] != '!')) || (fmt[2] != '\0'))" ( (binary_expression "((*fmt != '%') || (fmt[1] != '!')) || (fmt[2] != '\0')" (parenthesized_expression "((*fmt != '%') || (fmt[1] != '!'))" ( (binary_expression "(*fmt != '%') || (fmt[1] != '!')" (parenthesized_expression "(*fmt != '%')" ( (binary_expression "*fmt != '%'" (pointer_expression "*fmt" * identifier) != (char_literal "'%'" ' character ')) )) || (parenthesized_expression "(fmt[1] != '!')" ( (binary_expression "fmt[1] != '!'" (subscript_expression "fmt[1]" identifier [ number_literal ]) != (char_literal "'!'" ' character ')) ))) )) || (parenthesized_expression "(fmt[2] != '\0')" ( (binary_expression "fmt[2] != '\0'" (subscript_expression "fmt[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    vfinfo(config.map_file,fmt,arg,0);\n    return;\n  }" { (expression_statement "vfinfo(config.map_file,fmt,arg,0);" (call_expression "vfinfo(config.map_file,fmt,arg,0)" identifier (argument_list "(config.map_file,fmt,arg,0)" ( (field_expression "config.map_file" identifier . field_identifier) , identifier , identifier , number_literal ))) ;) (return_statement "return;" return ;) })) (expression_statement "paVar1 = (asneeded_minfo *)xmalloc(0x20);" (assignment_expression "paVar1 = (asneeded_minfo *)xmalloc(0x20)" identifier = (cast_expression "(asneeded_minfo *)xmalloc(0x20)" ( (type_descriptor "asneeded_minfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "paVar1->next = (asneeded_minfo *)0x0;" (assignment_expression "paVar1->next = (asneeded_minfo *)0x0" (field_expression "paVar1->next" identifier -> field_identifier) = (cast_expression "(asneeded_minfo *)0x0" ( (type_descriptor "asneeded_minfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (arg[0].gp_offset < 0x30) {\n    paVar1->soname = *(char **)((long)arg[0].reg_save_area + (ulong)arg[0].gp_offset);\n    puVar2 = (undefined8 *)arg[0].overflow_arg_area;\n    if (arg[0].gp_offset + 8 < 0x30) {\n      paVar1->ref = *(bfd **)((long)arg[0].reg_save_area + (ulong)(arg[0].gp_offset + 8));\n      if (arg[0].gp_offset + 0x10 < 0x30) {\n        arg[0].overflow_arg_area =\n             (void *)((ulong)(arg[0].gp_offset + 0x10) + (long)arg[0].reg_save_area);\n      }\n      goto LAB_00125413;\n    }\n  }\n  else {\n                    /* WARNING: Load size is inaccurate */\n    paVar1->soname = *arg[0].overflow_arg_area;\n    puVar2 = (undefined8 *)((long)arg[0].overflow_arg_area + 8);\n  }" if (parenthesized_expression "(arg[0].gp_offset < 0x30)" ( (binary_expression "arg[0].gp_offset < 0x30" (field_expression "arg[0].gp_offset" (subscript_expression "arg[0]" identifier [ number_literal ]) . field_identifier) < number_literal) )) (compound_statement "{\n    paVar1->soname = *(char **)((long)arg[0].reg_save_area + (ulong)arg[0].gp_offset);\n    puVar2 = (undefined8 *)arg[0].overflow_arg_area;\n    if (arg[0].gp_offset + 8 < 0x30) {\n      paVar1->ref = *(bfd **)((long)arg[0].reg_save_area + (ulong)(arg[0].gp_offset + 8));\n      if (arg[0].gp_offset + 0x10 < 0x30) {\n        arg[0].overflow_arg_area =\n             (void *)((ulong)(arg[0].gp_offset + 0x10) + (long)arg[0].reg_save_area);\n      }\n      goto LAB_00125413;\n    }\n  }" { (expression_statement "paVar1->soname = *(char **)((long)arg[0].reg_save_area + (ulong)arg[0].gp_offset);" (assignment_expression "paVar1->soname = *(char **)((long)arg[0].reg_save_area + (ulong)arg[0].gp_offset)" (field_expression "paVar1->soname" identifier -> field_identifier) = (pointer_expression "*(char **)((long)arg[0].reg_save_area + (ulong)arg[0].gp_offset)" * (cast_expression "(char **)((long)arg[0].reg_save_area + (ulong)arg[0].gp_offset)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)arg[0].reg_save_area + (ulong)arg[0].gp_offset)" ( (binary_expression "(long)arg[0].reg_save_area + (ulong)arg[0].gp_offset" (cast_expression "(long)arg[0].reg_save_area" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "arg[0].reg_save_area" (subscript_expression "arg[0]" identifier [ number_literal ]) . field_identifier)) + (cast_expression "(ulong)arg[0].gp_offset" ( (type_descriptor "ulong" type_identifier) ) (field_expression "arg[0].gp_offset" (subscript_expression "arg[0]" identifier [ number_literal ]) . field_identifier))) ))))) ;) (expression_statement "puVar2 = (undefined8 *)arg[0].overflow_arg_area;" (assignment_expression "puVar2 = (undefined8 *)arg[0].overflow_arg_area" identifier = (cast_expression "(undefined8 *)arg[0].overflow_arg_area" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "arg[0].overflow_arg_area" (subscript_expression "arg[0]" identifier [ number_literal ]) . field_identifier))) ;) (if_statement "if (arg[0].gp_offset + 8 < 0x30) {\n      paVar1->ref = *(bfd **)((long)arg[0].reg_save_area + (ulong)(arg[0].gp_offset + 8));\n      if (arg[0].gp_offset + 0x10 < 0x30) {\n        arg[0].overflow_arg_area =\n             (void *)((ulong)(arg[0].gp_offset + 0x10) + (long)arg[0].reg_save_area);\n      }\n      goto LAB_00125413;\n    }" if (parenthesized_expression "(arg[0].gp_offset + 8 < 0x30)" ( (binary_expression "arg[0].gp_offset + 8 < 0x30" (binary_expression "arg[0].gp_offset + 8" (field_expression "arg[0].gp_offset" (subscript_expression "arg[0]" identifier [ number_literal ]) . field_identifier) + number_literal) < number_literal) )) (compound_statement "{\n      paVar1->ref = *(bfd **)((long)arg[0].reg_save_area + (ulong)(arg[0].gp_offset + 8));\n      if (arg[0].gp_offset + 0x10 < 0x30) {\n        arg[0].overflow_arg_area =\n             (void *)((ulong)(arg[0].gp_offset + 0x10) + (long)arg[0].reg_save_area);\n      }\n      goto LAB_00125413;\n    }" { (expression_statement "paVar1->ref = *(bfd **)((long)arg[0].reg_save_area + (ulong)(arg[0].gp_offset + 8));" (assignment_expression "paVar1->ref = *(bfd **)((long)arg[0].reg_save_area + (ulong)(arg[0].gp_offset + 8))" (field_expression "paVar1->ref" identifier -> field_identifier) = (pointer_expression "*(bfd **)((long)arg[0].reg_save_area + (ulong)(arg[0].gp_offset + 8))" * (cast_expression "(bfd **)((long)arg[0].reg_save_area + (ulong)(arg[0].gp_offset + 8))" ( (type_descriptor "bfd **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)arg[0].reg_save_area + (ulong)(arg[0].gp_offset + 8))" ( (binary_expression "(long)arg[0].reg_save_area + (ulong)(arg[0].gp_offset + 8)" (cast_expression "(long)arg[0].reg_save_area" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "arg[0].reg_save_area" (subscript_expression "arg[0]" identifier [ number_literal ]) . field_identifier)) + (call_expression "(ulong)(arg[0].gp_offset + 8)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(arg[0].gp_offset + 8)" ( (binary_expression "arg[0].gp_offset + 8" (field_expression "arg[0].gp_offset" (subscript_expression "arg[0]" identifier [ number_literal ]) . field_identifier) + number_literal) )))) ))))) ;) (if_statement "if (arg[0].gp_offset + 0x10 < 0x30) {\n        arg[0].overflow_arg_area =\n             (void *)((ulong)(arg[0].gp_offset + 0x10) + (long)arg[0].reg_save_area);\n      }" if (parenthesized_expression "(arg[0].gp_offset + 0x10 < 0x30)" ( (binary_expression "arg[0].gp_offset + 0x10 < 0x30" (binary_expression "arg[0].gp_offset + 0x10" (field_expression "arg[0].gp_offset" (subscript_expression "arg[0]" identifier [ number_literal ]) . field_identifier) + number_literal) < number_literal) )) (compound_statement "{\n        arg[0].overflow_arg_area =\n             (void *)((ulong)(arg[0].gp_offset + 0x10) + (long)arg[0].reg_save_area);\n      }" { (expression_statement "arg[0].overflow_arg_area =\n             (void *)((ulong)(arg[0].gp_offset + 0x10) + (long)arg[0].reg_save_area);" (assignment_expression "arg[0].overflow_arg_area =\n             (void *)((ulong)(arg[0].gp_offset + 0x10) + (long)arg[0].reg_save_area)" (field_expression "arg[0].overflow_arg_area" (subscript_expression "arg[0]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(void *)((ulong)(arg[0].gp_offset + 0x10) + (long)arg[0].reg_save_area)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)(arg[0].gp_offset + 0x10) + (long)arg[0].reg_save_area)" ( (binary_expression "(ulong)(arg[0].gp_offset + 0x10) + (long)arg[0].reg_save_area" (call_expression "(ulong)(arg[0].gp_offset + 0x10)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(arg[0].gp_offset + 0x10)" ( (binary_expression "arg[0].gp_offset + 0x10" (field_expression "arg[0].gp_offset" (subscript_expression "arg[0]" identifier [ number_literal ]) . field_identifier) + number_literal) ))) + (cast_expression "(long)arg[0].reg_save_area" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "arg[0].reg_save_area" (subscript_expression "arg[0]" identifier [ number_literal ]) . field_identifier))) )))) ;) })) (goto_statement "goto LAB_00125413;" goto statement_identifier ;) })) }) (else_clause "else {\n                    /* WARNING: Load size is inaccurate */\n    paVar1->soname = *arg[0].overflow_arg_area;\n    puVar2 = (undefined8 *)((long)arg[0].overflow_arg_area + 8);\n  }" else (compound_statement "{\n                    /* WARNING: Load size is inaccurate */\n    paVar1->soname = *arg[0].overflow_arg_area;\n    puVar2 = (undefined8 *)((long)arg[0].overflow_arg_area + 8);\n  }" { comment (expression_statement "paVar1->soname = *arg[0].overflow_arg_area;" (assignment_expression "paVar1->soname = *arg[0].overflow_arg_area" (field_expression "paVar1->soname" identifier -> field_identifier) = (pointer_expression "*arg[0].overflow_arg_area" * (field_expression "arg[0].overflow_arg_area" (subscript_expression "arg[0]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "puVar2 = (undefined8 *)((long)arg[0].overflow_arg_area + 8);" (assignment_expression "puVar2 = (undefined8 *)((long)arg[0].overflow_arg_area + 8)" identifier = (cast_expression "(undefined8 *)((long)arg[0].overflow_arg_area + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)arg[0].overflow_arg_area + 8)" ( (binary_expression "(long)arg[0].overflow_arg_area + 8" (cast_expression "(long)arg[0].overflow_arg_area" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "arg[0].overflow_arg_area" (subscript_expression "arg[0]" identifier [ number_literal ]) . field_identifier)) + number_literal) )))) ;) }))) (expression_statement "arg[0].overflow_arg_area = puVar2 + 1;" (assignment_expression "arg[0].overflow_arg_area = puVar2 + 1" (field_expression "arg[0].overflow_arg_area" (subscript_expression "arg[0]" identifier [ number_literal ]) . field_identifier) = (binary_expression "puVar2 + 1" identifier + number_literal)) ;) (expression_statement "paVar1->ref = (bfd *)*puVar2;" (assignment_expression "paVar1->ref = (bfd *)*puVar2" (field_expression "paVar1->ref" identifier -> field_identifier) = (cast_expression "(bfd *)*puVar2" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ;) (labeled_statement "LAB_00125413:\n                    /* WARNING: Load size is inaccurate */\n  paVar1->name = *arg[0].overflow_arg_area;" statement_identifier : comment (expression_statement "paVar1->name = *arg[0].overflow_arg_area;" (assignment_expression "paVar1->name = *arg[0].overflow_arg_area" (field_expression "paVar1->name" identifier -> field_identifier) = (pointer_expression "*arg[0].overflow_arg_area" * (field_expression "arg[0].overflow_arg_area" (subscript_expression "arg[0]" identifier [ number_literal ]) . field_identifier))) ;)) (expression_statement "*asneeded_list_tail = paVar1;" (assignment_expression "*asneeded_list_tail = paVar1" (pointer_expression "*asneeded_list_tail" * identifier) = identifier) ;) (expression_statement "asneeded_list_tail = (asneeded_minfo **)paVar1;" (assignment_expression "asneeded_list_tail = (asneeded_minfo **)paVar1" identifier = (cast_expression "(asneeded_minfo **)paVar1" ( (type_descriptor "asneeded_minfo **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00125300(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined8 param_6,undefined8 param_7,undefined8 param_8,\n                 char *param_9,undefined8 param_10,undefined8 param_11,undefined8 param_12,\n                 undefined8 param_13,undefined8 param_14)\n\n{\n  char in_AL;\n  undefined8 *puVar1;\n  undefined8 *puVar2;\n  uint local_d0 [2];\n  undefined8 *local_c8;\n  undefined1 *local_c0;\n  undefined1 local_b8 [8];\n  undefined8 local_b0;\n  undefined8 local_a8;\n  undefined8 local_a0;\n  undefined8 local_98;\n  undefined8 local_90;\n  undefined8 local_88;\n  undefined8 local_78;\n  undefined8 local_68;\n  undefined8 local_58;\n  undefined8 local_48;\n  undefined8 local_38;\n  undefined8 local_28;\n  undefined8 local_18;\n  \n  if (in_AL != '\0') {\n    local_88 = param_1;\n    local_78 = param_2;\n    local_68 = param_3;\n    local_58 = param_4;\n    local_48 = param_5;\n    local_38 = param_6;\n    local_28 = param_7;\n    local_18 = param_8;\n  }\n  if (DAT_0017bbd8 == 0) {\n    return;\n  }\n  local_c8 = (undefined8 *)&stack0x00000008;\n  local_d0[0] = 8;\n  local_c0 = local_b8;\n  local_d0[1] = 0x30;\n  local_b0 = param_10;\n  local_a8 = param_11;\n  local_a0 = param_12;\n  local_98 = param_13;\n  local_90 = param_14;\n  if (((*param_9 != '%') || (param_9[1] != '!')) || (param_9[2] != '\0')) {\n    FUN_00124350(DAT_0017bbd8,param_9,local_d0,0);\n    return;\n  }\n  puVar1 = (undefined8 *)xmalloc(0x20,param_9);\n  *puVar1 = 0;\n  if (local_d0[0] < 0x30) {\n    puVar1[1] = *(undefined8 *)(local_c0 + local_d0[0]);\n    puVar2 = local_c8;\n    if (local_d0[0] + 8 < 0x30) {\n      puVar1[2] = *(undefined8 *)(local_c0 + (local_d0[0] + 8));\n      if (local_d0[0] + 0x10 < 0x30) {\n        local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));\n      }\n      goto LAB_00125413;\n    }\n  }\n  else {\n    puVar1[1] = *local_c8;\n    puVar2 = local_c8 + 1;\n  }\n  local_c8 = puVar2 + 1;\n  puVar1[2] = *puVar2;\nLAB_00125413:\n  puVar1[3] = *local_c8;\n  *DAT_0017b950 = puVar1;\n  DAT_0017b950 = puVar1;\n  return;\n}\n\n" (function_definition "void FUN_00125300(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined8 param_6,undefined8 param_7,undefined8 param_8,\n                 char *param_9,undefined8 param_10,undefined8 param_11,undefined8 param_12,\n                 undefined8 param_13,undefined8 param_14)\n\n{\n  char in_AL;\n  undefined8 *puVar1;\n  undefined8 *puVar2;\n  uint local_d0 [2];\n  undefined8 *local_c8;\n  undefined1 *local_c0;\n  undefined1 local_b8 [8];\n  undefined8 local_b0;\n  undefined8 local_a8;\n  undefined8 local_a0;\n  undefined8 local_98;\n  undefined8 local_90;\n  undefined8 local_88;\n  undefined8 local_78;\n  undefined8 local_68;\n  undefined8 local_58;\n  undefined8 local_48;\n  undefined8 local_38;\n  undefined8 local_28;\n  undefined8 local_18;\n  \n  if (in_AL != '\0') {\n    local_88 = param_1;\n    local_78 = param_2;\n    local_68 = param_3;\n    local_58 = param_4;\n    local_48 = param_5;\n    local_38 = param_6;\n    local_28 = param_7;\n    local_18 = param_8;\n  }\n  if (DAT_0017bbd8 == 0) {\n    return;\n  }\n  local_c8 = (undefined8 *)&stack0x00000008;\n  local_d0[0] = 8;\n  local_c0 = local_b8;\n  local_d0[1] = 0x30;\n  local_b0 = param_10;\n  local_a8 = param_11;\n  local_a0 = param_12;\n  local_98 = param_13;\n  local_90 = param_14;\n  if (((*param_9 != '%') || (param_9[1] != '!')) || (param_9[2] != '\0')) {\n    FUN_00124350(DAT_0017bbd8,param_9,local_d0,0);\n    return;\n  }\n  puVar1 = (undefined8 *)xmalloc(0x20,param_9);\n  *puVar1 = 0;\n  if (local_d0[0] < 0x30) {\n    puVar1[1] = *(undefined8 *)(local_c0 + local_d0[0]);\n    puVar2 = local_c8;\n    if (local_d0[0] + 8 < 0x30) {\n      puVar1[2] = *(undefined8 *)(local_c0 + (local_d0[0] + 8));\n      if (local_d0[0] + 0x10 < 0x30) {\n        local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));\n      }\n      goto LAB_00125413;\n    }\n  }\n  else {\n    puVar1[1] = *local_c8;\n    puVar2 = local_c8 + 1;\n  }\n  local_c8 = puVar2 + 1;\n  puVar1[2] = *puVar2;\nLAB_00125413:\n  puVar1[3] = *local_c8;\n  *DAT_0017b950 = puVar1;\n  DAT_0017b950 = puVar1;\n  return;\n}" primitive_type (function_declarator "FUN_00125300(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined8 param_6,undefined8 param_7,undefined8 param_8,\n                 char *param_9,undefined8 param_10,undefined8 param_11,undefined8 param_12,\n                 undefined8 param_13,undefined8 param_14)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined8 param_6,undefined8 param_7,undefined8 param_8,\n                 char *param_9,undefined8 param_10,undefined8 param_11,undefined8 param_12,\n                 undefined8 param_13,undefined8 param_14)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) , (parameter_declaration "undefined8 param_5" type_identifier identifier) , (parameter_declaration "undefined8 param_6" type_identifier identifier) , (parameter_declaration "undefined8 param_7" type_identifier identifier) , (parameter_declaration "undefined8 param_8" type_identifier identifier) , (parameter_declaration "char *param_9" primitive_type (pointer_declarator "*param_9" * identifier)) , (parameter_declaration "undefined8 param_10" type_identifier identifier) , (parameter_declaration "undefined8 param_11" type_identifier identifier) , (parameter_declaration "undefined8 param_12" type_identifier identifier) , (parameter_declaration "undefined8 param_13" type_identifier identifier) , (parameter_declaration "undefined8 param_14" type_identifier identifier) ))) (compound_statement "{\n  char in_AL;\n  undefined8 *puVar1;\n  undefined8 *puVar2;\n  uint local_d0 [2];\n  undefined8 *local_c8;\n  undefined1 *local_c0;\n  undefined1 local_b8 [8];\n  undefined8 local_b0;\n  undefined8 local_a8;\n  undefined8 local_a0;\n  undefined8 local_98;\n  undefined8 local_90;\n  undefined8 local_88;\n  undefined8 local_78;\n  undefined8 local_68;\n  undefined8 local_58;\n  undefined8 local_48;\n  undefined8 local_38;\n  undefined8 local_28;\n  undefined8 local_18;\n  \n  if (in_AL != '\0') {\n    local_88 = param_1;\n    local_78 = param_2;\n    local_68 = param_3;\n    local_58 = param_4;\n    local_48 = param_5;\n    local_38 = param_6;\n    local_28 = param_7;\n    local_18 = param_8;\n  }\n  if (DAT_0017bbd8 == 0) {\n    return;\n  }\n  local_c8 = (undefined8 *)&stack0x00000008;\n  local_d0[0] = 8;\n  local_c0 = local_b8;\n  local_d0[1] = 0x30;\n  local_b0 = param_10;\n  local_a8 = param_11;\n  local_a0 = param_12;\n  local_98 = param_13;\n  local_90 = param_14;\n  if (((*param_9 != '%') || (param_9[1] != '!')) || (param_9[2] != '\0')) {\n    FUN_00124350(DAT_0017bbd8,param_9,local_d0,0);\n    return;\n  }\n  puVar1 = (undefined8 *)xmalloc(0x20,param_9);\n  *puVar1 = 0;\n  if (local_d0[0] < 0x30) {\n    puVar1[1] = *(undefined8 *)(local_c0 + local_d0[0]);\n    puVar2 = local_c8;\n    if (local_d0[0] + 8 < 0x30) {\n      puVar1[2] = *(undefined8 *)(local_c0 + (local_d0[0] + 8));\n      if (local_d0[0] + 0x10 < 0x30) {\n        local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));\n      }\n      goto LAB_00125413;\n    }\n  }\n  else {\n    puVar1[1] = *local_c8;\n    puVar2 = local_c8 + 1;\n  }\n  local_c8 = puVar2 + 1;\n  puVar1[2] = *puVar2;\nLAB_00125413:\n  puVar1[3] = *local_c8;\n  *DAT_0017b950 = puVar1;\n  DAT_0017b950 = puVar1;\n  return;\n}" { (declaration "char in_AL;" primitive_type identifier ;) (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined8 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint local_d0 [2];" type_identifier (array_declarator "local_d0 [2]" identifier [ number_literal ]) ;) (declaration "undefined8 *local_c8;" type_identifier (pointer_declarator "*local_c8" * identifier) ;) (declaration "undefined1 *local_c0;" type_identifier (pointer_declarator "*local_c0" * identifier) ;) (declaration "undefined1 local_b8 [8];" type_identifier (array_declarator "local_b8 [8]" identifier [ number_literal ]) ;) (declaration "undefined8 local_b0;" type_identifier identifier ;) (declaration "undefined8 local_a8;" type_identifier identifier ;) (declaration "undefined8 local_a0;" type_identifier identifier ;) (declaration "undefined8 local_98;" type_identifier identifier ;) (declaration "undefined8 local_90;" type_identifier identifier ;) (declaration "undefined8 local_88;" type_identifier identifier ;) (declaration "undefined8 local_78;" type_identifier identifier ;) (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "undefined8 local_58;" type_identifier identifier ;) (declaration "undefined8 local_48;" type_identifier identifier ;) (declaration "undefined8 local_38;" type_identifier identifier ;) (declaration "undefined8 local_28;" type_identifier identifier ;) (declaration "undefined8 local_18;" type_identifier identifier ;) (if_statement "if (in_AL != '\0') {\n    local_88 = param_1;\n    local_78 = param_2;\n    local_68 = param_3;\n    local_58 = param_4;\n    local_48 = param_5;\n    local_38 = param_6;\n    local_28 = param_7;\n    local_18 = param_8;\n  }" if (parenthesized_expression "(in_AL != '\0')" ( (binary_expression "in_AL != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_88 = param_1;\n    local_78 = param_2;\n    local_68 = param_3;\n    local_58 = param_4;\n    local_48 = param_5;\n    local_38 = param_6;\n    local_28 = param_7;\n    local_18 = param_8;\n  }" { (expression_statement "local_88 = param_1;" (assignment_expression "local_88 = param_1" identifier = identifier) ;) (expression_statement "local_78 = param_2;" (assignment_expression "local_78 = param_2" identifier = identifier) ;) (expression_statement "local_68 = param_3;" (assignment_expression "local_68 = param_3" identifier = identifier) ;) (expression_statement "local_58 = param_4;" (assignment_expression "local_58 = param_4" identifier = identifier) ;) (expression_statement "local_48 = param_5;" (assignment_expression "local_48 = param_5" identifier = identifier) ;) (expression_statement "local_38 = param_6;" (assignment_expression "local_38 = param_6" identifier = identifier) ;) (expression_statement "local_28 = param_7;" (assignment_expression "local_28 = param_7" identifier = identifier) ;) (expression_statement "local_18 = param_8;" (assignment_expression "local_18 = param_8" identifier = identifier) ;) })) (if_statement "if (DAT_0017bbd8 == 0) {\n    return;\n  }" if (parenthesized_expression "(DAT_0017bbd8 == 0)" ( (binary_expression "DAT_0017bbd8 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "local_c8 = (undefined8 *)&stack0x00000008;" (assignment_expression "local_c8 = (undefined8 *)&stack0x00000008" identifier = (cast_expression "(undefined8 *)&stack0x00000008" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0x00000008" & identifier))) ;) (expression_statement "local_d0[0] = 8;" (assignment_expression "local_d0[0] = 8" (subscript_expression "local_d0[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_c0 = local_b8;" (assignment_expression "local_c0 = local_b8" identifier = identifier) ;) (expression_statement "local_d0[1] = 0x30;" (assignment_expression "local_d0[1] = 0x30" (subscript_expression "local_d0[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_b0 = param_10;" (assignment_expression "local_b0 = param_10" identifier = identifier) ;) (expression_statement "local_a8 = param_11;" (assignment_expression "local_a8 = param_11" identifier = identifier) ;) (expression_statement "local_a0 = param_12;" (assignment_expression "local_a0 = param_12" identifier = identifier) ;) (expression_statement "local_98 = param_13;" (assignment_expression "local_98 = param_13" identifier = identifier) ;) (expression_statement "local_90 = param_14;" (assignment_expression "local_90 = param_14" identifier = identifier) ;) (if_statement "if (((*param_9 != '%') || (param_9[1] != '!')) || (param_9[2] != '\0')) {\n    FUN_00124350(DAT_0017bbd8,param_9,local_d0,0);\n    return;\n  }" if (parenthesized_expression "(((*param_9 != '%') || (param_9[1] != '!')) || (param_9[2] != '\0'))" ( (binary_expression "((*param_9 != '%') || (param_9[1] != '!')) || (param_9[2] != '\0')" (parenthesized_expression "((*param_9 != '%') || (param_9[1] != '!'))" ( (binary_expression "(*param_9 != '%') || (param_9[1] != '!')" (parenthesized_expression "(*param_9 != '%')" ( (binary_expression "*param_9 != '%'" (pointer_expression "*param_9" * identifier) != (char_literal "'%'" ' character ')) )) || (parenthesized_expression "(param_9[1] != '!')" ( (binary_expression "param_9[1] != '!'" (subscript_expression "param_9[1]" identifier [ number_literal ]) != (char_literal "'!'" ' character ')) ))) )) || (parenthesized_expression "(param_9[2] != '\0')" ( (binary_expression "param_9[2] != '\0'" (subscript_expression "param_9[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    FUN_00124350(DAT_0017bbd8,param_9,local_d0,0);\n    return;\n  }" { (expression_statement "FUN_00124350(DAT_0017bbd8,param_9,local_d0,0);" (call_expression "FUN_00124350(DAT_0017bbd8,param_9,local_d0,0)" identifier (argument_list "(DAT_0017bbd8,param_9,local_d0,0)" ( identifier , identifier , identifier , number_literal ))) ;) (return_statement "return;" return ;) })) (expression_statement "puVar1 = (undefined8 *)xmalloc(0x20,param_9);" (assignment_expression "puVar1 = (undefined8 *)xmalloc(0x20,param_9)" identifier = (cast_expression "(undefined8 *)xmalloc(0x20,param_9)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x20,param_9)" identifier (argument_list "(0x20,param_9)" ( number_literal , identifier ))))) ;) (expression_statement "*puVar1 = 0;" (assignment_expression "*puVar1 = 0" (pointer_expression "*puVar1" * identifier) = number_literal) ;) (if_statement "if (local_d0[0] < 0x30) {\n    puVar1[1] = *(undefined8 *)(local_c0 + local_d0[0]);\n    puVar2 = local_c8;\n    if (local_d0[0] + 8 < 0x30) {\n      puVar1[2] = *(undefined8 *)(local_c0 + (local_d0[0] + 8));\n      if (local_d0[0] + 0x10 < 0x30) {\n        local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));\n      }\n      goto LAB_00125413;\n    }\n  }\n  else {\n    puVar1[1] = *local_c8;\n    puVar2 = local_c8 + 1;\n  }" if (parenthesized_expression "(local_d0[0] < 0x30)" ( (binary_expression "local_d0[0] < 0x30" (subscript_expression "local_d0[0]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n    puVar1[1] = *(undefined8 *)(local_c0 + local_d0[0]);\n    puVar2 = local_c8;\n    if (local_d0[0] + 8 < 0x30) {\n      puVar1[2] = *(undefined8 *)(local_c0 + (local_d0[0] + 8));\n      if (local_d0[0] + 0x10 < 0x30) {\n        local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));\n      }\n      goto LAB_00125413;\n    }\n  }" { (expression_statement "puVar1[1] = *(undefined8 *)(local_c0 + local_d0[0]);" (assignment_expression "puVar1[1] = *(undefined8 *)(local_c0 + local_d0[0])" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = (pointer_expression "*(undefined8 *)(local_c0 + local_d0[0])" * (cast_expression "(undefined8 *)(local_c0 + local_d0[0])" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c0 + local_d0[0])" ( (binary_expression "local_c0 + local_d0[0]" identifier + (subscript_expression "local_d0[0]" identifier [ number_literal ])) ))))) ;) (expression_statement "puVar2 = local_c8;" (assignment_expression "puVar2 = local_c8" identifier = identifier) ;) (if_statement "if (local_d0[0] + 8 < 0x30) {\n      puVar1[2] = *(undefined8 *)(local_c0 + (local_d0[0] + 8));\n      if (local_d0[0] + 0x10 < 0x30) {\n        local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));\n      }\n      goto LAB_00125413;\n    }" if (parenthesized_expression "(local_d0[0] + 8 < 0x30)" ( (binary_expression "local_d0[0] + 8 < 0x30" (binary_expression "local_d0[0] + 8" (subscript_expression "local_d0[0]" identifier [ number_literal ]) + number_literal) < number_literal) )) (compound_statement "{\n      puVar1[2] = *(undefined8 *)(local_c0 + (local_d0[0] + 8));\n      if (local_d0[0] + 0x10 < 0x30) {\n        local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));\n      }\n      goto LAB_00125413;\n    }" { (expression_statement "puVar1[2] = *(undefined8 *)(local_c0 + (local_d0[0] + 8));" (assignment_expression "puVar1[2] = *(undefined8 *)(local_c0 + (local_d0[0] + 8))" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = (pointer_expression "*(undefined8 *)(local_c0 + (local_d0[0] + 8))" * (cast_expression "(undefined8 *)(local_c0 + (local_d0[0] + 8))" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c0 + (local_d0[0] + 8))" ( (binary_expression "local_c0 + (local_d0[0] + 8)" identifier + (parenthesized_expression "(local_d0[0] + 8)" ( (binary_expression "local_d0[0] + 8" (subscript_expression "local_d0[0]" identifier [ number_literal ]) + number_literal) ))) ))))) ;) (if_statement "if (local_d0[0] + 0x10 < 0x30) {\n        local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));\n      }" if (parenthesized_expression "(local_d0[0] + 0x10 < 0x30)" ( (binary_expression "local_d0[0] + 0x10 < 0x30" (binary_expression "local_d0[0] + 0x10" (subscript_expression "local_d0[0]" identifier [ number_literal ]) + number_literal) < number_literal) )) (compound_statement "{\n        local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));\n      }" { (expression_statement "local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));" (assignment_expression "local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10))" identifier = (cast_expression "(undefined8 *)(local_c0 + (local_d0[0] + 0x10))" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c0 + (local_d0[0] + 0x10))" ( (binary_expression "local_c0 + (local_d0[0] + 0x10)" identifier + (parenthesized_expression "(local_d0[0] + 0x10)" ( (binary_expression "local_d0[0] + 0x10" (subscript_expression "local_d0[0]" identifier [ number_literal ]) + number_literal) ))) )))) ;) })) (goto_statement "goto LAB_00125413;" goto statement_identifier ;) })) }) (else_clause "else {\n    puVar1[1] = *local_c8;\n    puVar2 = local_c8 + 1;\n  }" else (compound_statement "{\n    puVar1[1] = *local_c8;\n    puVar2 = local_c8 + 1;\n  }" { (expression_statement "puVar1[1] = *local_c8;" (assignment_expression "puVar1[1] = *local_c8" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = (pointer_expression "*local_c8" * identifier)) ;) (expression_statement "puVar2 = local_c8 + 1;" (assignment_expression "puVar2 = local_c8 + 1" identifier = (binary_expression "local_c8 + 1" identifier + number_literal)) ;) }))) (expression_statement "local_c8 = puVar2 + 1;" (assignment_expression "local_c8 = puVar2 + 1" identifier = (binary_expression "puVar2 + 1" identifier + number_literal)) ;) (expression_statement "puVar1[2] = *puVar2;" (assignment_expression "puVar1[2] = *puVar2" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = (pointer_expression "*puVar2" * identifier)) ;) (labeled_statement "LAB_00125413:\n  puVar1[3] = *local_c8;" statement_identifier : (expression_statement "puVar1[3] = *local_c8;" (assignment_expression "puVar1[3] = *local_c8" (subscript_expression "puVar1[3]" identifier [ number_literal ]) = (pointer_expression "*local_c8" * identifier)) ;)) (expression_statement "*DAT_0017b950 = puVar1;" (assignment_expression "*DAT_0017b950 = puVar1" (pointer_expression "*DAT_0017b950" * identifier) = identifier) ;) (expression_statement "DAT_0017b950 = puVar1;" (assignment_expression "DAT_0017b950 = puVar1" identifier = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' character ')) ))) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , IDENT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))) )))) ;) })) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (return_statement return ;) })))
(function_definition "void FUN_00125300(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined8 param_6,undefined8 param_7,undefined8 param_8,\n                 char *param_9,undefined8 param_10,undefined8 param_11,undefined8 param_12,\n                 undefined8 param_13,undefined8 param_14)\n\n{\n  char in_AL;\n  undefined8 *puVar1;\n  undefined8 *puVar2;\n  uint local_d0 [2];\n  undefined8 *local_c8;\n  undefined1 *local_c0;\n  undefined1 local_b8 [8];\n  undefined8 local_b0;\n  undefined8 local_a8;\n  undefined8 local_a0;\n  undefined8 local_98;\n  undefined8 local_90;\n  undefined8 local_88;\n  undefined8 local_78;\n  undefined8 local_68;\n  undefined8 local_58;\n  undefined8 local_48;\n  undefined8 local_38;\n  undefined8 local_28;\n  undefined8 local_18;\n  \n  if (in_AL != '\0') {\n    local_88 = param_1;\n    local_78 = param_2;\n    local_68 = param_3;\n    local_58 = param_4;\n    local_48 = param_5;\n    local_38 = param_6;\n    local_28 = param_7;\n    local_18 = param_8;\n  }\n  if (DAT_0017bbd8 == 0) {\n    return;\n  }\n  local_c8 = (undefined8 *)&stack0x00000008;\n  local_d0[0] = 8;\n  local_c0 = local_b8;\n  local_d0[1] = 0x30;\n  local_b0 = param_10;\n  local_a8 = param_11;\n  local_a0 = param_12;\n  local_98 = param_13;\n  local_90 = param_14;\n  if (((*param_9 != '%') || (param_9[1] != '!')) || (param_9[2] != '\0')) {\n    FUN_00124350(DAT_0017bbd8,param_9,local_d0,0);\n    return;\n  }\n  puVar1 = (undefined8 *)xmalloc(0x20,param_9);\n  *puVar1 = 0;\n  if (local_d0[0] < 0x30) {\n    puVar1[1] = *(undefined8 *)(local_c0 + local_d0[0]);\n    puVar2 = local_c8;\n    if (local_d0[0] + 8 < 0x30) {\n      puVar1[2] = *(undefined8 *)(local_c0 + (local_d0[0] + 8));\n      if (local_d0[0] + 0x10 < 0x30) {\n        local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));\n      }\n      goto LAB_00125413;\n    }\n  }\n  else {\n    puVar1[1] = *local_c8;\n    puVar2 = local_c8 + 1;\n  }\n  local_c8 = puVar2 + 1;\n  puVar1[2] = *puVar2;\nLAB_00125413:\n  puVar1[3] = *local_c8;\n  *DAT_0017b950 = puVar1;\n  DAT_0017b950 = puVar1;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00125300(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined8 param_6,undefined8 param_7,undefined8 param_8,\n                 char *param_9,undefined8 param_10,undefined8 param_11,undefined8 param_12,\n                 undefined8 param_13,undefined8 param_14)" (identifier "FUN_00125300") (parameter_list "(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined8 param_6,undefined8 param_7,undefined8 param_8,\n                 char *param_9,undefined8 param_10,undefined8 param_11,undefined8 param_12,\n                 undefined8 param_13,undefined8 param_14)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) (, ",") (parameter_declaration "undefined8 param_4" (type_identifier "undefined8") (identifier "param_4")) (, ",") (parameter_declaration "undefined8 param_5" (type_identifier "undefined8") (identifier "param_5")) (, ",") (parameter_declaration "undefined8 param_6" (type_identifier "undefined8") (identifier "param_6")) (, ",") (parameter_declaration "undefined8 param_7" (type_identifier "undefined8") (identifier "param_7")) (, ",") (parameter_declaration "undefined8 param_8" (type_identifier "undefined8") (identifier "param_8")) (, ",") (parameter_declaration "char *param_9" (primitive_type "char") (pointer_declarator "*param_9" (* "*") (identifier "param_9"))) (, ",") (parameter_declaration "undefined8 param_10" (type_identifier "undefined8") (identifier "param_10")) (, ",") (parameter_declaration "undefined8 param_11" (type_identifier "undefined8") (identifier "param_11")) (, ",") (parameter_declaration "undefined8 param_12" (type_identifier "undefined8") (identifier "param_12")) (, ",") (parameter_declaration "undefined8 param_13" (type_identifier "undefined8") (identifier "param_13")) (, ",") (parameter_declaration "undefined8 param_14" (type_identifier "undefined8") (identifier "param_14")) () ")"))) (compound_statement "{\n  char in_AL;\n  undefined8 *puVar1;\n  undefined8 *puVar2;\n  uint local_d0 [2];\n  undefined8 *local_c8;\n  undefined1 *local_c0;\n  undefined1 local_b8 [8];\n  undefined8 local_b0;\n  undefined8 local_a8;\n  undefined8 local_a0;\n  undefined8 local_98;\n  undefined8 local_90;\n  undefined8 local_88;\n  undefined8 local_78;\n  undefined8 local_68;\n  undefined8 local_58;\n  undefined8 local_48;\n  undefined8 local_38;\n  undefined8 local_28;\n  undefined8 local_18;\n  \n  if (in_AL != '\0') {\n    local_88 = param_1;\n    local_78 = param_2;\n    local_68 = param_3;\n    local_58 = param_4;\n    local_48 = param_5;\n    local_38 = param_6;\n    local_28 = param_7;\n    local_18 = param_8;\n  }\n  if (DAT_0017bbd8 == 0) {\n    return;\n  }\n  local_c8 = (undefined8 *)&stack0x00000008;\n  local_d0[0] = 8;\n  local_c0 = local_b8;\n  local_d0[1] = 0x30;\n  local_b0 = param_10;\n  local_a8 = param_11;\n  local_a0 = param_12;\n  local_98 = param_13;\n  local_90 = param_14;\n  if (((*param_9 != '%') || (param_9[1] != '!')) || (param_9[2] != '\0')) {\n    FUN_00124350(DAT_0017bbd8,param_9,local_d0,0);\n    return;\n  }\n  puVar1 = (undefined8 *)xmalloc(0x20,param_9);\n  *puVar1 = 0;\n  if (local_d0[0] < 0x30) {\n    puVar1[1] = *(undefined8 *)(local_c0 + local_d0[0]);\n    puVar2 = local_c8;\n    if (local_d0[0] + 8 < 0x30) {\n      puVar1[2] = *(undefined8 *)(local_c0 + (local_d0[0] + 8));\n      if (local_d0[0] + 0x10 < 0x30) {\n        local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));\n      }\n      goto LAB_00125413;\n    }\n  }\n  else {\n    puVar1[1] = *local_c8;\n    puVar2 = local_c8 + 1;\n  }\n  local_c8 = puVar2 + 1;\n  puVar1[2] = *puVar2;\nLAB_00125413:\n  puVar1[3] = *local_c8;\n  *DAT_0017b950 = puVar1;\n  DAT_0017b950 = puVar1;\n  return;\n}" ({ "{") (declaration "char in_AL;" (primitive_type "char") (identifier "in_AL") (; ";")) (declaration "undefined8 *puVar1;" (type_identifier "undefined8") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined8 *puVar2;" (type_identifier "undefined8") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "uint local_d0 [2];" (type_identifier "uint") (array_declarator "local_d0 [2]" (identifier "local_d0") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined8 *local_c8;" (type_identifier "undefined8") (pointer_declarator "*local_c8" (* "*") (identifier "local_c8")) (; ";")) (declaration "undefined1 *local_c0;" (type_identifier "undefined1") (pointer_declarator "*local_c0" (* "*") (identifier "local_c0")) (; ";")) (declaration "undefined1 local_b8 [8];" (type_identifier "undefined1") (array_declarator "local_b8 [8]" (identifier "local_b8") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "undefined8 local_b0;" (type_identifier "undefined8") (identifier "local_b0") (; ";")) (declaration "undefined8 local_a8;" (type_identifier "undefined8") (identifier "local_a8") (; ";")) (declaration "undefined8 local_a0;" (type_identifier "undefined8") (identifier "local_a0") (; ";")) (declaration "undefined8 local_98;" (type_identifier "undefined8") (identifier "local_98") (; ";")) (declaration "undefined8 local_90;" (type_identifier "undefined8") (identifier "local_90") (; ";")) (declaration "undefined8 local_88;" (type_identifier "undefined8") (identifier "local_88") (; ";")) (declaration "undefined8 local_78;" (type_identifier "undefined8") (identifier "local_78") (; ";")) (declaration "undefined8 local_68;" (type_identifier "undefined8") (identifier "local_68") (; ";")) (declaration "undefined8 local_58;" (type_identifier "undefined8") (identifier "local_58") (; ";")) (declaration "undefined8 local_48;" (type_identifier "undefined8") (identifier "local_48") (; ";")) (declaration "undefined8 local_38;" (type_identifier "undefined8") (identifier "local_38") (; ";")) (declaration "undefined8 local_28;" (type_identifier "undefined8") (identifier "local_28") (; ";")) (declaration "undefined8 local_18;" (type_identifier "undefined8") (identifier "local_18") (; ";")) (if_statement "if (in_AL != '\0') {\n    local_88 = param_1;\n    local_78 = param_2;\n    local_68 = param_3;\n    local_58 = param_4;\n    local_48 = param_5;\n    local_38 = param_6;\n    local_28 = param_7;\n    local_18 = param_8;\n  }" (if "if") (parenthesized_expression "(in_AL != '\0')" (( "(") (binary_expression "in_AL != '\0'" (identifier "in_AL") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    local_88 = param_1;\n    local_78 = param_2;\n    local_68 = param_3;\n    local_58 = param_4;\n    local_48 = param_5;\n    local_38 = param_6;\n    local_28 = param_7;\n    local_18 = param_8;\n  }" ({ "{") (expression_statement "local_88 = param_1;" (assignment_expression "local_88 = param_1" (identifier "local_88") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_78 = param_2;" (assignment_expression "local_78 = param_2" (identifier "local_78") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_68 = param_3;" (assignment_expression "local_68 = param_3" (identifier "local_68") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_58 = param_4;" (assignment_expression "local_58 = param_4" (identifier "local_58") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_48 = param_5;" (assignment_expression "local_48 = param_5" (identifier "local_48") (= "=") (identifier "param_5")) (; ";")) (expression_statement "local_38 = param_6;" (assignment_expression "local_38 = param_6" (identifier "local_38") (= "=") (identifier "param_6")) (; ";")) (expression_statement "local_28 = param_7;" (assignment_expression "local_28 = param_7" (identifier "local_28") (= "=") (identifier "param_7")) (; ";")) (expression_statement "local_18 = param_8;" (assignment_expression "local_18 = param_8" (identifier "local_18") (= "=") (identifier "param_8")) (; ";")) (} "}"))) (if_statement "if (DAT_0017bbd8 == 0) {\n    return;\n  }" (if "if") (parenthesized_expression "(DAT_0017bbd8 == 0)" (( "(") (binary_expression "DAT_0017bbd8 == 0" (identifier "DAT_0017bbd8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "local_c8 = (undefined8 *)&stack0x00000008;" (assignment_expression "local_c8 = (undefined8 *)&stack0x00000008" (identifier "local_c8") (= "=") (cast_expression "(undefined8 *)&stack0x00000008" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&stack0x00000008" (& "&") (identifier "stack0x00000008")))) (; ";")) (expression_statement "local_d0[0] = 8;" (assignment_expression "local_d0[0] = 8" (subscript_expression "local_d0[0]" (identifier "local_d0") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "local_c0 = local_b8;" (assignment_expression "local_c0 = local_b8" (identifier "local_c0") (= "=") (identifier "local_b8")) (; ";")) (expression_statement "local_d0[1] = 0x30;" (assignment_expression "local_d0[1] = 0x30" (subscript_expression "local_d0[1]" (identifier "local_d0") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0x30")) (; ";")) (expression_statement "local_b0 = param_10;" (assignment_expression "local_b0 = param_10" (identifier "local_b0") (= "=") (identifier "param_10")) (; ";")) (expression_statement "local_a8 = param_11;" (assignment_expression "local_a8 = param_11" (identifier "local_a8") (= "=") (identifier "param_11")) (; ";")) (expression_statement "local_a0 = param_12;" (assignment_expression "local_a0 = param_12" (identifier "local_a0") (= "=") (identifier "param_12")) (; ";")) (expression_statement "local_98 = param_13;" (assignment_expression "local_98 = param_13" (identifier "local_98") (= "=") (identifier "param_13")) (; ";")) (expression_statement "local_90 = param_14;" (assignment_expression "local_90 = param_14" (identifier "local_90") (= "=") (identifier "param_14")) (; ";")) (if_statement "if (((*param_9 != '%') || (param_9[1] != '!')) || (param_9[2] != '\0')) {\n    FUN_00124350(DAT_0017bbd8,param_9,local_d0,0);\n    return;\n  }" (if "if") (parenthesized_expression "(((*param_9 != '%') || (param_9[1] != '!')) || (param_9[2] != '\0'))" (( "(") (binary_expression "((*param_9 != '%') || (param_9[1] != '!')) || (param_9[2] != '\0')" (parenthesized_expression "((*param_9 != '%') || (param_9[1] != '!'))" (( "(") (binary_expression "(*param_9 != '%') || (param_9[1] != '!')" (parenthesized_expression "(*param_9 != '%')" (( "(") (binary_expression "*param_9 != '%'" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (!= "!=") (char_literal "'%'" (' "'") (character "%") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(param_9[1] != '!')" (( "(") (binary_expression "param_9[1] != '!'" (subscript_expression "param_9[1]" (identifier "param_9") ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "'!'" (' "'") (character "!") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(param_9[2] != '\0')" (( "(") (binary_expression "param_9[2] != '\0'" (subscript_expression "param_9[2]" (identifier "param_9") ([ "[") (number_literal "2") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    FUN_00124350(DAT_0017bbd8,param_9,local_d0,0);\n    return;\n  }" ({ "{") (expression_statement "FUN_00124350(DAT_0017bbd8,param_9,local_d0,0);" (call_expression "FUN_00124350(DAT_0017bbd8,param_9,local_d0,0)" (identifier "FUN_00124350") (argument_list "(DAT_0017bbd8,param_9,local_d0,0)" (( "(") (identifier "DAT_0017bbd8") (, ",") (identifier "param_9") (, ",") (identifier "local_d0") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "puVar1 = (undefined8 *)xmalloc(0x20,param_9);" (assignment_expression "puVar1 = (undefined8 *)xmalloc(0x20,param_9)" (identifier "puVar1") (= "=") (cast_expression "(undefined8 *)xmalloc(0x20,param_9)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(0x20,param_9)" (identifier "xmalloc") (argument_list "(0x20,param_9)" (( "(") (number_literal "0x20") (, ",") (identifier "param_9") () ")"))))) (; ";")) (expression_statement "*puVar1 = 0;" (assignment_expression "*puVar1 = 0" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_d0[0] < 0x30) {\n    puVar1[1] = *(undefined8 *)(local_c0 + local_d0[0]);\n    puVar2 = local_c8;\n    if (local_d0[0] + 8 < 0x30) {\n      puVar1[2] = *(undefined8 *)(local_c0 + (local_d0[0] + 8));\n      if (local_d0[0] + 0x10 < 0x30) {\n        local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));\n      }\n      goto LAB_00125413;\n    }\n  }\n  else {\n    puVar1[1] = *local_c8;\n    puVar2 = local_c8 + 1;\n  }" (if "if") (parenthesized_expression "(local_d0[0] < 0x30)" (( "(") (binary_expression "local_d0[0] < 0x30" (subscript_expression "local_d0[0]" (identifier "local_d0") ([ "[") (number_literal "0") (] "]")) (< "<") (number_literal "0x30")) () ")")) (compound_statement "{\n    puVar1[1] = *(undefined8 *)(local_c0 + local_d0[0]);\n    puVar2 = local_c8;\n    if (local_d0[0] + 8 < 0x30) {\n      puVar1[2] = *(undefined8 *)(local_c0 + (local_d0[0] + 8));\n      if (local_d0[0] + 0x10 < 0x30) {\n        local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));\n      }\n      goto LAB_00125413;\n    }\n  }" ({ "{") (expression_statement "puVar1[1] = *(undefined8 *)(local_c0 + local_d0[0]);" (assignment_expression "puVar1[1] = *(undefined8 *)(local_c0 + local_d0[0])" (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (pointer_expression "*(undefined8 *)(local_c0 + local_d0[0])" (* "*") (cast_expression "(undefined8 *)(local_c0 + local_d0[0])" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c0 + local_d0[0])" (( "(") (binary_expression "local_c0 + local_d0[0]" (identifier "local_c0") (+ "+") (subscript_expression "local_d0[0]" (identifier "local_d0") ([ "[") (number_literal "0") (] "]"))) () ")"))))) (; ";")) (expression_statement "puVar2 = local_c8;" (assignment_expression "puVar2 = local_c8" (identifier "puVar2") (= "=") (identifier "local_c8")) (; ";")) (if_statement "if (local_d0[0] + 8 < 0x30) {\n      puVar1[2] = *(undefined8 *)(local_c0 + (local_d0[0] + 8));\n      if (local_d0[0] + 0x10 < 0x30) {\n        local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));\n      }\n      goto LAB_00125413;\n    }" (if "if") (parenthesized_expression "(local_d0[0] + 8 < 0x30)" (( "(") (binary_expression "local_d0[0] + 8 < 0x30" (binary_expression "local_d0[0] + 8" (subscript_expression "local_d0[0]" (identifier "local_d0") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "8")) (< "<") (number_literal "0x30")) () ")")) (compound_statement "{\n      puVar1[2] = *(undefined8 *)(local_c0 + (local_d0[0] + 8));\n      if (local_d0[0] + 0x10 < 0x30) {\n        local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));\n      }\n      goto LAB_00125413;\n    }" ({ "{") (expression_statement "puVar1[2] = *(undefined8 *)(local_c0 + (local_d0[0] + 8));" (assignment_expression "puVar1[2] = *(undefined8 *)(local_c0 + (local_d0[0] + 8))" (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]")) (= "=") (pointer_expression "*(undefined8 *)(local_c0 + (local_d0[0] + 8))" (* "*") (cast_expression "(undefined8 *)(local_c0 + (local_d0[0] + 8))" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c0 + (local_d0[0] + 8))" (( "(") (binary_expression "local_c0 + (local_d0[0] + 8)" (identifier "local_c0") (+ "+") (parenthesized_expression "(local_d0[0] + 8)" (( "(") (binary_expression "local_d0[0] + 8" (subscript_expression "local_d0[0]" (identifier "local_d0") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "8")) () ")"))) () ")"))))) (; ";")) (if_statement "if (local_d0[0] + 0x10 < 0x30) {\n        local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));\n      }" (if "if") (parenthesized_expression "(local_d0[0] + 0x10 < 0x30)" (( "(") (binary_expression "local_d0[0] + 0x10 < 0x30" (binary_expression "local_d0[0] + 0x10" (subscript_expression "local_d0[0]" (identifier "local_d0") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "0x10")) (< "<") (number_literal "0x30")) () ")")) (compound_statement "{\n        local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));\n      }" ({ "{") (expression_statement "local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));" (assignment_expression "local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10))" (identifier "local_c8") (= "=") (cast_expression "(undefined8 *)(local_c0 + (local_d0[0] + 0x10))" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c0 + (local_d0[0] + 0x10))" (( "(") (binary_expression "local_c0 + (local_d0[0] + 0x10)" (identifier "local_c0") (+ "+") (parenthesized_expression "(local_d0[0] + 0x10)" (( "(") (binary_expression "local_d0[0] + 0x10" (subscript_expression "local_d0[0]" (identifier "local_d0") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "0x10")) () ")"))) () ")")))) (; ";")) (} "}"))) (goto_statement "goto LAB_00125413;" (goto "goto") (statement_identifier "LAB_00125413") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    puVar1[1] = *local_c8;\n    puVar2 = local_c8 + 1;\n  }" (else "else") (compound_statement "{\n    puVar1[1] = *local_c8;\n    puVar2 = local_c8 + 1;\n  }" ({ "{") (expression_statement "puVar1[1] = *local_c8;" (assignment_expression "puVar1[1] = *local_c8" (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (pointer_expression "*local_c8" (* "*") (identifier "local_c8"))) (; ";")) (expression_statement "puVar2 = local_c8 + 1;" (assignment_expression "puVar2 = local_c8 + 1" (identifier "puVar2") (= "=") (binary_expression "local_c8 + 1" (identifier "local_c8") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "local_c8 = puVar2 + 1;" (assignment_expression "local_c8 = puVar2 + 1" (identifier "local_c8") (= "=") (binary_expression "puVar2 + 1" (identifier "puVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar1[2] = *puVar2;" (assignment_expression "puVar1[2] = *puVar2" (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]")) (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (labeled_statement "LAB_00125413:\n  puVar1[3] = *local_c8;" (statement_identifier "LAB_00125413") (: ":") (expression_statement "puVar1[3] = *local_c8;" (assignment_expression "puVar1[3] = *local_c8" (subscript_expression "puVar1[3]" (identifier "puVar1") ([ "[") (number_literal "3") (] "]")) (= "=") (pointer_expression "*local_c8" (* "*") (identifier "local_c8"))) (; ";"))) (expression_statement "*DAT_0017b950 = puVar1;" (assignment_expression "*DAT_0017b950 = puVar1" (pointer_expression "*DAT_0017b950" (* "*") (identifier "DAT_0017b950")) (= "=") (identifier "puVar1")) (; ";")) (expression_statement "DAT_0017b950 = puVar1;" (assignment_expression "DAT_0017b950 = puVar1" (identifier "DAT_0017b950") (= "=") (identifier "puVar1")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(char *fmt,...)

{
  char var_1;
  type_1 *paVar1;
  type_2 in_RCX;
  type_2 in_RDX;
  type_2 *var_4;
  type_2 in_RSI;
  type_2 in_R8;
  type_2 in_R9;
  type_2 in_XMM0_Qa;
  type_2 in_XMM1_Qa;
  type_2 in_XMM2_Qa;
  type_2 in_XMM3_Qa;
  type_2 in_XMM4_Qa;
  type_2 in_XMM5_Qa;
  type_2 in_XMM6_Qa;
  type_2 in_XMM7_Qa;
  type_3 arg;
  type_4 local_b8 [8];
  type_2 local_b0;
  type_2 local_a8;
  type_2 local_a0;
  type_2 local_98;
  type_2 local_90;
  type_2 local_88;
  type_2 local_78;
  type_2 local_68;
  type_2 local_58;
  type_2 local_48;
  type_2 local_38;
  type_2 local_28;
  type_2 local_18;
  
  if (var_1 != '\0') {
    local_88 = in_XMM0_Qa;
    local_78 = in_XMM1_Qa;
    local_68 = in_XMM2_Qa;
    local_58 = in_XMM3_Qa;
    local_48 = in_XMM4_Qa;
    local_38 = in_XMM5_Qa;
    local_28 = in_XMM6_Qa;
    local_18 = in_XMM7_Qa;
  }
  if (config.map_file == (type_5 *)0x0) {
    return;
  }
  arg[0].overflow_arg_area = &stack0x00000008;
  arg[0].gp_offset = 8;
  arg[0].reg_save_area = local_b8;
  arg[0].fp_offset = 0x30;
  local_b0 = in_RSI;
  local_a8 = in_RDX;
  local_a0 = in_RCX;
  local_98 = in_R8;
  local_90 = in_R9;
  if (((*fmt != '%') || (fmt[1] != '!')) || (fmt[2] != '\0')) {
    var_2(config.map_file,fmt,arg,0);
    return;
  }
  paVar1 = (type_1 *)var_3(0x20);
  paVar1->next = (type_1 *)0x0;
  if (arg[0].gp_offset < 0x30) {
    paVar1->soname = *(char **)((long)arg[0].reg_save_area + (type_6)arg[0].gp_offset);
    var_4 = (type_2 *)arg[0].overflow_arg_area;
    if (arg[0].gp_offset + 8 < 0x30) {
      paVar1->ref = *(type_7 **)((long)arg[0].reg_save_area + (type_6)(arg[0].gp_offset + 8));
      if (arg[0].gp_offset + 0x10 < 0x30) {
        arg[0].overflow_arg_area =
             (void *)((type_6)(arg[0].gp_offset + 0x10) + (long)arg[0].reg_save_area);
      }
      goto LAB_00125413;
    }
  }
  else {
                    /* WARNING: Load size is inaccurate */
    paVar1->soname = *arg[0].overflow_arg_area;
    var_4 = (type_2 *)((long)arg[0].overflow_arg_area + 8);
  }
  arg[0].overflow_arg_area = var_4 + 1;
  paVar1->ref = (type_7 *)*var_4;
LAB_00125413:
                    /* WARNING: Load size is inaccurate */
  paVar1->name = *arg[0].overflow_arg_area;
  *asneeded_list_tail = paVar1;
  asneeded_list_tail = (type_1 **)paVar1;
  return;
}


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

void MASKED(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,
                 undefined8 param_5,undefined8 param_6,undefined8 param_7,undefined8 param_8,
                 char *param_9,undefined8 param_10,undefined8 param_11,undefined8 param_12,
                 undefined8 param_13,undefined8 param_14)

{
  char in_AL;
  undefined8 *puVar1;
  undefined8 *puVar2;
  uint local_d0 [2];
  undefined8 *local_c8;
  undefined1 *local_c0;
  undefined1 local_b8 [8];
  undefined8 local_b0;
  undefined8 local_a8;
  undefined8 local_a0;
  undefined8 local_98;
  undefined8 local_90;
  undefined8 local_88;
  undefined8 local_78;
  undefined8 local_68;
  undefined8 local_58;
  undefined8 local_48;
  undefined8 local_38;
  undefined8 local_28;
  undefined8 local_18;
  
  if (in_AL != '\0') {
    local_88 = param_1;
    local_78 = param_2;
    local_68 = param_3;
    local_58 = param_4;
    local_48 = param_5;
    local_38 = param_6;
    local_28 = param_7;
    local_18 = param_8;
  }
  if (DAT_0017bbd8 == 0) {
    return;
  }
  local_c8 = (undefined8 *)&stack0x00000008;
  local_d0[0] = 8;
  local_c0 = local_b8;
  local_d0[1] = 0x30;
  local_b0 = param_10;
  local_a8 = param_11;
  local_a0 = param_12;
  local_98 = param_13;
  local_90 = param_14;
  if (((*param_9 != '%') || (param_9[1] != '!')) || (param_9[2] != '\0')) {
    FUN_00124350(DAT_0017bbd8,param_9,local_d0,0);
    return;
  }
  puVar1 = (undefined8 *)xmalloc(0x20,param_9);
  *puVar1 = 0;
  if (local_d0[0] < 0x30) {
    puVar1[1] = *(undefined8 *)(local_c0 + local_d0[0]);
    puVar2 = local_c8;
    if (local_d0[0] + 8 < 0x30) {
      puVar1[2] = *(undefined8 *)(local_c0 + (local_d0[0] + 8));
      if (local_d0[0] + 0x10 < 0x30) {
        local_c8 = (undefined8 *)(local_c0 + (local_d0[0] + 0x10));
      }
      goto LAB_00125413;
    }
  }
  else {
    puVar1[1] = *local_c8;
    puVar2 = local_c8 + 1;
  }
  local_c8 = puVar2 + 1;
  puVar1[2] = *puVar2;
LAB_00125413:
  puVar1[3] = *local_c8;
  *DAT_0017b950 = puVar1;
  DAT_0017b950 = puVar1;
  return;
}

