
void dwarf2_emit_insn(int size)

{
  int iVar1;
  addressT aVar2;
  char *pcVar3;
  undefined4 in_stack_ffffffcc;
  dwarf2_line_info loc;
  
  pcVar3 = input_buffer + 0x7358;
  if (*(int *)PTR_debug_type_000b5d20 == 5) {
    iVar1 = seen_at_least_1_file();
  }
  else {
    iVar1 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30;
  }
  if (iVar1 != 0) {
    dwarf2_where(&loc);
    aVar2 = frag_now_fix();
    dwarf2_gen_line_info
              (CONCAT44(pcVar3,in_stack_ffffffcc),
               (dwarf2_line_info *)
               (((int)(aVar2 >> 0x20) - (size >> 0x1f)) - (uint)((uint)aVar2 < (uint)aVar2 - size)))
    ;
    iVar1 = *(int *)(pcVar3 + -0x7fd8);
    **(undefined4 **)(pcVar3 + -0x7d50) = 0;
    *(undefined4 *)(iVar1 + 0x503c) = 0;
    *(undefined4 *)(iVar1 + 0x5040) = 0;
    *(uint *)(iVar1 + 0x5038) = *(uint *)(iVar1 + 0x5038) & 0xfffffff1;
  }
  return;
}



void dwarf2_emit_insn(int param_1)

{
  undefined *puVar1;
  int iVar2;
  uint uVar3;
  undefined8 uVar4;
  undefined1 auStack_30 [36];
  
  if (*(int *)PTR_debug_type_000b5d20 == 5) {
    iVar2 = seen_at_least_1_file();
  }
  else {
    iVar2 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30;
  }
  if (iVar2 != 0) {
    dwarf2_where(auStack_30);
    uVar4 = frag_now_fix();
    uVar3 = (uint)uVar4 - param_1;
    dwarf2_gen_line_info
              (((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)) - (uint)((uint)uVar4 < uVar3),
               uVar3,auStack_30);
    puVar1 = PTR_DAT_000b5ca8;
    *(undefined4 *)PTR_dwarf2_loc_directive_seen_000b5f30 = 0;
    *(undefined4 *)(puVar1 + 0x503c) = 0;
    *(undefined4 *)(puVar1 + 0x5040) = 0;
    *(uint *)(puVar1 + 0x5038) = *(uint *)(puVar1 + 0x5038) & 0xfffffff1;
  }
  return;
}


lui gp,0xa
addiu gp,gp,-0x44cc
addu gp,gp,t9
lw v1,-0x7f60(gp)
addiu sp,sp,-0x48
li v0,0x5
sw gp,0x10(sp)
sw s0,0x3c(sp)
sw ra,0x44(sp)
sw s1,0x40(sp)
lw v1,0x0(v1)
beq v1,v0,0x00022218
_or s0,a0,zero
lw v0,-0x7d50(gp)
lw v0,0x0(v0)
sltiu v0,v0,0x1
bne v0,zero,0x00022208
_lw ra,0x44(sp)
lw t9,-0x7d4c(gp)
addiu s1,sp,0x18
bal 0x0002203c
_or a0,s1,zero
lw gp,0x10(sp)
lw t9,-0x7d9c(gp)
bal 0x000355f0
_nop
sra a0,s0,0x1f
lw gp,0x10(sp)
subu a1,v1,s0
subu a0,v0,a0
sltu v1,v1,a1
subu a0,a0,v1
lw t9,-0x7d48(gp)
bal 0x00021ef4
_or a2,s1,zero
li a0,-0xf
lw gp,0x10(sp)
lw v0,-0x7fd8(gp)
lw v1,-0x7d50(gp)
addiu v0,v0,0x5028
sw zero,0x0(v1)
sw zero,0x14(v0)
sw zero,0x18(v0)
lw v1,0x10(v0)
and v1,v1,a0
sw v1,0x10(v0)
lw ra,0x44(sp)
lw s1,0x40(sp)
lw s0,0x3c(sp)
jr ra
_addiu sp,sp,0x48
lw t9,-0x7eac(gp)
bal 0x00037390
_nop
lw gp,0x10(sp)
b 0x0002218c
_sltiu v0,v0,0x1
(translation_unit "void dwarf2_emit_insn(int param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  undefined8 uVar4;\n  undefined1 auStack_30 [36];\n  \n  if (*(int *)PTR_debug_type_000b5d20 == 5) {\n    iVar2 = seen_at_least_1_file();\n  }\n  else {\n    iVar2 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30;\n  }\n  if (iVar2 != 0) {\n    dwarf2_where(auStack_30);\n    uVar4 = frag_now_fix();\n    uVar3 = (uint)uVar4 - param_1;\n    dwarf2_gen_line_info\n              (((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)) - (uint)((uint)uVar4 < uVar3),\n               uVar3,auStack_30);\n    puVar1 = PTR_DAT_000b5ca8;\n    *(undefined4 *)PTR_dwarf2_loc_directive_seen_000b5f30 = 0;\n    *(undefined4 *)(puVar1 + 0x503c) = 0;\n    *(undefined4 *)(puVar1 + 0x5040) = 0;\n    *(uint *)(puVar1 + 0x5038) = *(uint *)(puVar1 + 0x5038) & 0xfffffff1;\n  }\n  return;\n}\n\n" (function_definition "void dwarf2_emit_insn(int param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  undefined8 uVar4;\n  undefined1 auStack_30 [36];\n  \n  if (*(int *)PTR_debug_type_000b5d20 == 5) {\n    iVar2 = seen_at_least_1_file();\n  }\n  else {\n    iVar2 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30;\n  }\n  if (iVar2 != 0) {\n    dwarf2_where(auStack_30);\n    uVar4 = frag_now_fix();\n    uVar3 = (uint)uVar4 - param_1;\n    dwarf2_gen_line_info\n              (((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)) - (uint)((uint)uVar4 < uVar3),\n               uVar3,auStack_30);\n    puVar1 = PTR_DAT_000b5ca8;\n    *(undefined4 *)PTR_dwarf2_loc_directive_seen_000b5f30 = 0;\n    *(undefined4 *)(puVar1 + 0x503c) = 0;\n    *(undefined4 *)(puVar1 + 0x5040) = 0;\n    *(uint *)(puVar1 + 0x5038) = *(uint *)(puVar1 + 0x5038) & 0xfffffff1;\n  }\n  return;\n}" primitive_type (function_declarator "dwarf2_emit_insn(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  undefined8 uVar4;\n  undefined1 auStack_30 [36];\n  \n  if (*(int *)PTR_debug_type_000b5d20 == 5) {\n    iVar2 = seen_at_least_1_file();\n  }\n  else {\n    iVar2 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30;\n  }\n  if (iVar2 != 0) {\n    dwarf2_where(auStack_30);\n    uVar4 = frag_now_fix();\n    uVar3 = (uint)uVar4 - param_1;\n    dwarf2_gen_line_info\n              (((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)) - (uint)((uint)uVar4 < uVar3),\n               uVar3,auStack_30);\n    puVar1 = PTR_DAT_000b5ca8;\n    *(undefined4 *)PTR_dwarf2_loc_directive_seen_000b5f30 = 0;\n    *(undefined4 *)(puVar1 + 0x503c) = 0;\n    *(undefined4 *)(puVar1 + 0x5040) = 0;\n    *(uint *)(puVar1 + 0x5038) = *(uint *)(puVar1 + 0x5038) & 0xfffffff1;\n  }\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "undefined1 auStack_30 [36];" type_identifier (array_declarator "auStack_30 [36]" identifier [ number_literal ]) ;) (if_statement "if (*(int *)PTR_debug_type_000b5d20 == 5) {\n    iVar2 = seen_at_least_1_file();\n  }\n  else {\n    iVar2 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30;\n  }" if (parenthesized_expression "(*(int *)PTR_debug_type_000b5d20 == 5)" ( (binary_expression "*(int *)PTR_debug_type_000b5d20 == 5" (pointer_expression "*(int *)PTR_debug_type_000b5d20" * (cast_expression "(int *)PTR_debug_type_000b5d20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n    iVar2 = seen_at_least_1_file();\n  }" { (expression_statement "iVar2 = seen_at_least_1_file();" (assignment_expression "iVar2 = seen_at_least_1_file()" identifier = (call_expression "seen_at_least_1_file()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n    iVar2 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30;\n  }" else (compound_statement "{\n    iVar2 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30;\n  }" { (expression_statement "iVar2 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30;" (assignment_expression "iVar2 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30" identifier = (pointer_expression "*(int *)PTR_dwarf2_loc_directive_seen_000b5f30" * (cast_expression "(int *)PTR_dwarf2_loc_directive_seen_000b5f30" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }))) (if_statement "if (iVar2 != 0) {\n    dwarf2_where(auStack_30);\n    uVar4 = frag_now_fix();\n    uVar3 = (uint)uVar4 - param_1;\n    dwarf2_gen_line_info\n              (((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)) - (uint)((uint)uVar4 < uVar3),\n               uVar3,auStack_30);\n    puVar1 = PTR_DAT_000b5ca8;\n    *(undefined4 *)PTR_dwarf2_loc_directive_seen_000b5f30 = 0;\n    *(undefined4 *)(puVar1 + 0x503c) = 0;\n    *(undefined4 *)(puVar1 + 0x5040) = 0;\n    *(uint *)(puVar1 + 0x5038) = *(uint *)(puVar1 + 0x5038) & 0xfffffff1;\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    dwarf2_where(auStack_30);\n    uVar4 = frag_now_fix();\n    uVar3 = (uint)uVar4 - param_1;\n    dwarf2_gen_line_info\n              (((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)) - (uint)((uint)uVar4 < uVar3),\n               uVar3,auStack_30);\n    puVar1 = PTR_DAT_000b5ca8;\n    *(undefined4 *)PTR_dwarf2_loc_directive_seen_000b5f30 = 0;\n    *(undefined4 *)(puVar1 + 0x503c) = 0;\n    *(undefined4 *)(puVar1 + 0x5040) = 0;\n    *(uint *)(puVar1 + 0x5038) = *(uint *)(puVar1 + 0x5038) & 0xfffffff1;\n  }" { (expression_statement "dwarf2_where(auStack_30);" (call_expression "dwarf2_where(auStack_30)" identifier (argument_list "(auStack_30)" ( identifier ))) ;) (expression_statement "uVar4 = frag_now_fix();" (assignment_expression "uVar4 = frag_now_fix()" identifier = (call_expression "frag_now_fix()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar3 = (uint)uVar4 - param_1;" (assignment_expression "uVar3 = (uint)uVar4 - param_1" identifier = (binary_expression "(uint)uVar4 - param_1" (cast_expression "(uint)uVar4" ( (type_descriptor "uint" type_identifier) ) identifier) - identifier)) ;) (expression_statement "dwarf2_gen_line_info\n              (((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)) - (uint)((uint)uVar4 < uVar3),\n               uVar3,auStack_30);" (call_expression "dwarf2_gen_line_info\n              (((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)) - (uint)((uint)uVar4 < uVar3),\n               uVar3,auStack_30)" identifier (argument_list "(((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)) - (uint)((uint)uVar4 < uVar3),\n               uVar3,auStack_30)" ( (binary_expression "((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)) - (uint)((uint)uVar4 < uVar3)" (parenthesized_expression "((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f))" ( (binary_expression "(int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)" (cast_expression "(int)((ulonglong)uVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar4 >> 0x20)" ( (binary_expression "(ulonglong)uVar4 >> 0x20" (cast_expression "(ulonglong)uVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) - (parenthesized_expression "(param_1 >> 0x1f)" ( (binary_expression "param_1 >> 0x1f" identifier >> number_literal) ))) )) - (call_expression "(uint)((uint)uVar4 < uVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)uVar4 < uVar3)" ( (binary_expression "(uint)uVar4 < uVar3" (cast_expression "(uint)uVar4" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) )))) , identifier , identifier ))) ;) (expression_statement "puVar1 = PTR_DAT_000b5ca8;" (assignment_expression "puVar1 = PTR_DAT_000b5ca8" identifier = identifier) ;) (expression_statement "*(undefined4 *)PTR_dwarf2_loc_directive_seen_000b5f30 = 0;" (assignment_expression "*(undefined4 *)PTR_dwarf2_loc_directive_seen_000b5f30 = 0" (pointer_expression "*(undefined4 *)PTR_dwarf2_loc_directive_seen_000b5f30" * (cast_expression "(undefined4 *)PTR_dwarf2_loc_directive_seen_000b5f30" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar1 + 0x503c) = 0;" (assignment_expression "*(undefined4 *)(puVar1 + 0x503c) = 0" (pointer_expression "*(undefined4 *)(puVar1 + 0x503c)" * (cast_expression "(undefined4 *)(puVar1 + 0x503c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x503c)" ( (binary_expression "puVar1 + 0x503c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar1 + 0x5040) = 0;" (assignment_expression "*(undefined4 *)(puVar1 + 0x5040) = 0" (pointer_expression "*(undefined4 *)(puVar1 + 0x5040)" * (cast_expression "(undefined4 *)(puVar1 + 0x5040)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x5040)" ( (binary_expression "puVar1 + 0x5040" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(puVar1 + 0x5038) = *(uint *)(puVar1 + 0x5038) & 0xfffffff1;" (assignment_expression "*(uint *)(puVar1 + 0x5038) = *(uint *)(puVar1 + 0x5038) & 0xfffffff1" (pointer_expression "*(uint *)(puVar1 + 0x5038)" * (cast_expression "(uint *)(puVar1 + 0x5038)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x5038)" ( (binary_expression "puVar1 + 0x5038" identifier + number_literal) )))) = (binary_expression "*(uint *)(puVar1 + 0x5038) & 0xfffffff1" (pointer_expression "*(uint *)(puVar1 + 0x5038)" * (cast_expression "(uint *)(puVar1 + 0x5038)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x5038)" ( (binary_expression "puVar1 + 0x5038" identifier + number_literal) )))) & number_literal)) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void dwarf2_emit_insn(int size)\n\n{\n  int iVar1;\n  addressT aVar2;\n  char *pcVar3;\n  undefined4 in_stack_ffffffcc;\n  dwarf2_line_info loc;\n  \n  pcVar3 = input_buffer + 0x7358;\n  if (*(int *)PTR_debug_type_000b5d20 == 5) {\n    iVar1 = seen_at_least_1_file();\n  }\n  else {\n    iVar1 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30;\n  }\n  if (iVar1 != 0) {\n    dwarf2_where(&loc);\n    aVar2 = frag_now_fix();\n    dwarf2_gen_line_info\n              (CONCAT44(pcVar3,in_stack_ffffffcc),\n               (dwarf2_line_info *)\n               (((int)(aVar2 >> 0x20) - (size >> 0x1f)) - (uint)((uint)aVar2 < (uint)aVar2 - size)))\n    ;\n    iVar1 = *(int *)(pcVar3 + -0x7fd8);\n    **(undefined4 **)(pcVar3 + -0x7d50) = 0;\n    *(undefined4 *)(iVar1 + 0x503c) = 0;\n    *(undefined4 *)(iVar1 + 0x5040) = 0;\n    *(uint *)(iVar1 + 0x5038) = *(uint *)(iVar1 + 0x5038) & 0xfffffff1;\n  }\n  return;\n}\n\n" (function_definition "void dwarf2_emit_insn(int size)\n\n{\n  int iVar1;\n  addressT aVar2;\n  char *pcVar3;\n  undefined4 in_stack_ffffffcc;\n  dwarf2_line_info loc;\n  \n  pcVar3 = input_buffer + 0x7358;\n  if (*(int *)PTR_debug_type_000b5d20 == 5) {\n    iVar1 = seen_at_least_1_file();\n  }\n  else {\n    iVar1 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30;\n  }\n  if (iVar1 != 0) {\n    dwarf2_where(&loc);\n    aVar2 = frag_now_fix();\n    dwarf2_gen_line_info\n              (CONCAT44(pcVar3,in_stack_ffffffcc),\n               (dwarf2_line_info *)\n               (((int)(aVar2 >> 0x20) - (size >> 0x1f)) - (uint)((uint)aVar2 < (uint)aVar2 - size)))\n    ;\n    iVar1 = *(int *)(pcVar3 + -0x7fd8);\n    **(undefined4 **)(pcVar3 + -0x7d50) = 0;\n    *(undefined4 *)(iVar1 + 0x503c) = 0;\n    *(undefined4 *)(iVar1 + 0x5040) = 0;\n    *(uint *)(iVar1 + 0x5038) = *(uint *)(iVar1 + 0x5038) & 0xfffffff1;\n  }\n  return;\n}" primitive_type (function_declarator "dwarf2_emit_insn(int size)" identifier (parameter_list "(int size)" ( (parameter_declaration "int size" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  addressT aVar2;\n  char *pcVar3;\n  undefined4 in_stack_ffffffcc;\n  dwarf2_line_info loc;\n  \n  pcVar3 = input_buffer + 0x7358;\n  if (*(int *)PTR_debug_type_000b5d20 == 5) {\n    iVar1 = seen_at_least_1_file();\n  }\n  else {\n    iVar1 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30;\n  }\n  if (iVar1 != 0) {\n    dwarf2_where(&loc);\n    aVar2 = frag_now_fix();\n    dwarf2_gen_line_info\n              (CONCAT44(pcVar3,in_stack_ffffffcc),\n               (dwarf2_line_info *)\n               (((int)(aVar2 >> 0x20) - (size >> 0x1f)) - (uint)((uint)aVar2 < (uint)aVar2 - size)))\n    ;\n    iVar1 = *(int *)(pcVar3 + -0x7fd8);\n    **(undefined4 **)(pcVar3 + -0x7d50) = 0;\n    *(undefined4 *)(iVar1 + 0x503c) = 0;\n    *(undefined4 *)(iVar1 + 0x5040) = 0;\n    *(uint *)(iVar1 + 0x5038) = *(uint *)(iVar1 + 0x5038) & 0xfffffff1;\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "addressT aVar2;" type_identifier identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined4 in_stack_ffffffcc;" type_identifier identifier ;) (declaration "dwarf2_line_info loc;" type_identifier identifier ;) (expression_statement "pcVar3 = input_buffer + 0x7358;" (assignment_expression "pcVar3 = input_buffer + 0x7358" identifier = (binary_expression "input_buffer + 0x7358" identifier + number_literal)) ;) (if_statement "if (*(int *)PTR_debug_type_000b5d20 == 5) {\n    iVar1 = seen_at_least_1_file();\n  }\n  else {\n    iVar1 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30;\n  }" if (parenthesized_expression "(*(int *)PTR_debug_type_000b5d20 == 5)" ( (binary_expression "*(int *)PTR_debug_type_000b5d20 == 5" (pointer_expression "*(int *)PTR_debug_type_000b5d20" * (cast_expression "(int *)PTR_debug_type_000b5d20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n    iVar1 = seen_at_least_1_file();\n  }" { (expression_statement "iVar1 = seen_at_least_1_file();" (assignment_expression "iVar1 = seen_at_least_1_file()" identifier = (call_expression "seen_at_least_1_file()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n    iVar1 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30;\n  }" else (compound_statement "{\n    iVar1 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30;\n  }" { (expression_statement "iVar1 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30;" (assignment_expression "iVar1 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30" identifier = (pointer_expression "*(int *)PTR_dwarf2_loc_directive_seen_000b5f30" * (cast_expression "(int *)PTR_dwarf2_loc_directive_seen_000b5f30" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }))) (if_statement "if (iVar1 != 0) {\n    dwarf2_where(&loc);\n    aVar2 = frag_now_fix();\n    dwarf2_gen_line_info\n              (CONCAT44(pcVar3,in_stack_ffffffcc),\n               (dwarf2_line_info *)\n               (((int)(aVar2 >> 0x20) - (size >> 0x1f)) - (uint)((uint)aVar2 < (uint)aVar2 - size)))\n    ;\n    iVar1 = *(int *)(pcVar3 + -0x7fd8);\n    **(undefined4 **)(pcVar3 + -0x7d50) = 0;\n    *(undefined4 *)(iVar1 + 0x503c) = 0;\n    *(undefined4 *)(iVar1 + 0x5040) = 0;\n    *(uint *)(iVar1 + 0x5038) = *(uint *)(iVar1 + 0x5038) & 0xfffffff1;\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    dwarf2_where(&loc);\n    aVar2 = frag_now_fix();\n    dwarf2_gen_line_info\n              (CONCAT44(pcVar3,in_stack_ffffffcc),\n               (dwarf2_line_info *)\n               (((int)(aVar2 >> 0x20) - (size >> 0x1f)) - (uint)((uint)aVar2 < (uint)aVar2 - size)))\n    ;\n    iVar1 = *(int *)(pcVar3 + -0x7fd8);\n    **(undefined4 **)(pcVar3 + -0x7d50) = 0;\n    *(undefined4 *)(iVar1 + 0x503c) = 0;\n    *(undefined4 *)(iVar1 + 0x5040) = 0;\n    *(uint *)(iVar1 + 0x5038) = *(uint *)(iVar1 + 0x5038) & 0xfffffff1;\n  }" { (expression_statement "dwarf2_where(&loc);" (call_expression "dwarf2_where(&loc)" identifier (argument_list "(&loc)" ( (pointer_expression "&loc" & identifier) ))) ;) (expression_statement "aVar2 = frag_now_fix();" (assignment_expression "aVar2 = frag_now_fix()" identifier = (call_expression "frag_now_fix()" identifier (argument_list "()" ( )))) ;) (expression_statement "dwarf2_gen_line_info\n              (CONCAT44(pcVar3,in_stack_ffffffcc),\n               (dwarf2_line_info *)\n               (((int)(aVar2 >> 0x20) - (size >> 0x1f)) - (uint)((uint)aVar2 < (uint)aVar2 - size)))\n    ;" (call_expression "dwarf2_gen_line_info\n              (CONCAT44(pcVar3,in_stack_ffffffcc),\n               (dwarf2_line_info *)\n               (((int)(aVar2 >> 0x20) - (size >> 0x1f)) - (uint)((uint)aVar2 < (uint)aVar2 - size)))" identifier (argument_list "(CONCAT44(pcVar3,in_stack_ffffffcc),\n               (dwarf2_line_info *)\n               (((int)(aVar2 >> 0x20) - (size >> 0x1f)) - (uint)((uint)aVar2 < (uint)aVar2 - size)))" ( (call_expression "CONCAT44(pcVar3,in_stack_ffffffcc)" identifier (argument_list "(pcVar3,in_stack_ffffffcc)" ( identifier , identifier ))) , (cast_expression "(dwarf2_line_info *)\n               (((int)(aVar2 >> 0x20) - (size >> 0x1f)) - (uint)((uint)aVar2 < (uint)aVar2 - size))" ( (type_descriptor "dwarf2_line_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)(aVar2 >> 0x20) - (size >> 0x1f)) - (uint)((uint)aVar2 < (uint)aVar2 - size))" ( (binary_expression "((int)(aVar2 >> 0x20) - (size >> 0x1f)) - (uint)((uint)aVar2 < (uint)aVar2 - size)" (parenthesized_expression "((int)(aVar2 >> 0x20) - (size >> 0x1f))" ( (binary_expression "(int)(aVar2 >> 0x20) - (size >> 0x1f)" (cast_expression "(int)(aVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(aVar2 >> 0x20)" ( (binary_expression "aVar2 >> 0x20" identifier >> number_literal) ))) - (parenthesized_expression "(size >> 0x1f)" ( (binary_expression "size >> 0x1f" identifier >> number_literal) ))) )) - (call_expression "(uint)((uint)aVar2 < (uint)aVar2 - size)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)aVar2 < (uint)aVar2 - size)" ( (binary_expression "(uint)aVar2 < (uint)aVar2 - size" (cast_expression "(uint)aVar2" ( (type_descriptor "uint" type_identifier) ) identifier) < (binary_expression "(uint)aVar2 - size" (cast_expression "(uint)aVar2" ( (type_descriptor "uint" type_identifier) ) identifier) - identifier)) )))) ))) ))) ;) (expression_statement "iVar1 = *(int *)(pcVar3 + -0x7fd8);" (assignment_expression "iVar1 = *(int *)(pcVar3 + -0x7fd8)" identifier = (pointer_expression "*(int *)(pcVar3 + -0x7fd8)" * (cast_expression "(int *)(pcVar3 + -0x7fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + -0x7fd8)" ( (binary_expression "pcVar3 + -0x7fd8" identifier + number_literal) ))))) ;) (expression_statement "**(undefined4 **)(pcVar3 + -0x7d50) = 0;" (assignment_expression "**(undefined4 **)(pcVar3 + -0x7d50) = 0" (pointer_expression "**(undefined4 **)(pcVar3 + -0x7d50)" * (pointer_expression "*(undefined4 **)(pcVar3 + -0x7d50)" * (cast_expression "(undefined4 **)(pcVar3 + -0x7d50)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar3 + -0x7d50)" ( (binary_expression "pcVar3 + -0x7d50" identifier + number_literal) ))))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x503c) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x503c) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x503c)" * (cast_expression "(undefined4 *)(iVar1 + 0x503c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x503c)" ( (binary_expression "iVar1 + 0x503c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x5040) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x5040) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x5040)" * (cast_expression "(undefined4 *)(iVar1 + 0x5040)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x5040)" ( (binary_expression "iVar1 + 0x5040" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(iVar1 + 0x5038) = *(uint *)(iVar1 + 0x5038) & 0xfffffff1;" (assignment_expression "*(uint *)(iVar1 + 0x5038) = *(uint *)(iVar1 + 0x5038) & 0xfffffff1" (pointer_expression "*(uint *)(iVar1 + 0x5038)" * (cast_expression "(uint *)(iVar1 + 0x5038)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x5038)" ( (binary_expression "iVar1 + 0x5038" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar1 + 0x5038) & 0xfffffff1" (pointer_expression "*(uint *)(iVar1 + 0x5038)" * (cast_expression "(uint *)(iVar1 + 0x5038)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x5038)" ( (binary_expression "iVar1 + 0x5038" identifier + number_literal) )))) & number_literal)) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void dwarf2_emit_insn(int param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  undefined8 uVar4;\n  undefined1 auStack_30 [36];\n  \n  if (*(int *)PTR_debug_type_000b5d20 == 5) {\n    iVar2 = seen_at_least_1_file();\n  }\n  else {\n    iVar2 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30;\n  }\n  if (iVar2 != 0) {\n    dwarf2_where(auStack_30);\n    uVar4 = frag_now_fix();\n    uVar3 = (uint)uVar4 - param_1;\n    dwarf2_gen_line_info\n              (((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)) - (uint)((uint)uVar4 < uVar3),\n               uVar3,auStack_30);\n    puVar1 = PTR_DAT_000b5ca8;\n    *(undefined4 *)PTR_dwarf2_loc_directive_seen_000b5f30 = 0;\n    *(undefined4 *)(puVar1 + 0x503c) = 0;\n    *(undefined4 *)(puVar1 + 0x5040) = 0;\n    *(uint *)(puVar1 + 0x5038) = *(uint *)(puVar1 + 0x5038) & 0xfffffff1;\n  }\n  return;\n}\n\n" (function_definition "void dwarf2_emit_insn(int param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  undefined8 uVar4;\n  undefined1 auStack_30 [36];\n  \n  if (*(int *)PTR_debug_type_000b5d20 == 5) {\n    iVar2 = seen_at_least_1_file();\n  }\n  else {\n    iVar2 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30;\n  }\n  if (iVar2 != 0) {\n    dwarf2_where(auStack_30);\n    uVar4 = frag_now_fix();\n    uVar3 = (uint)uVar4 - param_1;\n    dwarf2_gen_line_info\n              (((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)) - (uint)((uint)uVar4 < uVar3),\n               uVar3,auStack_30);\n    puVar1 = PTR_DAT_000b5ca8;\n    *(undefined4 *)PTR_dwarf2_loc_directive_seen_000b5f30 = 0;\n    *(undefined4 *)(puVar1 + 0x503c) = 0;\n    *(undefined4 *)(puVar1 + 0x5040) = 0;\n    *(uint *)(puVar1 + 0x5038) = *(uint *)(puVar1 + 0x5038) & 0xfffffff1;\n  }\n  return;\n}" primitive_type (function_declarator "dwarf2_emit_insn(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  undefined8 uVar4;\n  undefined1 auStack_30 [36];\n  \n  if (*(int *)PTR_debug_type_000b5d20 == 5) {\n    iVar2 = seen_at_least_1_file();\n  }\n  else {\n    iVar2 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30;\n  }\n  if (iVar2 != 0) {\n    dwarf2_where(auStack_30);\n    uVar4 = frag_now_fix();\n    uVar3 = (uint)uVar4 - param_1;\n    dwarf2_gen_line_info\n              (((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)) - (uint)((uint)uVar4 < uVar3),\n               uVar3,auStack_30);\n    puVar1 = PTR_DAT_000b5ca8;\n    *(undefined4 *)PTR_dwarf2_loc_directive_seen_000b5f30 = 0;\n    *(undefined4 *)(puVar1 + 0x503c) = 0;\n    *(undefined4 *)(puVar1 + 0x5040) = 0;\n    *(uint *)(puVar1 + 0x5038) = *(uint *)(puVar1 + 0x5038) & 0xfffffff1;\n  }\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "undefined1 auStack_30 [36];" type_identifier (array_declarator "auStack_30 [36]" identifier [ number_literal ]) ;) (if_statement "if (*(int *)PTR_debug_type_000b5d20 == 5) {\n    iVar2 = seen_at_least_1_file();\n  }\n  else {\n    iVar2 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30;\n  }" if (parenthesized_expression "(*(int *)PTR_debug_type_000b5d20 == 5)" ( (binary_expression "*(int *)PTR_debug_type_000b5d20 == 5" (pointer_expression "*(int *)PTR_debug_type_000b5d20" * (cast_expression "(int *)PTR_debug_type_000b5d20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n    iVar2 = seen_at_least_1_file();\n  }" { (expression_statement "iVar2 = seen_at_least_1_file();" (assignment_expression "iVar2 = seen_at_least_1_file()" identifier = (call_expression "seen_at_least_1_file()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n    iVar2 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30;\n  }" else (compound_statement "{\n    iVar2 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30;\n  }" { (expression_statement "iVar2 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30;" (assignment_expression "iVar2 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30" identifier = (pointer_expression "*(int *)PTR_dwarf2_loc_directive_seen_000b5f30" * (cast_expression "(int *)PTR_dwarf2_loc_directive_seen_000b5f30" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }))) (if_statement "if (iVar2 != 0) {\n    dwarf2_where(auStack_30);\n    uVar4 = frag_now_fix();\n    uVar3 = (uint)uVar4 - param_1;\n    dwarf2_gen_line_info\n              (((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)) - (uint)((uint)uVar4 < uVar3),\n               uVar3,auStack_30);\n    puVar1 = PTR_DAT_000b5ca8;\n    *(undefined4 *)PTR_dwarf2_loc_directive_seen_000b5f30 = 0;\n    *(undefined4 *)(puVar1 + 0x503c) = 0;\n    *(undefined4 *)(puVar1 + 0x5040) = 0;\n    *(uint *)(puVar1 + 0x5038) = *(uint *)(puVar1 + 0x5038) & 0xfffffff1;\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    dwarf2_where(auStack_30);\n    uVar4 = frag_now_fix();\n    uVar3 = (uint)uVar4 - param_1;\n    dwarf2_gen_line_info\n              (((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)) - (uint)((uint)uVar4 < uVar3),\n               uVar3,auStack_30);\n    puVar1 = PTR_DAT_000b5ca8;\n    *(undefined4 *)PTR_dwarf2_loc_directive_seen_000b5f30 = 0;\n    *(undefined4 *)(puVar1 + 0x503c) = 0;\n    *(undefined4 *)(puVar1 + 0x5040) = 0;\n    *(uint *)(puVar1 + 0x5038) = *(uint *)(puVar1 + 0x5038) & 0xfffffff1;\n  }" { (expression_statement "dwarf2_where(auStack_30);" (call_expression "dwarf2_where(auStack_30)" identifier (argument_list "(auStack_30)" ( identifier ))) ;) (expression_statement "uVar4 = frag_now_fix();" (assignment_expression "uVar4 = frag_now_fix()" identifier = (call_expression "frag_now_fix()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar3 = (uint)uVar4 - param_1;" (assignment_expression "uVar3 = (uint)uVar4 - param_1" identifier = (binary_expression "(uint)uVar4 - param_1" (cast_expression "(uint)uVar4" ( (type_descriptor "uint" type_identifier) ) identifier) - identifier)) ;) (expression_statement "dwarf2_gen_line_info\n              (((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)) - (uint)((uint)uVar4 < uVar3),\n               uVar3,auStack_30);" (call_expression "dwarf2_gen_line_info\n              (((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)) - (uint)((uint)uVar4 < uVar3),\n               uVar3,auStack_30)" identifier (argument_list "(((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)) - (uint)((uint)uVar4 < uVar3),\n               uVar3,auStack_30)" ( (binary_expression "((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)) - (uint)((uint)uVar4 < uVar3)" (parenthesized_expression "((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f))" ( (binary_expression "(int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)" (cast_expression "(int)((ulonglong)uVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar4 >> 0x20)" ( (binary_expression "(ulonglong)uVar4 >> 0x20" (cast_expression "(ulonglong)uVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) - (parenthesized_expression "(param_1 >> 0x1f)" ( (binary_expression "param_1 >> 0x1f" identifier >> number_literal) ))) )) - (call_expression "(uint)((uint)uVar4 < uVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)uVar4 < uVar3)" ( (binary_expression "(uint)uVar4 < uVar3" (cast_expression "(uint)uVar4" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) )))) , identifier , identifier ))) ;) (expression_statement "puVar1 = PTR_DAT_000b5ca8;" (assignment_expression "puVar1 = PTR_DAT_000b5ca8" identifier = identifier) ;) (expression_statement "*(undefined4 *)PTR_dwarf2_loc_directive_seen_000b5f30 = 0;" (assignment_expression "*(undefined4 *)PTR_dwarf2_loc_directive_seen_000b5f30 = 0" (pointer_expression "*(undefined4 *)PTR_dwarf2_loc_directive_seen_000b5f30" * (cast_expression "(undefined4 *)PTR_dwarf2_loc_directive_seen_000b5f30" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar1 + 0x503c) = 0;" (assignment_expression "*(undefined4 *)(puVar1 + 0x503c) = 0" (pointer_expression "*(undefined4 *)(puVar1 + 0x503c)" * (cast_expression "(undefined4 *)(puVar1 + 0x503c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x503c)" ( (binary_expression "puVar1 + 0x503c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar1 + 0x5040) = 0;" (assignment_expression "*(undefined4 *)(puVar1 + 0x5040) = 0" (pointer_expression "*(undefined4 *)(puVar1 + 0x5040)" * (cast_expression "(undefined4 *)(puVar1 + 0x5040)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x5040)" ( (binary_expression "puVar1 + 0x5040" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(puVar1 + 0x5038) = *(uint *)(puVar1 + 0x5038) & 0xfffffff1;" (assignment_expression "*(uint *)(puVar1 + 0x5038) = *(uint *)(puVar1 + 0x5038) & 0xfffffff1" (pointer_expression "*(uint *)(puVar1 + 0x5038)" * (cast_expression "(uint *)(puVar1 + 0x5038)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x5038)" ( (binary_expression "puVar1 + 0x5038" identifier + number_literal) )))) = (binary_expression "*(uint *)(puVar1 + 0x5038) & 0xfffffff1" (pointer_expression "*(uint *)(puVar1 + 0x5038)" * (cast_expression "(uint *)(puVar1 + 0x5038)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x5038)" ( (binary_expression "puVar1 + 0x5038" identifier + number_literal) )))) & number_literal)) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) - (parenthesized_expression ( (binary_expression IDENT >> LIT) ))) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )))) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) })) (return_statement return ;) })))
(function_definition "void dwarf2_emit_insn(int param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  undefined8 uVar4;\n  undefined1 auStack_30 [36];\n  \n  if (*(int *)PTR_debug_type_000b5d20 == 5) {\n    iVar2 = seen_at_least_1_file();\n  }\n  else {\n    iVar2 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30;\n  }\n  if (iVar2 != 0) {\n    dwarf2_where(auStack_30);\n    uVar4 = frag_now_fix();\n    uVar3 = (uint)uVar4 - param_1;\n    dwarf2_gen_line_info\n              (((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)) - (uint)((uint)uVar4 < uVar3),\n               uVar3,auStack_30);\n    puVar1 = PTR_DAT_000b5ca8;\n    *(undefined4 *)PTR_dwarf2_loc_directive_seen_000b5f30 = 0;\n    *(undefined4 *)(puVar1 + 0x503c) = 0;\n    *(undefined4 *)(puVar1 + 0x5040) = 0;\n    *(uint *)(puVar1 + 0x5038) = *(uint *)(puVar1 + 0x5038) & 0xfffffff1;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "dwarf2_emit_insn(int param_1)" (identifier "dwarf2_emit_insn") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  undefined8 uVar4;\n  undefined1 auStack_30 [36];\n  \n  if (*(int *)PTR_debug_type_000b5d20 == 5) {\n    iVar2 = seen_at_least_1_file();\n  }\n  else {\n    iVar2 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30;\n  }\n  if (iVar2 != 0) {\n    dwarf2_where(auStack_30);\n    uVar4 = frag_now_fix();\n    uVar3 = (uint)uVar4 - param_1;\n    dwarf2_gen_line_info\n              (((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)) - (uint)((uint)uVar4 < uVar3),\n               uVar3,auStack_30);\n    puVar1 = PTR_DAT_000b5ca8;\n    *(undefined4 *)PTR_dwarf2_loc_directive_seen_000b5f30 = 0;\n    *(undefined4 *)(puVar1 + 0x503c) = 0;\n    *(undefined4 *)(puVar1 + 0x5040) = 0;\n    *(uint *)(puVar1 + 0x5038) = *(uint *)(puVar1 + 0x5038) & 0xfffffff1;\n  }\n  return;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (declaration "undefined1 auStack_30 [36];" (type_identifier "undefined1") (array_declarator "auStack_30 [36]" (identifier "auStack_30") ([ "[") (number_literal "36") (] "]")) (; ";")) (if_statement "if (*(int *)PTR_debug_type_000b5d20 == 5) {\n    iVar2 = seen_at_least_1_file();\n  }\n  else {\n    iVar2 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30;\n  }" (if "if") (parenthesized_expression "(*(int *)PTR_debug_type_000b5d20 == 5)" (( "(") (binary_expression "*(int *)PTR_debug_type_000b5d20 == 5" (pointer_expression "*(int *)PTR_debug_type_000b5d20" (* "*") (cast_expression "(int *)PTR_debug_type_000b5d20" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_debug_type_000b5d20"))) (== "==") (number_literal "5")) () ")")) (compound_statement "{\n    iVar2 = seen_at_least_1_file();\n  }" ({ "{") (expression_statement "iVar2 = seen_at_least_1_file();" (assignment_expression "iVar2 = seen_at_least_1_file()" (identifier "iVar2") (= "=") (call_expression "seen_at_least_1_file()" (identifier "seen_at_least_1_file") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n    iVar2 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30;\n  }" (else "else") (compound_statement "{\n    iVar2 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30;\n  }" ({ "{") (expression_statement "iVar2 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30;" (assignment_expression "iVar2 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30" (identifier "iVar2") (= "=") (pointer_expression "*(int *)PTR_dwarf2_loc_directive_seen_000b5f30" (* "*") (cast_expression "(int *)PTR_dwarf2_loc_directive_seen_000b5f30" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dwarf2_loc_directive_seen_000b5f30")))) (; ";")) (} "}")))) (if_statement "if (iVar2 != 0) {\n    dwarf2_where(auStack_30);\n    uVar4 = frag_now_fix();\n    uVar3 = (uint)uVar4 - param_1;\n    dwarf2_gen_line_info\n              (((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)) - (uint)((uint)uVar4 < uVar3),\n               uVar3,auStack_30);\n    puVar1 = PTR_DAT_000b5ca8;\n    *(undefined4 *)PTR_dwarf2_loc_directive_seen_000b5f30 = 0;\n    *(undefined4 *)(puVar1 + 0x503c) = 0;\n    *(undefined4 *)(puVar1 + 0x5040) = 0;\n    *(uint *)(puVar1 + 0x5038) = *(uint *)(puVar1 + 0x5038) & 0xfffffff1;\n  }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    dwarf2_where(auStack_30);\n    uVar4 = frag_now_fix();\n    uVar3 = (uint)uVar4 - param_1;\n    dwarf2_gen_line_info\n              (((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)) - (uint)((uint)uVar4 < uVar3),\n               uVar3,auStack_30);\n    puVar1 = PTR_DAT_000b5ca8;\n    *(undefined4 *)PTR_dwarf2_loc_directive_seen_000b5f30 = 0;\n    *(undefined4 *)(puVar1 + 0x503c) = 0;\n    *(undefined4 *)(puVar1 + 0x5040) = 0;\n    *(uint *)(puVar1 + 0x5038) = *(uint *)(puVar1 + 0x5038) & 0xfffffff1;\n  }" ({ "{") (expression_statement "dwarf2_where(auStack_30);" (call_expression "dwarf2_where(auStack_30)" (identifier "dwarf2_where") (argument_list "(auStack_30)" (( "(") (identifier "auStack_30") () ")"))) (; ";")) (expression_statement "uVar4 = frag_now_fix();" (assignment_expression "uVar4 = frag_now_fix()" (identifier "uVar4") (= "=") (call_expression "frag_now_fix()" (identifier "frag_now_fix") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar3 = (uint)uVar4 - param_1;" (assignment_expression "uVar3 = (uint)uVar4 - param_1" (identifier "uVar3") (= "=") (binary_expression "(uint)uVar4 - param_1" (cast_expression "(uint)uVar4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar4")) (- "-") (identifier "param_1"))) (; ";")) (expression_statement "dwarf2_gen_line_info\n              (((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)) - (uint)((uint)uVar4 < uVar3),\n               uVar3,auStack_30);" (call_expression "dwarf2_gen_line_info\n              (((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)) - (uint)((uint)uVar4 < uVar3),\n               uVar3,auStack_30)" (identifier "dwarf2_gen_line_info") (argument_list "(((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)) - (uint)((uint)uVar4 < uVar3),\n               uVar3,auStack_30)" (( "(") (binary_expression "((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)) - (uint)((uint)uVar4 < uVar3)" (parenthesized_expression "((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f))" (( "(") (binary_expression "(int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)" (cast_expression "(int)((ulonglong)uVar4 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar4 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar4 >> 0x20" (cast_expression "(ulonglong)uVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar4")) (>> ">>") (number_literal "0x20")) () ")"))) (- "-") (parenthesized_expression "(param_1 >> 0x1f)" (( "(") (binary_expression "param_1 >> 0x1f" (identifier "param_1") (>> ">>") (number_literal "0x1f")) () ")"))) () ")")) (- "-") (call_expression "(uint)((uint)uVar4 < uVar3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)uVar4 < uVar3)" (( "(") (binary_expression "(uint)uVar4 < uVar3" (cast_expression "(uint)uVar4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar4")) (< "<") (identifier "uVar3")) () ")")))) (, ",") (identifier "uVar3") (, ",") (identifier "auStack_30") () ")"))) (; ";")) (expression_statement "puVar1 = PTR_DAT_000b5ca8;" (assignment_expression "puVar1 = PTR_DAT_000b5ca8" (identifier "puVar1") (= "=") (identifier "PTR_DAT_000b5ca8")) (; ";")) (expression_statement "*(undefined4 *)PTR_dwarf2_loc_directive_seen_000b5f30 = 0;" (assignment_expression "*(undefined4 *)PTR_dwarf2_loc_directive_seen_000b5f30 = 0" (pointer_expression "*(undefined4 *)PTR_dwarf2_loc_directive_seen_000b5f30" (* "*") (cast_expression "(undefined4 *)PTR_dwarf2_loc_directive_seen_000b5f30" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dwarf2_loc_directive_seen_000b5f30"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar1 + 0x503c) = 0;" (assignment_expression "*(undefined4 *)(puVar1 + 0x503c) = 0" (pointer_expression "*(undefined4 *)(puVar1 + 0x503c)" (* "*") (cast_expression "(undefined4 *)(puVar1 + 0x503c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0x503c)" (( "(") (binary_expression "puVar1 + 0x503c" (identifier "puVar1") (+ "+") (number_literal "0x503c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar1 + 0x5040) = 0;" (assignment_expression "*(undefined4 *)(puVar1 + 0x5040) = 0" (pointer_expression "*(undefined4 *)(puVar1 + 0x5040)" (* "*") (cast_expression "(undefined4 *)(puVar1 + 0x5040)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0x5040)" (( "(") (binary_expression "puVar1 + 0x5040" (identifier "puVar1") (+ "+") (number_literal "0x5040")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(uint *)(puVar1 + 0x5038) = *(uint *)(puVar1 + 0x5038) & 0xfffffff1;" (assignment_expression "*(uint *)(puVar1 + 0x5038) = *(uint *)(puVar1 + 0x5038) & 0xfffffff1" (pointer_expression "*(uint *)(puVar1 + 0x5038)" (* "*") (cast_expression "(uint *)(puVar1 + 0x5038)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0x5038)" (( "(") (binary_expression "puVar1 + 0x5038" (identifier "puVar1") (+ "+") (number_literal "0x5038")) () ")")))) (= "=") (binary_expression "*(uint *)(puVar1 + 0x5038) & 0xfffffff1" (pointer_expression "*(uint *)(puVar1 + 0x5038)" (* "*") (cast_expression "(uint *)(puVar1 + 0x5038)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0x5038)" (( "(") (binary_expression "puVar1 + 0x5038" (identifier "puVar1") (+ "+") (number_literal "0x5038")) () ")")))) (& "&") (number_literal "0xfffffff1"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (identifier))))) (identifier) (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: (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: (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: (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: (binary_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: (number_literal)))))) (return_statement))))

void MASKED(int param_1)

{
  undefined *puVar1;
  int iVar2;
  uint uVar3;
  undefined8 uVar4;
  undefined1 auStack_30 [36];
  
  if (*(int *)PTR_debug_type_000b5d20 == 5) {
    iVar2 = seen_at_least_1_file();
  }
  else {
    iVar2 = *(int *)PTR_dwarf2_loc_directive_seen_000b5f30;
  }
  if (iVar2 != 0) {
    dwarf2_where(auStack_30);
    uVar4 = frag_now_fix();
    uVar3 = (uint)uVar4 - param_1;
    dwarf2_gen_line_info
              (((int)((ulonglong)uVar4 >> 0x20) - (param_1 >> 0x1f)) - (uint)((uint)uVar4 < uVar3),
               uVar3,auStack_30);
    puVar1 = PTR_DAT_000b5ca8;
    *(undefined4 *)PTR_dwarf2_loc_directive_seen_000b5f30 = 0;
    *(undefined4 *)(puVar1 + 0x503c) = 0;
    *(undefined4 *)(puVar1 + 0x5040) = 0;
    *(uint *)(puVar1 + 0x5038) = *(uint *)(puVar1 + 0x5038) & 0xfffffff1;
  }
  return;
}

