
char * frag_var(relax_stateT type,size_t max_chars,size_t var,relax_substateT subtype,
               symbolS *symbol,offsetT offset,char *opcode)

{
  uint *linep;
  char *pcVar1;
  fragS *pfVar2;
  char *pcVar3;
  
  frag_grow(max_chars);
  pfVar2 = frag_now;
  pcVar1 = (frchain_now->frch_obstack).next_free;
  linep = &frag_now->fr_line;
  (frchain_now->frch_obstack).next_free = pcVar1 + max_chars;
  pfVar2->fr_var = var;
  pfVar2->fr_type = type;
  pfVar2->fr_subtype = subtype;
  pfVar2->fr_symbol = symbol;
  pfVar2->fr_offset = offset;
  pfVar2->fr_opcode = opcode;
  pcVar3 = as_where(linep);
  pfVar2->fr_file = pcVar3;
  frag_new(max_chars);
  return pcVar1;
}



long FUN_00118c00(undefined4 param_1,long param_2,undefined8 param_3,undefined4 param_4,
                 undefined8 param_5,undefined8 param_6,undefined8 param_7)

{
  long lVar1;
  long lVar2;
  long lVar3;
  undefined8 uVar4;
  
  FUN_00118b00(param_2);
  lVar3 = DAT_0019d868;
  lVar2 = *(long *)(DAT_0019da50 + 0x48);
  lVar1 = DAT_0019d868 + 0x48;
  *(long *)(DAT_0019da50 + 0x48) = lVar2 + param_2;
  *(undefined8 *)(lVar3 + 0x18) = param_3;
  *(undefined4 *)(lVar3 + 0x5c) = param_1;
  *(undefined4 *)(lVar3 + 0x60) = param_4;
  *(undefined8 *)(lVar3 + 0x28) = param_5;
  *(undefined8 *)(lVar3 + 0x20) = param_6;
  *(undefined8 *)(lVar3 + 0x30) = param_7;
  uVar4 = FUN_0011a360(lVar1);
  *(undefined8 *)(lVar3 + 0x40) = uVar4;
  FUN_00118990(param_2);
  return lVar2;
}


PUSH R15
MOV R15D,ECX
PUSH R14
MOV R14,R8
PUSH R13
MOV R13,R9
PUSH R12
PUSH RBP
MOV RBP,RSI
PUSH RBX
SUB RSP,0x18
MOV dword ptr [RSP + 0xc],EDI
MOV RDI,RSI
MOV qword ptr [RSP],RDX
CALL 0x00118b00
MOV RAX,qword ptr [0x0019da50]
MOV RDX,qword ptr [RSP]
MOV RBX,qword ptr [0x0019d868]
MOV R10D,dword ptr [RSP + 0xc]
MOV R12,qword ptr [RAX + 0x48]
LEA RDI,[RBX + 0x48]
LEA RCX,[R12 + RBP*0x1]
MOV qword ptr [RAX + 0x48],RCX
MOV RAX,qword ptr [RSP + 0x50]
MOV qword ptr [RBX + 0x18],RDX
MOV dword ptr [RBX + 0x5c],R10D
MOV dword ptr [RBX + 0x60],R15D
MOV qword ptr [RBX + 0x28],R14
MOV qword ptr [RBX + 0x20],R13
MOV qword ptr [RBX + 0x30],RAX
CALL 0x0011a360
MOV RDI,RBP
MOV qword ptr [RBX + 0x40],RAX
CALL 0x00118990
ADD RSP,0x18
MOV RAX,R12
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
(translation_unit "long FUN_00118c00(undefined4 param_1,long param_2,undefined8 param_3,undefined4 param_4,\n                 undefined8 param_5,undefined8 param_6,undefined8 param_7)\n\n{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  undefined8 uVar4;\n  \n  FUN_00118b00(param_2);\n  lVar3 = DAT_0019d868;\n  lVar2 = *(long *)(DAT_0019da50 + 0x48);\n  lVar1 = DAT_0019d868 + 0x48;\n  *(long *)(DAT_0019da50 + 0x48) = lVar2 + param_2;\n  *(undefined8 *)(lVar3 + 0x18) = param_3;\n  *(undefined4 *)(lVar3 + 0x5c) = param_1;\n  *(undefined4 *)(lVar3 + 0x60) = param_4;\n  *(undefined8 *)(lVar3 + 0x28) = param_5;\n  *(undefined8 *)(lVar3 + 0x20) = param_6;\n  *(undefined8 *)(lVar3 + 0x30) = param_7;\n  uVar4 = FUN_0011a360(lVar1);\n  *(undefined8 *)(lVar3 + 0x40) = uVar4;\n  FUN_00118990(param_2);\n  return lVar2;\n}\n\n" (function_definition "long FUN_00118c00(undefined4 param_1,long param_2,undefined8 param_3,undefined4 param_4,\n                 undefined8 param_5,undefined8 param_6,undefined8 param_7)\n\n{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  undefined8 uVar4;\n  \n  FUN_00118b00(param_2);\n  lVar3 = DAT_0019d868;\n  lVar2 = *(long *)(DAT_0019da50 + 0x48);\n  lVar1 = DAT_0019d868 + 0x48;\n  *(long *)(DAT_0019da50 + 0x48) = lVar2 + param_2;\n  *(undefined8 *)(lVar3 + 0x18) = param_3;\n  *(undefined4 *)(lVar3 + 0x5c) = param_1;\n  *(undefined4 *)(lVar3 + 0x60) = param_4;\n  *(undefined8 *)(lVar3 + 0x28) = param_5;\n  *(undefined8 *)(lVar3 + 0x20) = param_6;\n  *(undefined8 *)(lVar3 + 0x30) = param_7;\n  uVar4 = FUN_0011a360(lVar1);\n  *(undefined8 *)(lVar3 + 0x40) = uVar4;\n  FUN_00118990(param_2);\n  return lVar2;\n}" (sized_type_specifier "long" long) (function_declarator "FUN_00118c00(undefined4 param_1,long param_2,undefined8 param_3,undefined4 param_4,\n                 undefined8 param_5,undefined8 param_6,undefined8 param_7)" identifier (parameter_list "(undefined4 param_1,long param_2,undefined8 param_3,undefined4 param_4,\n                 undefined8 param_5,undefined8 param_6,undefined8 param_7)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "undefined4 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) ))) (compound_statement "{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  undefined8 uVar4;\n  \n  FUN_00118b00(param_2);\n  lVar3 = DAT_0019d868;\n  lVar2 = *(long *)(DAT_0019da50 + 0x48);\n  lVar1 = DAT_0019d868 + 0x48;\n  *(long *)(DAT_0019da50 + 0x48) = lVar2 + param_2;\n  *(undefined8 *)(lVar3 + 0x18) = param_3;\n  *(undefined4 *)(lVar3 + 0x5c) = param_1;\n  *(undefined4 *)(lVar3 + 0x60) = param_4;\n  *(undefined8 *)(lVar3 + 0x28) = param_5;\n  *(undefined8 *)(lVar3 + 0x20) = param_6;\n  *(undefined8 *)(lVar3 + 0x30) = param_7;\n  uVar4 = FUN_0011a360(lVar1);\n  *(undefined8 *)(lVar3 + 0x40) = uVar4;\n  FUN_00118990(param_2);\n  return lVar2;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (expression_statement "FUN_00118b00(param_2);" (call_expression "FUN_00118b00(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "lVar3 = DAT_0019d868;" (assignment_expression "lVar3 = DAT_0019d868" identifier = identifier) ;) (expression_statement "lVar2 = *(long *)(DAT_0019da50 + 0x48);" (assignment_expression "lVar2 = *(long *)(DAT_0019da50 + 0x48)" identifier = (pointer_expression "*(long *)(DAT_0019da50 + 0x48)" * (cast_expression "(long *)(DAT_0019da50 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0019da50 + 0x48)" ( (binary_expression "DAT_0019da50 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "lVar1 = DAT_0019d868 + 0x48;" (assignment_expression "lVar1 = DAT_0019d868 + 0x48" identifier = (binary_expression "DAT_0019d868 + 0x48" identifier + number_literal)) ;) (expression_statement "*(long *)(DAT_0019da50 + 0x48) = lVar2 + param_2;" (assignment_expression "*(long *)(DAT_0019da50 + 0x48) = lVar2 + param_2" (pointer_expression "*(long *)(DAT_0019da50 + 0x48)" * (cast_expression "(long *)(DAT_0019da50 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0019da50 + 0x48)" ( (binary_expression "DAT_0019da50 + 0x48" identifier + number_literal) )))) = (binary_expression "lVar2 + param_2" identifier + identifier)) ;) (expression_statement "*(undefined8 *)(lVar3 + 0x18) = param_3;" (assignment_expression "*(undefined8 *)(lVar3 + 0x18) = param_3" (pointer_expression "*(undefined8 *)(lVar3 + 0x18)" * (cast_expression "(undefined8 *)(lVar3 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x18)" ( (binary_expression "lVar3 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(lVar3 + 0x5c) = param_1;" (assignment_expression "*(undefined4 *)(lVar3 + 0x5c) = param_1" (pointer_expression "*(undefined4 *)(lVar3 + 0x5c)" * (cast_expression "(undefined4 *)(lVar3 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x5c)" ( (binary_expression "lVar3 + 0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(lVar3 + 0x60) = param_4;" (assignment_expression "*(undefined4 *)(lVar3 + 0x60) = param_4" (pointer_expression "*(undefined4 *)(lVar3 + 0x60)" * (cast_expression "(undefined4 *)(lVar3 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x60)" ( (binary_expression "lVar3 + 0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 *)(lVar3 + 0x28) = param_5;" (assignment_expression "*(undefined8 *)(lVar3 + 0x28) = param_5" (pointer_expression "*(undefined8 *)(lVar3 + 0x28)" * (cast_expression "(undefined8 *)(lVar3 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x28)" ( (binary_expression "lVar3 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 *)(lVar3 + 0x20) = param_6;" (assignment_expression "*(undefined8 *)(lVar3 + 0x20) = param_6" (pointer_expression "*(undefined8 *)(lVar3 + 0x20)" * (cast_expression "(undefined8 *)(lVar3 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x20)" ( (binary_expression "lVar3 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 *)(lVar3 + 0x30) = param_7;" (assignment_expression "*(undefined8 *)(lVar3 + 0x30) = param_7" (pointer_expression "*(undefined8 *)(lVar3 + 0x30)" * (cast_expression "(undefined8 *)(lVar3 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x30)" ( (binary_expression "lVar3 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = FUN_0011a360(lVar1);" (assignment_expression "uVar4 = FUN_0011a360(lVar1)" identifier = (call_expression "FUN_0011a360(lVar1)" identifier (argument_list "(lVar1)" ( identifier )))) ;) (expression_statement "*(undefined8 *)(lVar3 + 0x40) = uVar4;" (assignment_expression "*(undefined8 *)(lVar3 + 0x40) = uVar4" (pointer_expression "*(undefined8 *)(lVar3 + 0x40)" * (cast_expression "(undefined8 *)(lVar3 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x40)" ( (binary_expression "lVar3 + 0x40" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00118990(param_2);" (call_expression "FUN_00118990(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (return_statement "return lVar2;" return identifier ;) })))
(translation_unit "char * frag_var(relax_stateT type,size_t max_chars,size_t var,relax_substateT subtype,\n               symbolS *symbol,offsetT offset,char *opcode)\n\n{\n  uint *linep;\n  char *pcVar1;\n  fragS *pfVar2;\n  char *pcVar3;\n  \n  frag_grow(max_chars);\n  pfVar2 = frag_now;\n  pcVar1 = (frchain_now->frch_obstack).next_free;\n  linep = &frag_now->fr_line;\n  (frchain_now->frch_obstack).next_free = pcVar1 + max_chars;\n  pfVar2->fr_var = var;\n  pfVar2->fr_type = type;\n  pfVar2->fr_subtype = subtype;\n  pfVar2->fr_symbol = symbol;\n  pfVar2->fr_offset = offset;\n  pfVar2->fr_opcode = opcode;\n  pcVar3 = as_where(linep);\n  pfVar2->fr_file = pcVar3;\n  frag_new(max_chars);\n  return pcVar1;\n}\n\n" (function_definition "char * frag_var(relax_stateT type,size_t max_chars,size_t var,relax_substateT subtype,\n               symbolS *symbol,offsetT offset,char *opcode)\n\n{\n  uint *linep;\n  char *pcVar1;\n  fragS *pfVar2;\n  char *pcVar3;\n  \n  frag_grow(max_chars);\n  pfVar2 = frag_now;\n  pcVar1 = (frchain_now->frch_obstack).next_free;\n  linep = &frag_now->fr_line;\n  (frchain_now->frch_obstack).next_free = pcVar1 + max_chars;\n  pfVar2->fr_var = var;\n  pfVar2->fr_type = type;\n  pfVar2->fr_subtype = subtype;\n  pfVar2->fr_symbol = symbol;\n  pfVar2->fr_offset = offset;\n  pfVar2->fr_opcode = opcode;\n  pcVar3 = as_where(linep);\n  pfVar2->fr_file = pcVar3;\n  frag_new(max_chars);\n  return pcVar1;\n}" primitive_type (pointer_declarator "* frag_var(relax_stateT type,size_t max_chars,size_t var,relax_substateT subtype,\n               symbolS *symbol,offsetT offset,char *opcode)" * (function_declarator "frag_var(relax_stateT type,size_t max_chars,size_t var,relax_substateT subtype,\n               symbolS *symbol,offsetT offset,char *opcode)" identifier (parameter_list "(relax_stateT type,size_t max_chars,size_t var,relax_substateT subtype,\n               symbolS *symbol,offsetT offset,char *opcode)" ( (parameter_declaration "relax_stateT type" type_identifier identifier) , (parameter_declaration "size_t max_chars" primitive_type identifier) , (parameter_declaration "size_t var" primitive_type identifier) , (parameter_declaration "relax_substateT subtype" type_identifier identifier) , (parameter_declaration "symbolS *symbol" type_identifier (pointer_declarator "*symbol" * identifier)) , (parameter_declaration "offsetT offset" type_identifier identifier) , (parameter_declaration "char *opcode" primitive_type (pointer_declarator "*opcode" * identifier)) )))) (compound_statement "{\n  uint *linep;\n  char *pcVar1;\n  fragS *pfVar2;\n  char *pcVar3;\n  \n  frag_grow(max_chars);\n  pfVar2 = frag_now;\n  pcVar1 = (frchain_now->frch_obstack).next_free;\n  linep = &frag_now->fr_line;\n  (frchain_now->frch_obstack).next_free = pcVar1 + max_chars;\n  pfVar2->fr_var = var;\n  pfVar2->fr_type = type;\n  pfVar2->fr_subtype = subtype;\n  pfVar2->fr_symbol = symbol;\n  pfVar2->fr_offset = offset;\n  pfVar2->fr_opcode = opcode;\n  pcVar3 = as_where(linep);\n  pfVar2->fr_file = pcVar3;\n  frag_new(max_chars);\n  return pcVar1;\n}" { (declaration "uint *linep;" type_identifier (pointer_declarator "*linep" * identifier) ;) (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "fragS *pfVar2;" type_identifier (pointer_declarator "*pfVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (expression_statement "frag_grow(max_chars);" (call_expression "frag_grow(max_chars)" identifier (argument_list "(max_chars)" ( identifier ))) ;) (expression_statement "pfVar2 = frag_now;" (assignment_expression "pfVar2 = frag_now" identifier = identifier) ;) (expression_statement "pcVar1 = (frchain_now->frch_obstack).next_free;" (assignment_expression "pcVar1 = (frchain_now->frch_obstack).next_free" identifier = (field_expression "(frchain_now->frch_obstack).next_free" (parenthesized_expression "(frchain_now->frch_obstack)" ( (field_expression "frchain_now->frch_obstack" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "linep = &frag_now->fr_line;" (assignment_expression "linep = &frag_now->fr_line" identifier = (pointer_expression "&frag_now->fr_line" & (field_expression "frag_now->fr_line" identifier -> field_identifier))) ;) (expression_statement "(frchain_now->frch_obstack).next_free = pcVar1 + max_chars;" (assignment_expression "(frchain_now->frch_obstack).next_free = pcVar1 + max_chars" (field_expression "(frchain_now->frch_obstack).next_free" (parenthesized_expression "(frchain_now->frch_obstack)" ( (field_expression "frchain_now->frch_obstack" identifier -> field_identifier) )) . field_identifier) = (binary_expression "pcVar1 + max_chars" identifier + identifier)) ;) (expression_statement "pfVar2->fr_var = var;" (assignment_expression "pfVar2->fr_var = var" (field_expression "pfVar2->fr_var" identifier -> field_identifier) = identifier) ;) (expression_statement "pfVar2->fr_type = type;" (assignment_expression "pfVar2->fr_type = type" (field_expression "pfVar2->fr_type" identifier -> field_identifier) = identifier) ;) (expression_statement "pfVar2->fr_subtype = subtype;" (assignment_expression "pfVar2->fr_subtype = subtype" (field_expression "pfVar2->fr_subtype" identifier -> field_identifier) = identifier) ;) (expression_statement "pfVar2->fr_symbol = symbol;" (assignment_expression "pfVar2->fr_symbol = symbol" (field_expression "pfVar2->fr_symbol" identifier -> field_identifier) = identifier) ;) (expression_statement "pfVar2->fr_offset = offset;" (assignment_expression "pfVar2->fr_offset = offset" (field_expression "pfVar2->fr_offset" identifier -> field_identifier) = identifier) ;) (expression_statement "pfVar2->fr_opcode = opcode;" (assignment_expression "pfVar2->fr_opcode = opcode" (field_expression "pfVar2->fr_opcode" identifier -> field_identifier) = identifier) ;) (expression_statement "pcVar3 = as_where(linep);" (assignment_expression "pcVar3 = as_where(linep)" identifier = (call_expression "as_where(linep)" identifier (argument_list "(linep)" ( identifier )))) ;) (expression_statement "pfVar2->fr_file = pcVar3;" (assignment_expression "pfVar2->fr_file = pcVar3" (field_expression "pfVar2->fr_file" identifier -> field_identifier) = identifier) ;) (expression_statement "frag_new(max_chars);" (call_expression "frag_new(max_chars)" identifier (argument_list "(max_chars)" ( identifier ))) ;) (return_statement "return pcVar1;" return identifier ;) })))
(translation_unit "long FUN_00118c00(undefined4 param_1,long param_2,undefined8 param_3,undefined4 param_4,\n                 undefined8 param_5,undefined8 param_6,undefined8 param_7)\n\n{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  undefined8 uVar4;\n  \n  FUN_00118b00(param_2);\n  lVar3 = DAT_0019d868;\n  lVar2 = *(long *)(DAT_0019da50 + 0x48);\n  lVar1 = DAT_0019d868 + 0x48;\n  *(long *)(DAT_0019da50 + 0x48) = lVar2 + param_2;\n  *(undefined8 *)(lVar3 + 0x18) = param_3;\n  *(undefined4 *)(lVar3 + 0x5c) = param_1;\n  *(undefined4 *)(lVar3 + 0x60) = param_4;\n  *(undefined8 *)(lVar3 + 0x28) = param_5;\n  *(undefined8 *)(lVar3 + 0x20) = param_6;\n  *(undefined8 *)(lVar3 + 0x30) = param_7;\n  uVar4 = FUN_0011a360(lVar1);\n  *(undefined8 *)(lVar3 + 0x40) = uVar4;\n  FUN_00118990(param_2);\n  return lVar2;\n}\n\n" (function_definition "long FUN_00118c00(undefined4 param_1,long param_2,undefined8 param_3,undefined4 param_4,\n                 undefined8 param_5,undefined8 param_6,undefined8 param_7)\n\n{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  undefined8 uVar4;\n  \n  FUN_00118b00(param_2);\n  lVar3 = DAT_0019d868;\n  lVar2 = *(long *)(DAT_0019da50 + 0x48);\n  lVar1 = DAT_0019d868 + 0x48;\n  *(long *)(DAT_0019da50 + 0x48) = lVar2 + param_2;\n  *(undefined8 *)(lVar3 + 0x18) = param_3;\n  *(undefined4 *)(lVar3 + 0x5c) = param_1;\n  *(undefined4 *)(lVar3 + 0x60) = param_4;\n  *(undefined8 *)(lVar3 + 0x28) = param_5;\n  *(undefined8 *)(lVar3 + 0x20) = param_6;\n  *(undefined8 *)(lVar3 + 0x30) = param_7;\n  uVar4 = FUN_0011a360(lVar1);\n  *(undefined8 *)(lVar3 + 0x40) = uVar4;\n  FUN_00118990(param_2);\n  return lVar2;\n}" (sized_type_specifier "long" long) (function_declarator "FUN_00118c00(undefined4 param_1,long param_2,undefined8 param_3,undefined4 param_4,\n                 undefined8 param_5,undefined8 param_6,undefined8 param_7)" identifier (parameter_list "(undefined4 param_1,long param_2,undefined8 param_3,undefined4 param_4,\n                 undefined8 param_5,undefined8 param_6,undefined8 param_7)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "undefined4 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) ))) (compound_statement "{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  undefined8 uVar4;\n  \n  FUN_00118b00(param_2);\n  lVar3 = DAT_0019d868;\n  lVar2 = *(long *)(DAT_0019da50 + 0x48);\n  lVar1 = DAT_0019d868 + 0x48;\n  *(long *)(DAT_0019da50 + 0x48) = lVar2 + param_2;\n  *(undefined8 *)(lVar3 + 0x18) = param_3;\n  *(undefined4 *)(lVar3 + 0x5c) = param_1;\n  *(undefined4 *)(lVar3 + 0x60) = param_4;\n  *(undefined8 *)(lVar3 + 0x28) = param_5;\n  *(undefined8 *)(lVar3 + 0x20) = param_6;\n  *(undefined8 *)(lVar3 + 0x30) = param_7;\n  uVar4 = FUN_0011a360(lVar1);\n  *(undefined8 *)(lVar3 + 0x40) = uVar4;\n  FUN_00118990(param_2);\n  return lVar2;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (expression_statement "FUN_00118b00(param_2);" (call_expression "FUN_00118b00(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "lVar3 = DAT_0019d868;" (assignment_expression "lVar3 = DAT_0019d868" identifier = identifier) ;) (expression_statement "lVar2 = *(long *)(DAT_0019da50 + 0x48);" (assignment_expression "lVar2 = *(long *)(DAT_0019da50 + 0x48)" identifier = (pointer_expression "*(long *)(DAT_0019da50 + 0x48)" * (cast_expression "(long *)(DAT_0019da50 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0019da50 + 0x48)" ( (binary_expression "DAT_0019da50 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "lVar1 = DAT_0019d868 + 0x48;" (assignment_expression "lVar1 = DAT_0019d868 + 0x48" identifier = (binary_expression "DAT_0019d868 + 0x48" identifier + number_literal)) ;) (expression_statement "*(long *)(DAT_0019da50 + 0x48) = lVar2 + param_2;" (assignment_expression "*(long *)(DAT_0019da50 + 0x48) = lVar2 + param_2" (pointer_expression "*(long *)(DAT_0019da50 + 0x48)" * (cast_expression "(long *)(DAT_0019da50 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0019da50 + 0x48)" ( (binary_expression "DAT_0019da50 + 0x48" identifier + number_literal) )))) = (binary_expression "lVar2 + param_2" identifier + identifier)) ;) (expression_statement "*(undefined8 *)(lVar3 + 0x18) = param_3;" (assignment_expression "*(undefined8 *)(lVar3 + 0x18) = param_3" (pointer_expression "*(undefined8 *)(lVar3 + 0x18)" * (cast_expression "(undefined8 *)(lVar3 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x18)" ( (binary_expression "lVar3 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(lVar3 + 0x5c) = param_1;" (assignment_expression "*(undefined4 *)(lVar3 + 0x5c) = param_1" (pointer_expression "*(undefined4 *)(lVar3 + 0x5c)" * (cast_expression "(undefined4 *)(lVar3 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x5c)" ( (binary_expression "lVar3 + 0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(lVar3 + 0x60) = param_4;" (assignment_expression "*(undefined4 *)(lVar3 + 0x60) = param_4" (pointer_expression "*(undefined4 *)(lVar3 + 0x60)" * (cast_expression "(undefined4 *)(lVar3 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x60)" ( (binary_expression "lVar3 + 0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 *)(lVar3 + 0x28) = param_5;" (assignment_expression "*(undefined8 *)(lVar3 + 0x28) = param_5" (pointer_expression "*(undefined8 *)(lVar3 + 0x28)" * (cast_expression "(undefined8 *)(lVar3 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x28)" ( (binary_expression "lVar3 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 *)(lVar3 + 0x20) = param_6;" (assignment_expression "*(undefined8 *)(lVar3 + 0x20) = param_6" (pointer_expression "*(undefined8 *)(lVar3 + 0x20)" * (cast_expression "(undefined8 *)(lVar3 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x20)" ( (binary_expression "lVar3 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 *)(lVar3 + 0x30) = param_7;" (assignment_expression "*(undefined8 *)(lVar3 + 0x30) = param_7" (pointer_expression "*(undefined8 *)(lVar3 + 0x30)" * (cast_expression "(undefined8 *)(lVar3 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x30)" ( (binary_expression "lVar3 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = FUN_0011a360(lVar1);" (assignment_expression "uVar4 = FUN_0011a360(lVar1)" identifier = (call_expression "FUN_0011a360(lVar1)" identifier (argument_list "(lVar1)" ( identifier )))) ;) (expression_statement "*(undefined8 *)(lVar3 + 0x40) = uVar4;" (assignment_expression "*(undefined8 *)(lVar3 + 0x40) = uVar4" (pointer_expression "*(undefined8 *)(lVar3 + 0x40)" * (cast_expression "(undefined8 *)(lVar3 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x40)" ( (binary_expression "lVar3 + 0x40" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00118990(param_2);" (call_expression "FUN_00118990(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (return_statement "return lVar2;" return identifier ;) })))
(translation_unit (function_definition (sized_type_specifier long) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE 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 (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + 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 (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 (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 IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return IDENT ;) })))
(function_definition "long FUN_00118c00(undefined4 param_1,long param_2,undefined8 param_3,undefined4 param_4,\n                 undefined8 param_5,undefined8 param_6,undefined8 param_7)\n\n{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  undefined8 uVar4;\n  \n  FUN_00118b00(param_2);\n  lVar3 = DAT_0019d868;\n  lVar2 = *(long *)(DAT_0019da50 + 0x48);\n  lVar1 = DAT_0019d868 + 0x48;\n  *(long *)(DAT_0019da50 + 0x48) = lVar2 + param_2;\n  *(undefined8 *)(lVar3 + 0x18) = param_3;\n  *(undefined4 *)(lVar3 + 0x5c) = param_1;\n  *(undefined4 *)(lVar3 + 0x60) = param_4;\n  *(undefined8 *)(lVar3 + 0x28) = param_5;\n  *(undefined8 *)(lVar3 + 0x20) = param_6;\n  *(undefined8 *)(lVar3 + 0x30) = param_7;\n  uVar4 = FUN_0011a360(lVar1);\n  *(undefined8 *)(lVar3 + 0x40) = uVar4;\n  FUN_00118990(param_2);\n  return lVar2;\n}" (sized_type_specifier "long" (long "long")) (function_declarator "FUN_00118c00(undefined4 param_1,long param_2,undefined8 param_3,undefined4 param_4,\n                 undefined8 param_5,undefined8 param_6,undefined8 param_7)" (identifier "FUN_00118c00") (parameter_list "(undefined4 param_1,long param_2,undefined8 param_3,undefined4 param_4,\n                 undefined8 param_5,undefined8 param_6,undefined8 param_7)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (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")) () ")"))) (compound_statement "{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  undefined8 uVar4;\n  \n  FUN_00118b00(param_2);\n  lVar3 = DAT_0019d868;\n  lVar2 = *(long *)(DAT_0019da50 + 0x48);\n  lVar1 = DAT_0019d868 + 0x48;\n  *(long *)(DAT_0019da50 + 0x48) = lVar2 + param_2;\n  *(undefined8 *)(lVar3 + 0x18) = param_3;\n  *(undefined4 *)(lVar3 + 0x5c) = param_1;\n  *(undefined4 *)(lVar3 + 0x60) = param_4;\n  *(undefined8 *)(lVar3 + 0x28) = param_5;\n  *(undefined8 *)(lVar3 + 0x20) = param_6;\n  *(undefined8 *)(lVar3 + 0x30) = param_7;\n  uVar4 = FUN_0011a360(lVar1);\n  *(undefined8 *)(lVar3 + 0x40) = uVar4;\n  FUN_00118990(param_2);\n  return lVar2;\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (expression_statement "FUN_00118b00(param_2);" (call_expression "FUN_00118b00(param_2)" (identifier "FUN_00118b00") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (expression_statement "lVar3 = DAT_0019d868;" (assignment_expression "lVar3 = DAT_0019d868" (identifier "lVar3") (= "=") (identifier "DAT_0019d868")) (; ";")) (expression_statement "lVar2 = *(long *)(DAT_0019da50 + 0x48);" (assignment_expression "lVar2 = *(long *)(DAT_0019da50 + 0x48)" (identifier "lVar2") (= "=") (pointer_expression "*(long *)(DAT_0019da50 + 0x48)" (* "*") (cast_expression "(long *)(DAT_0019da50 + 0x48)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0019da50 + 0x48)" (( "(") (binary_expression "DAT_0019da50 + 0x48" (identifier "DAT_0019da50") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "lVar1 = DAT_0019d868 + 0x48;" (assignment_expression "lVar1 = DAT_0019d868 + 0x48" (identifier "lVar1") (= "=") (binary_expression "DAT_0019d868 + 0x48" (identifier "DAT_0019d868") (+ "+") (number_literal "0x48"))) (; ";")) (expression_statement "*(long *)(DAT_0019da50 + 0x48) = lVar2 + param_2;" (assignment_expression "*(long *)(DAT_0019da50 + 0x48) = lVar2 + param_2" (pointer_expression "*(long *)(DAT_0019da50 + 0x48)" (* "*") (cast_expression "(long *)(DAT_0019da50 + 0x48)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0019da50 + 0x48)" (( "(") (binary_expression "DAT_0019da50 + 0x48" (identifier "DAT_0019da50") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (binary_expression "lVar2 + param_2" (identifier "lVar2") (+ "+") (identifier "param_2"))) (; ";")) (expression_statement "*(undefined8 *)(lVar3 + 0x18) = param_3;" (assignment_expression "*(undefined8 *)(lVar3 + 0x18) = param_3" (pointer_expression "*(undefined8 *)(lVar3 + 0x18)" (* "*") (cast_expression "(undefined8 *)(lVar3 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x18)" (( "(") (binary_expression "lVar3 + 0x18" (identifier "lVar3") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(undefined4 *)(lVar3 + 0x5c) = param_1;" (assignment_expression "*(undefined4 *)(lVar3 + 0x5c) = param_1" (pointer_expression "*(undefined4 *)(lVar3 + 0x5c)" (* "*") (cast_expression "(undefined4 *)(lVar3 + 0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x5c)" (( "(") (binary_expression "lVar3 + 0x5c" (identifier "lVar3") (+ "+") (number_literal "0x5c")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined4 *)(lVar3 + 0x60) = param_4;" (assignment_expression "*(undefined4 *)(lVar3 + 0x60) = param_4" (pointer_expression "*(undefined4 *)(lVar3 + 0x60)" (* "*") (cast_expression "(undefined4 *)(lVar3 + 0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x60)" (( "(") (binary_expression "lVar3 + 0x60" (identifier "lVar3") (+ "+") (number_literal "0x60")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(undefined8 *)(lVar3 + 0x28) = param_5;" (assignment_expression "*(undefined8 *)(lVar3 + 0x28) = param_5" (pointer_expression "*(undefined8 *)(lVar3 + 0x28)" (* "*") (cast_expression "(undefined8 *)(lVar3 + 0x28)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x28)" (( "(") (binary_expression "lVar3 + 0x28" (identifier "lVar3") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "param_5")) (; ";")) (expression_statement "*(undefined8 *)(lVar3 + 0x20) = param_6;" (assignment_expression "*(undefined8 *)(lVar3 + 0x20) = param_6" (pointer_expression "*(undefined8 *)(lVar3 + 0x20)" (* "*") (cast_expression "(undefined8 *)(lVar3 + 0x20)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x20)" (( "(") (binary_expression "lVar3 + 0x20" (identifier "lVar3") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "param_6")) (; ";")) (expression_statement "*(undefined8 *)(lVar3 + 0x30) = param_7;" (assignment_expression "*(undefined8 *)(lVar3 + 0x30) = param_7" (pointer_expression "*(undefined8 *)(lVar3 + 0x30)" (* "*") (cast_expression "(undefined8 *)(lVar3 + 0x30)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x30)" (( "(") (binary_expression "lVar3 + 0x30" (identifier "lVar3") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "param_7")) (; ";")) (expression_statement "uVar4 = FUN_0011a360(lVar1);" (assignment_expression "uVar4 = FUN_0011a360(lVar1)" (identifier "uVar4") (= "=") (call_expression "FUN_0011a360(lVar1)" (identifier "FUN_0011a360") (argument_list "(lVar1)" (( "(") (identifier "lVar1") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(lVar3 + 0x40) = uVar4;" (assignment_expression "*(undefined8 *)(lVar3 + 0x40) = uVar4" (pointer_expression "*(undefined8 *)(lVar3 + 0x40)" (* "*") (cast_expression "(undefined8 *)(lVar3 + 0x40)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x40)" (( "(") (binary_expression "lVar3 + 0x40" (identifier "lVar3") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "FUN_00118990(param_2);" (call_expression "FUN_00118990(param_2)" (identifier "FUN_00118990") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (return_statement "return lVar2;" (return "return") (identifier "lVar2") (; ";")) (} "}")))

char * function_1(type_1 type,size_t var_3,size_t var,type_2 subtype,
               type_3 *symbol,type_4 offset,char *opcode)

{
  type_5 *linep;
  char *var_2;
  type_6 *pfVar2;
  char *pcVar3;
  
  var_1(var_3);
  pfVar2 = frag_now;
  var_2 = (frchain_now->frch_obstack).next_free;
  linep = &frag_now->fr_line;
  (frchain_now->frch_obstack).next_free = var_2 + var_3;
  pfVar2->fr_var = var;
  pfVar2->fr_type = type;
  pfVar2->fr_subtype = subtype;
  pfVar2->fr_symbol = symbol;
  pfVar2->fr_offset = offset;
  pfVar2->fr_opcode = opcode;
  pcVar3 = var_4(linep);
  pfVar2->fr_file = pcVar3;
  var_5(var_3);
  return var_2;
}


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

long MASKED(undefined4 param_1,long param_2,undefined8 param_3,undefined4 param_4,
                 undefined8 param_5,undefined8 param_6,undefined8 param_7)

{
  long lVar1;
  long lVar2;
  long lVar3;
  undefined8 uVar4;
  
  FUN_00118b00(param_2);
  lVar3 = DAT_0019d868;
  lVar2 = *(long *)(DAT_0019da50 + 0x48);
  lVar1 = DAT_0019d868 + 0x48;
  *(long *)(DAT_0019da50 + 0x48) = lVar2 + param_2;
  *(undefined8 *)(lVar3 + 0x18) = param_3;
  *(undefined4 *)(lVar3 + 0x5c) = param_1;
  *(undefined4 *)(lVar3 + 0x60) = param_4;
  *(undefined8 *)(lVar3 + 0x28) = param_5;
  *(undefined8 *)(lVar3 + 0x20) = param_6;
  *(undefined8 *)(lVar3 + 0x30) = param_7;
  uVar4 = FUN_0011a360(lVar1);
  *(undefined8 *)(lVar3 + 0x40) = uVar4;
  FUN_00118990(param_2);
  return lVar2;
}

