
int objdump_sprintf(SFILE *f,char *format,...)

{
  char in_AL;
  int iVar1;
  char *pcVar2;
  undefined8 in_RCX;
  undefined8 in_RDX;
  ulong uVar3;
  undefined8 in_R8;
  undefined8 in_R9;
  size_t __maxlen;
  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 args;
  undefined1 local_d8 [16];
  undefined8 local_c8;
  undefined8 local_c0;
  undefined8 local_b8;
  undefined8 local_b0;
  undefined8 local_a8;
  undefined8 local_98;
  undefined8 local_88;
  undefined8 local_78;
  undefined8 local_68;
  undefined8 local_58;
  undefined8 local_48;
  undefined8 local_38;
  
  if (in_AL != '\0') {
    local_a8 = in_XMM0_Qa;
    local_98 = in_XMM1_Qa;
    local_88 = in_XMM2_Qa;
    local_78 = in_XMM3_Qa;
    local_68 = in_XMM4_Qa;
    local_58 = in_XMM5_Qa;
    local_48 = in_XMM6_Qa;
    local_38 = in_XMM7_Qa;
  }
  local_c8 = in_RDX;
  local_c0 = in_RCX;
  local_b8 = in_R8;
  local_b0 = in_R9;
  while( true ) {
    __maxlen = f->alloc - f->pos;
    args[0].overflow_arg_area = &stack0x00000008;
    args[0].reg_save_area = local_d8;
    args[0].gp_offset = 0x10;
    args[0].fp_offset = 0x30;
    iVar1 = vsnprintf(f->buffer + f->pos,__maxlen,format,args);
    uVar3 = (ulong)iVar1;
    if (uVar3 < __maxlen) break;
    f->alloc = (uVar3 + f->alloc) * 2;
    pcVar2 = (char *)xrealloc(f->buffer);
    f->buffer = pcVar2;
  }
  f->pos = f->pos + uVar3;
  return iVar1;
}



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

{
  long lVar1;
  char in_AL;
  int iVar2;
  long lVar3;
  ulong uVar4;
  undefined4 local_f0;
  undefined4 local_ec;
  undefined1 *local_e8;
  undefined1 *local_e0;
  undefined1 local_d8 [16];
  undefined8 local_c8;
  undefined8 local_c0;
  undefined8 local_b8;
  undefined8 local_b0;
  undefined8 local_a8;
  undefined8 local_98;
  undefined8 local_88;
  undefined8 local_78;
  undefined8 local_68;
  undefined8 local_58;
  undefined8 local_48;
  undefined8 local_38;
  
  if (in_AL != '\0') {
    local_a8 = param_1;
    local_98 = param_2;
    local_88 = param_3;
    local_78 = param_4;
    local_68 = param_5;
    local_58 = param_6;
    local_48 = param_7;
    local_38 = param_8;
  }
  local_c8 = param_11;
  local_c0 = param_12;
  local_b8 = param_13;
  local_b0 = param_14;
  while( true ) {
    lVar3 = param_9[2];
    lVar1 = param_9[1];
    local_e8 = &stack0x00000008;
    local_e0 = local_d8;
    local_f0 = 0x10;
    local_ec = 0x30;
    iVar2 = vsnprintf((char *)(param_9[1] + *param_9),lVar3 - lVar1,param_10,&local_f0);
    uVar4 = (ulong)iVar2;
    if (uVar4 < (ulong)(lVar3 - lVar1)) break;
    param_9[2] = (uVar4 + param_9[2]) * 2;
    lVar3 = xrealloc(*param_9);
    *param_9 = lVar3;
  }
  param_9[1] = param_9[1] + uVar4;
  return;
}


PUSH R13
PUSH R12
MOV R12,RSI
PUSH RBP
PUSH RBX
MOV RBX,RDI
SUB RSP,0xd8
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 0x00109fc2
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
LEA RBP,[RSP + 0x8]
JMP 0x00109fe6
ADD RSI,qword ptr [RBX + 0x10]
MOV RDI,qword ptr [RBX]
ADD RSI,RSI
MOV qword ptr [RBX + 0x10],RSI
CALL 0x001072b0
MOV qword ptr [RBX],RAX
MOV R13,qword ptr [RBX + 0x10]
SUB R13,qword ptr [RBX + 0x8]
MOV RCX,RBP
MOV RDX,R12
LEA RAX,[RSP + 0x100]
MOV RDI,qword ptr [RBX + 0x8]
MOV RSI,R13
ADD RDI,qword ptr [RBX]
MOV qword ptr [RSP + 0x10],RAX
LEA RAX,[RSP + 0x20]
MOV dword ptr [RSP + 0x8],0x10
MOV dword ptr [RSP + 0xc],0x30
MOV qword ptr [RSP + 0x18],RAX
CALL 0x00107180
MOVSXD RSI,EAX
CMP R13,RSI
JBE 0x00109fd0
ADD qword ptr [RBX + 0x8],RSI
ADD RSP,0xd8
POP RBX
POP RBP
POP R12
POP R13
RET
(translation_unit "void FUN_00109f60(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                 long *param_9,char *param_10,undefined8 param_11,undefined8 param_12,\n                 undefined8 param_13,undefined8 param_14)\n\n{\n  long lVar1;\n  char in_AL;\n  int iVar2;\n  long lVar3;\n  ulong uVar4;\n  undefined4 local_f0;\n  undefined4 local_ec;\n  undefined1 *local_e8;\n  undefined1 *local_e0;\n  undefined1 local_d8 [16];\n  undefined8 local_c8;\n  undefined8 local_c0;\n  undefined8 local_b8;\n  undefined8 local_b0;\n  undefined8 local_a8;\n  undefined8 local_98;\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  \n  if (in_AL != '\0') {\n    local_a8 = param_1;\n    local_98 = param_2;\n    local_88 = param_3;\n    local_78 = param_4;\n    local_68 = param_5;\n    local_58 = param_6;\n    local_48 = param_7;\n    local_38 = param_8;\n  }\n  local_c8 = param_11;\n  local_c0 = param_12;\n  local_b8 = param_13;\n  local_b0 = param_14;\n  while( true ) {\n    lVar3 = param_9[2];\n    lVar1 = param_9[1];\n    local_e8 = &stack0x00000008;\n    local_e0 = local_d8;\n    local_f0 = 0x10;\n    local_ec = 0x30;\n    iVar2 = vsnprintf((char *)(param_9[1] + *param_9),lVar3 - lVar1,param_10,&local_f0);\n    uVar4 = (ulong)iVar2;\n    if (uVar4 < (ulong)(lVar3 - lVar1)) break;\n    param_9[2] = (uVar4 + param_9[2]) * 2;\n    lVar3 = xrealloc(*param_9);\n    *param_9 = lVar3;\n  }\n  param_9[1] = param_9[1] + uVar4;\n  return;\n}\n\n" (function_definition "void FUN_00109f60(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                 long *param_9,char *param_10,undefined8 param_11,undefined8 param_12,\n                 undefined8 param_13,undefined8 param_14)\n\n{\n  long lVar1;\n  char in_AL;\n  int iVar2;\n  long lVar3;\n  ulong uVar4;\n  undefined4 local_f0;\n  undefined4 local_ec;\n  undefined1 *local_e8;\n  undefined1 *local_e0;\n  undefined1 local_d8 [16];\n  undefined8 local_c8;\n  undefined8 local_c0;\n  undefined8 local_b8;\n  undefined8 local_b0;\n  undefined8 local_a8;\n  undefined8 local_98;\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  \n  if (in_AL != '\0') {\n    local_a8 = param_1;\n    local_98 = param_2;\n    local_88 = param_3;\n    local_78 = param_4;\n    local_68 = param_5;\n    local_58 = param_6;\n    local_48 = param_7;\n    local_38 = param_8;\n  }\n  local_c8 = param_11;\n  local_c0 = param_12;\n  local_b8 = param_13;\n  local_b0 = param_14;\n  while( true ) {\n    lVar3 = param_9[2];\n    lVar1 = param_9[1];\n    local_e8 = &stack0x00000008;\n    local_e0 = local_d8;\n    local_f0 = 0x10;\n    local_ec = 0x30;\n    iVar2 = vsnprintf((char *)(param_9[1] + *param_9),lVar3 - lVar1,param_10,&local_f0);\n    uVar4 = (ulong)iVar2;\n    if (uVar4 < (ulong)(lVar3 - lVar1)) break;\n    param_9[2] = (uVar4 + param_9[2]) * 2;\n    lVar3 = xrealloc(*param_9);\n    *param_9 = lVar3;\n  }\n  param_9[1] = param_9[1] + uVar4;\n  return;\n}" primitive_type (function_declarator "FUN_00109f60(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                 long *param_9,char *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                 long *param_9,char *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 "long *param_9" (sized_type_specifier "long" long) (pointer_declarator "*param_9" * identifier)) , (parameter_declaration "char *param_10" primitive_type (pointer_declarator "*param_10" * 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  long lVar1;\n  char in_AL;\n  int iVar2;\n  long lVar3;\n  ulong uVar4;\n  undefined4 local_f0;\n  undefined4 local_ec;\n  undefined1 *local_e8;\n  undefined1 *local_e0;\n  undefined1 local_d8 [16];\n  undefined8 local_c8;\n  undefined8 local_c0;\n  undefined8 local_b8;\n  undefined8 local_b0;\n  undefined8 local_a8;\n  undefined8 local_98;\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  \n  if (in_AL != '\0') {\n    local_a8 = param_1;\n    local_98 = param_2;\n    local_88 = param_3;\n    local_78 = param_4;\n    local_68 = param_5;\n    local_58 = param_6;\n    local_48 = param_7;\n    local_38 = param_8;\n  }\n  local_c8 = param_11;\n  local_c0 = param_12;\n  local_b8 = param_13;\n  local_b0 = param_14;\n  while( true ) {\n    lVar3 = param_9[2];\n    lVar1 = param_9[1];\n    local_e8 = &stack0x00000008;\n    local_e0 = local_d8;\n    local_f0 = 0x10;\n    local_ec = 0x30;\n    iVar2 = vsnprintf((char *)(param_9[1] + *param_9),lVar3 - lVar1,param_10,&local_f0);\n    uVar4 = (ulong)iVar2;\n    if (uVar4 < (ulong)(lVar3 - lVar1)) break;\n    param_9[2] = (uVar4 + param_9[2]) * 2;\n    lVar3 = xrealloc(*param_9);\n    *param_9 = lVar3;\n  }\n  param_9[1] = param_9[1] + uVar4;\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "char in_AL;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "undefined4 local_f0;" type_identifier identifier ;) (declaration "undefined4 local_ec;" type_identifier identifier ;) (declaration "undefined1 *local_e8;" type_identifier (pointer_declarator "*local_e8" * identifier) ;) (declaration "undefined1 *local_e0;" type_identifier (pointer_declarator "*local_e0" * identifier) ;) (declaration "undefined1 local_d8 [16];" type_identifier (array_declarator "local_d8 [16]" identifier [ number_literal ]) ;) (declaration "undefined8 local_c8;" type_identifier identifier ;) (declaration "undefined8 local_c0;" type_identifier identifier ;) (declaration "undefined8 local_b8;" type_identifier identifier ;) (declaration "undefined8 local_b0;" type_identifier identifier ;) (declaration "undefined8 local_a8;" type_identifier identifier ;) (declaration "undefined8 local_98;" 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 ;) (if_statement "if (in_AL != '\0') {\n    local_a8 = param_1;\n    local_98 = param_2;\n    local_88 = param_3;\n    local_78 = param_4;\n    local_68 = param_5;\n    local_58 = param_6;\n    local_48 = param_7;\n    local_38 = param_8;\n  }" if (parenthesized_expression "(in_AL != '\0')" ( (binary_expression "in_AL != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_a8 = param_1;\n    local_98 = param_2;\n    local_88 = param_3;\n    local_78 = param_4;\n    local_68 = param_5;\n    local_58 = param_6;\n    local_48 = param_7;\n    local_38 = param_8;\n  }" { (expression_statement "local_a8 = param_1;" (assignment_expression "local_a8 = param_1" identifier = identifier) ;) (expression_statement "local_98 = param_2;" (assignment_expression "local_98 = param_2" identifier = identifier) ;) (expression_statement "local_88 = param_3;" (assignment_expression "local_88 = param_3" identifier = identifier) ;) (expression_statement "local_78 = param_4;" (assignment_expression "local_78 = param_4" identifier = identifier) ;) (expression_statement "local_68 = param_5;" (assignment_expression "local_68 = param_5" identifier = identifier) ;) (expression_statement "local_58 = param_6;" (assignment_expression "local_58 = param_6" identifier = identifier) ;) (expression_statement "local_48 = param_7;" (assignment_expression "local_48 = param_7" identifier = identifier) ;) (expression_statement "local_38 = param_8;" (assignment_expression "local_38 = param_8" identifier = identifier) ;) })) (expression_statement "local_c8 = param_11;" (assignment_expression "local_c8 = param_11" identifier = identifier) ;) (expression_statement "local_c0 = param_12;" (assignment_expression "local_c0 = param_12" identifier = identifier) ;) (expression_statement "local_b8 = param_13;" (assignment_expression "local_b8 = param_13" identifier = identifier) ;) (expression_statement "local_b0 = param_14;" (assignment_expression "local_b0 = param_14" identifier = identifier) ;) (while_statement "while( true ) {\n    lVar3 = param_9[2];\n    lVar1 = param_9[1];\n    local_e8 = &stack0x00000008;\n    local_e0 = local_d8;\n    local_f0 = 0x10;\n    local_ec = 0x30;\n    iVar2 = vsnprintf((char *)(param_9[1] + *param_9),lVar3 - lVar1,param_10,&local_f0);\n    uVar4 = (ulong)iVar2;\n    if (uVar4 < (ulong)(lVar3 - lVar1)) break;\n    param_9[2] = (uVar4 + param_9[2]) * 2;\n    lVar3 = xrealloc(*param_9);\n    *param_9 = lVar3;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    lVar3 = param_9[2];\n    lVar1 = param_9[1];\n    local_e8 = &stack0x00000008;\n    local_e0 = local_d8;\n    local_f0 = 0x10;\n    local_ec = 0x30;\n    iVar2 = vsnprintf((char *)(param_9[1] + *param_9),lVar3 - lVar1,param_10,&local_f0);\n    uVar4 = (ulong)iVar2;\n    if (uVar4 < (ulong)(lVar3 - lVar1)) break;\n    param_9[2] = (uVar4 + param_9[2]) * 2;\n    lVar3 = xrealloc(*param_9);\n    *param_9 = lVar3;\n  }" { (expression_statement "lVar3 = param_9[2];" (assignment_expression "lVar3 = param_9[2]" identifier = (subscript_expression "param_9[2]" identifier [ number_literal ])) ;) (expression_statement "lVar1 = param_9[1];" (assignment_expression "lVar1 = param_9[1]" identifier = (subscript_expression "param_9[1]" identifier [ number_literal ])) ;) (expression_statement "local_e8 = &stack0x00000008;" (assignment_expression "local_e8 = &stack0x00000008" identifier = (pointer_expression "&stack0x00000008" & identifier)) ;) (expression_statement "local_e0 = local_d8;" (assignment_expression "local_e0 = local_d8" identifier = identifier) ;) (expression_statement "local_f0 = 0x10;" (assignment_expression "local_f0 = 0x10" identifier = number_literal) ;) (expression_statement "local_ec = 0x30;" (assignment_expression "local_ec = 0x30" identifier = number_literal) ;) (expression_statement "iVar2 = vsnprintf((char *)(param_9[1] + *param_9),lVar3 - lVar1,param_10,&local_f0);" (assignment_expression "iVar2 = vsnprintf((char *)(param_9[1] + *param_9),lVar3 - lVar1,param_10,&local_f0)" identifier = (call_expression "vsnprintf((char *)(param_9[1] + *param_9),lVar3 - lVar1,param_10,&local_f0)" identifier (argument_list "((char *)(param_9[1] + *param_9),lVar3 - lVar1,param_10,&local_f0)" ( (cast_expression "(char *)(param_9[1] + *param_9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_9[1] + *param_9)" ( (binary_expression "param_9[1] + *param_9" (subscript_expression "param_9[1]" identifier [ number_literal ]) + (pointer_expression "*param_9" * identifier)) ))) , (binary_expression "lVar3 - lVar1" identifier - identifier) , identifier , (pointer_expression "&local_f0" & identifier) )))) ;) (expression_statement "uVar4 = (ulong)iVar2;" (assignment_expression "uVar4 = (ulong)iVar2" identifier = (cast_expression "(ulong)iVar2" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar4 < (ulong)(lVar3 - lVar1)) break;" if (parenthesized_expression "(uVar4 < (ulong)(lVar3 - lVar1))" ( (binary_expression "uVar4 < (ulong)(lVar3 - lVar1)" identifier < (call_expression "(ulong)(lVar3 - lVar1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(lVar3 - lVar1)" ( (binary_expression "lVar3 - lVar1" identifier - identifier) )))) )) (break_statement "break;" break ;)) (expression_statement "param_9[2] = (uVar4 + param_9[2]) * 2;" (assignment_expression "param_9[2] = (uVar4 + param_9[2]) * 2" (subscript_expression "param_9[2]" identifier [ number_literal ]) = (binary_expression "(uVar4 + param_9[2]) * 2" (parenthesized_expression "(uVar4 + param_9[2])" ( (binary_expression "uVar4 + param_9[2]" identifier + (subscript_expression "param_9[2]" identifier [ number_literal ])) )) * number_literal)) ;) (expression_statement "lVar3 = xrealloc(*param_9);" (assignment_expression "lVar3 = xrealloc(*param_9)" identifier = (call_expression "xrealloc(*param_9)" identifier (argument_list "(*param_9)" ( (pointer_expression "*param_9" * identifier) )))) ;) (expression_statement "*param_9 = lVar3;" (assignment_expression "*param_9 = lVar3" (pointer_expression "*param_9" * identifier) = identifier) ;) })) (expression_statement "param_9[1] = param_9[1] + uVar4;" (assignment_expression "param_9[1] = param_9[1] + uVar4" (subscript_expression "param_9[1]" identifier [ number_literal ]) = (binary_expression "param_9[1] + uVar4" (subscript_expression "param_9[1]" identifier [ number_literal ]) + identifier)) ;) (return_statement "return;" return ;) })))
(translation_unit "int objdump_sprintf(SFILE *f,char *format,...)\n\n{\n  char in_AL;\n  int iVar1;\n  char *pcVar2;\n  undefined8 in_RCX;\n  undefined8 in_RDX;\n  ulong uVar3;\n  undefined8 in_R8;\n  undefined8 in_R9;\n  size_t __maxlen;\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 args;\n  undefined1 local_d8 [16];\n  undefined8 local_c8;\n  undefined8 local_c0;\n  undefined8 local_b8;\n  undefined8 local_b0;\n  undefined8 local_a8;\n  undefined8 local_98;\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  \n  if (in_AL != '\0') {\n    local_a8 = in_XMM0_Qa;\n    local_98 = in_XMM1_Qa;\n    local_88 = in_XMM2_Qa;\n    local_78 = in_XMM3_Qa;\n    local_68 = in_XMM4_Qa;\n    local_58 = in_XMM5_Qa;\n    local_48 = in_XMM6_Qa;\n    local_38 = in_XMM7_Qa;\n  }\n  local_c8 = in_RDX;\n  local_c0 = in_RCX;\n  local_b8 = in_R8;\n  local_b0 = in_R9;\n  while( true ) {\n    __maxlen = f->alloc - f->pos;\n    args[0].overflow_arg_area = &stack0x00000008;\n    args[0].reg_save_area = local_d8;\n    args[0].gp_offset = 0x10;\n    args[0].fp_offset = 0x30;\n    iVar1 = vsnprintf(f->buffer + f->pos,__maxlen,format,args);\n    uVar3 = (ulong)iVar1;\n    if (uVar3 < __maxlen) break;\n    f->alloc = (uVar3 + f->alloc) * 2;\n    pcVar2 = (char *)xrealloc(f->buffer);\n    f->buffer = pcVar2;\n  }\n  f->pos = f->pos + uVar3;\n  return iVar1;\n}\n\n" (function_definition "int objdump_sprintf(SFILE *f,char *format,...)\n\n{\n  char in_AL;\n  int iVar1;\n  char *pcVar2;\n  undefined8 in_RCX;\n  undefined8 in_RDX;\n  ulong uVar3;\n  undefined8 in_R8;\n  undefined8 in_R9;\n  size_t __maxlen;\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 args;\n  undefined1 local_d8 [16];\n  undefined8 local_c8;\n  undefined8 local_c0;\n  undefined8 local_b8;\n  undefined8 local_b0;\n  undefined8 local_a8;\n  undefined8 local_98;\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  \n  if (in_AL != '\0') {\n    local_a8 = in_XMM0_Qa;\n    local_98 = in_XMM1_Qa;\n    local_88 = in_XMM2_Qa;\n    local_78 = in_XMM3_Qa;\n    local_68 = in_XMM4_Qa;\n    local_58 = in_XMM5_Qa;\n    local_48 = in_XMM6_Qa;\n    local_38 = in_XMM7_Qa;\n  }\n  local_c8 = in_RDX;\n  local_c0 = in_RCX;\n  local_b8 = in_R8;\n  local_b0 = in_R9;\n  while( true ) {\n    __maxlen = f->alloc - f->pos;\n    args[0].overflow_arg_area = &stack0x00000008;\n    args[0].reg_save_area = local_d8;\n    args[0].gp_offset = 0x10;\n    args[0].fp_offset = 0x30;\n    iVar1 = vsnprintf(f->buffer + f->pos,__maxlen,format,args);\n    uVar3 = (ulong)iVar1;\n    if (uVar3 < __maxlen) break;\n    f->alloc = (uVar3 + f->alloc) * 2;\n    pcVar2 = (char *)xrealloc(f->buffer);\n    f->buffer = pcVar2;\n  }\n  f->pos = f->pos + uVar3;\n  return iVar1;\n}" primitive_type (function_declarator "objdump_sprintf(SFILE *f,char *format,...)" identifier (parameter_list "(SFILE *f,char *format,...)" ( (parameter_declaration "SFILE *f" type_identifier (pointer_declarator "*f" * identifier)) , (parameter_declaration "char *format" primitive_type (pointer_declarator "*format" * identifier)) , (variadic_parameter "..." ...) ))) (compound_statement "{\n  char in_AL;\n  int iVar1;\n  char *pcVar2;\n  undefined8 in_RCX;\n  undefined8 in_RDX;\n  ulong uVar3;\n  undefined8 in_R8;\n  undefined8 in_R9;\n  size_t __maxlen;\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 args;\n  undefined1 local_d8 [16];\n  undefined8 local_c8;\n  undefined8 local_c0;\n  undefined8 local_b8;\n  undefined8 local_b0;\n  undefined8 local_a8;\n  undefined8 local_98;\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  \n  if (in_AL != '\0') {\n    local_a8 = in_XMM0_Qa;\n    local_98 = in_XMM1_Qa;\n    local_88 = in_XMM2_Qa;\n    local_78 = in_XMM3_Qa;\n    local_68 = in_XMM4_Qa;\n    local_58 = in_XMM5_Qa;\n    local_48 = in_XMM6_Qa;\n    local_38 = in_XMM7_Qa;\n  }\n  local_c8 = in_RDX;\n  local_c0 = in_RCX;\n  local_b8 = in_R8;\n  local_b0 = in_R9;\n  while( true ) {\n    __maxlen = f->alloc - f->pos;\n    args[0].overflow_arg_area = &stack0x00000008;\n    args[0].reg_save_area = local_d8;\n    args[0].gp_offset = 0x10;\n    args[0].fp_offset = 0x30;\n    iVar1 = vsnprintf(f->buffer + f->pos,__maxlen,format,args);\n    uVar3 = (ulong)iVar1;\n    if (uVar3 < __maxlen) break;\n    f->alloc = (uVar3 + f->alloc) * 2;\n    pcVar2 = (char *)xrealloc(f->buffer);\n    f->buffer = pcVar2;\n  }\n  f->pos = f->pos + uVar3;\n  return iVar1;\n}" { (declaration "char in_AL;" primitive_type identifier ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "undefined8 in_RCX;" type_identifier identifier ;) (declaration "undefined8 in_RDX;" type_identifier identifier ;) (declaration "ulong uVar3;" type_identifier identifier ;) (declaration "undefined8 in_R8;" type_identifier identifier ;) (declaration "undefined8 in_R9;" type_identifier identifier ;) (declaration "size_t __maxlen;" primitive_type 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 args;" type_identifier identifier ;) (declaration "undefined1 local_d8 [16];" type_identifier (array_declarator "local_d8 [16]" identifier [ number_literal ]) ;) (declaration "undefined8 local_c8;" type_identifier identifier ;) (declaration "undefined8 local_c0;" type_identifier identifier ;) (declaration "undefined8 local_b8;" type_identifier identifier ;) (declaration "undefined8 local_b0;" type_identifier identifier ;) (declaration "undefined8 local_a8;" type_identifier identifier ;) (declaration "undefined8 local_98;" 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 ;) (if_statement "if (in_AL != '\0') {\n    local_a8 = in_XMM0_Qa;\n    local_98 = in_XMM1_Qa;\n    local_88 = in_XMM2_Qa;\n    local_78 = in_XMM3_Qa;\n    local_68 = in_XMM4_Qa;\n    local_58 = in_XMM5_Qa;\n    local_48 = in_XMM6_Qa;\n    local_38 = 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_a8 = in_XMM0_Qa;\n    local_98 = in_XMM1_Qa;\n    local_88 = in_XMM2_Qa;\n    local_78 = in_XMM3_Qa;\n    local_68 = in_XMM4_Qa;\n    local_58 = in_XMM5_Qa;\n    local_48 = in_XMM6_Qa;\n    local_38 = in_XMM7_Qa;\n  }" { (expression_statement "local_a8 = in_XMM0_Qa;" (assignment_expression "local_a8 = in_XMM0_Qa" identifier = identifier) ;) (expression_statement "local_98 = in_XMM1_Qa;" (assignment_expression "local_98 = in_XMM1_Qa" identifier = identifier) ;) (expression_statement "local_88 = in_XMM2_Qa;" (assignment_expression "local_88 = in_XMM2_Qa" identifier = identifier) ;) (expression_statement "local_78 = in_XMM3_Qa;" (assignment_expression "local_78 = in_XMM3_Qa" identifier = identifier) ;) (expression_statement "local_68 = in_XMM4_Qa;" (assignment_expression "local_68 = in_XMM4_Qa" identifier = identifier) ;) (expression_statement "local_58 = in_XMM5_Qa;" (assignment_expression "local_58 = in_XMM5_Qa" identifier = identifier) ;) (expression_statement "local_48 = in_XMM6_Qa;" (assignment_expression "local_48 = in_XMM6_Qa" identifier = identifier) ;) (expression_statement "local_38 = in_XMM7_Qa;" (assignment_expression "local_38 = in_XMM7_Qa" identifier = identifier) ;) })) (expression_statement "local_c8 = in_RDX;" (assignment_expression "local_c8 = in_RDX" identifier = identifier) ;) (expression_statement "local_c0 = in_RCX;" (assignment_expression "local_c0 = in_RCX" identifier = identifier) ;) (expression_statement "local_b8 = in_R8;" (assignment_expression "local_b8 = in_R8" identifier = identifier) ;) (expression_statement "local_b0 = in_R9;" (assignment_expression "local_b0 = in_R9" identifier = identifier) ;) (while_statement "while( true ) {\n    __maxlen = f->alloc - f->pos;\n    args[0].overflow_arg_area = &stack0x00000008;\n    args[0].reg_save_area = local_d8;\n    args[0].gp_offset = 0x10;\n    args[0].fp_offset = 0x30;\n    iVar1 = vsnprintf(f->buffer + f->pos,__maxlen,format,args);\n    uVar3 = (ulong)iVar1;\n    if (uVar3 < __maxlen) break;\n    f->alloc = (uVar3 + f->alloc) * 2;\n    pcVar2 = (char *)xrealloc(f->buffer);\n    f->buffer = pcVar2;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    __maxlen = f->alloc - f->pos;\n    args[0].overflow_arg_area = &stack0x00000008;\n    args[0].reg_save_area = local_d8;\n    args[0].gp_offset = 0x10;\n    args[0].fp_offset = 0x30;\n    iVar1 = vsnprintf(f->buffer + f->pos,__maxlen,format,args);\n    uVar3 = (ulong)iVar1;\n    if (uVar3 < __maxlen) break;\n    f->alloc = (uVar3 + f->alloc) * 2;\n    pcVar2 = (char *)xrealloc(f->buffer);\n    f->buffer = pcVar2;\n  }" { (expression_statement "__maxlen = f->alloc - f->pos;" (assignment_expression "__maxlen = f->alloc - f->pos" identifier = (binary_expression "f->alloc - f->pos" (field_expression "f->alloc" identifier -> field_identifier) - (field_expression "f->pos" identifier -> field_identifier))) ;) (expression_statement "args[0].overflow_arg_area = &stack0x00000008;" (assignment_expression "args[0].overflow_arg_area = &stack0x00000008" (field_expression "args[0].overflow_arg_area" (subscript_expression "args[0]" identifier [ number_literal ]) . field_identifier) = (pointer_expression "&stack0x00000008" & identifier)) ;) (expression_statement "args[0].reg_save_area = local_d8;" (assignment_expression "args[0].reg_save_area = local_d8" (field_expression "args[0].reg_save_area" (subscript_expression "args[0]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "args[0].gp_offset = 0x10;" (assignment_expression "args[0].gp_offset = 0x10" (field_expression "args[0].gp_offset" (subscript_expression "args[0]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "args[0].fp_offset = 0x30;" (assignment_expression "args[0].fp_offset = 0x30" (field_expression "args[0].fp_offset" (subscript_expression "args[0]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "iVar1 = vsnprintf(f->buffer + f->pos,__maxlen,format,args);" (assignment_expression "iVar1 = vsnprintf(f->buffer + f->pos,__maxlen,format,args)" identifier = (call_expression "vsnprintf(f->buffer + f->pos,__maxlen,format,args)" identifier (argument_list "(f->buffer + f->pos,__maxlen,format,args)" ( (binary_expression "f->buffer + f->pos" (field_expression "f->buffer" identifier -> field_identifier) + (field_expression "f->pos" identifier -> field_identifier)) , identifier , identifier , identifier )))) ;) (expression_statement "uVar3 = (ulong)iVar1;" (assignment_expression "uVar3 = (ulong)iVar1" identifier = (cast_expression "(ulong)iVar1" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar3 < __maxlen) break;" if (parenthesized_expression "(uVar3 < __maxlen)" ( (binary_expression "uVar3 < __maxlen" identifier < identifier) )) (break_statement "break;" break ;)) (expression_statement "f->alloc = (uVar3 + f->alloc) * 2;" (assignment_expression "f->alloc = (uVar3 + f->alloc) * 2" (field_expression "f->alloc" identifier -> field_identifier) = (binary_expression "(uVar3 + f->alloc) * 2" (parenthesized_expression "(uVar3 + f->alloc)" ( (binary_expression "uVar3 + f->alloc" identifier + (field_expression "f->alloc" identifier -> field_identifier)) )) * number_literal)) ;) (expression_statement "pcVar2 = (char *)xrealloc(f->buffer);" (assignment_expression "pcVar2 = (char *)xrealloc(f->buffer)" identifier = (cast_expression "(char *)xrealloc(f->buffer)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(f->buffer)" identifier (argument_list "(f->buffer)" ( (field_expression "f->buffer" identifier -> field_identifier) ))))) ;) (expression_statement "f->buffer = pcVar2;" (assignment_expression "f->buffer = pcVar2" (field_expression "f->buffer" identifier -> field_identifier) = identifier) ;) })) (expression_statement "f->pos = f->pos + uVar3;" (assignment_expression "f->pos = f->pos + uVar3" (field_expression "f->pos" identifier -> field_identifier) = (binary_expression "f->pos + uVar3" (field_expression "f->pos" identifier -> field_identifier) + identifier)) ;) (return_statement "return iVar1;" return identifier ;) })))
(translation_unit "void FUN_00109f60(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                 long *param_9,char *param_10,undefined8 param_11,undefined8 param_12,\n                 undefined8 param_13,undefined8 param_14)\n\n{\n  long lVar1;\n  char in_AL;\n  int iVar2;\n  long lVar3;\n  ulong uVar4;\n  undefined4 local_f0;\n  undefined4 local_ec;\n  undefined1 *local_e8;\n  undefined1 *local_e0;\n  undefined1 local_d8 [16];\n  undefined8 local_c8;\n  undefined8 local_c0;\n  undefined8 local_b8;\n  undefined8 local_b0;\n  undefined8 local_a8;\n  undefined8 local_98;\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  \n  if (in_AL != '\0') {\n    local_a8 = param_1;\n    local_98 = param_2;\n    local_88 = param_3;\n    local_78 = param_4;\n    local_68 = param_5;\n    local_58 = param_6;\n    local_48 = param_7;\n    local_38 = param_8;\n  }\n  local_c8 = param_11;\n  local_c0 = param_12;\n  local_b8 = param_13;\n  local_b0 = param_14;\n  while( true ) {\n    lVar3 = param_9[2];\n    lVar1 = param_9[1];\n    local_e8 = &stack0x00000008;\n    local_e0 = local_d8;\n    local_f0 = 0x10;\n    local_ec = 0x30;\n    iVar2 = vsnprintf((char *)(param_9[1] + *param_9),lVar3 - lVar1,param_10,&local_f0);\n    uVar4 = (ulong)iVar2;\n    if (uVar4 < (ulong)(lVar3 - lVar1)) break;\n    param_9[2] = (uVar4 + param_9[2]) * 2;\n    lVar3 = xrealloc(*param_9);\n    *param_9 = lVar3;\n  }\n  param_9[1] = param_9[1] + uVar4;\n  return;\n}\n\n" (function_definition "void FUN_00109f60(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                 long *param_9,char *param_10,undefined8 param_11,undefined8 param_12,\n                 undefined8 param_13,undefined8 param_14)\n\n{\n  long lVar1;\n  char in_AL;\n  int iVar2;\n  long lVar3;\n  ulong uVar4;\n  undefined4 local_f0;\n  undefined4 local_ec;\n  undefined1 *local_e8;\n  undefined1 *local_e0;\n  undefined1 local_d8 [16];\n  undefined8 local_c8;\n  undefined8 local_c0;\n  undefined8 local_b8;\n  undefined8 local_b0;\n  undefined8 local_a8;\n  undefined8 local_98;\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  \n  if (in_AL != '\0') {\n    local_a8 = param_1;\n    local_98 = param_2;\n    local_88 = param_3;\n    local_78 = param_4;\n    local_68 = param_5;\n    local_58 = param_6;\n    local_48 = param_7;\n    local_38 = param_8;\n  }\n  local_c8 = param_11;\n  local_c0 = param_12;\n  local_b8 = param_13;\n  local_b0 = param_14;\n  while( true ) {\n    lVar3 = param_9[2];\n    lVar1 = param_9[1];\n    local_e8 = &stack0x00000008;\n    local_e0 = local_d8;\n    local_f0 = 0x10;\n    local_ec = 0x30;\n    iVar2 = vsnprintf((char *)(param_9[1] + *param_9),lVar3 - lVar1,param_10,&local_f0);\n    uVar4 = (ulong)iVar2;\n    if (uVar4 < (ulong)(lVar3 - lVar1)) break;\n    param_9[2] = (uVar4 + param_9[2]) * 2;\n    lVar3 = xrealloc(*param_9);\n    *param_9 = lVar3;\n  }\n  param_9[1] = param_9[1] + uVar4;\n  return;\n}" primitive_type (function_declarator "FUN_00109f60(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                 long *param_9,char *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                 long *param_9,char *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 "long *param_9" (sized_type_specifier "long" long) (pointer_declarator "*param_9" * identifier)) , (parameter_declaration "char *param_10" primitive_type (pointer_declarator "*param_10" * 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  long lVar1;\n  char in_AL;\n  int iVar2;\n  long lVar3;\n  ulong uVar4;\n  undefined4 local_f0;\n  undefined4 local_ec;\n  undefined1 *local_e8;\n  undefined1 *local_e0;\n  undefined1 local_d8 [16];\n  undefined8 local_c8;\n  undefined8 local_c0;\n  undefined8 local_b8;\n  undefined8 local_b0;\n  undefined8 local_a8;\n  undefined8 local_98;\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  \n  if (in_AL != '\0') {\n    local_a8 = param_1;\n    local_98 = param_2;\n    local_88 = param_3;\n    local_78 = param_4;\n    local_68 = param_5;\n    local_58 = param_6;\n    local_48 = param_7;\n    local_38 = param_8;\n  }\n  local_c8 = param_11;\n  local_c0 = param_12;\n  local_b8 = param_13;\n  local_b0 = param_14;\n  while( true ) {\n    lVar3 = param_9[2];\n    lVar1 = param_9[1];\n    local_e8 = &stack0x00000008;\n    local_e0 = local_d8;\n    local_f0 = 0x10;\n    local_ec = 0x30;\n    iVar2 = vsnprintf((char *)(param_9[1] + *param_9),lVar3 - lVar1,param_10,&local_f0);\n    uVar4 = (ulong)iVar2;\n    if (uVar4 < (ulong)(lVar3 - lVar1)) break;\n    param_9[2] = (uVar4 + param_9[2]) * 2;\n    lVar3 = xrealloc(*param_9);\n    *param_9 = lVar3;\n  }\n  param_9[1] = param_9[1] + uVar4;\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "char in_AL;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "undefined4 local_f0;" type_identifier identifier ;) (declaration "undefined4 local_ec;" type_identifier identifier ;) (declaration "undefined1 *local_e8;" type_identifier (pointer_declarator "*local_e8" * identifier) ;) (declaration "undefined1 *local_e0;" type_identifier (pointer_declarator "*local_e0" * identifier) ;) (declaration "undefined1 local_d8 [16];" type_identifier (array_declarator "local_d8 [16]" identifier [ number_literal ]) ;) (declaration "undefined8 local_c8;" type_identifier identifier ;) (declaration "undefined8 local_c0;" type_identifier identifier ;) (declaration "undefined8 local_b8;" type_identifier identifier ;) (declaration "undefined8 local_b0;" type_identifier identifier ;) (declaration "undefined8 local_a8;" type_identifier identifier ;) (declaration "undefined8 local_98;" 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 ;) (if_statement "if (in_AL != '\0') {\n    local_a8 = param_1;\n    local_98 = param_2;\n    local_88 = param_3;\n    local_78 = param_4;\n    local_68 = param_5;\n    local_58 = param_6;\n    local_48 = param_7;\n    local_38 = param_8;\n  }" if (parenthesized_expression "(in_AL != '\0')" ( (binary_expression "in_AL != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_a8 = param_1;\n    local_98 = param_2;\n    local_88 = param_3;\n    local_78 = param_4;\n    local_68 = param_5;\n    local_58 = param_6;\n    local_48 = param_7;\n    local_38 = param_8;\n  }" { (expression_statement "local_a8 = param_1;" (assignment_expression "local_a8 = param_1" identifier = identifier) ;) (expression_statement "local_98 = param_2;" (assignment_expression "local_98 = param_2" identifier = identifier) ;) (expression_statement "local_88 = param_3;" (assignment_expression "local_88 = param_3" identifier = identifier) ;) (expression_statement "local_78 = param_4;" (assignment_expression "local_78 = param_4" identifier = identifier) ;) (expression_statement "local_68 = param_5;" (assignment_expression "local_68 = param_5" identifier = identifier) ;) (expression_statement "local_58 = param_6;" (assignment_expression "local_58 = param_6" identifier = identifier) ;) (expression_statement "local_48 = param_7;" (assignment_expression "local_48 = param_7" identifier = identifier) ;) (expression_statement "local_38 = param_8;" (assignment_expression "local_38 = param_8" identifier = identifier) ;) })) (expression_statement "local_c8 = param_11;" (assignment_expression "local_c8 = param_11" identifier = identifier) ;) (expression_statement "local_c0 = param_12;" (assignment_expression "local_c0 = param_12" identifier = identifier) ;) (expression_statement "local_b8 = param_13;" (assignment_expression "local_b8 = param_13" identifier = identifier) ;) (expression_statement "local_b0 = param_14;" (assignment_expression "local_b0 = param_14" identifier = identifier) ;) (while_statement "while( true ) {\n    lVar3 = param_9[2];\n    lVar1 = param_9[1];\n    local_e8 = &stack0x00000008;\n    local_e0 = local_d8;\n    local_f0 = 0x10;\n    local_ec = 0x30;\n    iVar2 = vsnprintf((char *)(param_9[1] + *param_9),lVar3 - lVar1,param_10,&local_f0);\n    uVar4 = (ulong)iVar2;\n    if (uVar4 < (ulong)(lVar3 - lVar1)) break;\n    param_9[2] = (uVar4 + param_9[2]) * 2;\n    lVar3 = xrealloc(*param_9);\n    *param_9 = lVar3;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    lVar3 = param_9[2];\n    lVar1 = param_9[1];\n    local_e8 = &stack0x00000008;\n    local_e0 = local_d8;\n    local_f0 = 0x10;\n    local_ec = 0x30;\n    iVar2 = vsnprintf((char *)(param_9[1] + *param_9),lVar3 - lVar1,param_10,&local_f0);\n    uVar4 = (ulong)iVar2;\n    if (uVar4 < (ulong)(lVar3 - lVar1)) break;\n    param_9[2] = (uVar4 + param_9[2]) * 2;\n    lVar3 = xrealloc(*param_9);\n    *param_9 = lVar3;\n  }" { (expression_statement "lVar3 = param_9[2];" (assignment_expression "lVar3 = param_9[2]" identifier = (subscript_expression "param_9[2]" identifier [ number_literal ])) ;) (expression_statement "lVar1 = param_9[1];" (assignment_expression "lVar1 = param_9[1]" identifier = (subscript_expression "param_9[1]" identifier [ number_literal ])) ;) (expression_statement "local_e8 = &stack0x00000008;" (assignment_expression "local_e8 = &stack0x00000008" identifier = (pointer_expression "&stack0x00000008" & identifier)) ;) (expression_statement "local_e0 = local_d8;" (assignment_expression "local_e0 = local_d8" identifier = identifier) ;) (expression_statement "local_f0 = 0x10;" (assignment_expression "local_f0 = 0x10" identifier = number_literal) ;) (expression_statement "local_ec = 0x30;" (assignment_expression "local_ec = 0x30" identifier = number_literal) ;) (expression_statement "iVar2 = vsnprintf((char *)(param_9[1] + *param_9),lVar3 - lVar1,param_10,&local_f0);" (assignment_expression "iVar2 = vsnprintf((char *)(param_9[1] + *param_9),lVar3 - lVar1,param_10,&local_f0)" identifier = (call_expression "vsnprintf((char *)(param_9[1] + *param_9),lVar3 - lVar1,param_10,&local_f0)" identifier (argument_list "((char *)(param_9[1] + *param_9),lVar3 - lVar1,param_10,&local_f0)" ( (cast_expression "(char *)(param_9[1] + *param_9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_9[1] + *param_9)" ( (binary_expression "param_9[1] + *param_9" (subscript_expression "param_9[1]" identifier [ number_literal ]) + (pointer_expression "*param_9" * identifier)) ))) , (binary_expression "lVar3 - lVar1" identifier - identifier) , identifier , (pointer_expression "&local_f0" & identifier) )))) ;) (expression_statement "uVar4 = (ulong)iVar2;" (assignment_expression "uVar4 = (ulong)iVar2" identifier = (cast_expression "(ulong)iVar2" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar4 < (ulong)(lVar3 - lVar1)) break;" if (parenthesized_expression "(uVar4 < (ulong)(lVar3 - lVar1))" ( (binary_expression "uVar4 < (ulong)(lVar3 - lVar1)" identifier < (call_expression "(ulong)(lVar3 - lVar1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(lVar3 - lVar1)" ( (binary_expression "lVar3 - lVar1" identifier - identifier) )))) )) (break_statement "break;" break ;)) (expression_statement "param_9[2] = (uVar4 + param_9[2]) * 2;" (assignment_expression "param_9[2] = (uVar4 + param_9[2]) * 2" (subscript_expression "param_9[2]" identifier [ number_literal ]) = (binary_expression "(uVar4 + param_9[2]) * 2" (parenthesized_expression "(uVar4 + param_9[2])" ( (binary_expression "uVar4 + param_9[2]" identifier + (subscript_expression "param_9[2]" identifier [ number_literal ])) )) * number_literal)) ;) (expression_statement "lVar3 = xrealloc(*param_9);" (assignment_expression "lVar3 = xrealloc(*param_9)" identifier = (call_expression "xrealloc(*param_9)" identifier (argument_list "(*param_9)" ( (pointer_expression "*param_9" * identifier) )))) ;) (expression_statement "*param_9 = lVar3;" (assignment_expression "*param_9 = lVar3" (pointer_expression "*param_9" * identifier) = identifier) ;) })) (expression_statement "param_9[1] = param_9[1] + uVar4;" (assignment_expression "param_9[1] = param_9[1] + uVar4" (subscript_expression "param_9[1]" identifier [ number_literal ]) = (binary_expression "param_9[1] + uVar4" (subscript_expression "param_9[1]" identifier [ number_literal ]) + 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 (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (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 ;) (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) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (pointer_expression * IDENT)) ))) , (binary_expression IDENT - IDENT) , IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - IDENT) )))) )) (break_statement break ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) )) * LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (return_statement return ;) })))
(function_definition "void FUN_00109f60(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                 long *param_9,char *param_10,undefined8 param_11,undefined8 param_12,\n                 undefined8 param_13,undefined8 param_14)\n\n{\n  long lVar1;\n  char in_AL;\n  int iVar2;\n  long lVar3;\n  ulong uVar4;\n  undefined4 local_f0;\n  undefined4 local_ec;\n  undefined1 *local_e8;\n  undefined1 *local_e0;\n  undefined1 local_d8 [16];\n  undefined8 local_c8;\n  undefined8 local_c0;\n  undefined8 local_b8;\n  undefined8 local_b0;\n  undefined8 local_a8;\n  undefined8 local_98;\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  \n  if (in_AL != '\0') {\n    local_a8 = param_1;\n    local_98 = param_2;\n    local_88 = param_3;\n    local_78 = param_4;\n    local_68 = param_5;\n    local_58 = param_6;\n    local_48 = param_7;\n    local_38 = param_8;\n  }\n  local_c8 = param_11;\n  local_c0 = param_12;\n  local_b8 = param_13;\n  local_b0 = param_14;\n  while( true ) {\n    lVar3 = param_9[2];\n    lVar1 = param_9[1];\n    local_e8 = &stack0x00000008;\n    local_e0 = local_d8;\n    local_f0 = 0x10;\n    local_ec = 0x30;\n    iVar2 = vsnprintf((char *)(param_9[1] + *param_9),lVar3 - lVar1,param_10,&local_f0);\n    uVar4 = (ulong)iVar2;\n    if (uVar4 < (ulong)(lVar3 - lVar1)) break;\n    param_9[2] = (uVar4 + param_9[2]) * 2;\n    lVar3 = xrealloc(*param_9);\n    *param_9 = lVar3;\n  }\n  param_9[1] = param_9[1] + uVar4;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00109f60(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                 long *param_9,char *param_10,undefined8 param_11,undefined8 param_12,\n                 undefined8 param_13,undefined8 param_14)" (identifier "FUN_00109f60") (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                 long *param_9,char *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 "long *param_9" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_9" (* "*") (identifier "param_9"))) (, ",") (parameter_declaration "char *param_10" (primitive_type "char") (pointer_declarator "*param_10" (* "*") (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  long lVar1;\n  char in_AL;\n  int iVar2;\n  long lVar3;\n  ulong uVar4;\n  undefined4 local_f0;\n  undefined4 local_ec;\n  undefined1 *local_e8;\n  undefined1 *local_e0;\n  undefined1 local_d8 [16];\n  undefined8 local_c8;\n  undefined8 local_c0;\n  undefined8 local_b8;\n  undefined8 local_b0;\n  undefined8 local_a8;\n  undefined8 local_98;\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  \n  if (in_AL != '\0') {\n    local_a8 = param_1;\n    local_98 = param_2;\n    local_88 = param_3;\n    local_78 = param_4;\n    local_68 = param_5;\n    local_58 = param_6;\n    local_48 = param_7;\n    local_38 = param_8;\n  }\n  local_c8 = param_11;\n  local_c0 = param_12;\n  local_b8 = param_13;\n  local_b0 = param_14;\n  while( true ) {\n    lVar3 = param_9[2];\n    lVar1 = param_9[1];\n    local_e8 = &stack0x00000008;\n    local_e0 = local_d8;\n    local_f0 = 0x10;\n    local_ec = 0x30;\n    iVar2 = vsnprintf((char *)(param_9[1] + *param_9),lVar3 - lVar1,param_10,&local_f0);\n    uVar4 = (ulong)iVar2;\n    if (uVar4 < (ulong)(lVar3 - lVar1)) break;\n    param_9[2] = (uVar4 + param_9[2]) * 2;\n    lVar3 = xrealloc(*param_9);\n    *param_9 = lVar3;\n  }\n  param_9[1] = param_9[1] + uVar4;\n  return;\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (declaration "char in_AL;" (primitive_type "char") (identifier "in_AL") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "ulong uVar4;" (type_identifier "ulong") (identifier "uVar4") (; ";")) (declaration "undefined4 local_f0;" (type_identifier "undefined4") (identifier "local_f0") (; ";")) (declaration "undefined4 local_ec;" (type_identifier "undefined4") (identifier "local_ec") (; ";")) (declaration "undefined1 *local_e8;" (type_identifier "undefined1") (pointer_declarator "*local_e8" (* "*") (identifier "local_e8")) (; ";")) (declaration "undefined1 *local_e0;" (type_identifier "undefined1") (pointer_declarator "*local_e0" (* "*") (identifier "local_e0")) (; ";")) (declaration "undefined1 local_d8 [16];" (type_identifier "undefined1") (array_declarator "local_d8 [16]" (identifier "local_d8") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined8 local_c8;" (type_identifier "undefined8") (identifier "local_c8") (; ";")) (declaration "undefined8 local_c0;" (type_identifier "undefined8") (identifier "local_c0") (; ";")) (declaration "undefined8 local_b8;" (type_identifier "undefined8") (identifier "local_b8") (; ";")) (declaration "undefined8 local_b0;" (type_identifier "undefined8") (identifier "local_b0") (; ";")) (declaration "undefined8 local_a8;" (type_identifier "undefined8") (identifier "local_a8") (; ";")) (declaration "undefined8 local_98;" (type_identifier "undefined8") (identifier "local_98") (; ";")) (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") (; ";")) (if_statement "if (in_AL != '\0') {\n    local_a8 = param_1;\n    local_98 = param_2;\n    local_88 = param_3;\n    local_78 = param_4;\n    local_68 = param_5;\n    local_58 = param_6;\n    local_48 = param_7;\n    local_38 = 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_a8 = param_1;\n    local_98 = param_2;\n    local_88 = param_3;\n    local_78 = param_4;\n    local_68 = param_5;\n    local_58 = param_6;\n    local_48 = param_7;\n    local_38 = param_8;\n  }" ({ "{") (expression_statement "local_a8 = param_1;" (assignment_expression "local_a8 = param_1" (identifier "local_a8") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_98 = param_2;" (assignment_expression "local_98 = param_2" (identifier "local_98") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_88 = param_3;" (assignment_expression "local_88 = param_3" (identifier "local_88") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_78 = param_4;" (assignment_expression "local_78 = param_4" (identifier "local_78") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_68 = param_5;" (assignment_expression "local_68 = param_5" (identifier "local_68") (= "=") (identifier "param_5")) (; ";")) (expression_statement "local_58 = param_6;" (assignment_expression "local_58 = param_6" (identifier "local_58") (= "=") (identifier "param_6")) (; ";")) (expression_statement "local_48 = param_7;" (assignment_expression "local_48 = param_7" (identifier "local_48") (= "=") (identifier "param_7")) (; ";")) (expression_statement "local_38 = param_8;" (assignment_expression "local_38 = param_8" (identifier "local_38") (= "=") (identifier "param_8")) (; ";")) (} "}"))) (expression_statement "local_c8 = param_11;" (assignment_expression "local_c8 = param_11" (identifier "local_c8") (= "=") (identifier "param_11")) (; ";")) (expression_statement "local_c0 = param_12;" (assignment_expression "local_c0 = param_12" (identifier "local_c0") (= "=") (identifier "param_12")) (; ";")) (expression_statement "local_b8 = param_13;" (assignment_expression "local_b8 = param_13" (identifier "local_b8") (= "=") (identifier "param_13")) (; ";")) (expression_statement "local_b0 = param_14;" (assignment_expression "local_b0 = param_14" (identifier "local_b0") (= "=") (identifier "param_14")) (; ";")) (while_statement "while( true ) {\n    lVar3 = param_9[2];\n    lVar1 = param_9[1];\n    local_e8 = &stack0x00000008;\n    local_e0 = local_d8;\n    local_f0 = 0x10;\n    local_ec = 0x30;\n    iVar2 = vsnprintf((char *)(param_9[1] + *param_9),lVar3 - lVar1,param_10,&local_f0);\n    uVar4 = (ulong)iVar2;\n    if (uVar4 < (ulong)(lVar3 - lVar1)) break;\n    param_9[2] = (uVar4 + param_9[2]) * 2;\n    lVar3 = xrealloc(*param_9);\n    *param_9 = lVar3;\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    lVar3 = param_9[2];\n    lVar1 = param_9[1];\n    local_e8 = &stack0x00000008;\n    local_e0 = local_d8;\n    local_f0 = 0x10;\n    local_ec = 0x30;\n    iVar2 = vsnprintf((char *)(param_9[1] + *param_9),lVar3 - lVar1,param_10,&local_f0);\n    uVar4 = (ulong)iVar2;\n    if (uVar4 < (ulong)(lVar3 - lVar1)) break;\n    param_9[2] = (uVar4 + param_9[2]) * 2;\n    lVar3 = xrealloc(*param_9);\n    *param_9 = lVar3;\n  }" ({ "{") (expression_statement "lVar3 = param_9[2];" (assignment_expression "lVar3 = param_9[2]" (identifier "lVar3") (= "=") (subscript_expression "param_9[2]" (identifier "param_9") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "lVar1 = param_9[1];" (assignment_expression "lVar1 = param_9[1]" (identifier "lVar1") (= "=") (subscript_expression "param_9[1]" (identifier "param_9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_e8 = &stack0x00000008;" (assignment_expression "local_e8 = &stack0x00000008" (identifier "local_e8") (= "=") (pointer_expression "&stack0x00000008" (& "&") (identifier "stack0x00000008"))) (; ";")) (expression_statement "local_e0 = local_d8;" (assignment_expression "local_e0 = local_d8" (identifier "local_e0") (= "=") (identifier "local_d8")) (; ";")) (expression_statement "local_f0 = 0x10;" (assignment_expression "local_f0 = 0x10" (identifier "local_f0") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "local_ec = 0x30;" (assignment_expression "local_ec = 0x30" (identifier "local_ec") (= "=") (number_literal "0x30")) (; ";")) (expression_statement "iVar2 = vsnprintf((char *)(param_9[1] + *param_9),lVar3 - lVar1,param_10,&local_f0);" (assignment_expression "iVar2 = vsnprintf((char *)(param_9[1] + *param_9),lVar3 - lVar1,param_10,&local_f0)" (identifier "iVar2") (= "=") (call_expression "vsnprintf((char *)(param_9[1] + *param_9),lVar3 - lVar1,param_10,&local_f0)" (identifier "vsnprintf") (argument_list "((char *)(param_9[1] + *param_9),lVar3 - lVar1,param_10,&local_f0)" (( "(") (cast_expression "(char *)(param_9[1] + *param_9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_9[1] + *param_9)" (( "(") (binary_expression "param_9[1] + *param_9" (subscript_expression "param_9[1]" (identifier "param_9") ([ "[") (number_literal "1") (] "]")) (+ "+") (pointer_expression "*param_9" (* "*") (identifier "param_9"))) () ")"))) (, ",") (binary_expression "lVar3 - lVar1" (identifier "lVar3") (- "-") (identifier "lVar1")) (, ",") (identifier "param_10") (, ",") (pointer_expression "&local_f0" (& "&") (identifier "local_f0")) () ")")))) (; ";")) (expression_statement "uVar4 = (ulong)iVar2;" (assignment_expression "uVar4 = (ulong)iVar2" (identifier "uVar4") (= "=") (cast_expression "(ulong)iVar2" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "iVar2"))) (; ";")) (if_statement "if (uVar4 < (ulong)(lVar3 - lVar1)) break;" (if "if") (parenthesized_expression "(uVar4 < (ulong)(lVar3 - lVar1))" (( "(") (binary_expression "uVar4 < (ulong)(lVar3 - lVar1)" (identifier "uVar4") (< "<") (call_expression "(ulong)(lVar3 - lVar1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(lVar3 - lVar1)" (( "(") (binary_expression "lVar3 - lVar1" (identifier "lVar3") (- "-") (identifier "lVar1")) () ")")))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "param_9[2] = (uVar4 + param_9[2]) * 2;" (assignment_expression "param_9[2] = (uVar4 + param_9[2]) * 2" (subscript_expression "param_9[2]" (identifier "param_9") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "(uVar4 + param_9[2]) * 2" (parenthesized_expression "(uVar4 + param_9[2])" (( "(") (binary_expression "uVar4 + param_9[2]" (identifier "uVar4") (+ "+") (subscript_expression "param_9[2]" (identifier "param_9") ([ "[") (number_literal "2") (] "]"))) () ")")) (* "*") (number_literal "2"))) (; ";")) (expression_statement "lVar3 = xrealloc(*param_9);" (assignment_expression "lVar3 = xrealloc(*param_9)" (identifier "lVar3") (= "=") (call_expression "xrealloc(*param_9)" (identifier "xrealloc") (argument_list "(*param_9)" (( "(") (pointer_expression "*param_9" (* "*") (identifier "param_9")) () ")")))) (; ";")) (expression_statement "*param_9 = lVar3;" (assignment_expression "*param_9 = lVar3" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (= "=") (identifier "lVar3")) (; ";")) (} "}"))) (expression_statement "param_9[1] = param_9[1] + uVar4;" (assignment_expression "param_9[1] = param_9[1] + uVar4" (subscript_expression "param_9[1]" (identifier "param_9") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "param_9[1] + uVar4" (subscript_expression "param_9[1]" (identifier "param_9") ([ "[") (number_literal "1") (] "]")) (+ "+") (identifier "uVar4"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

int function_1(type_1 *f,char *format,...)

{
  char var_1;
  int iVar1;
  char *pcVar2;
  type_2 in_RCX;
  type_2 in_RDX;
  type_3 var_3;
  type_2 in_R8;
  type_2 in_R9;
  size_t var_4;
  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_4 args;
  type_5 local_d8 [16];
  type_2 local_c8;
  type_2 local_c0;
  type_2 local_b8;
  type_2 local_b0;
  type_2 local_a8;
  type_2 local_98;
  type_2 local_88;
  type_2 local_78;
  type_2 local_68;
  type_2 local_58;
  type_2 local_48;
  type_2 local_38;
  
  if (var_1 != '\0') {
    local_a8 = in_XMM0_Qa;
    local_98 = in_XMM1_Qa;
    local_88 = in_XMM2_Qa;
    local_78 = in_XMM3_Qa;
    local_68 = in_XMM4_Qa;
    local_58 = in_XMM5_Qa;
    local_48 = in_XMM6_Qa;
    local_38 = in_XMM7_Qa;
  }
  local_c8 = in_RDX;
  local_c0 = in_RCX;
  local_b8 = in_R8;
  local_b0 = in_R9;
  while( true ) {
    var_4 = f->alloc - f->pos;
    args[0].overflow_arg_area = &stack0x00000008;
    args[0].reg_save_area = local_d8;
    args[0].gp_offset = 0x10;
    args[0].fp_offset = 0x30;
    iVar1 = var_2(f->buffer + f->pos,var_4,format,args);
    var_3 = (type_3)iVar1;
    if (var_3 < var_4) break;
    f->alloc = (var_3 + f->alloc) * 2;
    pcVar2 = (char *)var_5(f->buffer);
    f->buffer = pcVar2;
  }
  f->pos = f->pos + var_3;
  return iVar1;
}


(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: (sized_type_specifier) declarator: (pointer_declarator 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)))) body: (compound_statement (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (sized_type_specifier) 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: (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)) (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))))) (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))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (identifier))))) (binary_expression left: (identifier) right: (identifier)) (identifier) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))) consequence: (break_statement)) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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,
                 long *param_9,char *param_10,undefined8 param_11,undefined8 param_12,
                 undefined8 param_13,undefined8 param_14)

{
  long lVar1;
  char in_AL;
  int iVar2;
  long lVar3;
  ulong uVar4;
  undefined4 local_f0;
  undefined4 local_ec;
  undefined1 *local_e8;
  undefined1 *local_e0;
  undefined1 local_d8 [16];
  undefined8 local_c8;
  undefined8 local_c0;
  undefined8 local_b8;
  undefined8 local_b0;
  undefined8 local_a8;
  undefined8 local_98;
  undefined8 local_88;
  undefined8 local_78;
  undefined8 local_68;
  undefined8 local_58;
  undefined8 local_48;
  undefined8 local_38;
  
  if (in_AL != '\0') {
    local_a8 = param_1;
    local_98 = param_2;
    local_88 = param_3;
    local_78 = param_4;
    local_68 = param_5;
    local_58 = param_6;
    local_48 = param_7;
    local_38 = param_8;
  }
  local_c8 = param_11;
  local_c0 = param_12;
  local_b8 = param_13;
  local_b0 = param_14;
  while( true ) {
    lVar3 = param_9[2];
    lVar1 = param_9[1];
    local_e8 = &stack0x00000008;
    local_e0 = local_d8;
    local_f0 = 0x10;
    local_ec = 0x30;
    iVar2 = vsnprintf((char *)(param_9[1] + *param_9),lVar3 - lVar1,param_10,&local_f0);
    uVar4 = (ulong)iVar2;
    if (uVar4 < (ulong)(lVar3 - lVar1)) break;
    param_9[2] = (uVar4 + param_9[2]) * 2;
    lVar3 = xrealloc(*param_9);
    *param_9 = lVar3;
  }
  param_9[1] = param_9[1] + uVar4;
  return;
}

