
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */

void script_add_data(void *closurev,int data_token,Expression *val)

{
  bool is_signed;
  undefined *puVar1;
  int size;
  Expression *val_00;
  
  is_signed = false;
  if (data_token == 0x150) {
    size = 8;
  }
  else if (data_token < 0x151) {
    is_signed = true;
    if (data_token == 0x11f) {
      size = 1;
    }
    else {
      is_signed = true;
      if (data_token != 0x13c) goto LAB_0021dd18;
      size = 4;
    }
  }
  else {
    is_signed = true;
    if (data_token != 0x154) {
      if (data_token == 0x15b) {
        gold::Script_sections::add_data
                  ((Script_sections *)(*(int *)((int)closurev + 0x20) + 0xac),8,true,val);
        return;
      }
LAB_0021dd18:
      val_00 = (Expression *)0xc4d;
      puVar1 = PTR_s__0043226c + -0x4d14;
      (*(code *)PTR_do_gold_unreachable_004323c4)(puVar1,0xc4d,PTR_s__0043226c + -0x39f8);
      gold::Script_sections::add_fill((Script_sections *)(*(int *)(puVar1 + 0x20) + 0xac),val_00);
      return;
    }
    size = 2;
  }
  gold::Script_sections::add_data
            ((Script_sections *)(*(int *)((int)closurev + 0x20) + 0xac),size,is_signed,val);
  return;
}



void script_add_data(int param_1,int param_2,Expression *param_3)

{
  bool bVar1;
  int iVar2;
  
  bVar1 = false;
  if (param_2 == 0x150) {
    iVar2 = 8;
  }
  else if (param_2 < 0x151) {
    bVar1 = true;
    if (param_2 == 0x11f) {
      iVar2 = 1;
    }
    else {
      bVar1 = true;
      if (param_2 != 0x13c) goto LAB_0021dd18;
      iVar2 = 4;
    }
  }
  else {
    bVar1 = true;
    if (param_2 != 0x154) {
      if (param_2 == 0x15b) {
        gold::Script_sections::add_data
                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);
        return;
      }
LAB_0021dd18:
      (*(code *)PTR_do_gold_unreachable_004323c4)
                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);
      return;
    }
    iVar2 = 2;
  }
  gold::Script_sections::add_data
            ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),iVar2,bVar1,param_3);
  return;
}


lui gp,0x22
addiu gp,gp,-0x3a8c
addu gp,gp,t9
addiu sp,sp,-0x20
li v0,0x150
sw gp,0x10(sp)
sw ra,0x1c(sp)
beq a1,v0,0x0021dd10
_or v0,zero,zero
slti v0,a1,0x151
beq v0,zero,0x0021dcc8
_li v0,0x154
li v0,0x11f
beq a1,v0,0x0021dd00
_li v0,0x1
li v0,0x13c
bne a1,v0,0x0021dd18
_li v0,0x1
li a1,0x4
lw a0,0x20(a0)
or a3,a2,zero
lw ra,0x1c(sp)
addiu sp,sp,0x20
lw t9,-0x6be8(gp)
or a2,v0,zero
b 0x0020e300
_addiu a0,a0,0xac
beq a1,v0,0x0021dd08
_li v0,0x1
li v0,0x15b
bne a1,v0,0x0021dd18
_li v0,0x1
lw a0,0x20(a0)
lw ra,0x1c(sp)
li a1,0x8
lw t9,-0x6be8(gp)
addiu sp,sp,0x20
addiu a0,a0,0xac
or a3,a2,zero
b 0x0020e300
_or a2,v0,zero
b 0x0021dca8
_li a1,0x1
b 0x0021dca8
_li a1,0x2
b 0x0021dca8
_li a1,0x8
lw a2,-0x7f64(gp)
li a1,0xc4d
lw a0,-0x7f64(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,-0x39f8
jalr t9
_addiu a0,a0,-0x4d14
(translation_unit "void script_add_data(int param_1,int param_2,Expression *param_3)\n\n{\n  bool bVar1;\n  int iVar2;\n  \n  bVar1 = false;\n  if (param_2 == 0x150) {\n    iVar2 = 8;\n  }\n  else if (param_2 < 0x151) {\n    bVar1 = true;\n    if (param_2 == 0x11f) {\n      iVar2 = 1;\n    }\n    else {\n      bVar1 = true;\n      if (param_2 != 0x13c) goto LAB_0021dd18;\n      iVar2 = 4;\n    }\n  }\n  else {\n    bVar1 = true;\n    if (param_2 != 0x154) {\n      if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }\nLAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);\n      return;\n    }\n    iVar2 = 2;\n  }\n  gold::Script_sections::add_data\n            ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),iVar2,bVar1,param_3);\n  return;\n}\n\n" (function_definition "void script_add_data(int param_1,int param_2,Expression *param_3)\n\n{\n  bool bVar1;\n  int iVar2;\n  \n  bVar1 = false;\n  if (param_2 == 0x150) {\n    iVar2 = 8;\n  }\n  else if (param_2 < 0x151) {\n    bVar1 = true;\n    if (param_2 == 0x11f) {\n      iVar2 = 1;\n    }\n    else {\n      bVar1 = true;\n      if (param_2 != 0x13c) goto LAB_0021dd18;\n      iVar2 = 4;\n    }\n  }\n  else {\n    bVar1 = true;\n    if (param_2 != 0x154) {\n      if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }\nLAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);\n      return;\n    }\n    iVar2 = 2;\n  }\n  gold::Script_sections::add_data\n            ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),iVar2,bVar1,param_3);\n  return;\n}" primitive_type (function_declarator "script_add_data(int param_1,int param_2,Expression *param_3)" identifier (parameter_list "(int param_1,int param_2,Expression *param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "Expression *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  int iVar2;\n  \n  bVar1 = false;\n  if (param_2 == 0x150) {\n    iVar2 = 8;\n  }\n  else if (param_2 < 0x151) {\n    bVar1 = true;\n    if (param_2 == 0x11f) {\n      iVar2 = 1;\n    }\n    else {\n      bVar1 = true;\n      if (param_2 != 0x13c) goto LAB_0021dd18;\n      iVar2 = 4;\n    }\n  }\n  else {\n    bVar1 = true;\n    if (param_2 != 0x154) {\n      if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }\nLAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);\n      return;\n    }\n    iVar2 = 2;\n  }\n  gold::Script_sections::add_data\n            ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),iVar2,bVar1,param_3);\n  return;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (if_statement "if (param_2 == 0x150) {\n    iVar2 = 8;\n  }\n  else if (param_2 < 0x151) {\n    bVar1 = true;\n    if (param_2 == 0x11f) {\n      iVar2 = 1;\n    }\n    else {\n      bVar1 = true;\n      if (param_2 != 0x13c) goto LAB_0021dd18;\n      iVar2 = 4;\n    }\n  }\n  else {\n    bVar1 = true;\n    if (param_2 != 0x154) {\n      if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }\nLAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);\n      return;\n    }\n    iVar2 = 2;\n  }" if (parenthesized_expression "(param_2 == 0x150)" ( (binary_expression "param_2 == 0x150" identifier == number_literal) )) (compound_statement "{\n    iVar2 = 8;\n  }" { (expression_statement "iVar2 = 8;" (assignment_expression "iVar2 = 8" identifier = number_literal) ;) }) (else_clause "else if (param_2 < 0x151) {\n    bVar1 = true;\n    if (param_2 == 0x11f) {\n      iVar2 = 1;\n    }\n    else {\n      bVar1 = true;\n      if (param_2 != 0x13c) goto LAB_0021dd18;\n      iVar2 = 4;\n    }\n  }\n  else {\n    bVar1 = true;\n    if (param_2 != 0x154) {\n      if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }\nLAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);\n      return;\n    }\n    iVar2 = 2;\n  }" else (if_statement "if (param_2 < 0x151) {\n    bVar1 = true;\n    if (param_2 == 0x11f) {\n      iVar2 = 1;\n    }\n    else {\n      bVar1 = true;\n      if (param_2 != 0x13c) goto LAB_0021dd18;\n      iVar2 = 4;\n    }\n  }\n  else {\n    bVar1 = true;\n    if (param_2 != 0x154) {\n      if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }\nLAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);\n      return;\n    }\n    iVar2 = 2;\n  }" if (parenthesized_expression "(param_2 < 0x151)" ( (binary_expression "param_2 < 0x151" identifier < number_literal) )) (compound_statement "{\n    bVar1 = true;\n    if (param_2 == 0x11f) {\n      iVar2 = 1;\n    }\n    else {\n      bVar1 = true;\n      if (param_2 != 0x13c) goto LAB_0021dd18;\n      iVar2 = 4;\n    }\n  }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (if_statement "if (param_2 == 0x11f) {\n      iVar2 = 1;\n    }\n    else {\n      bVar1 = true;\n      if (param_2 != 0x13c) goto LAB_0021dd18;\n      iVar2 = 4;\n    }" if (parenthesized_expression "(param_2 == 0x11f)" ( (binary_expression "param_2 == 0x11f" identifier == number_literal) )) (compound_statement "{\n      iVar2 = 1;\n    }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      bVar1 = true;\n      if (param_2 != 0x13c) goto LAB_0021dd18;\n      iVar2 = 4;\n    }" else (compound_statement "{\n      bVar1 = true;\n      if (param_2 != 0x13c) goto LAB_0021dd18;\n      iVar2 = 4;\n    }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (if_statement "if (param_2 != 0x13c) goto LAB_0021dd18;" if (parenthesized_expression "(param_2 != 0x13c)" ( (binary_expression "param_2 != 0x13c" identifier != number_literal) )) (goto_statement "goto LAB_0021dd18;" goto statement_identifier ;)) (expression_statement "iVar2 = 4;" (assignment_expression "iVar2 = 4" identifier = number_literal) ;) }))) }) (else_clause "else {\n    bVar1 = true;\n    if (param_2 != 0x154) {\n      if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }\nLAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);\n      return;\n    }\n    iVar2 = 2;\n  }" else (compound_statement "{\n    bVar1 = true;\n    if (param_2 != 0x154) {\n      if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }\nLAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);\n      return;\n    }\n    iVar2 = 2;\n  }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (if_statement "if (param_2 != 0x154) {\n      if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }\nLAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);\n      return;\n    }" if (parenthesized_expression "(param_2 != 0x154)" ( (binary_expression "param_2 != 0x154" identifier != number_literal) )) (compound_statement "{\n      if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }\nLAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);\n      return;\n    }" { (if_statement "if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }" if (parenthesized_expression "(param_2 == 0x15b)" ( (binary_expression "param_2 == 0x15b" identifier == number_literal) )) (compound_statement "{\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }" { (labeled_statement "gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);" statement_identifier : (ERROR ":" :) (labeled_statement "Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);" statement_identifier : (ERROR ":" :) (expression_statement "add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);" (call_expression "add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3)" identifier (argument_list "((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3)" ( (cast_expression "(Script_sections *)(*(int *)(param_1 + 0x20) + 0xac)" ( (type_descriptor "Script_sections *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x20) + 0xac)" ( (binary_expression "*(int *)(param_1 + 0x20) + 0xac" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) + number_literal) ))) , number_literal , true , identifier ))) ;))) (return_statement "return;" return ;) })) (labeled_statement "LAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8)" ( (binary_expression "PTR_DAT_0043226c + -0x4d14" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + -0x39f8" identifier + number_literal) ))) ;)) (return_statement "return;" return ;) })) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))))) (labeled_statement "gold::Script_sections::add_data\n            ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),iVar2,bVar1,param_3);" statement_identifier : (ERROR ":" :) (labeled_statement "Script_sections::add_data\n            ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),iVar2,bVar1,param_3);" statement_identifier : (ERROR ":" :) (expression_statement "add_data\n            ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),iVar2,bVar1,param_3);" (call_expression "add_data\n            ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),iVar2,bVar1,param_3)" identifier (argument_list "((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),iVar2,bVar1,param_3)" ( (cast_expression "(Script_sections *)(*(int *)(param_1 + 0x20) + 0xac)" ( (type_descriptor "Script_sections *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x20) + 0xac)" ( (binary_expression "*(int *)(param_1 + 0x20) + 0xac" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) + number_literal) ))) , identifier , identifier , identifier ))) ;))) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n\nvoid script_add_data(void *closurev,int data_token,Expression *val)\n\n{\n  bool is_signed;\n  undefined *puVar1;\n  int size;\n  Expression *val_00;\n  \n  is_signed = false;\n  if (data_token == 0x150) {\n    size = 8;\n  }\n  else if (data_token < 0x151) {\n    is_signed = true;\n    if (data_token == 0x11f) {\n      size = 1;\n    }\n    else {\n      is_signed = true;\n      if (data_token != 0x13c) goto LAB_0021dd18;\n      size = 4;\n    }\n  }\n  else {\n    is_signed = true;\n    if (data_token != 0x154) {\n      if (data_token == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)((int)closurev + 0x20) + 0xac),8,true,val);\n        return;\n      }\nLAB_0021dd18:\n      val_00 = (Expression *)0xc4d;\n      puVar1 = PTR_s__0043226c + -0x4d14;\n      (*(code *)PTR_do_gold_unreachable_004323c4)(puVar1,0xc4d,PTR_s__0043226c + -0x39f8);\n      gold::Script_sections::add_fill((Script_sections *)(*(int *)(puVar1 + 0x20) + 0xac),val_00);\n      return;\n    }\n    size = 2;\n  }\n  gold::Script_sections::add_data\n            ((Script_sections *)(*(int *)((int)closurev + 0x20) + 0xac),size,is_signed,val);\n  return;\n}\n\n" comment comment (function_definition "void script_add_data(void *closurev,int data_token,Expression *val)\n\n{\n  bool is_signed;\n  undefined *puVar1;\n  int size;\n  Expression *val_00;\n  \n  is_signed = false;\n  if (data_token == 0x150) {\n    size = 8;\n  }\n  else if (data_token < 0x151) {\n    is_signed = true;\n    if (data_token == 0x11f) {\n      size = 1;\n    }\n    else {\n      is_signed = true;\n      if (data_token != 0x13c) goto LAB_0021dd18;\n      size = 4;\n    }\n  }\n  else {\n    is_signed = true;\n    if (data_token != 0x154) {\n      if (data_token == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)((int)closurev + 0x20) + 0xac),8,true,val);\n        return;\n      }\nLAB_0021dd18:\n      val_00 = (Expression *)0xc4d;\n      puVar1 = PTR_s__0043226c + -0x4d14;\n      (*(code *)PTR_do_gold_unreachable_004323c4)(puVar1,0xc4d,PTR_s__0043226c + -0x39f8);\n      gold::Script_sections::add_fill((Script_sections *)(*(int *)(puVar1 + 0x20) + 0xac),val_00);\n      return;\n    }\n    size = 2;\n  }\n  gold::Script_sections::add_data\n            ((Script_sections *)(*(int *)((int)closurev + 0x20) + 0xac),size,is_signed,val);\n  return;\n}" primitive_type (function_declarator "script_add_data(void *closurev,int data_token,Expression *val)" identifier (parameter_list "(void *closurev,int data_token,Expression *val)" ( (parameter_declaration "void *closurev" primitive_type (pointer_declarator "*closurev" * identifier)) , (parameter_declaration "int data_token" primitive_type identifier) , (parameter_declaration "Expression *val" type_identifier (pointer_declarator "*val" * identifier)) ))) (compound_statement "{\n  bool is_signed;\n  undefined *puVar1;\n  int size;\n  Expression *val_00;\n  \n  is_signed = false;\n  if (data_token == 0x150) {\n    size = 8;\n  }\n  else if (data_token < 0x151) {\n    is_signed = true;\n    if (data_token == 0x11f) {\n      size = 1;\n    }\n    else {\n      is_signed = true;\n      if (data_token != 0x13c) goto LAB_0021dd18;\n      size = 4;\n    }\n  }\n  else {\n    is_signed = true;\n    if (data_token != 0x154) {\n      if (data_token == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)((int)closurev + 0x20) + 0xac),8,true,val);\n        return;\n      }\nLAB_0021dd18:\n      val_00 = (Expression *)0xc4d;\n      puVar1 = PTR_s__0043226c + -0x4d14;\n      (*(code *)PTR_do_gold_unreachable_004323c4)(puVar1,0xc4d,PTR_s__0043226c + -0x39f8);\n      gold::Script_sections::add_fill((Script_sections *)(*(int *)(puVar1 + 0x20) + 0xac),val_00);\n      return;\n    }\n    size = 2;\n  }\n  gold::Script_sections::add_data\n            ((Script_sections *)(*(int *)((int)closurev + 0x20) + 0xac),size,is_signed,val);\n  return;\n}" { (declaration "bool is_signed;" primitive_type identifier ;) (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int size;" primitive_type identifier ;) (declaration "Expression *val_00;" type_identifier (pointer_declarator "*val_00" * identifier) ;) (expression_statement "is_signed = false;" (assignment_expression "is_signed = false" identifier = false) ;) (if_statement "if (data_token == 0x150) {\n    size = 8;\n  }\n  else if (data_token < 0x151) {\n    is_signed = true;\n    if (data_token == 0x11f) {\n      size = 1;\n    }\n    else {\n      is_signed = true;\n      if (data_token != 0x13c) goto LAB_0021dd18;\n      size = 4;\n    }\n  }\n  else {\n    is_signed = true;\n    if (data_token != 0x154) {\n      if (data_token == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)((int)closurev + 0x20) + 0xac),8,true,val);\n        return;\n      }\nLAB_0021dd18:\n      val_00 = (Expression *)0xc4d;\n      puVar1 = PTR_s__0043226c + -0x4d14;\n      (*(code *)PTR_do_gold_unreachable_004323c4)(puVar1,0xc4d,PTR_s__0043226c + -0x39f8);\n      gold::Script_sections::add_fill((Script_sections *)(*(int *)(puVar1 + 0x20) + 0xac),val_00);\n      return;\n    }\n    size = 2;\n  }" if (parenthesized_expression "(data_token == 0x150)" ( (binary_expression "data_token == 0x150" identifier == number_literal) )) (compound_statement "{\n    size = 8;\n  }" { (expression_statement "size = 8;" (assignment_expression "size = 8" identifier = number_literal) ;) }) (else_clause "else if (data_token < 0x151) {\n    is_signed = true;\n    if (data_token == 0x11f) {\n      size = 1;\n    }\n    else {\n      is_signed = true;\n      if (data_token != 0x13c) goto LAB_0021dd18;\n      size = 4;\n    }\n  }\n  else {\n    is_signed = true;\n    if (data_token != 0x154) {\n      if (data_token == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)((int)closurev + 0x20) + 0xac),8,true,val);\n        return;\n      }\nLAB_0021dd18:\n      val_00 = (Expression *)0xc4d;\n      puVar1 = PTR_s__0043226c + -0x4d14;\n      (*(code *)PTR_do_gold_unreachable_004323c4)(puVar1,0xc4d,PTR_s__0043226c + -0x39f8);\n      gold::Script_sections::add_fill((Script_sections *)(*(int *)(puVar1 + 0x20) + 0xac),val_00);\n      return;\n    }\n    size = 2;\n  }" else (if_statement "if (data_token < 0x151) {\n    is_signed = true;\n    if (data_token == 0x11f) {\n      size = 1;\n    }\n    else {\n      is_signed = true;\n      if (data_token != 0x13c) goto LAB_0021dd18;\n      size = 4;\n    }\n  }\n  else {\n    is_signed = true;\n    if (data_token != 0x154) {\n      if (data_token == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)((int)closurev + 0x20) + 0xac),8,true,val);\n        return;\n      }\nLAB_0021dd18:\n      val_00 = (Expression *)0xc4d;\n      puVar1 = PTR_s__0043226c + -0x4d14;\n      (*(code *)PTR_do_gold_unreachable_004323c4)(puVar1,0xc4d,PTR_s__0043226c + -0x39f8);\n      gold::Script_sections::add_fill((Script_sections *)(*(int *)(puVar1 + 0x20) + 0xac),val_00);\n      return;\n    }\n    size = 2;\n  }" if (parenthesized_expression "(data_token < 0x151)" ( (binary_expression "data_token < 0x151" identifier < number_literal) )) (compound_statement "{\n    is_signed = true;\n    if (data_token == 0x11f) {\n      size = 1;\n    }\n    else {\n      is_signed = true;\n      if (data_token != 0x13c) goto LAB_0021dd18;\n      size = 4;\n    }\n  }" { (expression_statement "is_signed = true;" (assignment_expression "is_signed = true" identifier = true) ;) (if_statement "if (data_token == 0x11f) {\n      size = 1;\n    }\n    else {\n      is_signed = true;\n      if (data_token != 0x13c) goto LAB_0021dd18;\n      size = 4;\n    }" if (parenthesized_expression "(data_token == 0x11f)" ( (binary_expression "data_token == 0x11f" identifier == number_literal) )) (compound_statement "{\n      size = 1;\n    }" { (expression_statement "size = 1;" (assignment_expression "size = 1" identifier = number_literal) ;) }) (else_clause "else {\n      is_signed = true;\n      if (data_token != 0x13c) goto LAB_0021dd18;\n      size = 4;\n    }" else (compound_statement "{\n      is_signed = true;\n      if (data_token != 0x13c) goto LAB_0021dd18;\n      size = 4;\n    }" { (expression_statement "is_signed = true;" (assignment_expression "is_signed = true" identifier = true) ;) (if_statement "if (data_token != 0x13c) goto LAB_0021dd18;" if (parenthesized_expression "(data_token != 0x13c)" ( (binary_expression "data_token != 0x13c" identifier != number_literal) )) (goto_statement "goto LAB_0021dd18;" goto statement_identifier ;)) (expression_statement "size = 4;" (assignment_expression "size = 4" identifier = number_literal) ;) }))) }) (else_clause "else {\n    is_signed = true;\n    if (data_token != 0x154) {\n      if (data_token == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)((int)closurev + 0x20) + 0xac),8,true,val);\n        return;\n      }\nLAB_0021dd18:\n      val_00 = (Expression *)0xc4d;\n      puVar1 = PTR_s__0043226c + -0x4d14;\n      (*(code *)PTR_do_gold_unreachable_004323c4)(puVar1,0xc4d,PTR_s__0043226c + -0x39f8);\n      gold::Script_sections::add_fill((Script_sections *)(*(int *)(puVar1 + 0x20) + 0xac),val_00);\n      return;\n    }\n    size = 2;\n  }" else (compound_statement "{\n    is_signed = true;\n    if (data_token != 0x154) {\n      if (data_token == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)((int)closurev + 0x20) + 0xac),8,true,val);\n        return;\n      }\nLAB_0021dd18:\n      val_00 = (Expression *)0xc4d;\n      puVar1 = PTR_s__0043226c + -0x4d14;\n      (*(code *)PTR_do_gold_unreachable_004323c4)(puVar1,0xc4d,PTR_s__0043226c + -0x39f8);\n      gold::Script_sections::add_fill((Script_sections *)(*(int *)(puVar1 + 0x20) + 0xac),val_00);\n      return;\n    }\n    size = 2;\n  }" { (expression_statement "is_signed = true;" (assignment_expression "is_signed = true" identifier = true) ;) (if_statement "if (data_token != 0x154) {\n      if (data_token == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)((int)closurev + 0x20) + 0xac),8,true,val);\n        return;\n      }\nLAB_0021dd18:\n      val_00 = (Expression *)0xc4d;\n      puVar1 = PTR_s__0043226c + -0x4d14;\n      (*(code *)PTR_do_gold_unreachable_004323c4)(puVar1,0xc4d,PTR_s__0043226c + -0x39f8);\n      gold::Script_sections::add_fill((Script_sections *)(*(int *)(puVar1 + 0x20) + 0xac),val_00);\n      return;\n    }" if (parenthesized_expression "(data_token != 0x154)" ( (binary_expression "data_token != 0x154" identifier != number_literal) )) (compound_statement "{\n      if (data_token == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)((int)closurev + 0x20) + 0xac),8,true,val);\n        return;\n      }\nLAB_0021dd18:\n      val_00 = (Expression *)0xc4d;\n      puVar1 = PTR_s__0043226c + -0x4d14;\n      (*(code *)PTR_do_gold_unreachable_004323c4)(puVar1,0xc4d,PTR_s__0043226c + -0x39f8);\n      gold::Script_sections::add_fill((Script_sections *)(*(int *)(puVar1 + 0x20) + 0xac),val_00);\n      return;\n    }" { (if_statement "if (data_token == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)((int)closurev + 0x20) + 0xac),8,true,val);\n        return;\n      }" if (parenthesized_expression "(data_token == 0x15b)" ( (binary_expression "data_token == 0x15b" identifier == number_literal) )) (compound_statement "{\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)((int)closurev + 0x20) + 0xac),8,true,val);\n        return;\n      }" { (labeled_statement "gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)((int)closurev + 0x20) + 0xac),8,true,val);" statement_identifier : (ERROR ":" :) (labeled_statement "Script_sections::add_data\n                  ((Script_sections *)(*(int *)((int)closurev + 0x20) + 0xac),8,true,val);" statement_identifier : (ERROR ":" :) (expression_statement "add_data\n                  ((Script_sections *)(*(int *)((int)closurev + 0x20) + 0xac),8,true,val);" (call_expression "add_data\n                  ((Script_sections *)(*(int *)((int)closurev + 0x20) + 0xac),8,true,val)" identifier (argument_list "((Script_sections *)(*(int *)((int)closurev + 0x20) + 0xac),8,true,val)" ( (cast_expression "(Script_sections *)(*(int *)((int)closurev + 0x20) + 0xac)" ( (type_descriptor "Script_sections *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)closurev + 0x20) + 0xac)" ( (binary_expression "*(int *)((int)closurev + 0x20) + 0xac" (pointer_expression "*(int *)((int)closurev + 0x20)" * (cast_expression "(int *)((int)closurev + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)closurev + 0x20)" ( (binary_expression "(int)closurev + 0x20" (cast_expression "(int)closurev" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))) , number_literal , true , identifier ))) ;))) (return_statement "return;" return ;) })) (labeled_statement "LAB_0021dd18:\n      val_00 = (Expression *)0xc4d;" statement_identifier : (expression_statement "val_00 = (Expression *)0xc4d;" (assignment_expression "val_00 = (Expression *)0xc4d" identifier = (cast_expression "(Expression *)0xc4d" ( (type_descriptor "Expression *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "puVar1 = PTR_s__0043226c + -0x4d14;" (assignment_expression "puVar1 = PTR_s__0043226c + -0x4d14" identifier = (binary_expression "PTR_s__0043226c + -0x4d14" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(puVar1,0xc4d,PTR_s__0043226c + -0x39f8);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(puVar1,0xc4d,PTR_s__0043226c + -0x39f8)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar1,0xc4d,PTR_s__0043226c + -0x39f8)" ( identifier , number_literal , (binary_expression "PTR_s__0043226c + -0x39f8" identifier + number_literal) ))) ;) (labeled_statement "gold::Script_sections::add_fill((Script_sections *)(*(int *)(puVar1 + 0x20) + 0xac),val_00);" statement_identifier : (ERROR ":" :) (labeled_statement "Script_sections::add_fill((Script_sections *)(*(int *)(puVar1 + 0x20) + 0xac),val_00);" statement_identifier : (ERROR ":" :) (expression_statement "add_fill((Script_sections *)(*(int *)(puVar1 + 0x20) + 0xac),val_00);" (call_expression "add_fill((Script_sections *)(*(int *)(puVar1 + 0x20) + 0xac),val_00)" identifier (argument_list "((Script_sections *)(*(int *)(puVar1 + 0x20) + 0xac),val_00)" ( (cast_expression "(Script_sections *)(*(int *)(puVar1 + 0x20) + 0xac)" ( (type_descriptor "Script_sections *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar1 + 0x20) + 0xac)" ( (binary_expression "*(int *)(puVar1 + 0x20) + 0xac" (pointer_expression "*(int *)(puVar1 + 0x20)" * (cast_expression "(int *)(puVar1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x20)" ( (binary_expression "puVar1 + 0x20" identifier + number_literal) )))) + number_literal) ))) , identifier ))) ;))) (return_statement "return;" return ;) })) (expression_statement "size = 2;" (assignment_expression "size = 2" identifier = number_literal) ;) }))))) (labeled_statement "gold::Script_sections::add_data\n            ((Script_sections *)(*(int *)((int)closurev + 0x20) + 0xac),size,is_signed,val);" statement_identifier : (ERROR ":" :) (labeled_statement "Script_sections::add_data\n            ((Script_sections *)(*(int *)((int)closurev + 0x20) + 0xac),size,is_signed,val);" statement_identifier : (ERROR ":" :) (expression_statement "add_data\n            ((Script_sections *)(*(int *)((int)closurev + 0x20) + 0xac),size,is_signed,val);" (call_expression "add_data\n            ((Script_sections *)(*(int *)((int)closurev + 0x20) + 0xac),size,is_signed,val)" identifier (argument_list "((Script_sections *)(*(int *)((int)closurev + 0x20) + 0xac),size,is_signed,val)" ( (cast_expression "(Script_sections *)(*(int *)((int)closurev + 0x20) + 0xac)" ( (type_descriptor "Script_sections *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)closurev + 0x20) + 0xac)" ( (binary_expression "*(int *)((int)closurev + 0x20) + 0xac" (pointer_expression "*(int *)((int)closurev + 0x20)" * (cast_expression "(int *)((int)closurev + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)closurev + 0x20)" ( (binary_expression "(int)closurev + 0x20" (cast_expression "(int)closurev" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))) , identifier , identifier , identifier ))) ;))) (return_statement "return;" return ;) })))
(translation_unit "void script_add_data(int param_1,int param_2,Expression *param_3)\n\n{\n  bool bVar1;\n  int iVar2;\n  \n  bVar1 = false;\n  if (param_2 == 0x150) {\n    iVar2 = 8;\n  }\n  else if (param_2 < 0x151) {\n    bVar1 = true;\n    if (param_2 == 0x11f) {\n      iVar2 = 1;\n    }\n    else {\n      bVar1 = true;\n      if (param_2 != 0x13c) goto LAB_0021dd18;\n      iVar2 = 4;\n    }\n  }\n  else {\n    bVar1 = true;\n    if (param_2 != 0x154) {\n      if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }\nLAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);\n      return;\n    }\n    iVar2 = 2;\n  }\n  gold::Script_sections::add_data\n            ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),iVar2,bVar1,param_3);\n  return;\n}\n\n" (function_definition "void script_add_data(int param_1,int param_2,Expression *param_3)\n\n{\n  bool bVar1;\n  int iVar2;\n  \n  bVar1 = false;\n  if (param_2 == 0x150) {\n    iVar2 = 8;\n  }\n  else if (param_2 < 0x151) {\n    bVar1 = true;\n    if (param_2 == 0x11f) {\n      iVar2 = 1;\n    }\n    else {\n      bVar1 = true;\n      if (param_2 != 0x13c) goto LAB_0021dd18;\n      iVar2 = 4;\n    }\n  }\n  else {\n    bVar1 = true;\n    if (param_2 != 0x154) {\n      if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }\nLAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);\n      return;\n    }\n    iVar2 = 2;\n  }\n  gold::Script_sections::add_data\n            ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),iVar2,bVar1,param_3);\n  return;\n}" primitive_type (function_declarator "script_add_data(int param_1,int param_2,Expression *param_3)" identifier (parameter_list "(int param_1,int param_2,Expression *param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "Expression *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  int iVar2;\n  \n  bVar1 = false;\n  if (param_2 == 0x150) {\n    iVar2 = 8;\n  }\n  else if (param_2 < 0x151) {\n    bVar1 = true;\n    if (param_2 == 0x11f) {\n      iVar2 = 1;\n    }\n    else {\n      bVar1 = true;\n      if (param_2 != 0x13c) goto LAB_0021dd18;\n      iVar2 = 4;\n    }\n  }\n  else {\n    bVar1 = true;\n    if (param_2 != 0x154) {\n      if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }\nLAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);\n      return;\n    }\n    iVar2 = 2;\n  }\n  gold::Script_sections::add_data\n            ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),iVar2,bVar1,param_3);\n  return;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (if_statement "if (param_2 == 0x150) {\n    iVar2 = 8;\n  }\n  else if (param_2 < 0x151) {\n    bVar1 = true;\n    if (param_2 == 0x11f) {\n      iVar2 = 1;\n    }\n    else {\n      bVar1 = true;\n      if (param_2 != 0x13c) goto LAB_0021dd18;\n      iVar2 = 4;\n    }\n  }\n  else {\n    bVar1 = true;\n    if (param_2 != 0x154) {\n      if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }\nLAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);\n      return;\n    }\n    iVar2 = 2;\n  }" if (parenthesized_expression "(param_2 == 0x150)" ( (binary_expression "param_2 == 0x150" identifier == number_literal) )) (compound_statement "{\n    iVar2 = 8;\n  }" { (expression_statement "iVar2 = 8;" (assignment_expression "iVar2 = 8" identifier = number_literal) ;) }) (else_clause "else if (param_2 < 0x151) {\n    bVar1 = true;\n    if (param_2 == 0x11f) {\n      iVar2 = 1;\n    }\n    else {\n      bVar1 = true;\n      if (param_2 != 0x13c) goto LAB_0021dd18;\n      iVar2 = 4;\n    }\n  }\n  else {\n    bVar1 = true;\n    if (param_2 != 0x154) {\n      if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }\nLAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);\n      return;\n    }\n    iVar2 = 2;\n  }" else (if_statement "if (param_2 < 0x151) {\n    bVar1 = true;\n    if (param_2 == 0x11f) {\n      iVar2 = 1;\n    }\n    else {\n      bVar1 = true;\n      if (param_2 != 0x13c) goto LAB_0021dd18;\n      iVar2 = 4;\n    }\n  }\n  else {\n    bVar1 = true;\n    if (param_2 != 0x154) {\n      if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }\nLAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);\n      return;\n    }\n    iVar2 = 2;\n  }" if (parenthesized_expression "(param_2 < 0x151)" ( (binary_expression "param_2 < 0x151" identifier < number_literal) )) (compound_statement "{\n    bVar1 = true;\n    if (param_2 == 0x11f) {\n      iVar2 = 1;\n    }\n    else {\n      bVar1 = true;\n      if (param_2 != 0x13c) goto LAB_0021dd18;\n      iVar2 = 4;\n    }\n  }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (if_statement "if (param_2 == 0x11f) {\n      iVar2 = 1;\n    }\n    else {\n      bVar1 = true;\n      if (param_2 != 0x13c) goto LAB_0021dd18;\n      iVar2 = 4;\n    }" if (parenthesized_expression "(param_2 == 0x11f)" ( (binary_expression "param_2 == 0x11f" identifier == number_literal) )) (compound_statement "{\n      iVar2 = 1;\n    }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      bVar1 = true;\n      if (param_2 != 0x13c) goto LAB_0021dd18;\n      iVar2 = 4;\n    }" else (compound_statement "{\n      bVar1 = true;\n      if (param_2 != 0x13c) goto LAB_0021dd18;\n      iVar2 = 4;\n    }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (if_statement "if (param_2 != 0x13c) goto LAB_0021dd18;" if (parenthesized_expression "(param_2 != 0x13c)" ( (binary_expression "param_2 != 0x13c" identifier != number_literal) )) (goto_statement "goto LAB_0021dd18;" goto statement_identifier ;)) (expression_statement "iVar2 = 4;" (assignment_expression "iVar2 = 4" identifier = number_literal) ;) }))) }) (else_clause "else {\n    bVar1 = true;\n    if (param_2 != 0x154) {\n      if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }\nLAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);\n      return;\n    }\n    iVar2 = 2;\n  }" else (compound_statement "{\n    bVar1 = true;\n    if (param_2 != 0x154) {\n      if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }\nLAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);\n      return;\n    }\n    iVar2 = 2;\n  }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (if_statement "if (param_2 != 0x154) {\n      if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }\nLAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);\n      return;\n    }" if (parenthesized_expression "(param_2 != 0x154)" ( (binary_expression "param_2 != 0x154" identifier != number_literal) )) (compound_statement "{\n      if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }\nLAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);\n      return;\n    }" { (if_statement "if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }" if (parenthesized_expression "(param_2 == 0x15b)" ( (binary_expression "param_2 == 0x15b" identifier == number_literal) )) (compound_statement "{\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }" { (labeled_statement "gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);" statement_identifier : (ERROR ":" :) (labeled_statement "Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);" statement_identifier : (ERROR ":" :) (expression_statement "add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);" (call_expression "add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3)" identifier (argument_list "((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3)" ( (cast_expression "(Script_sections *)(*(int *)(param_1 + 0x20) + 0xac)" ( (type_descriptor "Script_sections *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x20) + 0xac)" ( (binary_expression "*(int *)(param_1 + 0x20) + 0xac" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) + number_literal) ))) , number_literal , true , identifier ))) ;))) (return_statement "return;" return ;) })) (labeled_statement "LAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8)" ( (binary_expression "PTR_DAT_0043226c + -0x4d14" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + -0x39f8" identifier + number_literal) ))) ;)) (return_statement "return;" return ;) })) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))))) (labeled_statement "gold::Script_sections::add_data\n            ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),iVar2,bVar1,param_3);" statement_identifier : (ERROR ":" :) (labeled_statement "Script_sections::add_data\n            ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),iVar2,bVar1,param_3);" statement_identifier : (ERROR ":" :) (expression_statement "add_data\n            ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),iVar2,bVar1,param_3);" (call_expression "add_data\n            ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),iVar2,bVar1,param_3)" identifier (argument_list "((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),iVar2,bVar1,param_3)" ( (cast_expression "(Script_sections *)(*(int *)(param_1 + 0x20) + 0xac)" ( (type_descriptor "Script_sections *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x20) + 0xac)" ( (binary_expression "*(int *)(param_1 + 0x20) + 0xac" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) + number_literal) ))) , identifier , identifier , identifier ))) ;))) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (ERROR :) (labeled_statement statement_identifier : (ERROR :) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) , LIT , BOOL , IDENT ))) ;))) (return_statement return ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;)) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) }))))) (labeled_statement statement_identifier : (ERROR :) (labeled_statement statement_identifier : (ERROR :) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) , IDENT , IDENT , IDENT ))) ;))) (return_statement return ;) })))
(function_definition "void script_add_data(int param_1,int param_2,Expression *param_3)\n\n{\n  bool bVar1;\n  int iVar2;\n  \n  bVar1 = false;\n  if (param_2 == 0x150) {\n    iVar2 = 8;\n  }\n  else if (param_2 < 0x151) {\n    bVar1 = true;\n    if (param_2 == 0x11f) {\n      iVar2 = 1;\n    }\n    else {\n      bVar1 = true;\n      if (param_2 != 0x13c) goto LAB_0021dd18;\n      iVar2 = 4;\n    }\n  }\n  else {\n    bVar1 = true;\n    if (param_2 != 0x154) {\n      if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }\nLAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);\n      return;\n    }\n    iVar2 = 2;\n  }\n  gold::Script_sections::add_data\n            ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),iVar2,bVar1,param_3);\n  return;\n}" (primitive_type "void") (function_declarator "script_add_data(int param_1,int param_2,Expression *param_3)" (identifier "script_add_data") (parameter_list "(int param_1,int param_2,Expression *param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "Expression *param_3" (type_identifier "Expression") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  bool bVar1;\n  int iVar2;\n  \n  bVar1 = false;\n  if (param_2 == 0x150) {\n    iVar2 = 8;\n  }\n  else if (param_2 < 0x151) {\n    bVar1 = true;\n    if (param_2 == 0x11f) {\n      iVar2 = 1;\n    }\n    else {\n      bVar1 = true;\n      if (param_2 != 0x13c) goto LAB_0021dd18;\n      iVar2 = 4;\n    }\n  }\n  else {\n    bVar1 = true;\n    if (param_2 != 0x154) {\n      if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }\nLAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);\n      return;\n    }\n    iVar2 = 2;\n  }\n  gold::Script_sections::add_data\n            ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),iVar2,bVar1,param_3);\n  return;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (if_statement "if (param_2 == 0x150) {\n    iVar2 = 8;\n  }\n  else if (param_2 < 0x151) {\n    bVar1 = true;\n    if (param_2 == 0x11f) {\n      iVar2 = 1;\n    }\n    else {\n      bVar1 = true;\n      if (param_2 != 0x13c) goto LAB_0021dd18;\n      iVar2 = 4;\n    }\n  }\n  else {\n    bVar1 = true;\n    if (param_2 != 0x154) {\n      if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }\nLAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);\n      return;\n    }\n    iVar2 = 2;\n  }" (if "if") (parenthesized_expression "(param_2 == 0x150)" (( "(") (binary_expression "param_2 == 0x150" (identifier "param_2") (== "==") (number_literal "0x150")) () ")")) (compound_statement "{\n    iVar2 = 8;\n  }" ({ "{") (expression_statement "iVar2 = 8;" (assignment_expression "iVar2 = 8" (identifier "iVar2") (= "=") (number_literal "8")) (; ";")) (} "}")) (else_clause "else if (param_2 < 0x151) {\n    bVar1 = true;\n    if (param_2 == 0x11f) {\n      iVar2 = 1;\n    }\n    else {\n      bVar1 = true;\n      if (param_2 != 0x13c) goto LAB_0021dd18;\n      iVar2 = 4;\n    }\n  }\n  else {\n    bVar1 = true;\n    if (param_2 != 0x154) {\n      if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }\nLAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);\n      return;\n    }\n    iVar2 = 2;\n  }" (else "else") (if_statement "if (param_2 < 0x151) {\n    bVar1 = true;\n    if (param_2 == 0x11f) {\n      iVar2 = 1;\n    }\n    else {\n      bVar1 = true;\n      if (param_2 != 0x13c) goto LAB_0021dd18;\n      iVar2 = 4;\n    }\n  }\n  else {\n    bVar1 = true;\n    if (param_2 != 0x154) {\n      if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }\nLAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);\n      return;\n    }\n    iVar2 = 2;\n  }" (if "if") (parenthesized_expression "(param_2 < 0x151)" (( "(") (binary_expression "param_2 < 0x151" (identifier "param_2") (< "<") (number_literal "0x151")) () ")")) (compound_statement "{\n    bVar1 = true;\n    if (param_2 == 0x11f) {\n      iVar2 = 1;\n    }\n    else {\n      bVar1 = true;\n      if (param_2 != 0x13c) goto LAB_0021dd18;\n      iVar2 = 4;\n    }\n  }" ({ "{") (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (if_statement "if (param_2 == 0x11f) {\n      iVar2 = 1;\n    }\n    else {\n      bVar1 = true;\n      if (param_2 != 0x13c) goto LAB_0021dd18;\n      iVar2 = 4;\n    }" (if "if") (parenthesized_expression "(param_2 == 0x11f)" (( "(") (binary_expression "param_2 == 0x11f" (identifier "param_2") (== "==") (number_literal "0x11f")) () ")")) (compound_statement "{\n      iVar2 = 1;\n    }" ({ "{") (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n      bVar1 = true;\n      if (param_2 != 0x13c) goto LAB_0021dd18;\n      iVar2 = 4;\n    }" (else "else") (compound_statement "{\n      bVar1 = true;\n      if (param_2 != 0x13c) goto LAB_0021dd18;\n      iVar2 = 4;\n    }" ({ "{") (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (if_statement "if (param_2 != 0x13c) goto LAB_0021dd18;" (if "if") (parenthesized_expression "(param_2 != 0x13c)" (( "(") (binary_expression "param_2 != 0x13c" (identifier "param_2") (!= "!=") (number_literal "0x13c")) () ")")) (goto_statement "goto LAB_0021dd18;" (goto "goto") (statement_identifier "LAB_0021dd18") (; ";"))) (expression_statement "iVar2 = 4;" (assignment_expression "iVar2 = 4" (identifier "iVar2") (= "=") (number_literal "4")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    bVar1 = true;\n    if (param_2 != 0x154) {\n      if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }\nLAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);\n      return;\n    }\n    iVar2 = 2;\n  }" (else "else") (compound_statement "{\n    bVar1 = true;\n    if (param_2 != 0x154) {\n      if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }\nLAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);\n      return;\n    }\n    iVar2 = 2;\n  }" ({ "{") (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (if_statement "if (param_2 != 0x154) {\n      if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }\nLAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);\n      return;\n    }" (if "if") (parenthesized_expression "(param_2 != 0x154)" (( "(") (binary_expression "param_2 != 0x154" (identifier "param_2") (!= "!=") (number_literal "0x154")) () ")")) (compound_statement "{\n      if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }\nLAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);\n      return;\n    }" ({ "{") (if_statement "if (param_2 == 0x15b) {\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }" (if "if") (parenthesized_expression "(param_2 == 0x15b)" (( "(") (binary_expression "param_2 == 0x15b" (identifier "param_2") (== "==") (number_literal "0x15b")) () ")")) (compound_statement "{\n        gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);\n        return;\n      }" ({ "{") (labeled_statement "gold::Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);" (statement_identifier "gold") (: ":") (ERROR ":" (: ":")) (labeled_statement "Script_sections::add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);" (statement_identifier "Script_sections") (: ":") (ERROR ":" (: ":")) (expression_statement "add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);" (call_expression "add_data\n                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3)" (identifier "add_data") (argument_list "((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3)" (( "(") (cast_expression "(Script_sections *)(*(int *)(param_1 + 0x20) + 0xac)" (( "(") (type_descriptor "Script_sections *" (type_identifier "Script_sections") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x20) + 0xac)" (( "(") (binary_expression "*(int *)(param_1 + 0x20) + 0xac" (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (+ "+") (number_literal "0xac")) () ")"))) (, ",") (number_literal "8") (, ",") (true "true") (, ",") (identifier "param_3") () ")"))) (; ";")))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (labeled_statement "LAB_0021dd18:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);" (statement_identifier "LAB_0021dd18") (: ":") (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004323c4"))) () ")")) (argument_list "(PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8)" (( "(") (binary_expression "PTR_DAT_0043226c + -0x4d14" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "-0x4d14")) (, ",") (number_literal "0xc4d") (, ",") (binary_expression "PTR_DAT_0043226c + -0x39f8" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "-0x39f8")) () ")"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")))))) (labeled_statement "gold::Script_sections::add_data\n            ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),iVar2,bVar1,param_3);" (statement_identifier "gold") (: ":") (ERROR ":" (: ":")) (labeled_statement "Script_sections::add_data\n            ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),iVar2,bVar1,param_3);" (statement_identifier "Script_sections") (: ":") (ERROR ":" (: ":")) (expression_statement "add_data\n            ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),iVar2,bVar1,param_3);" (call_expression "add_data\n            ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),iVar2,bVar1,param_3)" (identifier "add_data") (argument_list "((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),iVar2,bVar1,param_3)" (( "(") (cast_expression "(Script_sections *)(*(int *)(param_1 + 0x20) + 0xac)" (( "(") (type_descriptor "Script_sections *" (type_identifier "Script_sections") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x20) + 0xac)" (( "(") (binary_expression "*(int *)(param_1 + 0x20) + 0xac" (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (+ "+") (number_literal "0xac")) () ")"))) (, ",") (identifier "iVar2") (, ",") (identifier "bVar1") (, ",") (identifier "param_3") () ")"))) (; ";")))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */

void function_1(void *closurev,int var_1,type_1 *val)

{
  bool is_signed;
  type_2 *var_5;
  int size;
  type_1 *val_00;
  
  is_signed = false;
  if (var_1 == 0x150) {
    size = 8;
  }
  else if (var_1 < 0x151) {
    is_signed = true;
    if (var_1 == 0x11f) {
      size = 1;
    }
    else {
      is_signed = true;
      if (var_1 != 0x13c) goto LAB_0021dd18;
      size = 4;
    }
  }
  else {
    is_signed = true;
    if (var_1 != 0x154) {
      if (var_1 == 0x15b) {
        gold::Script_sections::var_2
                  ((type_3 *)(*(int *)((int)closurev + 0x20) + 0xac),8,true,val);
        return;
      }
LAB_0021dd18:
      val_00 = (type_1 *)0xc4d;
      var_5 = var_3 + -0x4d14;
      (*(type_4 *)PTR_do_gold_unreachable_004323c4)(var_5,0xc4d,var_3 + -0x39f8);
      gold::Script_sections::var_4((type_3 *)(*(int *)(var_5 + 0x20) + 0xac),val_00);
      return;
    }
    size = 2;
  }
  gold::Script_sections::var_2
            ((type_3 *)(*(int *)((int)closurev + 0x20) + 0xac),size,is_signed,val);
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (false))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (ERROR) (labeled_statement label: (statement_identifier) (ERROR) (expression_statement (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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))))) right: (number_literal)))) (number_literal) (true) (identifier)))))) (return_statement))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))) (labeled_statement label: (statement_identifier) (ERROR) (labeled_statement label: (statement_identifier) (ERROR) (expression_statement (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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))))) right: (number_literal)))) (identifier) (identifier) (identifier)))))) (return_statement))))

void MASKED(int param_1,int param_2,Expression *param_3)

{
  bool bVar1;
  int iVar2;
  
  bVar1 = false;
  if (param_2 == 0x150) {
    iVar2 = 8;
  }
  else if (param_2 < 0x151) {
    bVar1 = true;
    if (param_2 == 0x11f) {
      iVar2 = 1;
    }
    else {
      bVar1 = true;
      if (param_2 != 0x13c) goto LAB_0021dd18;
      iVar2 = 4;
    }
  }
  else {
    bVar1 = true;
    if (param_2 != 0x154) {
      if (param_2 == 0x15b) {
        gold::Script_sections::add_data
                  ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),8,true,param_3);
        return;
      }
LAB_0021dd18:
      (*(code *)PTR_do_gold_unreachable_004323c4)
                (PTR_DAT_0043226c + -0x4d14,0xc4d,PTR_DAT_0043226c + -0x39f8);
      return;
    }
    iVar2 = 2;
  }
  gold::Script_sections::add_data
            ((Script_sections *)(*(int *)(param_1 + 0x20) + 0xac),iVar2,bVar1,param_3);
  return;
}

