
input_save * input_scrub_push(char *saved_position)

{
  size_t sVar1;
  char *pcVar2;
  input_save *piVar3;
  char *pcVar4;
  
  piVar3 = (input_save *)xmalloc(0x80);
  sVar1 = from_sb.len;
  pcVar4 = from_sb.ptr;
  piVar3->saved_position = saved_position;
  pcVar2 = buffer_start;
  (piVar3->from_sb).ptr = pcVar4;
  (piVar3->from_sb).len = sVar1;
  piVar3->buffer_start = pcVar2;
  piVar3->partial_where = partial_where;
  piVar3->partial_size = partial_size;
  piVar3->buffer_length = buffer_length;
  piVar3->physical_input_file = physical_input_file;
  piVar3->logical_input_file = logical_input_file;
  piVar3->physical_input_line = physical_input_line;
  piVar3->logical_input_line = logical_input_line;
  piVar3->sb_index = sb_index;
  (piVar3->from_sb).max = from_sb.max;
  piVar3->from_sb_is_expansion = from_sb_is_expansion;
  piVar3->save_source[0] = save_source[0];
  piVar3->next_saved_file = next_saved_file;
  pcVar4 = input_file_push();
  sb_index = 0xffffffffffffffff;
  piVar3->input_file_save = pcVar4;
  input_scrub_reinit();
  return piVar3;
}



undefined8 * FUN_0011b590(undefined8 param_1)

{
  undefined8 uVar1;
  undefined8 uVar2;
  undefined8 *puVar3;
  undefined8 uVar4;
  
  puVar3 = (undefined8 *)xmalloc(0x80);
  uVar1 = DAT_00184508;
  uVar4 = DAT_00184500;
  puVar3[0xf] = param_1;
  uVar2 = DAT_00184538;
  puVar3[9] = uVar4;
  puVar3[10] = uVar1;
  *puVar3 = uVar2;
  puVar3[1] = DAT_00184530;
  puVar3[2] = DAT_00184528;
  puVar3[4] = DAT_00184518;
  puVar3[5] = DAT_001844f8;
  puVar3[6] = DAT_001844f0;
  *(undefined4 *)(puVar3 + 7) = DAT_001844ec;
  *(undefined4 *)((long)puVar3 + 0x3c) = DAT_001844e8;
  puVar3[8] = DAT_0017b498;
  puVar3[0xb] = DAT_00184510;
  *(undefined4 *)(puVar3 + 0xc) = DAT_0017b490;
  *(undefined1 *)(puVar3 + 3) = DAT_00184520;
  puVar3[0xd] = DAT_001844e0;
  uVar4 = FUN_0011b0b0();
  DAT_0017b498 = 0xffffffffffffffff;
  puVar3[0xe] = uVar4;
  FUN_0011b540();
  return puVar3;
}


PUSH RBP
MOV RBP,RDI
MOV EDI,0x80
PUSH RBX
SUB RSP,0x8
CALL 0x0010b728
MOVDQA XMM0,xmmword ptr [0x00184500]
MOV RBX,RAX
MOV qword ptr [RAX + 0x78],RBP
MOV RAX,qword ptr [0x00184538]
MOVUPS xmmword ptr [RBX + 0x48],XMM0
MOV qword ptr [RBX],RAX
MOV RAX,qword ptr [0x00184530]
MOV qword ptr [RBX + 0x8],RAX
MOV RAX,qword ptr [0x00184528]
MOV qword ptr [RBX + 0x10],RAX
MOV RAX,qword ptr [0x00184518]
MOV qword ptr [RBX + 0x20],RAX
MOV RAX,qword ptr [0x001844f8]
MOV qword ptr [RBX + 0x28],RAX
MOV RAX,qword ptr [0x001844f0]
MOV qword ptr [RBX + 0x30],RAX
MOV EAX,dword ptr [0x001844ec]
MOV dword ptr [RBX + 0x38],EAX
MOV EAX,dword ptr [0x001844e8]
MOV dword ptr [RBX + 0x3c],EAX
MOV RAX,qword ptr [0x0017b498]
MOV qword ptr [RBX + 0x40],RAX
MOV RAX,qword ptr [0x00184510]
MOV qword ptr [RBX + 0x58],RAX
MOV EAX,dword ptr [0x0017b490]
MOV dword ptr [RBX + 0x60],EAX
MOVZX EAX,byte ptr [0x00184520]
MOV byte ptr [RBX + 0x18],AL
MOV RAX,qword ptr [0x001844e0]
MOV qword ptr [RBX + 0x68],RAX
CALL 0x0011b0b0
MOV qword ptr [0x0017b498],-0x1
MOV qword ptr [RBX + 0x70],RAX
CALL 0x0011b540
ADD RSP,0x8
MOV RAX,RBX
POP RBX
POP RBP
RET
(translation_unit "undefined8 * FUN_0011b590(undefined8 param_1)\n\n{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  undefined8 *puVar3;\n  undefined8 uVar4;\n  \n  puVar3 = (undefined8 *)xmalloc(0x80);\n  uVar1 = DAT_00184508;\n  uVar4 = DAT_00184500;\n  puVar3[0xf] = param_1;\n  uVar2 = DAT_00184538;\n  puVar3[9] = uVar4;\n  puVar3[10] = uVar1;\n  *puVar3 = uVar2;\n  puVar3[1] = DAT_00184530;\n  puVar3[2] = DAT_00184528;\n  puVar3[4] = DAT_00184518;\n  puVar3[5] = DAT_001844f8;\n  puVar3[6] = DAT_001844f0;\n  *(undefined4 *)(puVar3 + 7) = DAT_001844ec;\n  *(undefined4 *)((long)puVar3 + 0x3c) = DAT_001844e8;\n  puVar3[8] = DAT_0017b498;\n  puVar3[0xb] = DAT_00184510;\n  *(undefined4 *)(puVar3 + 0xc) = DAT_0017b490;\n  *(undefined1 *)(puVar3 + 3) = DAT_00184520;\n  puVar3[0xd] = DAT_001844e0;\n  uVar4 = FUN_0011b0b0();\n  DAT_0017b498 = 0xffffffffffffffff;\n  puVar3[0xe] = uVar4;\n  FUN_0011b540();\n  return puVar3;\n}\n\n" (function_definition "undefined8 * FUN_0011b590(undefined8 param_1)\n\n{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  undefined8 *puVar3;\n  undefined8 uVar4;\n  \n  puVar3 = (undefined8 *)xmalloc(0x80);\n  uVar1 = DAT_00184508;\n  uVar4 = DAT_00184500;\n  puVar3[0xf] = param_1;\n  uVar2 = DAT_00184538;\n  puVar3[9] = uVar4;\n  puVar3[10] = uVar1;\n  *puVar3 = uVar2;\n  puVar3[1] = DAT_00184530;\n  puVar3[2] = DAT_00184528;\n  puVar3[4] = DAT_00184518;\n  puVar3[5] = DAT_001844f8;\n  puVar3[6] = DAT_001844f0;\n  *(undefined4 *)(puVar3 + 7) = DAT_001844ec;\n  *(undefined4 *)((long)puVar3 + 0x3c) = DAT_001844e8;\n  puVar3[8] = DAT_0017b498;\n  puVar3[0xb] = DAT_00184510;\n  *(undefined4 *)(puVar3 + 0xc) = DAT_0017b490;\n  *(undefined1 *)(puVar3 + 3) = DAT_00184520;\n  puVar3[0xd] = DAT_001844e0;\n  uVar4 = FUN_0011b0b0();\n  DAT_0017b498 = 0xffffffffffffffff;\n  puVar3[0xe] = uVar4;\n  FUN_0011b540();\n  return puVar3;\n}" type_identifier (pointer_declarator "* FUN_0011b590(undefined8 param_1)" * (function_declarator "FUN_0011b590(undefined8 param_1)" identifier (parameter_list "(undefined8 param_1)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) )))) (compound_statement "{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  undefined8 *puVar3;\n  undefined8 uVar4;\n  \n  puVar3 = (undefined8 *)xmalloc(0x80);\n  uVar1 = DAT_00184508;\n  uVar4 = DAT_00184500;\n  puVar3[0xf] = param_1;\n  uVar2 = DAT_00184538;\n  puVar3[9] = uVar4;\n  puVar3[10] = uVar1;\n  *puVar3 = uVar2;\n  puVar3[1] = DAT_00184530;\n  puVar3[2] = DAT_00184528;\n  puVar3[4] = DAT_00184518;\n  puVar3[5] = DAT_001844f8;\n  puVar3[6] = DAT_001844f0;\n  *(undefined4 *)(puVar3 + 7) = DAT_001844ec;\n  *(undefined4 *)((long)puVar3 + 0x3c) = DAT_001844e8;\n  puVar3[8] = DAT_0017b498;\n  puVar3[0xb] = DAT_00184510;\n  *(undefined4 *)(puVar3 + 0xc) = DAT_0017b490;\n  *(undefined1 *)(puVar3 + 3) = DAT_00184520;\n  puVar3[0xd] = DAT_001844e0;\n  uVar4 = FUN_0011b0b0();\n  DAT_0017b498 = 0xffffffffffffffff;\n  puVar3[0xe] = uVar4;\n  FUN_0011b540();\n  return puVar3;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined8 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (expression_statement "puVar3 = (undefined8 *)xmalloc(0x80);" (assignment_expression "puVar3 = (undefined8 *)xmalloc(0x80)" identifier = (cast_expression "(undefined8 *)xmalloc(0x80)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x80)" identifier (argument_list "(0x80)" ( number_literal ))))) ;) (expression_statement "uVar1 = DAT_00184508;" (assignment_expression "uVar1 = DAT_00184508" identifier = identifier) ;) (expression_statement "uVar4 = DAT_00184500;" (assignment_expression "uVar4 = DAT_00184500" identifier = identifier) ;) (expression_statement "puVar3[0xf] = param_1;" (assignment_expression "puVar3[0xf] = param_1" (subscript_expression "puVar3[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = DAT_00184538;" (assignment_expression "uVar2 = DAT_00184538" identifier = identifier) ;) (expression_statement "puVar3[9] = uVar4;" (assignment_expression "puVar3[9] = uVar4" (subscript_expression "puVar3[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[10] = uVar1;" (assignment_expression "puVar3[10] = uVar1" (subscript_expression "puVar3[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar3 = uVar2;" (assignment_expression "*puVar3 = uVar2" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "puVar3[1] = DAT_00184530;" (assignment_expression "puVar3[1] = DAT_00184530" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[2] = DAT_00184528;" (assignment_expression "puVar3[2] = DAT_00184528" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[4] = DAT_00184518;" (assignment_expression "puVar3[4] = DAT_00184518" (subscript_expression "puVar3[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[5] = DAT_001844f8;" (assignment_expression "puVar3[5] = DAT_001844f8" (subscript_expression "puVar3[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[6] = DAT_001844f0;" (assignment_expression "puVar3[6] = DAT_001844f0" (subscript_expression "puVar3[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(puVar3 + 7) = DAT_001844ec;" (assignment_expression "*(undefined4 *)(puVar3 + 7) = DAT_001844ec" (pointer_expression "*(undefined4 *)(puVar3 + 7)" * (cast_expression "(undefined4 *)(puVar3 + 7)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 7)" ( (binary_expression "puVar3 + 7" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((long)puVar3 + 0x3c) = DAT_001844e8;" (assignment_expression "*(undefined4 *)((long)puVar3 + 0x3c) = DAT_001844e8" (pointer_expression "*(undefined4 *)((long)puVar3 + 0x3c)" * (cast_expression "(undefined4 *)((long)puVar3 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar3 + 0x3c)" ( (binary_expression "(long)puVar3 + 0x3c" (cast_expression "(long)puVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar3[8] = DAT_0017b498;" (assignment_expression "puVar3[8] = DAT_0017b498" (subscript_expression "puVar3[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xb] = DAT_00184510;" (assignment_expression "puVar3[0xb] = DAT_00184510" (subscript_expression "puVar3[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(puVar3 + 0xc) = DAT_0017b490;" (assignment_expression "*(undefined4 *)(puVar3 + 0xc) = DAT_0017b490" (pointer_expression "*(undefined4 *)(puVar3 + 0xc)" * (cast_expression "(undefined4 *)(puVar3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0xc)" ( (binary_expression "puVar3 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(puVar3 + 3) = DAT_00184520;" (assignment_expression "*(undefined1 *)(puVar3 + 3) = DAT_00184520" (pointer_expression "*(undefined1 *)(puVar3 + 3)" * (cast_expression "(undefined1 *)(puVar3 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 3)" ( (binary_expression "puVar3 + 3" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar3[0xd] = DAT_001844e0;" (assignment_expression "puVar3[0xd] = DAT_001844e0" (subscript_expression "puVar3[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = FUN_0011b0b0();" (assignment_expression "uVar4 = FUN_0011b0b0()" identifier = (call_expression "FUN_0011b0b0()" identifier (argument_list "()" ( )))) ;) (expression_statement "DAT_0017b498 = 0xffffffffffffffff;" (assignment_expression "DAT_0017b498 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "puVar3[0xe] = uVar4;" (assignment_expression "puVar3[0xe] = uVar4" (subscript_expression "puVar3[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_0011b540();" (call_expression "FUN_0011b540()" identifier (argument_list "()" ( ))) ;) (return_statement "return puVar3;" return identifier ;) })))
(translation_unit "input_save * input_scrub_push(char *saved_position)\n\n{\n  size_t sVar1;\n  char *pcVar2;\n  input_save *piVar3;\n  char *pcVar4;\n  \n  piVar3 = (input_save *)xmalloc(0x80);\n  sVar1 = from_sb.len;\n  pcVar4 = from_sb.ptr;\n  piVar3->saved_position = saved_position;\n  pcVar2 = buffer_start;\n  (piVar3->from_sb).ptr = pcVar4;\n  (piVar3->from_sb).len = sVar1;\n  piVar3->buffer_start = pcVar2;\n  piVar3->partial_where = partial_where;\n  piVar3->partial_size = partial_size;\n  piVar3->buffer_length = buffer_length;\n  piVar3->physical_input_file = physical_input_file;\n  piVar3->logical_input_file = logical_input_file;\n  piVar3->physical_input_line = physical_input_line;\n  piVar3->logical_input_line = logical_input_line;\n  piVar3->sb_index = sb_index;\n  (piVar3->from_sb).max = from_sb.max;\n  piVar3->from_sb_is_expansion = from_sb_is_expansion;\n  piVar3->save_source[0] = save_source[0];\n  piVar3->next_saved_file = next_saved_file;\n  pcVar4 = input_file_push();\n  sb_index = 0xffffffffffffffff;\n  piVar3->input_file_save = pcVar4;\n  input_scrub_reinit();\n  return piVar3;\n}\n\n" (function_definition "input_save * input_scrub_push(char *saved_position)\n\n{\n  size_t sVar1;\n  char *pcVar2;\n  input_save *piVar3;\n  char *pcVar4;\n  \n  piVar3 = (input_save *)xmalloc(0x80);\n  sVar1 = from_sb.len;\n  pcVar4 = from_sb.ptr;\n  piVar3->saved_position = saved_position;\n  pcVar2 = buffer_start;\n  (piVar3->from_sb).ptr = pcVar4;\n  (piVar3->from_sb).len = sVar1;\n  piVar3->buffer_start = pcVar2;\n  piVar3->partial_where = partial_where;\n  piVar3->partial_size = partial_size;\n  piVar3->buffer_length = buffer_length;\n  piVar3->physical_input_file = physical_input_file;\n  piVar3->logical_input_file = logical_input_file;\n  piVar3->physical_input_line = physical_input_line;\n  piVar3->logical_input_line = logical_input_line;\n  piVar3->sb_index = sb_index;\n  (piVar3->from_sb).max = from_sb.max;\n  piVar3->from_sb_is_expansion = from_sb_is_expansion;\n  piVar3->save_source[0] = save_source[0];\n  piVar3->next_saved_file = next_saved_file;\n  pcVar4 = input_file_push();\n  sb_index = 0xffffffffffffffff;\n  piVar3->input_file_save = pcVar4;\n  input_scrub_reinit();\n  return piVar3;\n}" type_identifier (pointer_declarator "* input_scrub_push(char *saved_position)" * (function_declarator "input_scrub_push(char *saved_position)" identifier (parameter_list "(char *saved_position)" ( (parameter_declaration "char *saved_position" primitive_type (pointer_declarator "*saved_position" * identifier)) )))) (compound_statement "{\n  size_t sVar1;\n  char *pcVar2;\n  input_save *piVar3;\n  char *pcVar4;\n  \n  piVar3 = (input_save *)xmalloc(0x80);\n  sVar1 = from_sb.len;\n  pcVar4 = from_sb.ptr;\n  piVar3->saved_position = saved_position;\n  pcVar2 = buffer_start;\n  (piVar3->from_sb).ptr = pcVar4;\n  (piVar3->from_sb).len = sVar1;\n  piVar3->buffer_start = pcVar2;\n  piVar3->partial_where = partial_where;\n  piVar3->partial_size = partial_size;\n  piVar3->buffer_length = buffer_length;\n  piVar3->physical_input_file = physical_input_file;\n  piVar3->logical_input_file = logical_input_file;\n  piVar3->physical_input_line = physical_input_line;\n  piVar3->logical_input_line = logical_input_line;\n  piVar3->sb_index = sb_index;\n  (piVar3->from_sb).max = from_sb.max;\n  piVar3->from_sb_is_expansion = from_sb_is_expansion;\n  piVar3->save_source[0] = save_source[0];\n  piVar3->next_saved_file = next_saved_file;\n  pcVar4 = input_file_push();\n  sb_index = 0xffffffffffffffff;\n  piVar3->input_file_save = pcVar4;\n  input_scrub_reinit();\n  return piVar3;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "input_save *piVar3;" type_identifier (pointer_declarator "*piVar3" * identifier) ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (expression_statement "piVar3 = (input_save *)xmalloc(0x80);" (assignment_expression "piVar3 = (input_save *)xmalloc(0x80)" identifier = (cast_expression "(input_save *)xmalloc(0x80)" ( (type_descriptor "input_save *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x80)" identifier (argument_list "(0x80)" ( number_literal ))))) ;) (expression_statement "sVar1 = from_sb.len;" (assignment_expression "sVar1 = from_sb.len" identifier = (field_expression "from_sb.len" identifier . field_identifier)) ;) (expression_statement "pcVar4 = from_sb.ptr;" (assignment_expression "pcVar4 = from_sb.ptr" identifier = (field_expression "from_sb.ptr" identifier . field_identifier)) ;) (expression_statement "piVar3->saved_position = saved_position;" (assignment_expression "piVar3->saved_position = saved_position" (field_expression "piVar3->saved_position" identifier -> field_identifier) = identifier) ;) (expression_statement "pcVar2 = buffer_start;" (assignment_expression "pcVar2 = buffer_start" identifier = identifier) ;) (expression_statement "(piVar3->from_sb).ptr = pcVar4;" (assignment_expression "(piVar3->from_sb).ptr = pcVar4" (field_expression "(piVar3->from_sb).ptr" (parenthesized_expression "(piVar3->from_sb)" ( (field_expression "piVar3->from_sb" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(piVar3->from_sb).len = sVar1;" (assignment_expression "(piVar3->from_sb).len = sVar1" (field_expression "(piVar3->from_sb).len" (parenthesized_expression "(piVar3->from_sb)" ( (field_expression "piVar3->from_sb" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "piVar3->buffer_start = pcVar2;" (assignment_expression "piVar3->buffer_start = pcVar2" (field_expression "piVar3->buffer_start" identifier -> field_identifier) = identifier) ;) (expression_statement "piVar3->partial_where = partial_where;" (assignment_expression "piVar3->partial_where = partial_where" (field_expression "piVar3->partial_where" identifier -> field_identifier) = identifier) ;) (expression_statement "piVar3->partial_size = partial_size;" (assignment_expression "piVar3->partial_size = partial_size" (field_expression "piVar3->partial_size" identifier -> field_identifier) = identifier) ;) (expression_statement "piVar3->buffer_length = buffer_length;" (assignment_expression "piVar3->buffer_length = buffer_length" (field_expression "piVar3->buffer_length" identifier -> field_identifier) = identifier) ;) (expression_statement "piVar3->physical_input_file = physical_input_file;" (assignment_expression "piVar3->physical_input_file = physical_input_file" (field_expression "piVar3->physical_input_file" identifier -> field_identifier) = identifier) ;) (expression_statement "piVar3->logical_input_file = logical_input_file;" (assignment_expression "piVar3->logical_input_file = logical_input_file" (field_expression "piVar3->logical_input_file" identifier -> field_identifier) = identifier) ;) (expression_statement "piVar3->physical_input_line = physical_input_line;" (assignment_expression "piVar3->physical_input_line = physical_input_line" (field_expression "piVar3->physical_input_line" identifier -> field_identifier) = identifier) ;) (expression_statement "piVar3->logical_input_line = logical_input_line;" (assignment_expression "piVar3->logical_input_line = logical_input_line" (field_expression "piVar3->logical_input_line" identifier -> field_identifier) = identifier) ;) (expression_statement "piVar3->sb_index = sb_index;" (assignment_expression "piVar3->sb_index = sb_index" (field_expression "piVar3->sb_index" identifier -> field_identifier) = identifier) ;) (expression_statement "(piVar3->from_sb).max = from_sb.max;" (assignment_expression "(piVar3->from_sb).max = from_sb.max" (field_expression "(piVar3->from_sb).max" (parenthesized_expression "(piVar3->from_sb)" ( (field_expression "piVar3->from_sb" identifier -> field_identifier) )) . field_identifier) = (field_expression "from_sb.max" identifier . field_identifier)) ;) (expression_statement "piVar3->from_sb_is_expansion = from_sb_is_expansion;" (assignment_expression "piVar3->from_sb_is_expansion = from_sb_is_expansion" (field_expression "piVar3->from_sb_is_expansion" identifier -> field_identifier) = identifier) ;) (expression_statement "piVar3->save_source[0] = save_source[0];" (assignment_expression "piVar3->save_source[0] = save_source[0]" (subscript_expression "piVar3->save_source[0]" (field_expression "piVar3->save_source" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "save_source[0]" identifier [ number_literal ])) ;) (expression_statement "piVar3->next_saved_file = next_saved_file;" (assignment_expression "piVar3->next_saved_file = next_saved_file" (field_expression "piVar3->next_saved_file" identifier -> field_identifier) = identifier) ;) (expression_statement "pcVar4 = input_file_push();" (assignment_expression "pcVar4 = input_file_push()" identifier = (call_expression "input_file_push()" identifier (argument_list "()" ( )))) ;) (expression_statement "sb_index = 0xffffffffffffffff;" (assignment_expression "sb_index = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "piVar3->input_file_save = pcVar4;" (assignment_expression "piVar3->input_file_save = pcVar4" (field_expression "piVar3->input_file_save" identifier -> field_identifier) = identifier) ;) (expression_statement "input_scrub_reinit();" (call_expression "input_scrub_reinit()" identifier (argument_list "()" ( ))) ;) (return_statement "return piVar3;" return identifier ;) })))
(translation_unit "undefined8 * FUN_0011b590(undefined8 param_1)\n\n{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  undefined8 *puVar3;\n  undefined8 uVar4;\n  \n  puVar3 = (undefined8 *)xmalloc(0x80);\n  uVar1 = DAT_00184508;\n  uVar4 = DAT_00184500;\n  puVar3[0xf] = param_1;\n  uVar2 = DAT_00184538;\n  puVar3[9] = uVar4;\n  puVar3[10] = uVar1;\n  *puVar3 = uVar2;\n  puVar3[1] = DAT_00184530;\n  puVar3[2] = DAT_00184528;\n  puVar3[4] = DAT_00184518;\n  puVar3[5] = DAT_001844f8;\n  puVar3[6] = DAT_001844f0;\n  *(undefined4 *)(puVar3 + 7) = DAT_001844ec;\n  *(undefined4 *)((long)puVar3 + 0x3c) = DAT_001844e8;\n  puVar3[8] = DAT_0017b498;\n  puVar3[0xb] = DAT_00184510;\n  *(undefined4 *)(puVar3 + 0xc) = DAT_0017b490;\n  *(undefined1 *)(puVar3 + 3) = DAT_00184520;\n  puVar3[0xd] = DAT_001844e0;\n  uVar4 = FUN_0011b0b0();\n  DAT_0017b498 = 0xffffffffffffffff;\n  puVar3[0xe] = uVar4;\n  FUN_0011b540();\n  return puVar3;\n}\n\n" (function_definition "undefined8 * FUN_0011b590(undefined8 param_1)\n\n{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  undefined8 *puVar3;\n  undefined8 uVar4;\n  \n  puVar3 = (undefined8 *)xmalloc(0x80);\n  uVar1 = DAT_00184508;\n  uVar4 = DAT_00184500;\n  puVar3[0xf] = param_1;\n  uVar2 = DAT_00184538;\n  puVar3[9] = uVar4;\n  puVar3[10] = uVar1;\n  *puVar3 = uVar2;\n  puVar3[1] = DAT_00184530;\n  puVar3[2] = DAT_00184528;\n  puVar3[4] = DAT_00184518;\n  puVar3[5] = DAT_001844f8;\n  puVar3[6] = DAT_001844f0;\n  *(undefined4 *)(puVar3 + 7) = DAT_001844ec;\n  *(undefined4 *)((long)puVar3 + 0x3c) = DAT_001844e8;\n  puVar3[8] = DAT_0017b498;\n  puVar3[0xb] = DAT_00184510;\n  *(undefined4 *)(puVar3 + 0xc) = DAT_0017b490;\n  *(undefined1 *)(puVar3 + 3) = DAT_00184520;\n  puVar3[0xd] = DAT_001844e0;\n  uVar4 = FUN_0011b0b0();\n  DAT_0017b498 = 0xffffffffffffffff;\n  puVar3[0xe] = uVar4;\n  FUN_0011b540();\n  return puVar3;\n}" type_identifier (pointer_declarator "* FUN_0011b590(undefined8 param_1)" * (function_declarator "FUN_0011b590(undefined8 param_1)" identifier (parameter_list "(undefined8 param_1)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) )))) (compound_statement "{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  undefined8 *puVar3;\n  undefined8 uVar4;\n  \n  puVar3 = (undefined8 *)xmalloc(0x80);\n  uVar1 = DAT_00184508;\n  uVar4 = DAT_00184500;\n  puVar3[0xf] = param_1;\n  uVar2 = DAT_00184538;\n  puVar3[9] = uVar4;\n  puVar3[10] = uVar1;\n  *puVar3 = uVar2;\n  puVar3[1] = DAT_00184530;\n  puVar3[2] = DAT_00184528;\n  puVar3[4] = DAT_00184518;\n  puVar3[5] = DAT_001844f8;\n  puVar3[6] = DAT_001844f0;\n  *(undefined4 *)(puVar3 + 7) = DAT_001844ec;\n  *(undefined4 *)((long)puVar3 + 0x3c) = DAT_001844e8;\n  puVar3[8] = DAT_0017b498;\n  puVar3[0xb] = DAT_00184510;\n  *(undefined4 *)(puVar3 + 0xc) = DAT_0017b490;\n  *(undefined1 *)(puVar3 + 3) = DAT_00184520;\n  puVar3[0xd] = DAT_001844e0;\n  uVar4 = FUN_0011b0b0();\n  DAT_0017b498 = 0xffffffffffffffff;\n  puVar3[0xe] = uVar4;\n  FUN_0011b540();\n  return puVar3;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined8 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (expression_statement "puVar3 = (undefined8 *)xmalloc(0x80);" (assignment_expression "puVar3 = (undefined8 *)xmalloc(0x80)" identifier = (cast_expression "(undefined8 *)xmalloc(0x80)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x80)" identifier (argument_list "(0x80)" ( number_literal ))))) ;) (expression_statement "uVar1 = DAT_00184508;" (assignment_expression "uVar1 = DAT_00184508" identifier = identifier) ;) (expression_statement "uVar4 = DAT_00184500;" (assignment_expression "uVar4 = DAT_00184500" identifier = identifier) ;) (expression_statement "puVar3[0xf] = param_1;" (assignment_expression "puVar3[0xf] = param_1" (subscript_expression "puVar3[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = DAT_00184538;" (assignment_expression "uVar2 = DAT_00184538" identifier = identifier) ;) (expression_statement "puVar3[9] = uVar4;" (assignment_expression "puVar3[9] = uVar4" (subscript_expression "puVar3[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[10] = uVar1;" (assignment_expression "puVar3[10] = uVar1" (subscript_expression "puVar3[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar3 = uVar2;" (assignment_expression "*puVar3 = uVar2" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "puVar3[1] = DAT_00184530;" (assignment_expression "puVar3[1] = DAT_00184530" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[2] = DAT_00184528;" (assignment_expression "puVar3[2] = DAT_00184528" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[4] = DAT_00184518;" (assignment_expression "puVar3[4] = DAT_00184518" (subscript_expression "puVar3[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[5] = DAT_001844f8;" (assignment_expression "puVar3[5] = DAT_001844f8" (subscript_expression "puVar3[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[6] = DAT_001844f0;" (assignment_expression "puVar3[6] = DAT_001844f0" (subscript_expression "puVar3[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(puVar3 + 7) = DAT_001844ec;" (assignment_expression "*(undefined4 *)(puVar3 + 7) = DAT_001844ec" (pointer_expression "*(undefined4 *)(puVar3 + 7)" * (cast_expression "(undefined4 *)(puVar3 + 7)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 7)" ( (binary_expression "puVar3 + 7" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((long)puVar3 + 0x3c) = DAT_001844e8;" (assignment_expression "*(undefined4 *)((long)puVar3 + 0x3c) = DAT_001844e8" (pointer_expression "*(undefined4 *)((long)puVar3 + 0x3c)" * (cast_expression "(undefined4 *)((long)puVar3 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar3 + 0x3c)" ( (binary_expression "(long)puVar3 + 0x3c" (cast_expression "(long)puVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar3[8] = DAT_0017b498;" (assignment_expression "puVar3[8] = DAT_0017b498" (subscript_expression "puVar3[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xb] = DAT_00184510;" (assignment_expression "puVar3[0xb] = DAT_00184510" (subscript_expression "puVar3[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(puVar3 + 0xc) = DAT_0017b490;" (assignment_expression "*(undefined4 *)(puVar3 + 0xc) = DAT_0017b490" (pointer_expression "*(undefined4 *)(puVar3 + 0xc)" * (cast_expression "(undefined4 *)(puVar3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0xc)" ( (binary_expression "puVar3 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(puVar3 + 3) = DAT_00184520;" (assignment_expression "*(undefined1 *)(puVar3 + 3) = DAT_00184520" (pointer_expression "*(undefined1 *)(puVar3 + 3)" * (cast_expression "(undefined1 *)(puVar3 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 3)" ( (binary_expression "puVar3 + 3" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar3[0xd] = DAT_001844e0;" (assignment_expression "puVar3[0xd] = DAT_001844e0" (subscript_expression "puVar3[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = FUN_0011b0b0();" (assignment_expression "uVar4 = FUN_0011b0b0()" identifier = (call_expression "FUN_0011b0b0()" identifier (argument_list "()" ( )))) ;) (expression_statement "DAT_0017b498 = 0xffffffffffffffff;" (assignment_expression "DAT_0017b498 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "puVar3[0xe] = uVar4;" (assignment_expression "puVar3[0xe] = uVar4" (subscript_expression "puVar3[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_0011b540();" (call_expression "FUN_0011b540()" identifier (argument_list "()" ( ))) ;) (return_statement "return puVar3;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return IDENT ;) })))
(function_definition "undefined8 * FUN_0011b590(undefined8 param_1)\n\n{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  undefined8 *puVar3;\n  undefined8 uVar4;\n  \n  puVar3 = (undefined8 *)xmalloc(0x80);\n  uVar1 = DAT_00184508;\n  uVar4 = DAT_00184500;\n  puVar3[0xf] = param_1;\n  uVar2 = DAT_00184538;\n  puVar3[9] = uVar4;\n  puVar3[10] = uVar1;\n  *puVar3 = uVar2;\n  puVar3[1] = DAT_00184530;\n  puVar3[2] = DAT_00184528;\n  puVar3[4] = DAT_00184518;\n  puVar3[5] = DAT_001844f8;\n  puVar3[6] = DAT_001844f0;\n  *(undefined4 *)(puVar3 + 7) = DAT_001844ec;\n  *(undefined4 *)((long)puVar3 + 0x3c) = DAT_001844e8;\n  puVar3[8] = DAT_0017b498;\n  puVar3[0xb] = DAT_00184510;\n  *(undefined4 *)(puVar3 + 0xc) = DAT_0017b490;\n  *(undefined1 *)(puVar3 + 3) = DAT_00184520;\n  puVar3[0xd] = DAT_001844e0;\n  uVar4 = FUN_0011b0b0();\n  DAT_0017b498 = 0xffffffffffffffff;\n  puVar3[0xe] = uVar4;\n  FUN_0011b540();\n  return puVar3;\n}" (type_identifier "undefined8") (pointer_declarator "* FUN_0011b590(undefined8 param_1)" (* "*") (function_declarator "FUN_0011b590(undefined8 param_1)" (identifier "FUN_0011b590") (parameter_list "(undefined8 param_1)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) () ")")))) (compound_statement "{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  undefined8 *puVar3;\n  undefined8 uVar4;\n  \n  puVar3 = (undefined8 *)xmalloc(0x80);\n  uVar1 = DAT_00184508;\n  uVar4 = DAT_00184500;\n  puVar3[0xf] = param_1;\n  uVar2 = DAT_00184538;\n  puVar3[9] = uVar4;\n  puVar3[10] = uVar1;\n  *puVar3 = uVar2;\n  puVar3[1] = DAT_00184530;\n  puVar3[2] = DAT_00184528;\n  puVar3[4] = DAT_00184518;\n  puVar3[5] = DAT_001844f8;\n  puVar3[6] = DAT_001844f0;\n  *(undefined4 *)(puVar3 + 7) = DAT_001844ec;\n  *(undefined4 *)((long)puVar3 + 0x3c) = DAT_001844e8;\n  puVar3[8] = DAT_0017b498;\n  puVar3[0xb] = DAT_00184510;\n  *(undefined4 *)(puVar3 + 0xc) = DAT_0017b490;\n  *(undefined1 *)(puVar3 + 3) = DAT_00184520;\n  puVar3[0xd] = DAT_001844e0;\n  uVar4 = FUN_0011b0b0();\n  DAT_0017b498 = 0xffffffffffffffff;\n  puVar3[0xe] = uVar4;\n  FUN_0011b540();\n  return puVar3;\n}" ({ "{") (declaration "undefined8 uVar1;" (type_identifier "undefined8") (identifier "uVar1") (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (declaration "undefined8 *puVar3;" (type_identifier "undefined8") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (expression_statement "puVar3 = (undefined8 *)xmalloc(0x80);" (assignment_expression "puVar3 = (undefined8 *)xmalloc(0x80)" (identifier "puVar3") (= "=") (cast_expression "(undefined8 *)xmalloc(0x80)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(0x80)" (identifier "xmalloc") (argument_list "(0x80)" (( "(") (number_literal "0x80") () ")"))))) (; ";")) (expression_statement "uVar1 = DAT_00184508;" (assignment_expression "uVar1 = DAT_00184508" (identifier "uVar1") (= "=") (identifier "DAT_00184508")) (; ";")) (expression_statement "uVar4 = DAT_00184500;" (assignment_expression "uVar4 = DAT_00184500" (identifier "uVar4") (= "=") (identifier "DAT_00184500")) (; ";")) (expression_statement "puVar3[0xf] = param_1;" (assignment_expression "puVar3[0xf] = param_1" (subscript_expression "puVar3[0xf]" (identifier "puVar3") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "param_1")) (; ";")) (expression_statement "uVar2 = DAT_00184538;" (assignment_expression "uVar2 = DAT_00184538" (identifier "uVar2") (= "=") (identifier "DAT_00184538")) (; ";")) (expression_statement "puVar3[9] = uVar4;" (assignment_expression "puVar3[9] = uVar4" (subscript_expression "puVar3[9]" (identifier "puVar3") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar3[10] = uVar1;" (assignment_expression "puVar3[10] = uVar1" (subscript_expression "puVar3[10]" (identifier "puVar3") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "*puVar3 = uVar2;" (assignment_expression "*puVar3 = uVar2" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "puVar3[1] = DAT_00184530;" (assignment_expression "puVar3[1] = DAT_00184530" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "DAT_00184530")) (; ";")) (expression_statement "puVar3[2] = DAT_00184528;" (assignment_expression "puVar3[2] = DAT_00184528" (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "DAT_00184528")) (; ";")) (expression_statement "puVar3[4] = DAT_00184518;" (assignment_expression "puVar3[4] = DAT_00184518" (subscript_expression "puVar3[4]" (identifier "puVar3") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "DAT_00184518")) (; ";")) (expression_statement "puVar3[5] = DAT_001844f8;" (assignment_expression "puVar3[5] = DAT_001844f8" (subscript_expression "puVar3[5]" (identifier "puVar3") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "DAT_001844f8")) (; ";")) (expression_statement "puVar3[6] = DAT_001844f0;" (assignment_expression "puVar3[6] = DAT_001844f0" (subscript_expression "puVar3[6]" (identifier "puVar3") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "DAT_001844f0")) (; ";")) (expression_statement "*(undefined4 *)(puVar3 + 7) = DAT_001844ec;" (assignment_expression "*(undefined4 *)(puVar3 + 7) = DAT_001844ec" (pointer_expression "*(undefined4 *)(puVar3 + 7)" (* "*") (cast_expression "(undefined4 *)(puVar3 + 7)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 7)" (( "(") (binary_expression "puVar3 + 7" (identifier "puVar3") (+ "+") (number_literal "7")) () ")")))) (= "=") (identifier "DAT_001844ec")) (; ";")) (expression_statement "*(undefined4 *)((long)puVar3 + 0x3c) = DAT_001844e8;" (assignment_expression "*(undefined4 *)((long)puVar3 + 0x3c) = DAT_001844e8" (pointer_expression "*(undefined4 *)((long)puVar3 + 0x3c)" (* "*") (cast_expression "(undefined4 *)((long)puVar3 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar3 + 0x3c)" (( "(") (binary_expression "(long)puVar3 + 0x3c" (cast_expression "(long)puVar3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar3")) (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (identifier "DAT_001844e8")) (; ";")) (expression_statement "puVar3[8] = DAT_0017b498;" (assignment_expression "puVar3[8] = DAT_0017b498" (subscript_expression "puVar3[8]" (identifier "puVar3") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "DAT_0017b498")) (; ";")) (expression_statement "puVar3[0xb] = DAT_00184510;" (assignment_expression "puVar3[0xb] = DAT_00184510" (subscript_expression "puVar3[0xb]" (identifier "puVar3") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "DAT_00184510")) (; ";")) (expression_statement "*(undefined4 *)(puVar3 + 0xc) = DAT_0017b490;" (assignment_expression "*(undefined4 *)(puVar3 + 0xc) = DAT_0017b490" (pointer_expression "*(undefined4 *)(puVar3 + 0xc)" (* "*") (cast_expression "(undefined4 *)(puVar3 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 0xc)" (( "(") (binary_expression "puVar3 + 0xc" (identifier "puVar3") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "DAT_0017b490")) (; ";")) (expression_statement "*(undefined1 *)(puVar3 + 3) = DAT_00184520;" (assignment_expression "*(undefined1 *)(puVar3 + 3) = DAT_00184520" (pointer_expression "*(undefined1 *)(puVar3 + 3)" (* "*") (cast_expression "(undefined1 *)(puVar3 + 3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 3)" (( "(") (binary_expression "puVar3 + 3" (identifier "puVar3") (+ "+") (number_literal "3")) () ")")))) (= "=") (identifier "DAT_00184520")) (; ";")) (expression_statement "puVar3[0xd] = DAT_001844e0;" (assignment_expression "puVar3[0xd] = DAT_001844e0" (subscript_expression "puVar3[0xd]" (identifier "puVar3") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "DAT_001844e0")) (; ";")) (expression_statement "uVar4 = FUN_0011b0b0();" (assignment_expression "uVar4 = FUN_0011b0b0()" (identifier "uVar4") (= "=") (call_expression "FUN_0011b0b0()" (identifier "FUN_0011b0b0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "DAT_0017b498 = 0xffffffffffffffff;" (assignment_expression "DAT_0017b498 = 0xffffffffffffffff" (identifier "DAT_0017b498") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "puVar3[0xe] = uVar4;" (assignment_expression "puVar3[0xe] = uVar4" (subscript_expression "puVar3[0xe]" (identifier "puVar3") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "FUN_0011b540();" (call_expression "FUN_0011b540()" (identifier "FUN_0011b540") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return puVar3;" (return "return") (identifier "puVar3") (; ";")) (} "}")))

type_1 * function_1(char *saved_position)

{
  size_t sVar1;
  char *pcVar2;
  type_1 *piVar3;
  char *pcVar4;
  
  piVar3 = (type_1 *)var_1(0x80);
  sVar1 = from_sb.len;
  pcVar4 = from_sb.ptr;
  piVar3->saved_position = saved_position;
  pcVar2 = buffer_start;
  (piVar3->from_sb).ptr = pcVar4;
  (piVar3->from_sb).len = sVar1;
  piVar3->buffer_start = pcVar2;
  piVar3->partial_where = partial_where;
  piVar3->partial_size = partial_size;
  piVar3->buffer_length = buffer_length;
  piVar3->physical_input_file = physical_input_file;
  piVar3->logical_input_file = logical_input_file;
  piVar3->physical_input_line = physical_input_line;
  piVar3->logical_input_line = logical_input_line;
  piVar3->sb_index = sb_index;
  (piVar3->from_sb).max = from_sb.max;
  piVar3->from_sb_is_expansion = from_sb_is_expansion;
  piVar3->save_source[0] = save_source[0];
  piVar3->next_saved_file = next_saved_file;
  pcVar4 = var_2();
  sb_index = 0xffffffffffffffff;
  piVar3->input_file_save = pcVar4;
  var_3();
  return piVar3;
}


(translation_unit (function_definition type: (type_identifier) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier))))) body: (compound_statement (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: (identifier)) (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)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement (identifier)))))

undefined8 * MASKED(undefined8 param_1)

{
  undefined8 uVar1;
  undefined8 uVar2;
  undefined8 *puVar3;
  undefined8 uVar4;
  
  puVar3 = (undefined8 *)xmalloc(0x80);
  uVar1 = DAT_00184508;
  uVar4 = DAT_00184500;
  puVar3[0xf] = param_1;
  uVar2 = DAT_00184538;
  puVar3[9] = uVar4;
  puVar3[10] = uVar1;
  *puVar3 = uVar2;
  puVar3[1] = DAT_00184530;
  puVar3[2] = DAT_00184528;
  puVar3[4] = DAT_00184518;
  puVar3[5] = DAT_001844f8;
  puVar3[6] = DAT_001844f0;
  *(undefined4 *)(puVar3 + 7) = DAT_001844ec;
  *(undefined4 *)((long)puVar3 + 0x3c) = DAT_001844e8;
  puVar3[8] = DAT_0017b498;
  puVar3[0xb] = DAT_00184510;
  *(undefined4 *)(puVar3 + 0xc) = DAT_0017b490;
  *(undefined1 *)(puVar3 + 3) = DAT_00184520;
  puVar3[0xd] = DAT_001844e0;
  uVar4 = FUN_0011b0b0();
  DAT_0017b498 = 0xffffffffffffffff;
  puVar3[0xe] = uVar4;
  FUN_0011b540();
  return puVar3;
}

