
/* WARNING: Unknown calling convention */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

void grammar_current_rule_end(location loc)

{
  location loc_00;
  undefined *puVar1;
  symbol_list *psVar2;
  int iVar3;
  undefined4 in_a0;
  undefined4 in_a1;
  undefined4 in_a2;
  undefined4 in_a3;
  undefined4 in_stack_ffffffd4;
  undefined1 *puVar4;
  int in_stack_ffffffdc;
  
  puVar1 = PTR_saved_sigactions_28__sa_resv_0__0008d618;
  puVar4 = &_gp;
  loc_00.start = (boundary)
                 *(undefined1 (*) [12])
                  (*(int *)(PTR_saved_sigactions_28__sa_resv_0__0008d618 + -0x1cd4) + 0x14);
  loc_00.end.file = (uniqstr)in_stack_ffffffd4;
  loc_00.end.line = (int)&_gp;
  loc_00.end.column = in_stack_ffffffdc;
  psVar2 = symbol_list_sym_new((symbol *)0x0,loc_00);
  iVar3 = *(int *)(puVar1 + -0x1cd4);
  if (iVar3 == 0) {
    *(symbol_list **)(*(int *)(puVar4 + -0x7fd8) + -0x1ccc) = psVar2;
  }
  else {
    *(symbol_list **)(iVar3 + 0xd4) = psVar2;
  }
  iVar3 = *(int *)(puVar4 + -0x7fd8);
  *(symbol_list **)(puVar1 + -0x1cd4) = psVar2;
  iVar3 = *(int *)(iVar3 + -0x1cd8);
  *(undefined4 *)(iVar3 + 8) = in_a0;
  *(undefined4 *)(iVar3 + 0xc) = in_a1;
  *(undefined4 *)(iVar3 + 0x10) = in_a2;
  *(undefined4 *)(iVar3 + 0x14) = in_a3;
  *(int *)(iVar3 + 0x18) = loc.end.line;
  *(int *)(iVar3 + 0x1c) = loc.end.column;
  return;
}



void grammar_current_rule_end
               (undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,
               undefined4 param_5,undefined4 param_6)

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  undefined4 uVar4;
  
  puVar1 = PTR_DAT_0008d618;
  iVar3 = *(int *)(PTR_DAT_0008d618 + -0x1cd4);
  uVar4 = symbol_list_sym_new(0,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),
                              *(undefined4 *)(iVar3 + 0x10),*(undefined4 *)(iVar3 + 0x14),
                              *(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c));
  iVar3 = *(int *)(puVar1 + -0x1cd4);
  if (iVar3 == 0) {
    *(undefined4 *)(PTR_DAT_0008d618 + -0x1ccc) = uVar4;
  }
  else {
    *(undefined4 *)(iVar3 + 0xd4) = uVar4;
  }
  puVar2 = PTR_DAT_0008d618;
  *(undefined4 *)(puVar1 + -0x1cd4) = uVar4;
  iVar3 = *(int *)(puVar2 + -0x1cd8);
  *(undefined4 *)(iVar3 + 8) = param_1;
  *(undefined4 *)(iVar3 + 0xc) = param_2;
  *(undefined4 *)(iVar3 + 0x10) = param_3;
  *(undefined4 *)(iVar3 + 0x14) = param_4;
  *(undefined4 *)(iVar3 + 0x18) = param_5;
  *(undefined4 *)(iVar3 + 0x1c) = param_6;
  return;
}


lui gp,0x5
addiu gp,gp,0x7a84
addu gp,gp,t9
addiu sp,sp,-0x48
lw t9,-0x7b30(gp)
sw s0,0x40(sp)
lw s0,-0x7fd8(gp)
sw a1,0x4c(sp)
sw a2,0x50(sp)
sw a3,0x54(sp)
lw v0,-0x1cd4(s0)
sw a0,0x48(sp)
or a0,zero,zero
sw gp,0x20(sp)
sw ra,0x44(sp)
lw v1,0x18(v0)
lw a3,0x10(v0)
lw t0,0x14(v0)
lw a1,0x8(v0)
lw a2,0xc(v0)
lw v0,0x1c(v0)
sw v1,0x14(sp)
sw t0,0x10(sp)
bal 0x000507c0
_sw v0,0x18(sp)
lw v1,-0x1cd4(s0)
beq v1,zero,0x0003dc2c
_lw gp,0x20(sp)
sw v0,0xd4(v1)
lw v1,-0x7fd8(gp)
sw v0,-0x1cd4(s0)
lw v0,0x48(sp)
lw ra,0x44(sp)
lw v1,-0x1cd8(v1)
lw s0,0x40(sp)
sw v0,0x8(v1)
lw v0,0x4c(sp)
sw v0,0xc(v1)
lw v0,0x50(sp)
sw v0,0x10(v1)
lw v0,0x54(sp)
sw v0,0x14(v1)
lw v0,0x58(sp)
sw v0,0x18(v1)
lw v0,0x5c(sp)
sw v0,0x1c(v1)
jr ra
_addiu sp,sp,0x48
lw v1,-0x7fd8(gp)
b 0x0003dbe0
_sw v0,-0x1ccc(v1)
(translation_unit "void grammar_current_rule_end\n               (undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n               undefined4 param_5,undefined4 param_6)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  \n  puVar1 = PTR_DAT_0008d618;\n  iVar3 = *(int *)(PTR_DAT_0008d618 + -0x1cd4);\n  uVar4 = symbol_list_sym_new(0,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                              *(undefined4 *)(iVar3 + 0x10),*(undefined4 *)(iVar3 + 0x14),\n                              *(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c));\n  iVar3 = *(int *)(puVar1 + -0x1cd4);\n  if (iVar3 == 0) {\n    *(undefined4 *)(PTR_DAT_0008d618 + -0x1ccc) = uVar4;\n  }\n  else {\n    *(undefined4 *)(iVar3 + 0xd4) = uVar4;\n  }\n  puVar2 = PTR_DAT_0008d618;\n  *(undefined4 *)(puVar1 + -0x1cd4) = uVar4;\n  iVar3 = *(int *)(puVar2 + -0x1cd8);\n  *(undefined4 *)(iVar3 + 8) = param_1;\n  *(undefined4 *)(iVar3 + 0xc) = param_2;\n  *(undefined4 *)(iVar3 + 0x10) = param_3;\n  *(undefined4 *)(iVar3 + 0x14) = param_4;\n  *(undefined4 *)(iVar3 + 0x18) = param_5;\n  *(undefined4 *)(iVar3 + 0x1c) = param_6;\n  return;\n}\n\n" (function_definition "void grammar_current_rule_end\n               (undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n               undefined4 param_5,undefined4 param_6)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  \n  puVar1 = PTR_DAT_0008d618;\n  iVar3 = *(int *)(PTR_DAT_0008d618 + -0x1cd4);\n  uVar4 = symbol_list_sym_new(0,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                              *(undefined4 *)(iVar3 + 0x10),*(undefined4 *)(iVar3 + 0x14),\n                              *(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c));\n  iVar3 = *(int *)(puVar1 + -0x1cd4);\n  if (iVar3 == 0) {\n    *(undefined4 *)(PTR_DAT_0008d618 + -0x1ccc) = uVar4;\n  }\n  else {\n    *(undefined4 *)(iVar3 + 0xd4) = uVar4;\n  }\n  puVar2 = PTR_DAT_0008d618;\n  *(undefined4 *)(puVar1 + -0x1cd4) = uVar4;\n  iVar3 = *(int *)(puVar2 + -0x1cd8);\n  *(undefined4 *)(iVar3 + 8) = param_1;\n  *(undefined4 *)(iVar3 + 0xc) = param_2;\n  *(undefined4 *)(iVar3 + 0x10) = param_3;\n  *(undefined4 *)(iVar3 + 0x14) = param_4;\n  *(undefined4 *)(iVar3 + 0x18) = param_5;\n  *(undefined4 *)(iVar3 + 0x1c) = param_6;\n  return;\n}" primitive_type (function_declarator "grammar_current_rule_end\n               (undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n               undefined4 param_5,undefined4 param_6)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n               undefined4 param_5,undefined4 param_6)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  \n  puVar1 = PTR_DAT_0008d618;\n  iVar3 = *(int *)(PTR_DAT_0008d618 + -0x1cd4);\n  uVar4 = symbol_list_sym_new(0,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                              *(undefined4 *)(iVar3 + 0x10),*(undefined4 *)(iVar3 + 0x14),\n                              *(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c));\n  iVar3 = *(int *)(puVar1 + -0x1cd4);\n  if (iVar3 == 0) {\n    *(undefined4 *)(PTR_DAT_0008d618 + -0x1ccc) = uVar4;\n  }\n  else {\n    *(undefined4 *)(iVar3 + 0xd4) = uVar4;\n  }\n  puVar2 = PTR_DAT_0008d618;\n  *(undefined4 *)(puVar1 + -0x1cd4) = uVar4;\n  iVar3 = *(int *)(puVar2 + -0x1cd8);\n  *(undefined4 *)(iVar3 + 8) = param_1;\n  *(undefined4 *)(iVar3 + 0xc) = param_2;\n  *(undefined4 *)(iVar3 + 0x10) = param_3;\n  *(undefined4 *)(iVar3 + 0x14) = param_4;\n  *(undefined4 *)(iVar3 + 0x18) = param_5;\n  *(undefined4 *)(iVar3 + 0x1c) = param_6;\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (expression_statement "puVar1 = PTR_DAT_0008d618;" (assignment_expression "puVar1 = PTR_DAT_0008d618" identifier = identifier) ;) (expression_statement "iVar3 = *(int *)(PTR_DAT_0008d618 + -0x1cd4);" (assignment_expression "iVar3 = *(int *)(PTR_DAT_0008d618 + -0x1cd4)" identifier = (pointer_expression "*(int *)(PTR_DAT_0008d618 + -0x1cd4)" * (cast_expression "(int *)(PTR_DAT_0008d618 + -0x1cd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0008d618 + -0x1cd4)" ( (binary_expression "PTR_DAT_0008d618 + -0x1cd4" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = symbol_list_sym_new(0,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                              *(undefined4 *)(iVar3 + 0x10),*(undefined4 *)(iVar3 + 0x14),\n                              *(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c));" (assignment_expression "uVar4 = symbol_list_sym_new(0,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                              *(undefined4 *)(iVar3 + 0x10),*(undefined4 *)(iVar3 + 0x14),\n                              *(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c))" identifier = (call_expression "symbol_list_sym_new(0,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                              *(undefined4 *)(iVar3 + 0x10),*(undefined4 *)(iVar3 + 0x14),\n                              *(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c))" identifier (argument_list "(0,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                              *(undefined4 *)(iVar3 + 0x10),*(undefined4 *)(iVar3 + 0x14),\n                              *(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c))" ( number_literal , (pointer_expression "*(undefined4 *)(iVar3 + 8)" * (cast_expression "(undefined4 *)(iVar3 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar3 + 0xc)" * (cast_expression "(undefined4 *)(iVar3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar3 + 0x10)" * (cast_expression "(undefined4 *)(iVar3 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar3 + 0x14)" * (cast_expression "(undefined4 *)(iVar3 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar3 + 0x18)" * (cast_expression "(undefined4 *)(iVar3 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar3 + 0x1c)" * (cast_expression "(undefined4 *)(iVar3 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "iVar3 = *(int *)(puVar1 + -0x1cd4);" (assignment_expression "iVar3 = *(int *)(puVar1 + -0x1cd4)" identifier = (pointer_expression "*(int *)(puVar1 + -0x1cd4)" * (cast_expression "(int *)(puVar1 + -0x1cd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x1cd4)" ( (binary_expression "puVar1 + -0x1cd4" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) {\n    *(undefined4 *)(PTR_DAT_0008d618 + -0x1ccc) = uVar4;\n  }\n  else {\n    *(undefined4 *)(iVar3 + 0xd4) = uVar4;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    *(undefined4 *)(PTR_DAT_0008d618 + -0x1ccc) = uVar4;\n  }" { (expression_statement "*(undefined4 *)(PTR_DAT_0008d618 + -0x1ccc) = uVar4;" (assignment_expression "*(undefined4 *)(PTR_DAT_0008d618 + -0x1ccc) = uVar4" (pointer_expression "*(undefined4 *)(PTR_DAT_0008d618 + -0x1ccc)" * (cast_expression "(undefined4 *)(PTR_DAT_0008d618 + -0x1ccc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0008d618 + -0x1ccc)" ( (binary_expression "PTR_DAT_0008d618 + -0x1ccc" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n    *(undefined4 *)(iVar3 + 0xd4) = uVar4;\n  }" else (compound_statement "{\n    *(undefined4 *)(iVar3 + 0xd4) = uVar4;\n  }" { (expression_statement "*(undefined4 *)(iVar3 + 0xd4) = uVar4;" (assignment_expression "*(undefined4 *)(iVar3 + 0xd4) = uVar4" (pointer_expression "*(undefined4 *)(iVar3 + 0xd4)" * (cast_expression "(undefined4 *)(iVar3 + 0xd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd4)" ( (binary_expression "iVar3 + 0xd4" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "puVar2 = PTR_DAT_0008d618;" (assignment_expression "puVar2 = PTR_DAT_0008d618" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar1 + -0x1cd4) = uVar4;" (assignment_expression "*(undefined4 *)(puVar1 + -0x1cd4) = uVar4" (pointer_expression "*(undefined4 *)(puVar1 + -0x1cd4)" * (cast_expression "(undefined4 *)(puVar1 + -0x1cd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x1cd4)" ( (binary_expression "puVar1 + -0x1cd4" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar3 = *(int *)(puVar2 + -0x1cd8);" (assignment_expression "iVar3 = *(int *)(puVar2 + -0x1cd8)" identifier = (pointer_expression "*(int *)(puVar2 + -0x1cd8)" * (cast_expression "(int *)(puVar2 + -0x1cd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x1cd8)" ( (binary_expression "puVar2 + -0x1cd8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar3 + 8) = param_1;" (assignment_expression "*(undefined4 *)(iVar3 + 8) = param_1" (pointer_expression "*(undefined4 *)(iVar3 + 8)" * (cast_expression "(undefined4 *)(iVar3 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar3 + 0xc) = param_2;" (assignment_expression "*(undefined4 *)(iVar3 + 0xc) = param_2" (pointer_expression "*(undefined4 *)(iVar3 + 0xc)" * (cast_expression "(undefined4 *)(iVar3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x10) = param_3;" (assignment_expression "*(undefined4 *)(iVar3 + 0x10) = param_3" (pointer_expression "*(undefined4 *)(iVar3 + 0x10)" * (cast_expression "(undefined4 *)(iVar3 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x14) = param_4;" (assignment_expression "*(undefined4 *)(iVar3 + 0x14) = param_4" (pointer_expression "*(undefined4 *)(iVar3 + 0x14)" * (cast_expression "(undefined4 *)(iVar3 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x18) = param_5;" (assignment_expression "*(undefined4 *)(iVar3 + 0x18) = param_5" (pointer_expression "*(undefined4 *)(iVar3 + 0x18)" * (cast_expression "(undefined4 *)(iVar3 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x1c) = param_6;" (assignment_expression "*(undefined4 *)(iVar3 + 0x1c) = param_6" (pointer_expression "*(undefined4 *)(iVar3 + 0x1c)" * (cast_expression "(undefined4 *)(iVar3 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Unknown calling convention */\n/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nvoid grammar_current_rule_end(location loc)\n\n{\n  location loc_00;\n  undefined *puVar1;\n  symbol_list *psVar2;\n  int iVar3;\n  undefined4 in_a0;\n  undefined4 in_a1;\n  undefined4 in_a2;\n  undefined4 in_a3;\n  undefined4 in_stack_ffffffd4;\n  undefined1 *puVar4;\n  int in_stack_ffffffdc;\n  \n  puVar1 = PTR_saved_sigactions_28__sa_resv_0__0008d618;\n  puVar4 = &_gp;\n  loc_00.start = (boundary)\n                 *(undefined1 (*) [12])\n                  (*(int *)(PTR_saved_sigactions_28__sa_resv_0__0008d618 + -0x1cd4) + 0x14);\n  loc_00.end.file = (uniqstr)in_stack_ffffffd4;\n  loc_00.end.line = (int)&_gp;\n  loc_00.end.column = in_stack_ffffffdc;\n  psVar2 = symbol_list_sym_new((symbol *)0x0,loc_00);\n  iVar3 = *(int *)(puVar1 + -0x1cd4);\n  if (iVar3 == 0) {\n    *(symbol_list **)(*(int *)(puVar4 + -0x7fd8) + -0x1ccc) = psVar2;\n  }\n  else {\n    *(symbol_list **)(iVar3 + 0xd4) = psVar2;\n  }\n  iVar3 = *(int *)(puVar4 + -0x7fd8);\n  *(symbol_list **)(puVar1 + -0x1cd4) = psVar2;\n  iVar3 = *(int *)(iVar3 + -0x1cd8);\n  *(undefined4 *)(iVar3 + 8) = in_a0;\n  *(undefined4 *)(iVar3 + 0xc) = in_a1;\n  *(undefined4 *)(iVar3 + 0x10) = in_a2;\n  *(undefined4 *)(iVar3 + 0x14) = in_a3;\n  *(int *)(iVar3 + 0x18) = loc.end.line;\n  *(int *)(iVar3 + 0x1c) = loc.end.column;\n  return;\n}\n\n" comment comment (function_definition "void grammar_current_rule_end(location loc)\n\n{\n  location loc_00;\n  undefined *puVar1;\n  symbol_list *psVar2;\n  int iVar3;\n  undefined4 in_a0;\n  undefined4 in_a1;\n  undefined4 in_a2;\n  undefined4 in_a3;\n  undefined4 in_stack_ffffffd4;\n  undefined1 *puVar4;\n  int in_stack_ffffffdc;\n  \n  puVar1 = PTR_saved_sigactions_28__sa_resv_0__0008d618;\n  puVar4 = &_gp;\n  loc_00.start = (boundary)\n                 *(undefined1 (*) [12])\n                  (*(int *)(PTR_saved_sigactions_28__sa_resv_0__0008d618 + -0x1cd4) + 0x14);\n  loc_00.end.file = (uniqstr)in_stack_ffffffd4;\n  loc_00.end.line = (int)&_gp;\n  loc_00.end.column = in_stack_ffffffdc;\n  psVar2 = symbol_list_sym_new((symbol *)0x0,loc_00);\n  iVar3 = *(int *)(puVar1 + -0x1cd4);\n  if (iVar3 == 0) {\n    *(symbol_list **)(*(int *)(puVar4 + -0x7fd8) + -0x1ccc) = psVar2;\n  }\n  else {\n    *(symbol_list **)(iVar3 + 0xd4) = psVar2;\n  }\n  iVar3 = *(int *)(puVar4 + -0x7fd8);\n  *(symbol_list **)(puVar1 + -0x1cd4) = psVar2;\n  iVar3 = *(int *)(iVar3 + -0x1cd8);\n  *(undefined4 *)(iVar3 + 8) = in_a0;\n  *(undefined4 *)(iVar3 + 0xc) = in_a1;\n  *(undefined4 *)(iVar3 + 0x10) = in_a2;\n  *(undefined4 *)(iVar3 + 0x14) = in_a3;\n  *(int *)(iVar3 + 0x18) = loc.end.line;\n  *(int *)(iVar3 + 0x1c) = loc.end.column;\n  return;\n}" primitive_type (function_declarator "grammar_current_rule_end(location loc)" identifier (parameter_list "(location loc)" ( (parameter_declaration "location loc" type_identifier identifier) ))) (compound_statement "{\n  location loc_00;\n  undefined *puVar1;\n  symbol_list *psVar2;\n  int iVar3;\n  undefined4 in_a0;\n  undefined4 in_a1;\n  undefined4 in_a2;\n  undefined4 in_a3;\n  undefined4 in_stack_ffffffd4;\n  undefined1 *puVar4;\n  int in_stack_ffffffdc;\n  \n  puVar1 = PTR_saved_sigactions_28__sa_resv_0__0008d618;\n  puVar4 = &_gp;\n  loc_00.start = (boundary)\n                 *(undefined1 (*) [12])\n                  (*(int *)(PTR_saved_sigactions_28__sa_resv_0__0008d618 + -0x1cd4) + 0x14);\n  loc_00.end.file = (uniqstr)in_stack_ffffffd4;\n  loc_00.end.line = (int)&_gp;\n  loc_00.end.column = in_stack_ffffffdc;\n  psVar2 = symbol_list_sym_new((symbol *)0x0,loc_00);\n  iVar3 = *(int *)(puVar1 + -0x1cd4);\n  if (iVar3 == 0) {\n    *(symbol_list **)(*(int *)(puVar4 + -0x7fd8) + -0x1ccc) = psVar2;\n  }\n  else {\n    *(symbol_list **)(iVar3 + 0xd4) = psVar2;\n  }\n  iVar3 = *(int *)(puVar4 + -0x7fd8);\n  *(symbol_list **)(puVar1 + -0x1cd4) = psVar2;\n  iVar3 = *(int *)(iVar3 + -0x1cd8);\n  *(undefined4 *)(iVar3 + 8) = in_a0;\n  *(undefined4 *)(iVar3 + 0xc) = in_a1;\n  *(undefined4 *)(iVar3 + 0x10) = in_a2;\n  *(undefined4 *)(iVar3 + 0x14) = in_a3;\n  *(int *)(iVar3 + 0x18) = loc.end.line;\n  *(int *)(iVar3 + 0x1c) = loc.end.column;\n  return;\n}" { (declaration "location loc_00;" type_identifier identifier ;) (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "symbol_list *psVar2;" type_identifier (pointer_declarator "*psVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 in_a0;" type_identifier identifier ;) (declaration "undefined4 in_a1;" type_identifier identifier ;) (declaration "undefined4 in_a2;" type_identifier identifier ;) (declaration "undefined4 in_a3;" type_identifier identifier ;) (declaration "undefined4 in_stack_ffffffd4;" type_identifier identifier ;) (declaration "undefined1 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int in_stack_ffffffdc;" primitive_type identifier ;) (expression_statement "puVar1 = PTR_saved_sigactions_28__sa_resv_0__0008d618;" (assignment_expression "puVar1 = PTR_saved_sigactions_28__sa_resv_0__0008d618" identifier = identifier) ;) (expression_statement "puVar4 = &_gp;" (assignment_expression "puVar4 = &_gp" identifier = (pointer_expression "&_gp" & identifier)) ;) (expression_statement "loc_00.start = (boundary)\n                 *(undefined1 (*) [12])\n                  (*(int *)(PTR_saved_sigactions_28__sa_resv_0__0008d618 + -0x1cd4) + 0x14);" (assignment_expression "loc_00.start = (boundary)\n                 *(undefined1 (*) [12])\n                  (*(int *)(PTR_saved_sigactions_28__sa_resv_0__0008d618 + -0x1cd4) + 0x14)" (field_expression "loc_00.start" identifier . field_identifier) = (binary_expression "(boundary)\n                 *(undefined1 (*) [12])\n                  (*(int *)(PTR_saved_sigactions_28__sa_resv_0__0008d618 + -0x1cd4) + 0x14)" (parenthesized_expression "(boundary)" ( identifier )) * (cast_expression "(undefined1 (*) [12])\n                  (*(int *)(PTR_saved_sigactions_28__sa_resv_0__0008d618 + -0x1cd4) + 0x14)" ( (type_descriptor "undefined1 (*) [12]" type_identifier (abstract_array_declarator "(*) [12]" (abstract_parenthesized_declarator "(*)" ( (abstract_pointer_declarator "*" *) )) [ number_literal ])) ) (parenthesized_expression "(*(int *)(PTR_saved_sigactions_28__sa_resv_0__0008d618 + -0x1cd4) + 0x14)" ( (binary_expression "*(int *)(PTR_saved_sigactions_28__sa_resv_0__0008d618 + -0x1cd4) + 0x14" (pointer_expression "*(int *)(PTR_saved_sigactions_28__sa_resv_0__0008d618 + -0x1cd4)" * (cast_expression "(int *)(PTR_saved_sigactions_28__sa_resv_0__0008d618 + -0x1cd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_saved_sigactions_28__sa_resv_0__0008d618 + -0x1cd4)" ( (binary_expression "PTR_saved_sigactions_28__sa_resv_0__0008d618 + -0x1cd4" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "loc_00.end.file = (uniqstr)in_stack_ffffffd4;" (assignment_expression "loc_00.end.file = (uniqstr)in_stack_ffffffd4" (field_expression "loc_00.end.file" (field_expression "loc_00.end" identifier . field_identifier) . field_identifier) = (cast_expression "(uniqstr)in_stack_ffffffd4" ( (type_descriptor "uniqstr" type_identifier) ) identifier)) ;) (expression_statement "loc_00.end.line = (int)&_gp;" (assignment_expression "loc_00.end.line = (int)&_gp" (field_expression "loc_00.end.line" (field_expression "loc_00.end" identifier . field_identifier) . field_identifier) = (cast_expression "(int)&_gp" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&_gp" & identifier))) ;) (expression_statement "loc_00.end.column = in_stack_ffffffdc;" (assignment_expression "loc_00.end.column = in_stack_ffffffdc" (field_expression "loc_00.end.column" (field_expression "loc_00.end" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "psVar2 = symbol_list_sym_new((symbol *)0x0,loc_00);" (assignment_expression "psVar2 = symbol_list_sym_new((symbol *)0x0,loc_00)" identifier = (call_expression "symbol_list_sym_new((symbol *)0x0,loc_00)" identifier (argument_list "((symbol *)0x0,loc_00)" ( (cast_expression "(symbol *)0x0" ( (type_descriptor "symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (expression_statement "iVar3 = *(int *)(puVar1 + -0x1cd4);" (assignment_expression "iVar3 = *(int *)(puVar1 + -0x1cd4)" identifier = (pointer_expression "*(int *)(puVar1 + -0x1cd4)" * (cast_expression "(int *)(puVar1 + -0x1cd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x1cd4)" ( (binary_expression "puVar1 + -0x1cd4" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) {\n    *(symbol_list **)(*(int *)(puVar4 + -0x7fd8) + -0x1ccc) = psVar2;\n  }\n  else {\n    *(symbol_list **)(iVar3 + 0xd4) = psVar2;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    *(symbol_list **)(*(int *)(puVar4 + -0x7fd8) + -0x1ccc) = psVar2;\n  }" { (expression_statement "*(symbol_list **)(*(int *)(puVar4 + -0x7fd8) + -0x1ccc) = psVar2;" (assignment_expression "*(symbol_list **)(*(int *)(puVar4 + -0x7fd8) + -0x1ccc) = psVar2" (pointer_expression "*(symbol_list **)(*(int *)(puVar4 + -0x7fd8) + -0x1ccc)" * (cast_expression "(symbol_list **)(*(int *)(puVar4 + -0x7fd8) + -0x1ccc)" ( (type_descriptor "symbol_list **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar4 + -0x7fd8) + -0x1ccc)" ( (binary_expression "*(int *)(puVar4 + -0x7fd8) + -0x1ccc" (pointer_expression "*(int *)(puVar4 + -0x7fd8)" * (cast_expression "(int *)(puVar4 + -0x7fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x7fd8)" ( (binary_expression "puVar4 + -0x7fd8" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n    *(symbol_list **)(iVar3 + 0xd4) = psVar2;\n  }" else (compound_statement "{\n    *(symbol_list **)(iVar3 + 0xd4) = psVar2;\n  }" { (expression_statement "*(symbol_list **)(iVar3 + 0xd4) = psVar2;" (assignment_expression "*(symbol_list **)(iVar3 + 0xd4) = psVar2" (pointer_expression "*(symbol_list **)(iVar3 + 0xd4)" * (cast_expression "(symbol_list **)(iVar3 + 0xd4)" ( (type_descriptor "symbol_list **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0xd4)" ( (binary_expression "iVar3 + 0xd4" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar3 = *(int *)(puVar4 + -0x7fd8);" (assignment_expression "iVar3 = *(int *)(puVar4 + -0x7fd8)" identifier = (pointer_expression "*(int *)(puVar4 + -0x7fd8)" * (cast_expression "(int *)(puVar4 + -0x7fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x7fd8)" ( (binary_expression "puVar4 + -0x7fd8" identifier + number_literal) ))))) ;) (expression_statement "*(symbol_list **)(puVar1 + -0x1cd4) = psVar2;" (assignment_expression "*(symbol_list **)(puVar1 + -0x1cd4) = psVar2" (pointer_expression "*(symbol_list **)(puVar1 + -0x1cd4)" * (cast_expression "(symbol_list **)(puVar1 + -0x1cd4)" ( (type_descriptor "symbol_list **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + -0x1cd4)" ( (binary_expression "puVar1 + -0x1cd4" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar3 = *(int *)(iVar3 + -0x1cd8);" (assignment_expression "iVar3 = *(int *)(iVar3 + -0x1cd8)" identifier = (pointer_expression "*(int *)(iVar3 + -0x1cd8)" * (cast_expression "(int *)(iVar3 + -0x1cd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + -0x1cd8)" ( (binary_expression "iVar3 + -0x1cd8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar3 + 8) = in_a0;" (assignment_expression "*(undefined4 *)(iVar3 + 8) = in_a0" (pointer_expression "*(undefined4 *)(iVar3 + 8)" * (cast_expression "(undefined4 *)(iVar3 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar3 + 0xc) = in_a1;" (assignment_expression "*(undefined4 *)(iVar3 + 0xc) = in_a1" (pointer_expression "*(undefined4 *)(iVar3 + 0xc)" * (cast_expression "(undefined4 *)(iVar3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x10) = in_a2;" (assignment_expression "*(undefined4 *)(iVar3 + 0x10) = in_a2" (pointer_expression "*(undefined4 *)(iVar3 + 0x10)" * (cast_expression "(undefined4 *)(iVar3 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x14) = in_a3;" (assignment_expression "*(undefined4 *)(iVar3 + 0x14) = in_a3" (pointer_expression "*(undefined4 *)(iVar3 + 0x14)" * (cast_expression "(undefined4 *)(iVar3 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar3 + 0x18) = loc.end.line;" (assignment_expression "*(int *)(iVar3 + 0x18) = loc.end.line" (pointer_expression "*(int *)(iVar3 + 0x18)" * (cast_expression "(int *)(iVar3 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) )))) = (field_expression "loc.end.line" (field_expression "loc.end" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(int *)(iVar3 + 0x1c) = loc.end.column;" (assignment_expression "*(int *)(iVar3 + 0x1c) = loc.end.column" (pointer_expression "*(int *)(iVar3 + 0x1c)" * (cast_expression "(int *)(iVar3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) = (field_expression "loc.end.column" (field_expression "loc.end" identifier . field_identifier) . field_identifier)) ;) (return_statement "return;" return ;) })))
(translation_unit "void grammar_current_rule_end\n               (undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n               undefined4 param_5,undefined4 param_6)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  \n  puVar1 = PTR_DAT_0008d618;\n  iVar3 = *(int *)(PTR_DAT_0008d618 + -0x1cd4);\n  uVar4 = symbol_list_sym_new(0,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                              *(undefined4 *)(iVar3 + 0x10),*(undefined4 *)(iVar3 + 0x14),\n                              *(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c));\n  iVar3 = *(int *)(puVar1 + -0x1cd4);\n  if (iVar3 == 0) {\n    *(undefined4 *)(PTR_DAT_0008d618 + -0x1ccc) = uVar4;\n  }\n  else {\n    *(undefined4 *)(iVar3 + 0xd4) = uVar4;\n  }\n  puVar2 = PTR_DAT_0008d618;\n  *(undefined4 *)(puVar1 + -0x1cd4) = uVar4;\n  iVar3 = *(int *)(puVar2 + -0x1cd8);\n  *(undefined4 *)(iVar3 + 8) = param_1;\n  *(undefined4 *)(iVar3 + 0xc) = param_2;\n  *(undefined4 *)(iVar3 + 0x10) = param_3;\n  *(undefined4 *)(iVar3 + 0x14) = param_4;\n  *(undefined4 *)(iVar3 + 0x18) = param_5;\n  *(undefined4 *)(iVar3 + 0x1c) = param_6;\n  return;\n}\n\n" (function_definition "void grammar_current_rule_end\n               (undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n               undefined4 param_5,undefined4 param_6)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  \n  puVar1 = PTR_DAT_0008d618;\n  iVar3 = *(int *)(PTR_DAT_0008d618 + -0x1cd4);\n  uVar4 = symbol_list_sym_new(0,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                              *(undefined4 *)(iVar3 + 0x10),*(undefined4 *)(iVar3 + 0x14),\n                              *(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c));\n  iVar3 = *(int *)(puVar1 + -0x1cd4);\n  if (iVar3 == 0) {\n    *(undefined4 *)(PTR_DAT_0008d618 + -0x1ccc) = uVar4;\n  }\n  else {\n    *(undefined4 *)(iVar3 + 0xd4) = uVar4;\n  }\n  puVar2 = PTR_DAT_0008d618;\n  *(undefined4 *)(puVar1 + -0x1cd4) = uVar4;\n  iVar3 = *(int *)(puVar2 + -0x1cd8);\n  *(undefined4 *)(iVar3 + 8) = param_1;\n  *(undefined4 *)(iVar3 + 0xc) = param_2;\n  *(undefined4 *)(iVar3 + 0x10) = param_3;\n  *(undefined4 *)(iVar3 + 0x14) = param_4;\n  *(undefined4 *)(iVar3 + 0x18) = param_5;\n  *(undefined4 *)(iVar3 + 0x1c) = param_6;\n  return;\n}" primitive_type (function_declarator "grammar_current_rule_end\n               (undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n               undefined4 param_5,undefined4 param_6)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n               undefined4 param_5,undefined4 param_6)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  \n  puVar1 = PTR_DAT_0008d618;\n  iVar3 = *(int *)(PTR_DAT_0008d618 + -0x1cd4);\n  uVar4 = symbol_list_sym_new(0,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                              *(undefined4 *)(iVar3 + 0x10),*(undefined4 *)(iVar3 + 0x14),\n                              *(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c));\n  iVar3 = *(int *)(puVar1 + -0x1cd4);\n  if (iVar3 == 0) {\n    *(undefined4 *)(PTR_DAT_0008d618 + -0x1ccc) = uVar4;\n  }\n  else {\n    *(undefined4 *)(iVar3 + 0xd4) = uVar4;\n  }\n  puVar2 = PTR_DAT_0008d618;\n  *(undefined4 *)(puVar1 + -0x1cd4) = uVar4;\n  iVar3 = *(int *)(puVar2 + -0x1cd8);\n  *(undefined4 *)(iVar3 + 8) = param_1;\n  *(undefined4 *)(iVar3 + 0xc) = param_2;\n  *(undefined4 *)(iVar3 + 0x10) = param_3;\n  *(undefined4 *)(iVar3 + 0x14) = param_4;\n  *(undefined4 *)(iVar3 + 0x18) = param_5;\n  *(undefined4 *)(iVar3 + 0x1c) = param_6;\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (expression_statement "puVar1 = PTR_DAT_0008d618;" (assignment_expression "puVar1 = PTR_DAT_0008d618" identifier = identifier) ;) (expression_statement "iVar3 = *(int *)(PTR_DAT_0008d618 + -0x1cd4);" (assignment_expression "iVar3 = *(int *)(PTR_DAT_0008d618 + -0x1cd4)" identifier = (pointer_expression "*(int *)(PTR_DAT_0008d618 + -0x1cd4)" * (cast_expression "(int *)(PTR_DAT_0008d618 + -0x1cd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0008d618 + -0x1cd4)" ( (binary_expression "PTR_DAT_0008d618 + -0x1cd4" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = symbol_list_sym_new(0,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                              *(undefined4 *)(iVar3 + 0x10),*(undefined4 *)(iVar3 + 0x14),\n                              *(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c));" (assignment_expression "uVar4 = symbol_list_sym_new(0,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                              *(undefined4 *)(iVar3 + 0x10),*(undefined4 *)(iVar3 + 0x14),\n                              *(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c))" identifier = (call_expression "symbol_list_sym_new(0,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                              *(undefined4 *)(iVar3 + 0x10),*(undefined4 *)(iVar3 + 0x14),\n                              *(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c))" identifier (argument_list "(0,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                              *(undefined4 *)(iVar3 + 0x10),*(undefined4 *)(iVar3 + 0x14),\n                              *(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c))" ( number_literal , (pointer_expression "*(undefined4 *)(iVar3 + 8)" * (cast_expression "(undefined4 *)(iVar3 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar3 + 0xc)" * (cast_expression "(undefined4 *)(iVar3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar3 + 0x10)" * (cast_expression "(undefined4 *)(iVar3 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar3 + 0x14)" * (cast_expression "(undefined4 *)(iVar3 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar3 + 0x18)" * (cast_expression "(undefined4 *)(iVar3 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar3 + 0x1c)" * (cast_expression "(undefined4 *)(iVar3 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "iVar3 = *(int *)(puVar1 + -0x1cd4);" (assignment_expression "iVar3 = *(int *)(puVar1 + -0x1cd4)" identifier = (pointer_expression "*(int *)(puVar1 + -0x1cd4)" * (cast_expression "(int *)(puVar1 + -0x1cd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x1cd4)" ( (binary_expression "puVar1 + -0x1cd4" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) {\n    *(undefined4 *)(PTR_DAT_0008d618 + -0x1ccc) = uVar4;\n  }\n  else {\n    *(undefined4 *)(iVar3 + 0xd4) = uVar4;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    *(undefined4 *)(PTR_DAT_0008d618 + -0x1ccc) = uVar4;\n  }" { (expression_statement "*(undefined4 *)(PTR_DAT_0008d618 + -0x1ccc) = uVar4;" (assignment_expression "*(undefined4 *)(PTR_DAT_0008d618 + -0x1ccc) = uVar4" (pointer_expression "*(undefined4 *)(PTR_DAT_0008d618 + -0x1ccc)" * (cast_expression "(undefined4 *)(PTR_DAT_0008d618 + -0x1ccc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0008d618 + -0x1ccc)" ( (binary_expression "PTR_DAT_0008d618 + -0x1ccc" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n    *(undefined4 *)(iVar3 + 0xd4) = uVar4;\n  }" else (compound_statement "{\n    *(undefined4 *)(iVar3 + 0xd4) = uVar4;\n  }" { (expression_statement "*(undefined4 *)(iVar3 + 0xd4) = uVar4;" (assignment_expression "*(undefined4 *)(iVar3 + 0xd4) = uVar4" (pointer_expression "*(undefined4 *)(iVar3 + 0xd4)" * (cast_expression "(undefined4 *)(iVar3 + 0xd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd4)" ( (binary_expression "iVar3 + 0xd4" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "puVar2 = PTR_DAT_0008d618;" (assignment_expression "puVar2 = PTR_DAT_0008d618" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar1 + -0x1cd4) = uVar4;" (assignment_expression "*(undefined4 *)(puVar1 + -0x1cd4) = uVar4" (pointer_expression "*(undefined4 *)(puVar1 + -0x1cd4)" * (cast_expression "(undefined4 *)(puVar1 + -0x1cd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x1cd4)" ( (binary_expression "puVar1 + -0x1cd4" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar3 = *(int *)(puVar2 + -0x1cd8);" (assignment_expression "iVar3 = *(int *)(puVar2 + -0x1cd8)" identifier = (pointer_expression "*(int *)(puVar2 + -0x1cd8)" * (cast_expression "(int *)(puVar2 + -0x1cd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x1cd8)" ( (binary_expression "puVar2 + -0x1cd8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar3 + 8) = param_1;" (assignment_expression "*(undefined4 *)(iVar3 + 8) = param_1" (pointer_expression "*(undefined4 *)(iVar3 + 8)" * (cast_expression "(undefined4 *)(iVar3 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar3 + 0xc) = param_2;" (assignment_expression "*(undefined4 *)(iVar3 + 0xc) = param_2" (pointer_expression "*(undefined4 *)(iVar3 + 0xc)" * (cast_expression "(undefined4 *)(iVar3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x10) = param_3;" (assignment_expression "*(undefined4 *)(iVar3 + 0x10) = param_3" (pointer_expression "*(undefined4 *)(iVar3 + 0x10)" * (cast_expression "(undefined4 *)(iVar3 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x14) = param_4;" (assignment_expression "*(undefined4 *)(iVar3 + 0x14) = param_4" (pointer_expression "*(undefined4 *)(iVar3 + 0x14)" * (cast_expression "(undefined4 *)(iVar3 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x18) = param_5;" (assignment_expression "*(undefined4 *)(iVar3 + 0x18) = param_5" (pointer_expression "*(undefined4 *)(iVar3 + 0x18)" * (cast_expression "(undefined4 *)(iVar3 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x1c) = param_6;" (assignment_expression "*(undefined4 *)(iVar3 + 0x1c) = param_6" (pointer_expression "*(undefined4 *)(iVar3 + 0x1c)" * (cast_expression "(undefined4 *)(iVar3 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (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 = 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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) ;) (return_statement return ;) })))
(function_definition "void grammar_current_rule_end\n               (undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n               undefined4 param_5,undefined4 param_6)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  \n  puVar1 = PTR_DAT_0008d618;\n  iVar3 = *(int *)(PTR_DAT_0008d618 + -0x1cd4);\n  uVar4 = symbol_list_sym_new(0,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                              *(undefined4 *)(iVar3 + 0x10),*(undefined4 *)(iVar3 + 0x14),\n                              *(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c));\n  iVar3 = *(int *)(puVar1 + -0x1cd4);\n  if (iVar3 == 0) {\n    *(undefined4 *)(PTR_DAT_0008d618 + -0x1ccc) = uVar4;\n  }\n  else {\n    *(undefined4 *)(iVar3 + 0xd4) = uVar4;\n  }\n  puVar2 = PTR_DAT_0008d618;\n  *(undefined4 *)(puVar1 + -0x1cd4) = uVar4;\n  iVar3 = *(int *)(puVar2 + -0x1cd8);\n  *(undefined4 *)(iVar3 + 8) = param_1;\n  *(undefined4 *)(iVar3 + 0xc) = param_2;\n  *(undefined4 *)(iVar3 + 0x10) = param_3;\n  *(undefined4 *)(iVar3 + 0x14) = param_4;\n  *(undefined4 *)(iVar3 + 0x18) = param_5;\n  *(undefined4 *)(iVar3 + 0x1c) = param_6;\n  return;\n}" (primitive_type "void") (function_declarator "grammar_current_rule_end\n               (undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n               undefined4 param_5,undefined4 param_6)" (identifier "grammar_current_rule_end") (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n               undefined4 param_5,undefined4 param_6)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) (, ",") (parameter_declaration "undefined4 param_6" (type_identifier "undefined4") (identifier "param_6")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  \n  puVar1 = PTR_DAT_0008d618;\n  iVar3 = *(int *)(PTR_DAT_0008d618 + -0x1cd4);\n  uVar4 = symbol_list_sym_new(0,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                              *(undefined4 *)(iVar3 + 0x10),*(undefined4 *)(iVar3 + 0x14),\n                              *(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c));\n  iVar3 = *(int *)(puVar1 + -0x1cd4);\n  if (iVar3 == 0) {\n    *(undefined4 *)(PTR_DAT_0008d618 + -0x1ccc) = uVar4;\n  }\n  else {\n    *(undefined4 *)(iVar3 + 0xd4) = uVar4;\n  }\n  puVar2 = PTR_DAT_0008d618;\n  *(undefined4 *)(puVar1 + -0x1cd4) = uVar4;\n  iVar3 = *(int *)(puVar2 + -0x1cd8);\n  *(undefined4 *)(iVar3 + 8) = param_1;\n  *(undefined4 *)(iVar3 + 0xc) = param_2;\n  *(undefined4 *)(iVar3 + 0x10) = param_3;\n  *(undefined4 *)(iVar3 + 0x14) = param_4;\n  *(undefined4 *)(iVar3 + 0x18) = param_5;\n  *(undefined4 *)(iVar3 + 0x1c) = param_6;\n  return;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (expression_statement "puVar1 = PTR_DAT_0008d618;" (assignment_expression "puVar1 = PTR_DAT_0008d618" (identifier "puVar1") (= "=") (identifier "PTR_DAT_0008d618")) (; ";")) (expression_statement "iVar3 = *(int *)(PTR_DAT_0008d618 + -0x1cd4);" (assignment_expression "iVar3 = *(int *)(PTR_DAT_0008d618 + -0x1cd4)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(PTR_DAT_0008d618 + -0x1cd4)" (* "*") (cast_expression "(int *)(PTR_DAT_0008d618 + -0x1cd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0008d618 + -0x1cd4)" (( "(") (binary_expression "PTR_DAT_0008d618 + -0x1cd4" (identifier "PTR_DAT_0008d618") (+ "+") (number_literal "-0x1cd4")) () ")"))))) (; ";")) (expression_statement "uVar4 = symbol_list_sym_new(0,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                              *(undefined4 *)(iVar3 + 0x10),*(undefined4 *)(iVar3 + 0x14),\n                              *(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c));" (assignment_expression "uVar4 = symbol_list_sym_new(0,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                              *(undefined4 *)(iVar3 + 0x10),*(undefined4 *)(iVar3 + 0x14),\n                              *(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c))" (identifier "uVar4") (= "=") (call_expression "symbol_list_sym_new(0,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                              *(undefined4 *)(iVar3 + 0x10),*(undefined4 *)(iVar3 + 0x14),\n                              *(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c))" (identifier "symbol_list_sym_new") (argument_list "(0,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),\n                              *(undefined4 *)(iVar3 + 0x10),*(undefined4 *)(iVar3 + 0x14),\n                              *(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c))" (( "(") (number_literal "0") (, ",") (pointer_expression "*(undefined4 *)(iVar3 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 8)" (( "(") (binary_expression "iVar3 + 8" (identifier "iVar3") (+ "+") (number_literal "8")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(iVar3 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(iVar3 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x10)" (( "(") (binary_expression "iVar3 + 0x10" (identifier "iVar3") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(iVar3 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x14)" (( "(") (binary_expression "iVar3 + 0x14" (identifier "iVar3") (+ "+") (number_literal "0x14")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(iVar3 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x18)" (( "(") (binary_expression "iVar3 + 0x18" (identifier "iVar3") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(iVar3 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1c)" (( "(") (binary_expression "iVar3 + 0x1c" (identifier "iVar3") (+ "+") (number_literal "0x1c")) () ")")))) () ")")))) (; ";")) (expression_statement "iVar3 = *(int *)(puVar1 + -0x1cd4);" (assignment_expression "iVar3 = *(int *)(puVar1 + -0x1cd4)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar1 + -0x1cd4)" (* "*") (cast_expression "(int *)(puVar1 + -0x1cd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + -0x1cd4)" (( "(") (binary_expression "puVar1 + -0x1cd4" (identifier "puVar1") (+ "+") (number_literal "-0x1cd4")) () ")"))))) (; ";")) (if_statement "if (iVar3 == 0) {\n    *(undefined4 *)(PTR_DAT_0008d618 + -0x1ccc) = uVar4;\n  }\n  else {\n    *(undefined4 *)(iVar3 + 0xd4) = uVar4;\n  }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *(undefined4 *)(PTR_DAT_0008d618 + -0x1ccc) = uVar4;\n  }" ({ "{") (expression_statement "*(undefined4 *)(PTR_DAT_0008d618 + -0x1ccc) = uVar4;" (assignment_expression "*(undefined4 *)(PTR_DAT_0008d618 + -0x1ccc) = uVar4" (pointer_expression "*(undefined4 *)(PTR_DAT_0008d618 + -0x1ccc)" (* "*") (cast_expression "(undefined4 *)(PTR_DAT_0008d618 + -0x1ccc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0008d618 + -0x1ccc)" (( "(") (binary_expression "PTR_DAT_0008d618 + -0x1ccc" (identifier "PTR_DAT_0008d618") (+ "+") (number_literal "-0x1ccc")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (} "}")) (else_clause "else {\n    *(undefined4 *)(iVar3 + 0xd4) = uVar4;\n  }" (else "else") (compound_statement "{\n    *(undefined4 *)(iVar3 + 0xd4) = uVar4;\n  }" ({ "{") (expression_statement "*(undefined4 *)(iVar3 + 0xd4) = uVar4;" (assignment_expression "*(undefined4 *)(iVar3 + 0xd4) = uVar4" (pointer_expression "*(undefined4 *)(iVar3 + 0xd4)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0xd4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xd4)" (( "(") (binary_expression "iVar3 + 0xd4" (identifier "iVar3") (+ "+") (number_literal "0xd4")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (} "}")))) (expression_statement "puVar2 = PTR_DAT_0008d618;" (assignment_expression "puVar2 = PTR_DAT_0008d618" (identifier "puVar2") (= "=") (identifier "PTR_DAT_0008d618")) (; ";")) (expression_statement "*(undefined4 *)(puVar1 + -0x1cd4) = uVar4;" (assignment_expression "*(undefined4 *)(puVar1 + -0x1cd4) = uVar4" (pointer_expression "*(undefined4 *)(puVar1 + -0x1cd4)" (* "*") (cast_expression "(undefined4 *)(puVar1 + -0x1cd4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + -0x1cd4)" (( "(") (binary_expression "puVar1 + -0x1cd4" (identifier "puVar1") (+ "+") (number_literal "-0x1cd4")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "iVar3 = *(int *)(puVar2 + -0x1cd8);" (assignment_expression "iVar3 = *(int *)(puVar2 + -0x1cd8)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar2 + -0x1cd8)" (* "*") (cast_expression "(int *)(puVar2 + -0x1cd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x1cd8)" (( "(") (binary_expression "puVar2 + -0x1cd8" (identifier "puVar2") (+ "+") (number_literal "-0x1cd8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 8) = param_1;" (assignment_expression "*(undefined4 *)(iVar3 + 8) = param_1" (pointer_expression "*(undefined4 *)(iVar3 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 8)" (( "(") (binary_expression "iVar3 + 8" (identifier "iVar3") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 0xc) = param_2;" (assignment_expression "*(undefined4 *)(iVar3 + 0xc) = param_2" (pointer_expression "*(undefined4 *)(iVar3 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 0x10) = param_3;" (assignment_expression "*(undefined4 *)(iVar3 + 0x10) = param_3" (pointer_expression "*(undefined4 *)(iVar3 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x10)" (( "(") (binary_expression "iVar3 + 0x10" (identifier "iVar3") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 0x14) = param_4;" (assignment_expression "*(undefined4 *)(iVar3 + 0x14) = param_4" (pointer_expression "*(undefined4 *)(iVar3 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x14)" (( "(") (binary_expression "iVar3 + 0x14" (identifier "iVar3") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 0x18) = param_5;" (assignment_expression "*(undefined4 *)(iVar3 + 0x18) = param_5" (pointer_expression "*(undefined4 *)(iVar3 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x18)" (( "(") (binary_expression "iVar3 + 0x18" (identifier "iVar3") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "param_5")) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 0x1c) = param_6;" (assignment_expression "*(undefined4 *)(iVar3 + 0x1c) = param_6" (pointer_expression "*(undefined4 *)(iVar3 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1c)" (( "(") (binary_expression "iVar3 + 0x1c" (identifier "iVar3") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "param_6")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (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))))) (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))))) (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))))) (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))))) (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))))) (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))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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)))) alternative: (else_clause (compound_statement (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: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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))) (return_statement))))

void MASKED
               (undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,
               undefined4 param_5,undefined4 param_6)

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  undefined4 uVar4;
  
  puVar1 = PTR_DAT_0008d618;
  iVar3 = *(int *)(PTR_DAT_0008d618 + -0x1cd4);
  uVar4 = symbol_list_sym_new(0,*(undefined4 *)(iVar3 + 8),*(undefined4 *)(iVar3 + 0xc),
                              *(undefined4 *)(iVar3 + 0x10),*(undefined4 *)(iVar3 + 0x14),
                              *(undefined4 *)(iVar3 + 0x18),*(undefined4 *)(iVar3 + 0x1c));
  iVar3 = *(int *)(puVar1 + -0x1cd4);
  if (iVar3 == 0) {
    *(undefined4 *)(PTR_DAT_0008d618 + -0x1ccc) = uVar4;
  }
  else {
    *(undefined4 *)(iVar3 + 0xd4) = uVar4;
  }
  puVar2 = PTR_DAT_0008d618;
  *(undefined4 *)(puVar1 + -0x1cd4) = uVar4;
  iVar3 = *(int *)(puVar2 + -0x1cd8);
  *(undefined4 *)(iVar3 + 8) = param_1;
  *(undefined4 *)(iVar3 + 0xc) = param_2;
  *(undefined4 *)(iVar3 + 0x10) = param_3;
  *(undefined4 *)(iVar3 + 0x14) = param_4;
  *(undefined4 *)(iVar3 + 0x18) = param_5;
  *(undefined4 *)(iVar3 + 0x1c) = param_6;
  return;
}

