
void frag_new(size_t old_frags_var_max_size)

{
  undefined *puVar1;
  undefined *puVar2;
  uint uVar3;
  fragS *pfVar4;
  char *pcVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  uint uVar9;
  int iVar10;
  int iVar11;
  
  puVar2 = PTR_frchain_now_000b5fac;
  puVar1 = PTR_frag_now_000b5f28;
  iVar10 = *(int *)PTR_frchain_now_000b5fac;
  iVar6 = *(int *)PTR_frag_now_000b5f28;
  iVar11 = *(int *)(iVar10 + 4);
  iVar8 = 0xa5;
  if (iVar11 == iVar6) {
    if (*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400) {
      iVar8 = *(int *)PTR_abs_section_offset_000b6080;
      uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);
    }
    else {
      uVar3 = *(int *)(iVar10 + 0x24) - (iVar11 + 0x4c);
      iVar8 = (int)uVar3 >> 0x1f;
    }
    *(uint *)(iVar6 + 0x14) = uVar3 - old_frags_var_max_size;
    *(uint *)(iVar6 + 0x10) = iVar8 - (uint)(uVar3 < uVar3 - old_frags_var_max_size);
    if (*(int *)(iVar6 + 0x44) == 0) {
      iVar8 = 0xaa;
    }
    else {
      if (*(int *)(iVar10 + 0x24) == *(int *)(iVar10 + 0x20)) {
        *(byte *)(iVar10 + 0x40) = *(byte *)(iVar10 + 0x40) & 0xbf | 0x40;
      }
      uVar9 = *(uint *)(iVar10 + 0x28);
      uVar3 = *(int *)(iVar10 + 0x24) + *(uint *)(iVar10 + 0x30) & ~*(uint *)(iVar10 + 0x30);
      *(uint *)(iVar10 + 0x24) = uVar3;
      if (uVar9 - *(int *)(iVar10 + 0x1c) < uVar3 - *(int *)(iVar10 + 0x1c)) {
        *(uint *)(iVar10 + 0x24) = uVar9;
        uVar3 = uVar9;
      }
      *(uint *)(iVar10 + 0x20) = uVar3;
      pfVar4 = frag_alloc((obstack *)(iVar10 + 0x18));
      *(fragS **)puVar1 = pfVar4;
      pcVar5 = as_where(&pfVar4->fr_line);
      iVar7 = *(int *)puVar1;
      iVar6 = *(int *)puVar2;
      pfVar4->fr_file = pcVar5;
      *(int *)(iVar11 + 0x30) = iVar7;
      *(int *)(iVar10 + 4) = iVar7;
      iVar6 = *(int *)(iVar6 + 4);
      iVar8 = 0xc6;
      *(undefined4 *)(iVar7 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;
      if (iVar7 == iVar6) {
        *(undefined4 *)(iVar7 + 0x30) = 0;
        return;
      }
    }
  }
                    /* WARNING: Subroutine does not return */
  as_abort(PTR_LAB_000b5cb8 + 0x688c,iVar8,PTR_LAB_000b5cb8 + 0x68e0);
}



void frag_new(int param_1)

{
  undefined *puVar1;
  undefined *puVar2;
  uint uVar3;
  int iVar4;
  undefined4 uVar5;
  int iVar6;
  int iVar7;
  uint uVar8;
  int iVar9;
  int iVar10;
  
  puVar2 = PTR_frchain_now_000b5fac;
  puVar1 = PTR_frag_now_000b5f28;
  iVar9 = *(int *)PTR_frchain_now_000b5fac;
  iVar4 = *(int *)PTR_frag_now_000b5f28;
  iVar10 = *(int *)(iVar9 + 4);
  uVar5 = 0xa5;
  if (iVar10 == iVar4) {
    if (*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400) {
      iVar6 = *(int *)PTR_abs_section_offset_000b6080;
      uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);
    }
    else {
      uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c);
      iVar6 = (int)uVar3 >> 0x1f;
    }
    *(uint *)(iVar4 + 0x14) = uVar3 - param_1;
    *(uint *)(iVar4 + 0x10) = iVar6 - (uint)(uVar3 < uVar3 - param_1);
    if (*(int *)(iVar4 + 0x44) == 0) {
      uVar5 = 0xaa;
    }
    else {
      if (*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)) {
        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;
      }
      uVar8 = *(uint *)(iVar9 + 0x28);
      uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30);
      *(uint *)(iVar9 + 0x24) = uVar3;
      if (uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)) {
        *(uint *)(iVar9 + 0x24) = uVar8;
        uVar3 = uVar8;
      }
      *(uint *)(iVar9 + 0x20) = uVar3;
      iVar4 = frag_alloc(iVar9 + 0x18);
      *(int *)puVar1 = iVar4;
      uVar5 = as_where(iVar4 + 0x38);
      iVar6 = *(int *)puVar1;
      iVar7 = *(int *)puVar2;
      *(undefined4 *)(iVar4 + 0x34) = uVar5;
      *(int *)(iVar10 + 0x30) = iVar6;
      *(int *)(iVar9 + 4) = iVar6;
      iVar4 = *(int *)(iVar7 + 4);
      uVar5 = 0xc6;
      *(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;
      if (iVar6 == iVar4) {
        *(undefined4 *)(iVar6 + 0x30) = 0;
        return;
      }
    }
  }
                    /* WARNING: Subroutine does not return */
  as_abort(PTR_LAB_000b5cb8 + 0x688c,uVar5,PTR_LAB_000b5cb8 + 0x68e0);
}


lui gp,0x9
addiu gp,gp,-0x7264
addu gp,gp,t9
addiu sp,sp,-0x30
sw s4,0x28(sp)
sw s1,0x1c(sp)
sw s0,0x18(sp)
lw s4,-0x7cd4(gp)
lw s1,-0x7d58(gp)
sw s3,0x24(sp)
sw gp,0x10(sp)
lw s0,0x0(s4)
lw v1,0x0(s1)
sw ra,0x2c(sp)
sw s2,0x20(sp)
lw s3,0x4(s0)
bne s3,v1,0x00035054
_li a1,0xa5
lw v0,-0x7d64(gp)
lw a1,0x0(v0)
lw v0,-0x7650(gp)
addiu v0,v0,0x190
beq a1,v0,0x00035044
_lw v0,-0x7c00(gp)
lw v0,0x24(s0)
addiu a1,s3,0x4c
subu v0,v0,a1
sra a1,v0,0x1f
subu a0,v0,a0
lw a2,0x44(v1)
sltu v0,v0,a0
sw a0,0x14(v1)
subu v0,a1,v0
beq a2,zero,0x00035050
_sw v0,0x10(v1)
lw v0,0x24(s0)
lw v1,0x20(s0)
beq v0,v1,0x00035030
_addiu a0,s0,0x18
lw a1,0x30(s0)
lw v1,0x1c(s0)
lw a2,0x28(s0)
addu v0,v0,a1
nor a1,zero,a1
and v0,v0,a1
subu a1,v0,v1
subu v1,a2,v1
sltu v1,v1,a1
bne v1,zero,0x00035024
_sw v0,0x24(s0)
lw t9,-0x7bd0(gp)
bal 0x00034d70
_sw v0,0x20(s0)
lw gp,0x10(sp)
addiu a0,v0,0x38
sw v0,0x0(s1)
lw t9,-0x7dec(gp)
bal 0x0003758c
_or s2,v0,zero
lw gp,0x10(sp)
lw v1,0x0(s1)
lw a1,0x0(s4)
sw v0,0x34(s2)
sw v1,0x30(s3)
sw v1,0x4(s0)
lw v0,-0x7bcc(gp)
lw a0,0x0(v0)
lw v0,0x4(a1)
li a1,0xc6
bne v1,v0,0x00035054
_sw a0,0x3c(v1)
lw ra,0x2c(sp)
lw s4,0x28(sp)
lw s3,0x24(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
sw zero,0x30(v1)
jr ra
_addiu sp,sp,0x30
sw a2,0x24(s0)
b 0x00034fac
_or v0,a2,zero
lbu v1,0x40(s0)
li a1,0x1
ins v1,a1,0x6,0x1
b 0x00034f80
_sb v1,0x40(s0)
lw a1,0x0(v0)
b 0x00034f54
_lw v0,0x4(v0)
li a1,0xaa
lw a2,-0x7fc8(gp)
lw a0,-0x7fc8(gp)
lw t9,-0x7f94(gp)
addiu a2,a2,0x68e0
bal 0x0003e54c
_addiu a0,a0,0x688c
(translation_unit "void frag_new(int param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  \n  puVar2 = PTR_frchain_now_000b5fac;\n  puVar1 = PTR_frag_now_000b5f28;\n  iVar9 = *(int *)PTR_frchain_now_000b5fac;\n  iVar4 = *(int *)PTR_frag_now_000b5f28;\n  iVar10 = *(int *)(iVar9 + 4);\n  uVar5 = 0xa5;\n  if (iVar10 == iVar4) {\n    if (*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400) {\n      iVar6 = *(int *)PTR_abs_section_offset_000b6080;\n      uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);\n    }\n    else {\n      uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c);\n      iVar6 = (int)uVar3 >> 0x1f;\n    }\n    *(uint *)(iVar4 + 0x14) = uVar3 - param_1;\n    *(uint *)(iVar4 + 0x10) = iVar6 - (uint)(uVar3 < uVar3 - param_1);\n    if (*(int *)(iVar4 + 0x44) == 0) {\n      uVar5 = 0xaa;\n    }\n    else {\n      if (*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)) {\n        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;\n      }\n      uVar8 = *(uint *)(iVar9 + 0x28);\n      uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30);\n      *(uint *)(iVar9 + 0x24) = uVar3;\n      if (uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)) {\n        *(uint *)(iVar9 + 0x24) = uVar8;\n        uVar3 = uVar8;\n      }\n      *(uint *)(iVar9 + 0x20) = uVar3;\n      iVar4 = frag_alloc(iVar9 + 0x18);\n      *(int *)puVar1 = iVar4;\n      uVar5 = as_where(iVar4 + 0x38);\n      iVar6 = *(int *)puVar1;\n      iVar7 = *(int *)puVar2;\n      *(undefined4 *)(iVar4 + 0x34) = uVar5;\n      *(int *)(iVar10 + 0x30) = iVar6;\n      *(int *)(iVar9 + 4) = iVar6;\n      iVar4 = *(int *)(iVar7 + 4);\n      uVar5 = 0xc6;\n      *(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar6 == iVar4) {\n        *(undefined4 *)(iVar6 + 0x30) = 0;\n        return;\n      }\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  as_abort(PTR_LAB_000b5cb8 + 0x688c,uVar5,PTR_LAB_000b5cb8 + 0x68e0);\n}\n\n" (function_definition "void frag_new(int param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  \n  puVar2 = PTR_frchain_now_000b5fac;\n  puVar1 = PTR_frag_now_000b5f28;\n  iVar9 = *(int *)PTR_frchain_now_000b5fac;\n  iVar4 = *(int *)PTR_frag_now_000b5f28;\n  iVar10 = *(int *)(iVar9 + 4);\n  uVar5 = 0xa5;\n  if (iVar10 == iVar4) {\n    if (*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400) {\n      iVar6 = *(int *)PTR_abs_section_offset_000b6080;\n      uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);\n    }\n    else {\n      uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c);\n      iVar6 = (int)uVar3 >> 0x1f;\n    }\n    *(uint *)(iVar4 + 0x14) = uVar3 - param_1;\n    *(uint *)(iVar4 + 0x10) = iVar6 - (uint)(uVar3 < uVar3 - param_1);\n    if (*(int *)(iVar4 + 0x44) == 0) {\n      uVar5 = 0xaa;\n    }\n    else {\n      if (*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)) {\n        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;\n      }\n      uVar8 = *(uint *)(iVar9 + 0x28);\n      uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30);\n      *(uint *)(iVar9 + 0x24) = uVar3;\n      if (uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)) {\n        *(uint *)(iVar9 + 0x24) = uVar8;\n        uVar3 = uVar8;\n      }\n      *(uint *)(iVar9 + 0x20) = uVar3;\n      iVar4 = frag_alloc(iVar9 + 0x18);\n      *(int *)puVar1 = iVar4;\n      uVar5 = as_where(iVar4 + 0x38);\n      iVar6 = *(int *)puVar1;\n      iVar7 = *(int *)puVar2;\n      *(undefined4 *)(iVar4 + 0x34) = uVar5;\n      *(int *)(iVar10 + 0x30) = iVar6;\n      *(int *)(iVar9 + 4) = iVar6;\n      iVar4 = *(int *)(iVar7 + 4);\n      uVar5 = 0xc6;\n      *(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar6 == iVar4) {\n        *(undefined4 *)(iVar6 + 0x30) = 0;\n        return;\n      }\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  as_abort(PTR_LAB_000b5cb8 + 0x688c,uVar5,PTR_LAB_000b5cb8 + 0x68e0);\n}" primitive_type (function_declarator "frag_new(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  \n  puVar2 = PTR_frchain_now_000b5fac;\n  puVar1 = PTR_frag_now_000b5f28;\n  iVar9 = *(int *)PTR_frchain_now_000b5fac;\n  iVar4 = *(int *)PTR_frag_now_000b5f28;\n  iVar10 = *(int *)(iVar9 + 4);\n  uVar5 = 0xa5;\n  if (iVar10 == iVar4) {\n    if (*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400) {\n      iVar6 = *(int *)PTR_abs_section_offset_000b6080;\n      uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);\n    }\n    else {\n      uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c);\n      iVar6 = (int)uVar3 >> 0x1f;\n    }\n    *(uint *)(iVar4 + 0x14) = uVar3 - param_1;\n    *(uint *)(iVar4 + 0x10) = iVar6 - (uint)(uVar3 < uVar3 - param_1);\n    if (*(int *)(iVar4 + 0x44) == 0) {\n      uVar5 = 0xaa;\n    }\n    else {\n      if (*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)) {\n        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;\n      }\n      uVar8 = *(uint *)(iVar9 + 0x28);\n      uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30);\n      *(uint *)(iVar9 + 0x24) = uVar3;\n      if (uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)) {\n        *(uint *)(iVar9 + 0x24) = uVar8;\n        uVar3 = uVar8;\n      }\n      *(uint *)(iVar9 + 0x20) = uVar3;\n      iVar4 = frag_alloc(iVar9 + 0x18);\n      *(int *)puVar1 = iVar4;\n      uVar5 = as_where(iVar4 + 0x38);\n      iVar6 = *(int *)puVar1;\n      iVar7 = *(int *)puVar2;\n      *(undefined4 *)(iVar4 + 0x34) = uVar5;\n      *(int *)(iVar10 + 0x30) = iVar6;\n      *(int *)(iVar9 + 4) = iVar6;\n      iVar4 = *(int *)(iVar7 + 4);\n      uVar5 = 0xc6;\n      *(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar6 == iVar4) {\n        *(undefined4 *)(iVar6 + 0x30) = 0;\n        return;\n      }\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  as_abort(PTR_LAB_000b5cb8 + 0x688c,uVar5,PTR_LAB_000b5cb8 + 0x68e0);\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (expression_statement "puVar2 = PTR_frchain_now_000b5fac;" (assignment_expression "puVar2 = PTR_frchain_now_000b5fac" identifier = identifier) ;) (expression_statement "puVar1 = PTR_frag_now_000b5f28;" (assignment_expression "puVar1 = PTR_frag_now_000b5f28" identifier = identifier) ;) (expression_statement "iVar9 = *(int *)PTR_frchain_now_000b5fac;" (assignment_expression "iVar9 = *(int *)PTR_frchain_now_000b5fac" identifier = (pointer_expression "*(int *)PTR_frchain_now_000b5fac" * (cast_expression "(int *)PTR_frchain_now_000b5fac" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar4 = *(int *)PTR_frag_now_000b5f28;" (assignment_expression "iVar4 = *(int *)PTR_frag_now_000b5f28" identifier = (pointer_expression "*(int *)PTR_frag_now_000b5f28" * (cast_expression "(int *)PTR_frag_now_000b5f28" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar10 = *(int *)(iVar9 + 4);" (assignment_expression "iVar10 = *(int *)(iVar9 + 4)" identifier = (pointer_expression "*(int *)(iVar9 + 4)" * (cast_expression "(int *)(iVar9 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = 0xa5;" (assignment_expression "uVar5 = 0xa5" identifier = number_literal) ;) (if_statement "if (iVar10 == iVar4) {\n    if (*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400) {\n      iVar6 = *(int *)PTR_abs_section_offset_000b6080;\n      uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);\n    }\n    else {\n      uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c);\n      iVar6 = (int)uVar3 >> 0x1f;\n    }\n    *(uint *)(iVar4 + 0x14) = uVar3 - param_1;\n    *(uint *)(iVar4 + 0x10) = iVar6 - (uint)(uVar3 < uVar3 - param_1);\n    if (*(int *)(iVar4 + 0x44) == 0) {\n      uVar5 = 0xaa;\n    }\n    else {\n      if (*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)) {\n        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;\n      }\n      uVar8 = *(uint *)(iVar9 + 0x28);\n      uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30);\n      *(uint *)(iVar9 + 0x24) = uVar3;\n      if (uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)) {\n        *(uint *)(iVar9 + 0x24) = uVar8;\n        uVar3 = uVar8;\n      }\n      *(uint *)(iVar9 + 0x20) = uVar3;\n      iVar4 = frag_alloc(iVar9 + 0x18);\n      *(int *)puVar1 = iVar4;\n      uVar5 = as_where(iVar4 + 0x38);\n      iVar6 = *(int *)puVar1;\n      iVar7 = *(int *)puVar2;\n      *(undefined4 *)(iVar4 + 0x34) = uVar5;\n      *(int *)(iVar10 + 0x30) = iVar6;\n      *(int *)(iVar9 + 4) = iVar6;\n      iVar4 = *(int *)(iVar7 + 4);\n      uVar5 = 0xc6;\n      *(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar6 == iVar4) {\n        *(undefined4 *)(iVar6 + 0x30) = 0;\n        return;\n      }\n    }\n  }" if (parenthesized_expression "(iVar10 == iVar4)" ( (binary_expression "iVar10 == iVar4" identifier == identifier) )) (compound_statement "{\n    if (*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400) {\n      iVar6 = *(int *)PTR_abs_section_offset_000b6080;\n      uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);\n    }\n    else {\n      uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c);\n      iVar6 = (int)uVar3 >> 0x1f;\n    }\n    *(uint *)(iVar4 + 0x14) = uVar3 - param_1;\n    *(uint *)(iVar4 + 0x10) = iVar6 - (uint)(uVar3 < uVar3 - param_1);\n    if (*(int *)(iVar4 + 0x44) == 0) {\n      uVar5 = 0xaa;\n    }\n    else {\n      if (*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)) {\n        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;\n      }\n      uVar8 = *(uint *)(iVar9 + 0x28);\n      uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30);\n      *(uint *)(iVar9 + 0x24) = uVar3;\n      if (uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)) {\n        *(uint *)(iVar9 + 0x24) = uVar8;\n        uVar3 = uVar8;\n      }\n      *(uint *)(iVar9 + 0x20) = uVar3;\n      iVar4 = frag_alloc(iVar9 + 0x18);\n      *(int *)puVar1 = iVar4;\n      uVar5 = as_where(iVar4 + 0x38);\n      iVar6 = *(int *)puVar1;\n      iVar7 = *(int *)puVar2;\n      *(undefined4 *)(iVar4 + 0x34) = uVar5;\n      *(int *)(iVar10 + 0x30) = iVar6;\n      *(int *)(iVar9 + 4) = iVar6;\n      iVar4 = *(int *)(iVar7 + 4);\n      uVar5 = 0xc6;\n      *(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar6 == iVar4) {\n        *(undefined4 *)(iVar6 + 0x30) = 0;\n        return;\n      }\n    }\n  }" { (if_statement "if (*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400) {\n      iVar6 = *(int *)PTR_abs_section_offset_000b6080;\n      uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);\n    }\n    else {\n      uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c);\n      iVar6 = (int)uVar3 >> 0x1f;\n    }" if (parenthesized_expression "(*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400)" ( (binary_expression "*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400" (pointer_expression "*(undefined **)PTR_now_seg_000b5f1c" * (cast_expression "(undefined **)PTR_now_seg_000b5f1c" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) == (binary_expression "PTR__bfd_std_section_000b6630 + 400" identifier + number_literal)) )) (compound_statement "{\n      iVar6 = *(int *)PTR_abs_section_offset_000b6080;\n      uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);\n    }" { (expression_statement "iVar6 = *(int *)PTR_abs_section_offset_000b6080;" (assignment_expression "iVar6 = *(int *)PTR_abs_section_offset_000b6080" identifier = (pointer_expression "*(int *)PTR_abs_section_offset_000b6080" * (cast_expression "(int *)PTR_abs_section_offset_000b6080" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);" (assignment_expression "uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4)" identifier = (pointer_expression "*(uint *)(PTR_abs_section_offset_000b6080 + 4)" * (cast_expression "(uint *)(PTR_abs_section_offset_000b6080 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_abs_section_offset_000b6080 + 4)" ( (binary_expression "PTR_abs_section_offset_000b6080 + 4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c);\n      iVar6 = (int)uVar3 >> 0x1f;\n    }" else (compound_statement "{\n      uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c);\n      iVar6 = (int)uVar3 >> 0x1f;\n    }" { (expression_statement "uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c);" (assignment_expression "uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c)" identifier = (binary_expression "*(int *)(iVar9 + 0x24) - (iVar10 + 0x4c)" (pointer_expression "*(int *)(iVar9 + 0x24)" * (cast_expression "(int *)(iVar9 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x24)" ( (binary_expression "iVar9 + 0x24" identifier + number_literal) )))) - (parenthesized_expression "(iVar10 + 0x4c)" ( (binary_expression "iVar10 + 0x4c" identifier + number_literal) )))) ;) (expression_statement "iVar6 = (int)uVar3 >> 0x1f;" (assignment_expression "iVar6 = (int)uVar3 >> 0x1f" identifier = (binary_expression "(int)uVar3 >> 0x1f" (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) }))) (expression_statement "*(uint *)(iVar4 + 0x14) = uVar3 - param_1;" (assignment_expression "*(uint *)(iVar4 + 0x14) = uVar3 - param_1" (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) = (binary_expression "uVar3 - param_1" identifier - identifier)) ;) (expression_statement "*(uint *)(iVar4 + 0x10) = iVar6 - (uint)(uVar3 < uVar3 - param_1);" (assignment_expression "*(uint *)(iVar4 + 0x10) = iVar6 - (uint)(uVar3 < uVar3 - param_1)" (pointer_expression "*(uint *)(iVar4 + 0x10)" * (cast_expression "(uint *)(iVar4 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) = (binary_expression "iVar6 - (uint)(uVar3 < uVar3 - param_1)" identifier - (call_expression "(uint)(uVar3 < uVar3 - param_1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 < uVar3 - param_1)" ( (binary_expression "uVar3 < uVar3 - param_1" identifier < (binary_expression "uVar3 - param_1" identifier - identifier)) ))))) ;) (if_statement "if (*(int *)(iVar4 + 0x44) == 0) {\n      uVar5 = 0xaa;\n    }\n    else {\n      if (*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)) {\n        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;\n      }\n      uVar8 = *(uint *)(iVar9 + 0x28);\n      uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30);\n      *(uint *)(iVar9 + 0x24) = uVar3;\n      if (uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)) {\n        *(uint *)(iVar9 + 0x24) = uVar8;\n        uVar3 = uVar8;\n      }\n      *(uint *)(iVar9 + 0x20) = uVar3;\n      iVar4 = frag_alloc(iVar9 + 0x18);\n      *(int *)puVar1 = iVar4;\n      uVar5 = as_where(iVar4 + 0x38);\n      iVar6 = *(int *)puVar1;\n      iVar7 = *(int *)puVar2;\n      *(undefined4 *)(iVar4 + 0x34) = uVar5;\n      *(int *)(iVar10 + 0x30) = iVar6;\n      *(int *)(iVar9 + 4) = iVar6;\n      iVar4 = *(int *)(iVar7 + 4);\n      uVar5 = 0xc6;\n      *(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar6 == iVar4) {\n        *(undefined4 *)(iVar6 + 0x30) = 0;\n        return;\n      }\n    }" if (parenthesized_expression "(*(int *)(iVar4 + 0x44) == 0)" ( (binary_expression "*(int *)(iVar4 + 0x44) == 0" (pointer_expression "*(int *)(iVar4 + 0x44)" * (cast_expression "(int *)(iVar4 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x44)" ( (binary_expression "iVar4 + 0x44" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      uVar5 = 0xaa;\n    }" { (expression_statement "uVar5 = 0xaa;" (assignment_expression "uVar5 = 0xaa" identifier = number_literal) ;) }) (else_clause "else {\n      if (*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)) {\n        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;\n      }\n      uVar8 = *(uint *)(iVar9 + 0x28);\n      uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30);\n      *(uint *)(iVar9 + 0x24) = uVar3;\n      if (uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)) {\n        *(uint *)(iVar9 + 0x24) = uVar8;\n        uVar3 = uVar8;\n      }\n      *(uint *)(iVar9 + 0x20) = uVar3;\n      iVar4 = frag_alloc(iVar9 + 0x18);\n      *(int *)puVar1 = iVar4;\n      uVar5 = as_where(iVar4 + 0x38);\n      iVar6 = *(int *)puVar1;\n      iVar7 = *(int *)puVar2;\n      *(undefined4 *)(iVar4 + 0x34) = uVar5;\n      *(int *)(iVar10 + 0x30) = iVar6;\n      *(int *)(iVar9 + 4) = iVar6;\n      iVar4 = *(int *)(iVar7 + 4);\n      uVar5 = 0xc6;\n      *(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar6 == iVar4) {\n        *(undefined4 *)(iVar6 + 0x30) = 0;\n        return;\n      }\n    }" else (compound_statement "{\n      if (*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)) {\n        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;\n      }\n      uVar8 = *(uint *)(iVar9 + 0x28);\n      uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30);\n      *(uint *)(iVar9 + 0x24) = uVar3;\n      if (uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)) {\n        *(uint *)(iVar9 + 0x24) = uVar8;\n        uVar3 = uVar8;\n      }\n      *(uint *)(iVar9 + 0x20) = uVar3;\n      iVar4 = frag_alloc(iVar9 + 0x18);\n      *(int *)puVar1 = iVar4;\n      uVar5 = as_where(iVar4 + 0x38);\n      iVar6 = *(int *)puVar1;\n      iVar7 = *(int *)puVar2;\n      *(undefined4 *)(iVar4 + 0x34) = uVar5;\n      *(int *)(iVar10 + 0x30) = iVar6;\n      *(int *)(iVar9 + 4) = iVar6;\n      iVar4 = *(int *)(iVar7 + 4);\n      uVar5 = 0xc6;\n      *(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar6 == iVar4) {\n        *(undefined4 *)(iVar6 + 0x30) = 0;\n        return;\n      }\n    }" { (if_statement "if (*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)) {\n        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;\n      }" if (parenthesized_expression "(*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20))" ( (binary_expression "*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)" (pointer_expression "*(int *)(iVar9 + 0x24)" * (cast_expression "(int *)(iVar9 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x24)" ( (binary_expression "iVar9 + 0x24" identifier + number_literal) )))) == (pointer_expression "*(int *)(iVar9 + 0x20)" * (cast_expression "(int *)(iVar9 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x20)" ( (binary_expression "iVar9 + 0x20" identifier + number_literal) ))))) )) (compound_statement "{\n        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;\n      }" { (expression_statement "*(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;" (assignment_expression "*(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40" (pointer_expression "*(byte *)(iVar9 + 0x40)" * (cast_expression "(byte *)(iVar9 + 0x40)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar9 + 0x40) & 0xbf | 0x40" (binary_expression "*(byte *)(iVar9 + 0x40) & 0xbf" (pointer_expression "*(byte *)(iVar9 + 0x40)" * (cast_expression "(byte *)(iVar9 + 0x40)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))) & number_literal) | number_literal)) ;) })) (expression_statement "uVar8 = *(uint *)(iVar9 + 0x28);" (assignment_expression "uVar8 = *(uint *)(iVar9 + 0x28)" identifier = (pointer_expression "*(uint *)(iVar9 + 0x28)" * (cast_expression "(uint *)(iVar9 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30);" (assignment_expression "uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30)" identifier = (binary_expression "*(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30)" (binary_expression "*(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30)" (pointer_expression "*(int *)(iVar9 + 0x24)" * (cast_expression "(int *)(iVar9 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x24)" ( (binary_expression "iVar9 + 0x24" identifier + number_literal) )))) + (pointer_expression "*(uint *)(iVar9 + 0x30)" * (cast_expression "(uint *)(iVar9 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) ))))) & (unary_expression "~*(uint *)(iVar9 + 0x30)" ~ (pointer_expression "*(uint *)(iVar9 + 0x30)" * (cast_expression "(uint *)(iVar9 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) ))))))) ;) (expression_statement "*(uint *)(iVar9 + 0x24) = uVar3;" (assignment_expression "*(uint *)(iVar9 + 0x24) = uVar3" (pointer_expression "*(uint *)(iVar9 + 0x24)" * (cast_expression "(uint *)(iVar9 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x24)" ( (binary_expression "iVar9 + 0x24" identifier + number_literal) )))) = identifier) ;) (if_statement "if (uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)) {\n        *(uint *)(iVar9 + 0x24) = uVar8;\n        uVar3 = uVar8;\n      }" if (parenthesized_expression "(uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c))" ( (binary_expression "uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)" (binary_expression "uVar8 - *(int *)(iVar9 + 0x1c)" identifier - (pointer_expression "*(int *)(iVar9 + 0x1c)" * (cast_expression "(int *)(iVar9 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1c)" ( (binary_expression "iVar9 + 0x1c" identifier + number_literal) ))))) < (binary_expression "uVar3 - *(int *)(iVar9 + 0x1c)" identifier - (pointer_expression "*(int *)(iVar9 + 0x1c)" * (cast_expression "(int *)(iVar9 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1c)" ( (binary_expression "iVar9 + 0x1c" identifier + number_literal) )))))) )) (compound_statement "{\n        *(uint *)(iVar9 + 0x24) = uVar8;\n        uVar3 = uVar8;\n      }" { (expression_statement "*(uint *)(iVar9 + 0x24) = uVar8;" (assignment_expression "*(uint *)(iVar9 + 0x24) = uVar8" (pointer_expression "*(uint *)(iVar9 + 0x24)" * (cast_expression "(uint *)(iVar9 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x24)" ( (binary_expression "iVar9 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar3 = uVar8;" (assignment_expression "uVar3 = uVar8" identifier = identifier) ;) })) (expression_statement "*(uint *)(iVar9 + 0x20) = uVar3;" (assignment_expression "*(uint *)(iVar9 + 0x20) = uVar3" (pointer_expression "*(uint *)(iVar9 + 0x20)" * (cast_expression "(uint *)(iVar9 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x20)" ( (binary_expression "iVar9 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar4 = frag_alloc(iVar9 + 0x18);" (assignment_expression "iVar4 = frag_alloc(iVar9 + 0x18)" identifier = (call_expression "frag_alloc(iVar9 + 0x18)" identifier (argument_list "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) ;) (expression_statement "*(int *)puVar1 = iVar4;" (assignment_expression "*(int *)puVar1 = iVar4" (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "uVar5 = as_where(iVar4 + 0x38);" (assignment_expression "uVar5 = as_where(iVar4 + 0x38)" identifier = (call_expression "as_where(iVar4 + 0x38)" identifier (argument_list "(iVar4 + 0x38)" ( (binary_expression "iVar4 + 0x38" identifier + number_literal) )))) ;) (expression_statement "iVar6 = *(int *)puVar1;" (assignment_expression "iVar6 = *(int *)puVar1" identifier = (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar7 = *(int *)puVar2;" (assignment_expression "iVar7 = *(int *)puVar2" identifier = (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(iVar4 + 0x34) = uVar5;" (assignment_expression "*(undefined4 *)(iVar4 + 0x34) = uVar5" (pointer_expression "*(undefined4 *)(iVar4 + 0x34)" * (cast_expression "(undefined4 *)(iVar4 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x34)" ( (binary_expression "iVar4 + 0x34" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar10 + 0x30) = iVar6;" (assignment_expression "*(int *)(iVar10 + 0x30) = iVar6" (pointer_expression "*(int *)(iVar10 + 0x30)" * (cast_expression "(int *)(iVar10 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x30)" ( (binary_expression "iVar10 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar9 + 4) = iVar6;" (assignment_expression "*(int *)(iVar9 + 4) = iVar6" (pointer_expression "*(int *)(iVar9 + 4)" * (cast_expression "(int *)(iVar9 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar4 = *(int *)(iVar7 + 4);" (assignment_expression "iVar4 = *(int *)(iVar7 + 4)" identifier = (pointer_expression "*(int *)(iVar7 + 4)" * (cast_expression "(int *)(iVar7 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = 0xc6;" (assignment_expression "uVar5 = 0xc6" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;" (assignment_expression "*(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4" (pointer_expression "*(undefined4 *)(iVar6 + 0x3c)" * (cast_expression "(undefined4 *)(iVar6 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x3c)" ( (binary_expression "iVar6 + 0x3c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)PTR_listing_tail_000b60b4" * (cast_expression "(undefined4 *)PTR_listing_tail_000b60b4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar6 == iVar4) {\n        *(undefined4 *)(iVar6 + 0x30) = 0;\n        return;\n      }" if (parenthesized_expression "(iVar6 == iVar4)" ( (binary_expression "iVar6 == iVar4" identifier == identifier) )) (compound_statement "{\n        *(undefined4 *)(iVar6 + 0x30) = 0;\n        return;\n      }" { (expression_statement "*(undefined4 *)(iVar6 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(iVar6 + 0x30) = 0" (pointer_expression "*(undefined4 *)(iVar6 + 0x30)" * (cast_expression "(undefined4 *)(iVar6 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x30)" ( (binary_expression "iVar6 + 0x30" identifier + number_literal) )))) = number_literal) ;) (return_statement "return;" return ;) })) }))) })) comment (expression_statement "as_abort(PTR_LAB_000b5cb8 + 0x688c,uVar5,PTR_LAB_000b5cb8 + 0x68e0);" (call_expression "as_abort(PTR_LAB_000b5cb8 + 0x688c,uVar5,PTR_LAB_000b5cb8 + 0x68e0)" identifier (argument_list "(PTR_LAB_000b5cb8 + 0x688c,uVar5,PTR_LAB_000b5cb8 + 0x68e0)" ( (binary_expression "PTR_LAB_000b5cb8 + 0x688c" identifier + number_literal) , identifier , (binary_expression "PTR_LAB_000b5cb8 + 0x68e0" identifier + number_literal) ))) ;) })))
(translation_unit "void frag_new(size_t old_frags_var_max_size)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  fragS *pfVar4;\n  char *pcVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  int iVar10;\n  int iVar11;\n  \n  puVar2 = PTR_frchain_now_000b5fac;\n  puVar1 = PTR_frag_now_000b5f28;\n  iVar10 = *(int *)PTR_frchain_now_000b5fac;\n  iVar6 = *(int *)PTR_frag_now_000b5f28;\n  iVar11 = *(int *)(iVar10 + 4);\n  iVar8 = 0xa5;\n  if (iVar11 == iVar6) {\n    if (*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400) {\n      iVar8 = *(int *)PTR_abs_section_offset_000b6080;\n      uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);\n    }\n    else {\n      uVar3 = *(int *)(iVar10 + 0x24) - (iVar11 + 0x4c);\n      iVar8 = (int)uVar3 >> 0x1f;\n    }\n    *(uint *)(iVar6 + 0x14) = uVar3 - old_frags_var_max_size;\n    *(uint *)(iVar6 + 0x10) = iVar8 - (uint)(uVar3 < uVar3 - old_frags_var_max_size);\n    if (*(int *)(iVar6 + 0x44) == 0) {\n      iVar8 = 0xaa;\n    }\n    else {\n      if (*(int *)(iVar10 + 0x24) == *(int *)(iVar10 + 0x20)) {\n        *(byte *)(iVar10 + 0x40) = *(byte *)(iVar10 + 0x40) & 0xbf | 0x40;\n      }\n      uVar9 = *(uint *)(iVar10 + 0x28);\n      uVar3 = *(int *)(iVar10 + 0x24) + *(uint *)(iVar10 + 0x30) & ~*(uint *)(iVar10 + 0x30);\n      *(uint *)(iVar10 + 0x24) = uVar3;\n      if (uVar9 - *(int *)(iVar10 + 0x1c) < uVar3 - *(int *)(iVar10 + 0x1c)) {\n        *(uint *)(iVar10 + 0x24) = uVar9;\n        uVar3 = uVar9;\n      }\n      *(uint *)(iVar10 + 0x20) = uVar3;\n      pfVar4 = frag_alloc((obstack *)(iVar10 + 0x18));\n      *(fragS **)puVar1 = pfVar4;\n      pcVar5 = as_where(&pfVar4->fr_line);\n      iVar7 = *(int *)puVar1;\n      iVar6 = *(int *)puVar2;\n      pfVar4->fr_file = pcVar5;\n      *(int *)(iVar11 + 0x30) = iVar7;\n      *(int *)(iVar10 + 4) = iVar7;\n      iVar6 = *(int *)(iVar6 + 4);\n      iVar8 = 0xc6;\n      *(undefined4 *)(iVar7 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar7 == iVar6) {\n        *(undefined4 *)(iVar7 + 0x30) = 0;\n        return;\n      }\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  as_abort(PTR_LAB_000b5cb8 + 0x688c,iVar8,PTR_LAB_000b5cb8 + 0x68e0);\n}\n\n" (function_definition "void frag_new(size_t old_frags_var_max_size)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  fragS *pfVar4;\n  char *pcVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  int iVar10;\n  int iVar11;\n  \n  puVar2 = PTR_frchain_now_000b5fac;\n  puVar1 = PTR_frag_now_000b5f28;\n  iVar10 = *(int *)PTR_frchain_now_000b5fac;\n  iVar6 = *(int *)PTR_frag_now_000b5f28;\n  iVar11 = *(int *)(iVar10 + 4);\n  iVar8 = 0xa5;\n  if (iVar11 == iVar6) {\n    if (*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400) {\n      iVar8 = *(int *)PTR_abs_section_offset_000b6080;\n      uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);\n    }\n    else {\n      uVar3 = *(int *)(iVar10 + 0x24) - (iVar11 + 0x4c);\n      iVar8 = (int)uVar3 >> 0x1f;\n    }\n    *(uint *)(iVar6 + 0x14) = uVar3 - old_frags_var_max_size;\n    *(uint *)(iVar6 + 0x10) = iVar8 - (uint)(uVar3 < uVar3 - old_frags_var_max_size);\n    if (*(int *)(iVar6 + 0x44) == 0) {\n      iVar8 = 0xaa;\n    }\n    else {\n      if (*(int *)(iVar10 + 0x24) == *(int *)(iVar10 + 0x20)) {\n        *(byte *)(iVar10 + 0x40) = *(byte *)(iVar10 + 0x40) & 0xbf | 0x40;\n      }\n      uVar9 = *(uint *)(iVar10 + 0x28);\n      uVar3 = *(int *)(iVar10 + 0x24) + *(uint *)(iVar10 + 0x30) & ~*(uint *)(iVar10 + 0x30);\n      *(uint *)(iVar10 + 0x24) = uVar3;\n      if (uVar9 - *(int *)(iVar10 + 0x1c) < uVar3 - *(int *)(iVar10 + 0x1c)) {\n        *(uint *)(iVar10 + 0x24) = uVar9;\n        uVar3 = uVar9;\n      }\n      *(uint *)(iVar10 + 0x20) = uVar3;\n      pfVar4 = frag_alloc((obstack *)(iVar10 + 0x18));\n      *(fragS **)puVar1 = pfVar4;\n      pcVar5 = as_where(&pfVar4->fr_line);\n      iVar7 = *(int *)puVar1;\n      iVar6 = *(int *)puVar2;\n      pfVar4->fr_file = pcVar5;\n      *(int *)(iVar11 + 0x30) = iVar7;\n      *(int *)(iVar10 + 4) = iVar7;\n      iVar6 = *(int *)(iVar6 + 4);\n      iVar8 = 0xc6;\n      *(undefined4 *)(iVar7 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar7 == iVar6) {\n        *(undefined4 *)(iVar7 + 0x30) = 0;\n        return;\n      }\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  as_abort(PTR_LAB_000b5cb8 + 0x688c,iVar8,PTR_LAB_000b5cb8 + 0x68e0);\n}" primitive_type (function_declarator "frag_new(size_t old_frags_var_max_size)" identifier (parameter_list "(size_t old_frags_var_max_size)" ( (parameter_declaration "size_t old_frags_var_max_size" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  fragS *pfVar4;\n  char *pcVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  int iVar10;\n  int iVar11;\n  \n  puVar2 = PTR_frchain_now_000b5fac;\n  puVar1 = PTR_frag_now_000b5f28;\n  iVar10 = *(int *)PTR_frchain_now_000b5fac;\n  iVar6 = *(int *)PTR_frag_now_000b5f28;\n  iVar11 = *(int *)(iVar10 + 4);\n  iVar8 = 0xa5;\n  if (iVar11 == iVar6) {\n    if (*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400) {\n      iVar8 = *(int *)PTR_abs_section_offset_000b6080;\n      uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);\n    }\n    else {\n      uVar3 = *(int *)(iVar10 + 0x24) - (iVar11 + 0x4c);\n      iVar8 = (int)uVar3 >> 0x1f;\n    }\n    *(uint *)(iVar6 + 0x14) = uVar3 - old_frags_var_max_size;\n    *(uint *)(iVar6 + 0x10) = iVar8 - (uint)(uVar3 < uVar3 - old_frags_var_max_size);\n    if (*(int *)(iVar6 + 0x44) == 0) {\n      iVar8 = 0xaa;\n    }\n    else {\n      if (*(int *)(iVar10 + 0x24) == *(int *)(iVar10 + 0x20)) {\n        *(byte *)(iVar10 + 0x40) = *(byte *)(iVar10 + 0x40) & 0xbf | 0x40;\n      }\n      uVar9 = *(uint *)(iVar10 + 0x28);\n      uVar3 = *(int *)(iVar10 + 0x24) + *(uint *)(iVar10 + 0x30) & ~*(uint *)(iVar10 + 0x30);\n      *(uint *)(iVar10 + 0x24) = uVar3;\n      if (uVar9 - *(int *)(iVar10 + 0x1c) < uVar3 - *(int *)(iVar10 + 0x1c)) {\n        *(uint *)(iVar10 + 0x24) = uVar9;\n        uVar3 = uVar9;\n      }\n      *(uint *)(iVar10 + 0x20) = uVar3;\n      pfVar4 = frag_alloc((obstack *)(iVar10 + 0x18));\n      *(fragS **)puVar1 = pfVar4;\n      pcVar5 = as_where(&pfVar4->fr_line);\n      iVar7 = *(int *)puVar1;\n      iVar6 = *(int *)puVar2;\n      pfVar4->fr_file = pcVar5;\n      *(int *)(iVar11 + 0x30) = iVar7;\n      *(int *)(iVar10 + 4) = iVar7;\n      iVar6 = *(int *)(iVar6 + 4);\n      iVar8 = 0xc6;\n      *(undefined4 *)(iVar7 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar7 == iVar6) {\n        *(undefined4 *)(iVar7 + 0x30) = 0;\n        return;\n      }\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  as_abort(PTR_LAB_000b5cb8 + 0x688c,iVar8,PTR_LAB_000b5cb8 + 0x68e0);\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "fragS *pfVar4;" type_identifier (pointer_declarator "*pfVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (expression_statement "puVar2 = PTR_frchain_now_000b5fac;" (assignment_expression "puVar2 = PTR_frchain_now_000b5fac" identifier = identifier) ;) (expression_statement "puVar1 = PTR_frag_now_000b5f28;" (assignment_expression "puVar1 = PTR_frag_now_000b5f28" identifier = identifier) ;) (expression_statement "iVar10 = *(int *)PTR_frchain_now_000b5fac;" (assignment_expression "iVar10 = *(int *)PTR_frchain_now_000b5fac" identifier = (pointer_expression "*(int *)PTR_frchain_now_000b5fac" * (cast_expression "(int *)PTR_frchain_now_000b5fac" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar6 = *(int *)PTR_frag_now_000b5f28;" (assignment_expression "iVar6 = *(int *)PTR_frag_now_000b5f28" identifier = (pointer_expression "*(int *)PTR_frag_now_000b5f28" * (cast_expression "(int *)PTR_frag_now_000b5f28" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar11 = *(int *)(iVar10 + 4);" (assignment_expression "iVar11 = *(int *)(iVar10 + 4)" identifier = (pointer_expression "*(int *)(iVar10 + 4)" * (cast_expression "(int *)(iVar10 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 4)" ( (binary_expression "iVar10 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = 0xa5;" (assignment_expression "iVar8 = 0xa5" identifier = number_literal) ;) (if_statement "if (iVar11 == iVar6) {\n    if (*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400) {\n      iVar8 = *(int *)PTR_abs_section_offset_000b6080;\n      uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);\n    }\n    else {\n      uVar3 = *(int *)(iVar10 + 0x24) - (iVar11 + 0x4c);\n      iVar8 = (int)uVar3 >> 0x1f;\n    }\n    *(uint *)(iVar6 + 0x14) = uVar3 - old_frags_var_max_size;\n    *(uint *)(iVar6 + 0x10) = iVar8 - (uint)(uVar3 < uVar3 - old_frags_var_max_size);\n    if (*(int *)(iVar6 + 0x44) == 0) {\n      iVar8 = 0xaa;\n    }\n    else {\n      if (*(int *)(iVar10 + 0x24) == *(int *)(iVar10 + 0x20)) {\n        *(byte *)(iVar10 + 0x40) = *(byte *)(iVar10 + 0x40) & 0xbf | 0x40;\n      }\n      uVar9 = *(uint *)(iVar10 + 0x28);\n      uVar3 = *(int *)(iVar10 + 0x24) + *(uint *)(iVar10 + 0x30) & ~*(uint *)(iVar10 + 0x30);\n      *(uint *)(iVar10 + 0x24) = uVar3;\n      if (uVar9 - *(int *)(iVar10 + 0x1c) < uVar3 - *(int *)(iVar10 + 0x1c)) {\n        *(uint *)(iVar10 + 0x24) = uVar9;\n        uVar3 = uVar9;\n      }\n      *(uint *)(iVar10 + 0x20) = uVar3;\n      pfVar4 = frag_alloc((obstack *)(iVar10 + 0x18));\n      *(fragS **)puVar1 = pfVar4;\n      pcVar5 = as_where(&pfVar4->fr_line);\n      iVar7 = *(int *)puVar1;\n      iVar6 = *(int *)puVar2;\n      pfVar4->fr_file = pcVar5;\n      *(int *)(iVar11 + 0x30) = iVar7;\n      *(int *)(iVar10 + 4) = iVar7;\n      iVar6 = *(int *)(iVar6 + 4);\n      iVar8 = 0xc6;\n      *(undefined4 *)(iVar7 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar7 == iVar6) {\n        *(undefined4 *)(iVar7 + 0x30) = 0;\n        return;\n      }\n    }\n  }" if (parenthesized_expression "(iVar11 == iVar6)" ( (binary_expression "iVar11 == iVar6" identifier == identifier) )) (compound_statement "{\n    if (*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400) {\n      iVar8 = *(int *)PTR_abs_section_offset_000b6080;\n      uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);\n    }\n    else {\n      uVar3 = *(int *)(iVar10 + 0x24) - (iVar11 + 0x4c);\n      iVar8 = (int)uVar3 >> 0x1f;\n    }\n    *(uint *)(iVar6 + 0x14) = uVar3 - old_frags_var_max_size;\n    *(uint *)(iVar6 + 0x10) = iVar8 - (uint)(uVar3 < uVar3 - old_frags_var_max_size);\n    if (*(int *)(iVar6 + 0x44) == 0) {\n      iVar8 = 0xaa;\n    }\n    else {\n      if (*(int *)(iVar10 + 0x24) == *(int *)(iVar10 + 0x20)) {\n        *(byte *)(iVar10 + 0x40) = *(byte *)(iVar10 + 0x40) & 0xbf | 0x40;\n      }\n      uVar9 = *(uint *)(iVar10 + 0x28);\n      uVar3 = *(int *)(iVar10 + 0x24) + *(uint *)(iVar10 + 0x30) & ~*(uint *)(iVar10 + 0x30);\n      *(uint *)(iVar10 + 0x24) = uVar3;\n      if (uVar9 - *(int *)(iVar10 + 0x1c) < uVar3 - *(int *)(iVar10 + 0x1c)) {\n        *(uint *)(iVar10 + 0x24) = uVar9;\n        uVar3 = uVar9;\n      }\n      *(uint *)(iVar10 + 0x20) = uVar3;\n      pfVar4 = frag_alloc((obstack *)(iVar10 + 0x18));\n      *(fragS **)puVar1 = pfVar4;\n      pcVar5 = as_where(&pfVar4->fr_line);\n      iVar7 = *(int *)puVar1;\n      iVar6 = *(int *)puVar2;\n      pfVar4->fr_file = pcVar5;\n      *(int *)(iVar11 + 0x30) = iVar7;\n      *(int *)(iVar10 + 4) = iVar7;\n      iVar6 = *(int *)(iVar6 + 4);\n      iVar8 = 0xc6;\n      *(undefined4 *)(iVar7 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar7 == iVar6) {\n        *(undefined4 *)(iVar7 + 0x30) = 0;\n        return;\n      }\n    }\n  }" { (if_statement "if (*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400) {\n      iVar8 = *(int *)PTR_abs_section_offset_000b6080;\n      uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);\n    }\n    else {\n      uVar3 = *(int *)(iVar10 + 0x24) - (iVar11 + 0x4c);\n      iVar8 = (int)uVar3 >> 0x1f;\n    }" if (parenthesized_expression "(*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400)" ( (binary_expression "*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400" (pointer_expression "*(undefined **)PTR_now_seg_000b5f1c" * (cast_expression "(undefined **)PTR_now_seg_000b5f1c" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) == (binary_expression "PTR__bfd_std_section_000b6630 + 400" identifier + number_literal)) )) (compound_statement "{\n      iVar8 = *(int *)PTR_abs_section_offset_000b6080;\n      uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);\n    }" { (expression_statement "iVar8 = *(int *)PTR_abs_section_offset_000b6080;" (assignment_expression "iVar8 = *(int *)PTR_abs_section_offset_000b6080" identifier = (pointer_expression "*(int *)PTR_abs_section_offset_000b6080" * (cast_expression "(int *)PTR_abs_section_offset_000b6080" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);" (assignment_expression "uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4)" identifier = (pointer_expression "*(uint *)(PTR_abs_section_offset_000b6080 + 4)" * (cast_expression "(uint *)(PTR_abs_section_offset_000b6080 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_abs_section_offset_000b6080 + 4)" ( (binary_expression "PTR_abs_section_offset_000b6080 + 4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      uVar3 = *(int *)(iVar10 + 0x24) - (iVar11 + 0x4c);\n      iVar8 = (int)uVar3 >> 0x1f;\n    }" else (compound_statement "{\n      uVar3 = *(int *)(iVar10 + 0x24) - (iVar11 + 0x4c);\n      iVar8 = (int)uVar3 >> 0x1f;\n    }" { (expression_statement "uVar3 = *(int *)(iVar10 + 0x24) - (iVar11 + 0x4c);" (assignment_expression "uVar3 = *(int *)(iVar10 + 0x24) - (iVar11 + 0x4c)" identifier = (binary_expression "*(int *)(iVar10 + 0x24) - (iVar11 + 0x4c)" (pointer_expression "*(int *)(iVar10 + 0x24)" * (cast_expression "(int *)(iVar10 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x24)" ( (binary_expression "iVar10 + 0x24" identifier + number_literal) )))) - (parenthesized_expression "(iVar11 + 0x4c)" ( (binary_expression "iVar11 + 0x4c" identifier + number_literal) )))) ;) (expression_statement "iVar8 = (int)uVar3 >> 0x1f;" (assignment_expression "iVar8 = (int)uVar3 >> 0x1f" identifier = (binary_expression "(int)uVar3 >> 0x1f" (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) }))) (expression_statement "*(uint *)(iVar6 + 0x14) = uVar3 - old_frags_var_max_size;" (assignment_expression "*(uint *)(iVar6 + 0x14) = uVar3 - old_frags_var_max_size" (pointer_expression "*(uint *)(iVar6 + 0x14)" * (cast_expression "(uint *)(iVar6 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) = (binary_expression "uVar3 - old_frags_var_max_size" identifier - identifier)) ;) (expression_statement "*(uint *)(iVar6 + 0x10) = iVar8 - (uint)(uVar3 < uVar3 - old_frags_var_max_size);" (assignment_expression "*(uint *)(iVar6 + 0x10) = iVar8 - (uint)(uVar3 < uVar3 - old_frags_var_max_size)" (pointer_expression "*(uint *)(iVar6 + 0x10)" * (cast_expression "(uint *)(iVar6 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) )))) = (binary_expression "iVar8 - (uint)(uVar3 < uVar3 - old_frags_var_max_size)" identifier - (call_expression "(uint)(uVar3 < uVar3 - old_frags_var_max_size)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 < uVar3 - old_frags_var_max_size)" ( (binary_expression "uVar3 < uVar3 - old_frags_var_max_size" identifier < (binary_expression "uVar3 - old_frags_var_max_size" identifier - identifier)) ))))) ;) (if_statement "if (*(int *)(iVar6 + 0x44) == 0) {\n      iVar8 = 0xaa;\n    }\n    else {\n      if (*(int *)(iVar10 + 0x24) == *(int *)(iVar10 + 0x20)) {\n        *(byte *)(iVar10 + 0x40) = *(byte *)(iVar10 + 0x40) & 0xbf | 0x40;\n      }\n      uVar9 = *(uint *)(iVar10 + 0x28);\n      uVar3 = *(int *)(iVar10 + 0x24) + *(uint *)(iVar10 + 0x30) & ~*(uint *)(iVar10 + 0x30);\n      *(uint *)(iVar10 + 0x24) = uVar3;\n      if (uVar9 - *(int *)(iVar10 + 0x1c) < uVar3 - *(int *)(iVar10 + 0x1c)) {\n        *(uint *)(iVar10 + 0x24) = uVar9;\n        uVar3 = uVar9;\n      }\n      *(uint *)(iVar10 + 0x20) = uVar3;\n      pfVar4 = frag_alloc((obstack *)(iVar10 + 0x18));\n      *(fragS **)puVar1 = pfVar4;\n      pcVar5 = as_where(&pfVar4->fr_line);\n      iVar7 = *(int *)puVar1;\n      iVar6 = *(int *)puVar2;\n      pfVar4->fr_file = pcVar5;\n      *(int *)(iVar11 + 0x30) = iVar7;\n      *(int *)(iVar10 + 4) = iVar7;\n      iVar6 = *(int *)(iVar6 + 4);\n      iVar8 = 0xc6;\n      *(undefined4 *)(iVar7 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar7 == iVar6) {\n        *(undefined4 *)(iVar7 + 0x30) = 0;\n        return;\n      }\n    }" if (parenthesized_expression "(*(int *)(iVar6 + 0x44) == 0)" ( (binary_expression "*(int *)(iVar6 + 0x44) == 0" (pointer_expression "*(int *)(iVar6 + 0x44)" * (cast_expression "(int *)(iVar6 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x44)" ( (binary_expression "iVar6 + 0x44" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar8 = 0xaa;\n    }" { (expression_statement "iVar8 = 0xaa;" (assignment_expression "iVar8 = 0xaa" identifier = number_literal) ;) }) (else_clause "else {\n      if (*(int *)(iVar10 + 0x24) == *(int *)(iVar10 + 0x20)) {\n        *(byte *)(iVar10 + 0x40) = *(byte *)(iVar10 + 0x40) & 0xbf | 0x40;\n      }\n      uVar9 = *(uint *)(iVar10 + 0x28);\n      uVar3 = *(int *)(iVar10 + 0x24) + *(uint *)(iVar10 + 0x30) & ~*(uint *)(iVar10 + 0x30);\n      *(uint *)(iVar10 + 0x24) = uVar3;\n      if (uVar9 - *(int *)(iVar10 + 0x1c) < uVar3 - *(int *)(iVar10 + 0x1c)) {\n        *(uint *)(iVar10 + 0x24) = uVar9;\n        uVar3 = uVar9;\n      }\n      *(uint *)(iVar10 + 0x20) = uVar3;\n      pfVar4 = frag_alloc((obstack *)(iVar10 + 0x18));\n      *(fragS **)puVar1 = pfVar4;\n      pcVar5 = as_where(&pfVar4->fr_line);\n      iVar7 = *(int *)puVar1;\n      iVar6 = *(int *)puVar2;\n      pfVar4->fr_file = pcVar5;\n      *(int *)(iVar11 + 0x30) = iVar7;\n      *(int *)(iVar10 + 4) = iVar7;\n      iVar6 = *(int *)(iVar6 + 4);\n      iVar8 = 0xc6;\n      *(undefined4 *)(iVar7 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar7 == iVar6) {\n        *(undefined4 *)(iVar7 + 0x30) = 0;\n        return;\n      }\n    }" else (compound_statement "{\n      if (*(int *)(iVar10 + 0x24) == *(int *)(iVar10 + 0x20)) {\n        *(byte *)(iVar10 + 0x40) = *(byte *)(iVar10 + 0x40) & 0xbf | 0x40;\n      }\n      uVar9 = *(uint *)(iVar10 + 0x28);\n      uVar3 = *(int *)(iVar10 + 0x24) + *(uint *)(iVar10 + 0x30) & ~*(uint *)(iVar10 + 0x30);\n      *(uint *)(iVar10 + 0x24) = uVar3;\n      if (uVar9 - *(int *)(iVar10 + 0x1c) < uVar3 - *(int *)(iVar10 + 0x1c)) {\n        *(uint *)(iVar10 + 0x24) = uVar9;\n        uVar3 = uVar9;\n      }\n      *(uint *)(iVar10 + 0x20) = uVar3;\n      pfVar4 = frag_alloc((obstack *)(iVar10 + 0x18));\n      *(fragS **)puVar1 = pfVar4;\n      pcVar5 = as_where(&pfVar4->fr_line);\n      iVar7 = *(int *)puVar1;\n      iVar6 = *(int *)puVar2;\n      pfVar4->fr_file = pcVar5;\n      *(int *)(iVar11 + 0x30) = iVar7;\n      *(int *)(iVar10 + 4) = iVar7;\n      iVar6 = *(int *)(iVar6 + 4);\n      iVar8 = 0xc6;\n      *(undefined4 *)(iVar7 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar7 == iVar6) {\n        *(undefined4 *)(iVar7 + 0x30) = 0;\n        return;\n      }\n    }" { (if_statement "if (*(int *)(iVar10 + 0x24) == *(int *)(iVar10 + 0x20)) {\n        *(byte *)(iVar10 + 0x40) = *(byte *)(iVar10 + 0x40) & 0xbf | 0x40;\n      }" if (parenthesized_expression "(*(int *)(iVar10 + 0x24) == *(int *)(iVar10 + 0x20))" ( (binary_expression "*(int *)(iVar10 + 0x24) == *(int *)(iVar10 + 0x20)" (pointer_expression "*(int *)(iVar10 + 0x24)" * (cast_expression "(int *)(iVar10 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x24)" ( (binary_expression "iVar10 + 0x24" identifier + number_literal) )))) == (pointer_expression "*(int *)(iVar10 + 0x20)" * (cast_expression "(int *)(iVar10 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x20)" ( (binary_expression "iVar10 + 0x20" identifier + number_literal) ))))) )) (compound_statement "{\n        *(byte *)(iVar10 + 0x40) = *(byte *)(iVar10 + 0x40) & 0xbf | 0x40;\n      }" { (expression_statement "*(byte *)(iVar10 + 0x40) = *(byte *)(iVar10 + 0x40) & 0xbf | 0x40;" (assignment_expression "*(byte *)(iVar10 + 0x40) = *(byte *)(iVar10 + 0x40) & 0xbf | 0x40" (pointer_expression "*(byte *)(iVar10 + 0x40)" * (cast_expression "(byte *)(iVar10 + 0x40)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x40)" ( (binary_expression "iVar10 + 0x40" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar10 + 0x40) & 0xbf | 0x40" (binary_expression "*(byte *)(iVar10 + 0x40) & 0xbf" (pointer_expression "*(byte *)(iVar10 + 0x40)" * (cast_expression "(byte *)(iVar10 + 0x40)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x40)" ( (binary_expression "iVar10 + 0x40" identifier + number_literal) )))) & number_literal) | number_literal)) ;) })) (expression_statement "uVar9 = *(uint *)(iVar10 + 0x28);" (assignment_expression "uVar9 = *(uint *)(iVar10 + 0x28)" identifier = (pointer_expression "*(uint *)(iVar10 + 0x28)" * (cast_expression "(uint *)(iVar10 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(int *)(iVar10 + 0x24) + *(uint *)(iVar10 + 0x30) & ~*(uint *)(iVar10 + 0x30);" (assignment_expression "uVar3 = *(int *)(iVar10 + 0x24) + *(uint *)(iVar10 + 0x30) & ~*(uint *)(iVar10 + 0x30)" identifier = (binary_expression "*(int *)(iVar10 + 0x24) + *(uint *)(iVar10 + 0x30) & ~*(uint *)(iVar10 + 0x30)" (binary_expression "*(int *)(iVar10 + 0x24) + *(uint *)(iVar10 + 0x30)" (pointer_expression "*(int *)(iVar10 + 0x24)" * (cast_expression "(int *)(iVar10 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x24)" ( (binary_expression "iVar10 + 0x24" identifier + number_literal) )))) + (pointer_expression "*(uint *)(iVar10 + 0x30)" * (cast_expression "(uint *)(iVar10 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x30)" ( (binary_expression "iVar10 + 0x30" identifier + number_literal) ))))) & (unary_expression "~*(uint *)(iVar10 + 0x30)" ~ (pointer_expression "*(uint *)(iVar10 + 0x30)" * (cast_expression "(uint *)(iVar10 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x30)" ( (binary_expression "iVar10 + 0x30" identifier + number_literal) ))))))) ;) (expression_statement "*(uint *)(iVar10 + 0x24) = uVar3;" (assignment_expression "*(uint *)(iVar10 + 0x24) = uVar3" (pointer_expression "*(uint *)(iVar10 + 0x24)" * (cast_expression "(uint *)(iVar10 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x24)" ( (binary_expression "iVar10 + 0x24" identifier + number_literal) )))) = identifier) ;) (if_statement "if (uVar9 - *(int *)(iVar10 + 0x1c) < uVar3 - *(int *)(iVar10 + 0x1c)) {\n        *(uint *)(iVar10 + 0x24) = uVar9;\n        uVar3 = uVar9;\n      }" if (parenthesized_expression "(uVar9 - *(int *)(iVar10 + 0x1c) < uVar3 - *(int *)(iVar10 + 0x1c))" ( (binary_expression "uVar9 - *(int *)(iVar10 + 0x1c) < uVar3 - *(int *)(iVar10 + 0x1c)" (binary_expression "uVar9 - *(int *)(iVar10 + 0x1c)" identifier - (pointer_expression "*(int *)(iVar10 + 0x1c)" * (cast_expression "(int *)(iVar10 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x1c)" ( (binary_expression "iVar10 + 0x1c" identifier + number_literal) ))))) < (binary_expression "uVar3 - *(int *)(iVar10 + 0x1c)" identifier - (pointer_expression "*(int *)(iVar10 + 0x1c)" * (cast_expression "(int *)(iVar10 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x1c)" ( (binary_expression "iVar10 + 0x1c" identifier + number_literal) )))))) )) (compound_statement "{\n        *(uint *)(iVar10 + 0x24) = uVar9;\n        uVar3 = uVar9;\n      }" { (expression_statement "*(uint *)(iVar10 + 0x24) = uVar9;" (assignment_expression "*(uint *)(iVar10 + 0x24) = uVar9" (pointer_expression "*(uint *)(iVar10 + 0x24)" * (cast_expression "(uint *)(iVar10 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x24)" ( (binary_expression "iVar10 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar3 = uVar9;" (assignment_expression "uVar3 = uVar9" identifier = identifier) ;) })) (expression_statement "*(uint *)(iVar10 + 0x20) = uVar3;" (assignment_expression "*(uint *)(iVar10 + 0x20) = uVar3" (pointer_expression "*(uint *)(iVar10 + 0x20)" * (cast_expression "(uint *)(iVar10 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x20)" ( (binary_expression "iVar10 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "pfVar4 = frag_alloc((obstack *)(iVar10 + 0x18));" (assignment_expression "pfVar4 = frag_alloc((obstack *)(iVar10 + 0x18))" identifier = (call_expression "frag_alloc((obstack *)(iVar10 + 0x18))" identifier (argument_list "((obstack *)(iVar10 + 0x18))" ( (cast_expression "(obstack *)(iVar10 + 0x18)" ( (type_descriptor "obstack *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x18)" ( (binary_expression "iVar10 + 0x18" identifier + number_literal) ))) )))) ;) (expression_statement "*(fragS **)puVar1 = pfVar4;" (assignment_expression "*(fragS **)puVar1 = pfVar4" (pointer_expression "*(fragS **)puVar1" * (cast_expression "(fragS **)puVar1" ( (type_descriptor "fragS **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "pcVar5 = as_where(&pfVar4->fr_line);" (assignment_expression "pcVar5 = as_where(&pfVar4->fr_line)" identifier = (call_expression "as_where(&pfVar4->fr_line)" identifier (argument_list "(&pfVar4->fr_line)" ( (pointer_expression "&pfVar4->fr_line" & (field_expression "pfVar4->fr_line" identifier -> field_identifier)) )))) ;) (expression_statement "iVar7 = *(int *)puVar1;" (assignment_expression "iVar7 = *(int *)puVar1" identifier = (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar6 = *(int *)puVar2;" (assignment_expression "iVar6 = *(int *)puVar2" identifier = (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pfVar4->fr_file = pcVar5;" (assignment_expression "pfVar4->fr_file = pcVar5" (field_expression "pfVar4->fr_file" identifier -> field_identifier) = identifier) ;) (expression_statement "*(int *)(iVar11 + 0x30) = iVar7;" (assignment_expression "*(int *)(iVar11 + 0x30) = iVar7" (pointer_expression "*(int *)(iVar11 + 0x30)" * (cast_expression "(int *)(iVar11 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x30)" ( (binary_expression "iVar11 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar10 + 4) = iVar7;" (assignment_expression "*(int *)(iVar10 + 4) = iVar7" (pointer_expression "*(int *)(iVar10 + 4)" * (cast_expression "(int *)(iVar10 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 4)" ( (binary_expression "iVar10 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = *(int *)(iVar6 + 4);" (assignment_expression "iVar6 = *(int *)(iVar6 + 4)" identifier = (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = 0xc6;" (assignment_expression "iVar8 = 0xc6" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;" (assignment_expression "*(undefined4 *)(iVar7 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4" (pointer_expression "*(undefined4 *)(iVar7 + 0x3c)" * (cast_expression "(undefined4 *)(iVar7 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x3c)" ( (binary_expression "iVar7 + 0x3c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)PTR_listing_tail_000b60b4" * (cast_expression "(undefined4 *)PTR_listing_tail_000b60b4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar7 == iVar6) {\n        *(undefined4 *)(iVar7 + 0x30) = 0;\n        return;\n      }" if (parenthesized_expression "(iVar7 == iVar6)" ( (binary_expression "iVar7 == iVar6" identifier == identifier) )) (compound_statement "{\n        *(undefined4 *)(iVar7 + 0x30) = 0;\n        return;\n      }" { (expression_statement "*(undefined4 *)(iVar7 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 0x30) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 0x30)" * (cast_expression "(undefined4 *)(iVar7 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) )))) = number_literal) ;) (return_statement "return;" return ;) })) }))) })) comment (expression_statement "as_abort(PTR_LAB_000b5cb8 + 0x688c,iVar8,PTR_LAB_000b5cb8 + 0x68e0);" (call_expression "as_abort(PTR_LAB_000b5cb8 + 0x688c,iVar8,PTR_LAB_000b5cb8 + 0x68e0)" identifier (argument_list "(PTR_LAB_000b5cb8 + 0x688c,iVar8,PTR_LAB_000b5cb8 + 0x68e0)" ( (binary_expression "PTR_LAB_000b5cb8 + 0x688c" identifier + number_literal) , identifier , (binary_expression "PTR_LAB_000b5cb8 + 0x68e0" identifier + number_literal) ))) ;) })))
(translation_unit "void frag_new(int param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  \n  puVar2 = PTR_frchain_now_000b5fac;\n  puVar1 = PTR_frag_now_000b5f28;\n  iVar9 = *(int *)PTR_frchain_now_000b5fac;\n  iVar4 = *(int *)PTR_frag_now_000b5f28;\n  iVar10 = *(int *)(iVar9 + 4);\n  uVar5 = 0xa5;\n  if (iVar10 == iVar4) {\n    if (*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400) {\n      iVar6 = *(int *)PTR_abs_section_offset_000b6080;\n      uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);\n    }\n    else {\n      uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c);\n      iVar6 = (int)uVar3 >> 0x1f;\n    }\n    *(uint *)(iVar4 + 0x14) = uVar3 - param_1;\n    *(uint *)(iVar4 + 0x10) = iVar6 - (uint)(uVar3 < uVar3 - param_1);\n    if (*(int *)(iVar4 + 0x44) == 0) {\n      uVar5 = 0xaa;\n    }\n    else {\n      if (*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)) {\n        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;\n      }\n      uVar8 = *(uint *)(iVar9 + 0x28);\n      uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30);\n      *(uint *)(iVar9 + 0x24) = uVar3;\n      if (uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)) {\n        *(uint *)(iVar9 + 0x24) = uVar8;\n        uVar3 = uVar8;\n      }\n      *(uint *)(iVar9 + 0x20) = uVar3;\n      iVar4 = frag_alloc(iVar9 + 0x18);\n      *(int *)puVar1 = iVar4;\n      uVar5 = as_where(iVar4 + 0x38);\n      iVar6 = *(int *)puVar1;\n      iVar7 = *(int *)puVar2;\n      *(undefined4 *)(iVar4 + 0x34) = uVar5;\n      *(int *)(iVar10 + 0x30) = iVar6;\n      *(int *)(iVar9 + 4) = iVar6;\n      iVar4 = *(int *)(iVar7 + 4);\n      uVar5 = 0xc6;\n      *(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar6 == iVar4) {\n        *(undefined4 *)(iVar6 + 0x30) = 0;\n        return;\n      }\n    }\n  }\n                    \n  as_abort(PTR_LAB_000b5cb8 + 0x688c,uVar5,PTR_LAB_000b5cb8 + 0x68e0);\n}\n\n" (function_definition "void frag_new(int param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  \n  puVar2 = PTR_frchain_now_000b5fac;\n  puVar1 = PTR_frag_now_000b5f28;\n  iVar9 = *(int *)PTR_frchain_now_000b5fac;\n  iVar4 = *(int *)PTR_frag_now_000b5f28;\n  iVar10 = *(int *)(iVar9 + 4);\n  uVar5 = 0xa5;\n  if (iVar10 == iVar4) {\n    if (*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400) {\n      iVar6 = *(int *)PTR_abs_section_offset_000b6080;\n      uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);\n    }\n    else {\n      uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c);\n      iVar6 = (int)uVar3 >> 0x1f;\n    }\n    *(uint *)(iVar4 + 0x14) = uVar3 - param_1;\n    *(uint *)(iVar4 + 0x10) = iVar6 - (uint)(uVar3 < uVar3 - param_1);\n    if (*(int *)(iVar4 + 0x44) == 0) {\n      uVar5 = 0xaa;\n    }\n    else {\n      if (*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)) {\n        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;\n      }\n      uVar8 = *(uint *)(iVar9 + 0x28);\n      uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30);\n      *(uint *)(iVar9 + 0x24) = uVar3;\n      if (uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)) {\n        *(uint *)(iVar9 + 0x24) = uVar8;\n        uVar3 = uVar8;\n      }\n      *(uint *)(iVar9 + 0x20) = uVar3;\n      iVar4 = frag_alloc(iVar9 + 0x18);\n      *(int *)puVar1 = iVar4;\n      uVar5 = as_where(iVar4 + 0x38);\n      iVar6 = *(int *)puVar1;\n      iVar7 = *(int *)puVar2;\n      *(undefined4 *)(iVar4 + 0x34) = uVar5;\n      *(int *)(iVar10 + 0x30) = iVar6;\n      *(int *)(iVar9 + 4) = iVar6;\n      iVar4 = *(int *)(iVar7 + 4);\n      uVar5 = 0xc6;\n      *(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar6 == iVar4) {\n        *(undefined4 *)(iVar6 + 0x30) = 0;\n        return;\n      }\n    }\n  }\n                    \n  as_abort(PTR_LAB_000b5cb8 + 0x688c,uVar5,PTR_LAB_000b5cb8 + 0x68e0);\n}" primitive_type (function_declarator "frag_new(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  \n  puVar2 = PTR_frchain_now_000b5fac;\n  puVar1 = PTR_frag_now_000b5f28;\n  iVar9 = *(int *)PTR_frchain_now_000b5fac;\n  iVar4 = *(int *)PTR_frag_now_000b5f28;\n  iVar10 = *(int *)(iVar9 + 4);\n  uVar5 = 0xa5;\n  if (iVar10 == iVar4) {\n    if (*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400) {\n      iVar6 = *(int *)PTR_abs_section_offset_000b6080;\n      uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);\n    }\n    else {\n      uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c);\n      iVar6 = (int)uVar3 >> 0x1f;\n    }\n    *(uint *)(iVar4 + 0x14) = uVar3 - param_1;\n    *(uint *)(iVar4 + 0x10) = iVar6 - (uint)(uVar3 < uVar3 - param_1);\n    if (*(int *)(iVar4 + 0x44) == 0) {\n      uVar5 = 0xaa;\n    }\n    else {\n      if (*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)) {\n        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;\n      }\n      uVar8 = *(uint *)(iVar9 + 0x28);\n      uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30);\n      *(uint *)(iVar9 + 0x24) = uVar3;\n      if (uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)) {\n        *(uint *)(iVar9 + 0x24) = uVar8;\n        uVar3 = uVar8;\n      }\n      *(uint *)(iVar9 + 0x20) = uVar3;\n      iVar4 = frag_alloc(iVar9 + 0x18);\n      *(int *)puVar1 = iVar4;\n      uVar5 = as_where(iVar4 + 0x38);\n      iVar6 = *(int *)puVar1;\n      iVar7 = *(int *)puVar2;\n      *(undefined4 *)(iVar4 + 0x34) = uVar5;\n      *(int *)(iVar10 + 0x30) = iVar6;\n      *(int *)(iVar9 + 4) = iVar6;\n      iVar4 = *(int *)(iVar7 + 4);\n      uVar5 = 0xc6;\n      *(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar6 == iVar4) {\n        *(undefined4 *)(iVar6 + 0x30) = 0;\n        return;\n      }\n    }\n  }\n                    \n  as_abort(PTR_LAB_000b5cb8 + 0x688c,uVar5,PTR_LAB_000b5cb8 + 0x68e0);\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (expression_statement "puVar2 = PTR_frchain_now_000b5fac;" (assignment_expression "puVar2 = PTR_frchain_now_000b5fac" identifier = identifier) ;) (expression_statement "puVar1 = PTR_frag_now_000b5f28;" (assignment_expression "puVar1 = PTR_frag_now_000b5f28" identifier = identifier) ;) (expression_statement "iVar9 = *(int *)PTR_frchain_now_000b5fac;" (assignment_expression "iVar9 = *(int *)PTR_frchain_now_000b5fac" identifier = (pointer_expression "*(int *)PTR_frchain_now_000b5fac" * (cast_expression "(int *)PTR_frchain_now_000b5fac" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar4 = *(int *)PTR_frag_now_000b5f28;" (assignment_expression "iVar4 = *(int *)PTR_frag_now_000b5f28" identifier = (pointer_expression "*(int *)PTR_frag_now_000b5f28" * (cast_expression "(int *)PTR_frag_now_000b5f28" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar10 = *(int *)(iVar9 + 4);" (assignment_expression "iVar10 = *(int *)(iVar9 + 4)" identifier = (pointer_expression "*(int *)(iVar9 + 4)" * (cast_expression "(int *)(iVar9 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = 0xa5;" (assignment_expression "uVar5 = 0xa5" identifier = number_literal) ;) (if_statement "if (iVar10 == iVar4) {\n    if (*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400) {\n      iVar6 = *(int *)PTR_abs_section_offset_000b6080;\n      uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);\n    }\n    else {\n      uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c);\n      iVar6 = (int)uVar3 >> 0x1f;\n    }\n    *(uint *)(iVar4 + 0x14) = uVar3 - param_1;\n    *(uint *)(iVar4 + 0x10) = iVar6 - (uint)(uVar3 < uVar3 - param_1);\n    if (*(int *)(iVar4 + 0x44) == 0) {\n      uVar5 = 0xaa;\n    }\n    else {\n      if (*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)) {\n        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;\n      }\n      uVar8 = *(uint *)(iVar9 + 0x28);\n      uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30);\n      *(uint *)(iVar9 + 0x24) = uVar3;\n      if (uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)) {\n        *(uint *)(iVar9 + 0x24) = uVar8;\n        uVar3 = uVar8;\n      }\n      *(uint *)(iVar9 + 0x20) = uVar3;\n      iVar4 = frag_alloc(iVar9 + 0x18);\n      *(int *)puVar1 = iVar4;\n      uVar5 = as_where(iVar4 + 0x38);\n      iVar6 = *(int *)puVar1;\n      iVar7 = *(int *)puVar2;\n      *(undefined4 *)(iVar4 + 0x34) = uVar5;\n      *(int *)(iVar10 + 0x30) = iVar6;\n      *(int *)(iVar9 + 4) = iVar6;\n      iVar4 = *(int *)(iVar7 + 4);\n      uVar5 = 0xc6;\n      *(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar6 == iVar4) {\n        *(undefined4 *)(iVar6 + 0x30) = 0;\n        return;\n      }\n    }\n  }" if (parenthesized_expression "(iVar10 == iVar4)" ( (binary_expression "iVar10 == iVar4" identifier == identifier) )) (compound_statement "{\n    if (*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400) {\n      iVar6 = *(int *)PTR_abs_section_offset_000b6080;\n      uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);\n    }\n    else {\n      uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c);\n      iVar6 = (int)uVar3 >> 0x1f;\n    }\n    *(uint *)(iVar4 + 0x14) = uVar3 - param_1;\n    *(uint *)(iVar4 + 0x10) = iVar6 - (uint)(uVar3 < uVar3 - param_1);\n    if (*(int *)(iVar4 + 0x44) == 0) {\n      uVar5 = 0xaa;\n    }\n    else {\n      if (*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)) {\n        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;\n      }\n      uVar8 = *(uint *)(iVar9 + 0x28);\n      uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30);\n      *(uint *)(iVar9 + 0x24) = uVar3;\n      if (uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)) {\n        *(uint *)(iVar9 + 0x24) = uVar8;\n        uVar3 = uVar8;\n      }\n      *(uint *)(iVar9 + 0x20) = uVar3;\n      iVar4 = frag_alloc(iVar9 + 0x18);\n      *(int *)puVar1 = iVar4;\n      uVar5 = as_where(iVar4 + 0x38);\n      iVar6 = *(int *)puVar1;\n      iVar7 = *(int *)puVar2;\n      *(undefined4 *)(iVar4 + 0x34) = uVar5;\n      *(int *)(iVar10 + 0x30) = iVar6;\n      *(int *)(iVar9 + 4) = iVar6;\n      iVar4 = *(int *)(iVar7 + 4);\n      uVar5 = 0xc6;\n      *(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar6 == iVar4) {\n        *(undefined4 *)(iVar6 + 0x30) = 0;\n        return;\n      }\n    }\n  }" { (if_statement "if (*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400) {\n      iVar6 = *(int *)PTR_abs_section_offset_000b6080;\n      uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);\n    }\n    else {\n      uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c);\n      iVar6 = (int)uVar3 >> 0x1f;\n    }" if (parenthesized_expression "(*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400)" ( (binary_expression "*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400" (pointer_expression "*(undefined **)PTR_now_seg_000b5f1c" * (cast_expression "(undefined **)PTR_now_seg_000b5f1c" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) == (binary_expression "PTR__bfd_std_section_000b6630 + 400" identifier + number_literal)) )) (compound_statement "{\n      iVar6 = *(int *)PTR_abs_section_offset_000b6080;\n      uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);\n    }" { (expression_statement "iVar6 = *(int *)PTR_abs_section_offset_000b6080;" (assignment_expression "iVar6 = *(int *)PTR_abs_section_offset_000b6080" identifier = (pointer_expression "*(int *)PTR_abs_section_offset_000b6080" * (cast_expression "(int *)PTR_abs_section_offset_000b6080" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);" (assignment_expression "uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4)" identifier = (pointer_expression "*(uint *)(PTR_abs_section_offset_000b6080 + 4)" * (cast_expression "(uint *)(PTR_abs_section_offset_000b6080 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_abs_section_offset_000b6080 + 4)" ( (binary_expression "PTR_abs_section_offset_000b6080 + 4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c);\n      iVar6 = (int)uVar3 >> 0x1f;\n    }" else (compound_statement "{\n      uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c);\n      iVar6 = (int)uVar3 >> 0x1f;\n    }" { (expression_statement "uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c);" (assignment_expression "uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c)" identifier = (binary_expression "*(int *)(iVar9 + 0x24) - (iVar10 + 0x4c)" (pointer_expression "*(int *)(iVar9 + 0x24)" * (cast_expression "(int *)(iVar9 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x24)" ( (binary_expression "iVar9 + 0x24" identifier + number_literal) )))) - (parenthesized_expression "(iVar10 + 0x4c)" ( (binary_expression "iVar10 + 0x4c" identifier + number_literal) )))) ;) (expression_statement "iVar6 = (int)uVar3 >> 0x1f;" (assignment_expression "iVar6 = (int)uVar3 >> 0x1f" identifier = (binary_expression "(int)uVar3 >> 0x1f" (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) }))) (expression_statement "*(uint *)(iVar4 + 0x14) = uVar3 - param_1;" (assignment_expression "*(uint *)(iVar4 + 0x14) = uVar3 - param_1" (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) = (binary_expression "uVar3 - param_1" identifier - identifier)) ;) (expression_statement "*(uint *)(iVar4 + 0x10) = iVar6 - (uint)(uVar3 < uVar3 - param_1);" (assignment_expression "*(uint *)(iVar4 + 0x10) = iVar6 - (uint)(uVar3 < uVar3 - param_1)" (pointer_expression "*(uint *)(iVar4 + 0x10)" * (cast_expression "(uint *)(iVar4 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) = (binary_expression "iVar6 - (uint)(uVar3 < uVar3 - param_1)" identifier - (call_expression "(uint)(uVar3 < uVar3 - param_1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 < uVar3 - param_1)" ( (binary_expression "uVar3 < uVar3 - param_1" identifier < (binary_expression "uVar3 - param_1" identifier - identifier)) ))))) ;) (if_statement "if (*(int *)(iVar4 + 0x44) == 0) {\n      uVar5 = 0xaa;\n    }\n    else {\n      if (*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)) {\n        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;\n      }\n      uVar8 = *(uint *)(iVar9 + 0x28);\n      uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30);\n      *(uint *)(iVar9 + 0x24) = uVar3;\n      if (uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)) {\n        *(uint *)(iVar9 + 0x24) = uVar8;\n        uVar3 = uVar8;\n      }\n      *(uint *)(iVar9 + 0x20) = uVar3;\n      iVar4 = frag_alloc(iVar9 + 0x18);\n      *(int *)puVar1 = iVar4;\n      uVar5 = as_where(iVar4 + 0x38);\n      iVar6 = *(int *)puVar1;\n      iVar7 = *(int *)puVar2;\n      *(undefined4 *)(iVar4 + 0x34) = uVar5;\n      *(int *)(iVar10 + 0x30) = iVar6;\n      *(int *)(iVar9 + 4) = iVar6;\n      iVar4 = *(int *)(iVar7 + 4);\n      uVar5 = 0xc6;\n      *(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar6 == iVar4) {\n        *(undefined4 *)(iVar6 + 0x30) = 0;\n        return;\n      }\n    }" if (parenthesized_expression "(*(int *)(iVar4 + 0x44) == 0)" ( (binary_expression "*(int *)(iVar4 + 0x44) == 0" (pointer_expression "*(int *)(iVar4 + 0x44)" * (cast_expression "(int *)(iVar4 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x44)" ( (binary_expression "iVar4 + 0x44" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      uVar5 = 0xaa;\n    }" { (expression_statement "uVar5 = 0xaa;" (assignment_expression "uVar5 = 0xaa" identifier = number_literal) ;) }) (else_clause "else {\n      if (*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)) {\n        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;\n      }\n      uVar8 = *(uint *)(iVar9 + 0x28);\n      uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30);\n      *(uint *)(iVar9 + 0x24) = uVar3;\n      if (uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)) {\n        *(uint *)(iVar9 + 0x24) = uVar8;\n        uVar3 = uVar8;\n      }\n      *(uint *)(iVar9 + 0x20) = uVar3;\n      iVar4 = frag_alloc(iVar9 + 0x18);\n      *(int *)puVar1 = iVar4;\n      uVar5 = as_where(iVar4 + 0x38);\n      iVar6 = *(int *)puVar1;\n      iVar7 = *(int *)puVar2;\n      *(undefined4 *)(iVar4 + 0x34) = uVar5;\n      *(int *)(iVar10 + 0x30) = iVar6;\n      *(int *)(iVar9 + 4) = iVar6;\n      iVar4 = *(int *)(iVar7 + 4);\n      uVar5 = 0xc6;\n      *(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar6 == iVar4) {\n        *(undefined4 *)(iVar6 + 0x30) = 0;\n        return;\n      }\n    }" else (compound_statement "{\n      if (*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)) {\n        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;\n      }\n      uVar8 = *(uint *)(iVar9 + 0x28);\n      uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30);\n      *(uint *)(iVar9 + 0x24) = uVar3;\n      if (uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)) {\n        *(uint *)(iVar9 + 0x24) = uVar8;\n        uVar3 = uVar8;\n      }\n      *(uint *)(iVar9 + 0x20) = uVar3;\n      iVar4 = frag_alloc(iVar9 + 0x18);\n      *(int *)puVar1 = iVar4;\n      uVar5 = as_where(iVar4 + 0x38);\n      iVar6 = *(int *)puVar1;\n      iVar7 = *(int *)puVar2;\n      *(undefined4 *)(iVar4 + 0x34) = uVar5;\n      *(int *)(iVar10 + 0x30) = iVar6;\n      *(int *)(iVar9 + 4) = iVar6;\n      iVar4 = *(int *)(iVar7 + 4);\n      uVar5 = 0xc6;\n      *(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar6 == iVar4) {\n        *(undefined4 *)(iVar6 + 0x30) = 0;\n        return;\n      }\n    }" { (if_statement "if (*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)) {\n        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;\n      }" if (parenthesized_expression "(*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20))" ( (binary_expression "*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)" (pointer_expression "*(int *)(iVar9 + 0x24)" * (cast_expression "(int *)(iVar9 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x24)" ( (binary_expression "iVar9 + 0x24" identifier + number_literal) )))) == (pointer_expression "*(int *)(iVar9 + 0x20)" * (cast_expression "(int *)(iVar9 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x20)" ( (binary_expression "iVar9 + 0x20" identifier + number_literal) ))))) )) (compound_statement "{\n        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;\n      }" { (expression_statement "*(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;" (assignment_expression "*(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40" (pointer_expression "*(byte *)(iVar9 + 0x40)" * (cast_expression "(byte *)(iVar9 + 0x40)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar9 + 0x40) & 0xbf | 0x40" (binary_expression "*(byte *)(iVar9 + 0x40) & 0xbf" (pointer_expression "*(byte *)(iVar9 + 0x40)" * (cast_expression "(byte *)(iVar9 + 0x40)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))) & number_literal) | number_literal)) ;) })) (expression_statement "uVar8 = *(uint *)(iVar9 + 0x28);" (assignment_expression "uVar8 = *(uint *)(iVar9 + 0x28)" identifier = (pointer_expression "*(uint *)(iVar9 + 0x28)" * (cast_expression "(uint *)(iVar9 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30);" (assignment_expression "uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30)" identifier = (binary_expression "*(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30)" (binary_expression "*(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30)" (pointer_expression "*(int *)(iVar9 + 0x24)" * (cast_expression "(int *)(iVar9 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x24)" ( (binary_expression "iVar9 + 0x24" identifier + number_literal) )))) + (pointer_expression "*(uint *)(iVar9 + 0x30)" * (cast_expression "(uint *)(iVar9 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) ))))) & (unary_expression "~*(uint *)(iVar9 + 0x30)" ~ (pointer_expression "*(uint *)(iVar9 + 0x30)" * (cast_expression "(uint *)(iVar9 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) ))))))) ;) (expression_statement "*(uint *)(iVar9 + 0x24) = uVar3;" (assignment_expression "*(uint *)(iVar9 + 0x24) = uVar3" (pointer_expression "*(uint *)(iVar9 + 0x24)" * (cast_expression "(uint *)(iVar9 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x24)" ( (binary_expression "iVar9 + 0x24" identifier + number_literal) )))) = identifier) ;) (if_statement "if (uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)) {\n        *(uint *)(iVar9 + 0x24) = uVar8;\n        uVar3 = uVar8;\n      }" if (parenthesized_expression "(uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c))" ( (binary_expression "uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)" (binary_expression "uVar8 - *(int *)(iVar9 + 0x1c)" identifier - (pointer_expression "*(int *)(iVar9 + 0x1c)" * (cast_expression "(int *)(iVar9 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1c)" ( (binary_expression "iVar9 + 0x1c" identifier + number_literal) ))))) < (binary_expression "uVar3 - *(int *)(iVar9 + 0x1c)" identifier - (pointer_expression "*(int *)(iVar9 + 0x1c)" * (cast_expression "(int *)(iVar9 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1c)" ( (binary_expression "iVar9 + 0x1c" identifier + number_literal) )))))) )) (compound_statement "{\n        *(uint *)(iVar9 + 0x24) = uVar8;\n        uVar3 = uVar8;\n      }" { (expression_statement "*(uint *)(iVar9 + 0x24) = uVar8;" (assignment_expression "*(uint *)(iVar9 + 0x24) = uVar8" (pointer_expression "*(uint *)(iVar9 + 0x24)" * (cast_expression "(uint *)(iVar9 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x24)" ( (binary_expression "iVar9 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar3 = uVar8;" (assignment_expression "uVar3 = uVar8" identifier = identifier) ;) })) (expression_statement "*(uint *)(iVar9 + 0x20) = uVar3;" (assignment_expression "*(uint *)(iVar9 + 0x20) = uVar3" (pointer_expression "*(uint *)(iVar9 + 0x20)" * (cast_expression "(uint *)(iVar9 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x20)" ( (binary_expression "iVar9 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar4 = frag_alloc(iVar9 + 0x18);" (assignment_expression "iVar4 = frag_alloc(iVar9 + 0x18)" identifier = (call_expression "frag_alloc(iVar9 + 0x18)" identifier (argument_list "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) ;) (expression_statement "*(int *)puVar1 = iVar4;" (assignment_expression "*(int *)puVar1 = iVar4" (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "uVar5 = as_where(iVar4 + 0x38);" (assignment_expression "uVar5 = as_where(iVar4 + 0x38)" identifier = (call_expression "as_where(iVar4 + 0x38)" identifier (argument_list "(iVar4 + 0x38)" ( (binary_expression "iVar4 + 0x38" identifier + number_literal) )))) ;) (expression_statement "iVar6 = *(int *)puVar1;" (assignment_expression "iVar6 = *(int *)puVar1" identifier = (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar7 = *(int *)puVar2;" (assignment_expression "iVar7 = *(int *)puVar2" identifier = (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(iVar4 + 0x34) = uVar5;" (assignment_expression "*(undefined4 *)(iVar4 + 0x34) = uVar5" (pointer_expression "*(undefined4 *)(iVar4 + 0x34)" * (cast_expression "(undefined4 *)(iVar4 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x34)" ( (binary_expression "iVar4 + 0x34" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar10 + 0x30) = iVar6;" (assignment_expression "*(int *)(iVar10 + 0x30) = iVar6" (pointer_expression "*(int *)(iVar10 + 0x30)" * (cast_expression "(int *)(iVar10 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x30)" ( (binary_expression "iVar10 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar9 + 4) = iVar6;" (assignment_expression "*(int *)(iVar9 + 4) = iVar6" (pointer_expression "*(int *)(iVar9 + 4)" * (cast_expression "(int *)(iVar9 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar4 = *(int *)(iVar7 + 4);" (assignment_expression "iVar4 = *(int *)(iVar7 + 4)" identifier = (pointer_expression "*(int *)(iVar7 + 4)" * (cast_expression "(int *)(iVar7 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = 0xc6;" (assignment_expression "uVar5 = 0xc6" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;" (assignment_expression "*(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4" (pointer_expression "*(undefined4 *)(iVar6 + 0x3c)" * (cast_expression "(undefined4 *)(iVar6 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x3c)" ( (binary_expression "iVar6 + 0x3c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)PTR_listing_tail_000b60b4" * (cast_expression "(undefined4 *)PTR_listing_tail_000b60b4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar6 == iVar4) {\n        *(undefined4 *)(iVar6 + 0x30) = 0;\n        return;\n      }" if (parenthesized_expression "(iVar6 == iVar4)" ( (binary_expression "iVar6 == iVar4" identifier == identifier) )) (compound_statement "{\n        *(undefined4 *)(iVar6 + 0x30) = 0;\n        return;\n      }" { (expression_statement "*(undefined4 *)(iVar6 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(iVar6 + 0x30) = 0" (pointer_expression "*(undefined4 *)(iVar6 + 0x30)" * (cast_expression "(undefined4 *)(iVar6 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x30)" ( (binary_expression "iVar6 + 0x30" identifier + number_literal) )))) = number_literal) ;) (return_statement "return;" return ;) })) }))) })) (expression_statement "as_abort(PTR_LAB_000b5cb8 + 0x688c,uVar5,PTR_LAB_000b5cb8 + 0x68e0);" (call_expression "as_abort(PTR_LAB_000b5cb8 + 0x688c,uVar5,PTR_LAB_000b5cb8 + 0x68e0)" identifier (argument_list "(PTR_LAB_000b5cb8 + 0x688c,uVar5,PTR_LAB_000b5cb8 + 0x68e0)" ( (binary_expression "PTR_LAB_000b5cb8 + 0x688c" identifier + number_literal) , identifier , (binary_expression "PTR_LAB_000b5cb8 + 0x68e0" identifier + number_literal) ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (binary_expression IDENT - IDENT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) & (unary_expression ~ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) < (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (return_statement return ;) })) }))) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (binary_expression IDENT + LIT) ))) ;) })))
(function_definition "void frag_new(int param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  \n  puVar2 = PTR_frchain_now_000b5fac;\n  puVar1 = PTR_frag_now_000b5f28;\n  iVar9 = *(int *)PTR_frchain_now_000b5fac;\n  iVar4 = *(int *)PTR_frag_now_000b5f28;\n  iVar10 = *(int *)(iVar9 + 4);\n  uVar5 = 0xa5;\n  if (iVar10 == iVar4) {\n    if (*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400) {\n      iVar6 = *(int *)PTR_abs_section_offset_000b6080;\n      uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);\n    }\n    else {\n      uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c);\n      iVar6 = (int)uVar3 >> 0x1f;\n    }\n    *(uint *)(iVar4 + 0x14) = uVar3 - param_1;\n    *(uint *)(iVar4 + 0x10) = iVar6 - (uint)(uVar3 < uVar3 - param_1);\n    if (*(int *)(iVar4 + 0x44) == 0) {\n      uVar5 = 0xaa;\n    }\n    else {\n      if (*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)) {\n        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;\n      }\n      uVar8 = *(uint *)(iVar9 + 0x28);\n      uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30);\n      *(uint *)(iVar9 + 0x24) = uVar3;\n      if (uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)) {\n        *(uint *)(iVar9 + 0x24) = uVar8;\n        uVar3 = uVar8;\n      }\n      *(uint *)(iVar9 + 0x20) = uVar3;\n      iVar4 = frag_alloc(iVar9 + 0x18);\n      *(int *)puVar1 = iVar4;\n      uVar5 = as_where(iVar4 + 0x38);\n      iVar6 = *(int *)puVar1;\n      iVar7 = *(int *)puVar2;\n      *(undefined4 *)(iVar4 + 0x34) = uVar5;\n      *(int *)(iVar10 + 0x30) = iVar6;\n      *(int *)(iVar9 + 4) = iVar6;\n      iVar4 = *(int *)(iVar7 + 4);\n      uVar5 = 0xc6;\n      *(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar6 == iVar4) {\n        *(undefined4 *)(iVar6 + 0x30) = 0;\n        return;\n      }\n    }\n  }\n                    \n  as_abort(PTR_LAB_000b5cb8 + 0x688c,uVar5,PTR_LAB_000b5cb8 + 0x68e0);\n}" (primitive_type "void") (function_declarator "frag_new(int param_1)" (identifier "frag_new") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  \n  puVar2 = PTR_frchain_now_000b5fac;\n  puVar1 = PTR_frag_now_000b5f28;\n  iVar9 = *(int *)PTR_frchain_now_000b5fac;\n  iVar4 = *(int *)PTR_frag_now_000b5f28;\n  iVar10 = *(int *)(iVar9 + 4);\n  uVar5 = 0xa5;\n  if (iVar10 == iVar4) {\n    if (*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400) {\n      iVar6 = *(int *)PTR_abs_section_offset_000b6080;\n      uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);\n    }\n    else {\n      uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c);\n      iVar6 = (int)uVar3 >> 0x1f;\n    }\n    *(uint *)(iVar4 + 0x14) = uVar3 - param_1;\n    *(uint *)(iVar4 + 0x10) = iVar6 - (uint)(uVar3 < uVar3 - param_1);\n    if (*(int *)(iVar4 + 0x44) == 0) {\n      uVar5 = 0xaa;\n    }\n    else {\n      if (*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)) {\n        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;\n      }\n      uVar8 = *(uint *)(iVar9 + 0x28);\n      uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30);\n      *(uint *)(iVar9 + 0x24) = uVar3;\n      if (uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)) {\n        *(uint *)(iVar9 + 0x24) = uVar8;\n        uVar3 = uVar8;\n      }\n      *(uint *)(iVar9 + 0x20) = uVar3;\n      iVar4 = frag_alloc(iVar9 + 0x18);\n      *(int *)puVar1 = iVar4;\n      uVar5 = as_where(iVar4 + 0x38);\n      iVar6 = *(int *)puVar1;\n      iVar7 = *(int *)puVar2;\n      *(undefined4 *)(iVar4 + 0x34) = uVar5;\n      *(int *)(iVar10 + 0x30) = iVar6;\n      *(int *)(iVar9 + 4) = iVar6;\n      iVar4 = *(int *)(iVar7 + 4);\n      uVar5 = 0xc6;\n      *(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar6 == iVar4) {\n        *(undefined4 *)(iVar6 + 0x30) = 0;\n        return;\n      }\n    }\n  }\n                    \n  as_abort(PTR_LAB_000b5cb8 + 0x688c,uVar5,PTR_LAB_000b5cb8 + 0x68e0);\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (expression_statement "puVar2 = PTR_frchain_now_000b5fac;" (assignment_expression "puVar2 = PTR_frchain_now_000b5fac" (identifier "puVar2") (= "=") (identifier "PTR_frchain_now_000b5fac")) (; ";")) (expression_statement "puVar1 = PTR_frag_now_000b5f28;" (assignment_expression "puVar1 = PTR_frag_now_000b5f28" (identifier "puVar1") (= "=") (identifier "PTR_frag_now_000b5f28")) (; ";")) (expression_statement "iVar9 = *(int *)PTR_frchain_now_000b5fac;" (assignment_expression "iVar9 = *(int *)PTR_frchain_now_000b5fac" (identifier "iVar9") (= "=") (pointer_expression "*(int *)PTR_frchain_now_000b5fac" (* "*") (cast_expression "(int *)PTR_frchain_now_000b5fac" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_frchain_now_000b5fac")))) (; ";")) (expression_statement "iVar4 = *(int *)PTR_frag_now_000b5f28;" (assignment_expression "iVar4 = *(int *)PTR_frag_now_000b5f28" (identifier "iVar4") (= "=") (pointer_expression "*(int *)PTR_frag_now_000b5f28" (* "*") (cast_expression "(int *)PTR_frag_now_000b5f28" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_frag_now_000b5f28")))) (; ";")) (expression_statement "iVar10 = *(int *)(iVar9 + 4);" (assignment_expression "iVar10 = *(int *)(iVar9 + 4)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar9 + 4)" (* "*") (cast_expression "(int *)(iVar9 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 4)" (( "(") (binary_expression "iVar9 + 4" (identifier "iVar9") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar5 = 0xa5;" (assignment_expression "uVar5 = 0xa5" (identifier "uVar5") (= "=") (number_literal "0xa5")) (; ";")) (if_statement "if (iVar10 == iVar4) {\n    if (*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400) {\n      iVar6 = *(int *)PTR_abs_section_offset_000b6080;\n      uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);\n    }\n    else {\n      uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c);\n      iVar6 = (int)uVar3 >> 0x1f;\n    }\n    *(uint *)(iVar4 + 0x14) = uVar3 - param_1;\n    *(uint *)(iVar4 + 0x10) = iVar6 - (uint)(uVar3 < uVar3 - param_1);\n    if (*(int *)(iVar4 + 0x44) == 0) {\n      uVar5 = 0xaa;\n    }\n    else {\n      if (*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)) {\n        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;\n      }\n      uVar8 = *(uint *)(iVar9 + 0x28);\n      uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30);\n      *(uint *)(iVar9 + 0x24) = uVar3;\n      if (uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)) {\n        *(uint *)(iVar9 + 0x24) = uVar8;\n        uVar3 = uVar8;\n      }\n      *(uint *)(iVar9 + 0x20) = uVar3;\n      iVar4 = frag_alloc(iVar9 + 0x18);\n      *(int *)puVar1 = iVar4;\n      uVar5 = as_where(iVar4 + 0x38);\n      iVar6 = *(int *)puVar1;\n      iVar7 = *(int *)puVar2;\n      *(undefined4 *)(iVar4 + 0x34) = uVar5;\n      *(int *)(iVar10 + 0x30) = iVar6;\n      *(int *)(iVar9 + 4) = iVar6;\n      iVar4 = *(int *)(iVar7 + 4);\n      uVar5 = 0xc6;\n      *(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar6 == iVar4) {\n        *(undefined4 *)(iVar6 + 0x30) = 0;\n        return;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(iVar10 == iVar4)" (( "(") (binary_expression "iVar10 == iVar4" (identifier "iVar10") (== "==") (identifier "iVar4")) () ")")) (compound_statement "{\n    if (*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400) {\n      iVar6 = *(int *)PTR_abs_section_offset_000b6080;\n      uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);\n    }\n    else {\n      uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c);\n      iVar6 = (int)uVar3 >> 0x1f;\n    }\n    *(uint *)(iVar4 + 0x14) = uVar3 - param_1;\n    *(uint *)(iVar4 + 0x10) = iVar6 - (uint)(uVar3 < uVar3 - param_1);\n    if (*(int *)(iVar4 + 0x44) == 0) {\n      uVar5 = 0xaa;\n    }\n    else {\n      if (*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)) {\n        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;\n      }\n      uVar8 = *(uint *)(iVar9 + 0x28);\n      uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30);\n      *(uint *)(iVar9 + 0x24) = uVar3;\n      if (uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)) {\n        *(uint *)(iVar9 + 0x24) = uVar8;\n        uVar3 = uVar8;\n      }\n      *(uint *)(iVar9 + 0x20) = uVar3;\n      iVar4 = frag_alloc(iVar9 + 0x18);\n      *(int *)puVar1 = iVar4;\n      uVar5 = as_where(iVar4 + 0x38);\n      iVar6 = *(int *)puVar1;\n      iVar7 = *(int *)puVar2;\n      *(undefined4 *)(iVar4 + 0x34) = uVar5;\n      *(int *)(iVar10 + 0x30) = iVar6;\n      *(int *)(iVar9 + 4) = iVar6;\n      iVar4 = *(int *)(iVar7 + 4);\n      uVar5 = 0xc6;\n      *(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar6 == iVar4) {\n        *(undefined4 *)(iVar6 + 0x30) = 0;\n        return;\n      }\n    }\n  }" ({ "{") (if_statement "if (*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400) {\n      iVar6 = *(int *)PTR_abs_section_offset_000b6080;\n      uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);\n    }\n    else {\n      uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c);\n      iVar6 = (int)uVar3 >> 0x1f;\n    }" (if "if") (parenthesized_expression "(*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400)" (( "(") (binary_expression "*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400" (pointer_expression "*(undefined **)PTR_now_seg_000b5f1c" (* "*") (cast_expression "(undefined **)PTR_now_seg_000b5f1c" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_now_seg_000b5f1c"))) (== "==") (binary_expression "PTR__bfd_std_section_000b6630 + 400" (identifier "PTR__bfd_std_section_000b6630") (+ "+") (number_literal "400"))) () ")")) (compound_statement "{\n      iVar6 = *(int *)PTR_abs_section_offset_000b6080;\n      uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);\n    }" ({ "{") (expression_statement "iVar6 = *(int *)PTR_abs_section_offset_000b6080;" (assignment_expression "iVar6 = *(int *)PTR_abs_section_offset_000b6080" (identifier "iVar6") (= "=") (pointer_expression "*(int *)PTR_abs_section_offset_000b6080" (* "*") (cast_expression "(int *)PTR_abs_section_offset_000b6080" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_abs_section_offset_000b6080")))) (; ";")) (expression_statement "uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);" (assignment_expression "uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(PTR_abs_section_offset_000b6080 + 4)" (* "*") (cast_expression "(uint *)(PTR_abs_section_offset_000b6080 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_abs_section_offset_000b6080 + 4)" (( "(") (binary_expression "PTR_abs_section_offset_000b6080 + 4" (identifier "PTR_abs_section_offset_000b6080") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c);\n      iVar6 = (int)uVar3 >> 0x1f;\n    }" (else "else") (compound_statement "{\n      uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c);\n      iVar6 = (int)uVar3 >> 0x1f;\n    }" ({ "{") (expression_statement "uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c);" (assignment_expression "uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c)" (identifier "uVar3") (= "=") (binary_expression "*(int *)(iVar9 + 0x24) - (iVar10 + 0x4c)" (pointer_expression "*(int *)(iVar9 + 0x24)" (* "*") (cast_expression "(int *)(iVar9 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x24)" (( "(") (binary_expression "iVar9 + 0x24" (identifier "iVar9") (+ "+") (number_literal "0x24")) () ")")))) (- "-") (parenthesized_expression "(iVar10 + 0x4c)" (( "(") (binary_expression "iVar10 + 0x4c" (identifier "iVar10") (+ "+") (number_literal "0x4c")) () ")")))) (; ";")) (expression_statement "iVar6 = (int)uVar3 >> 0x1f;" (assignment_expression "iVar6 = (int)uVar3 >> 0x1f" (identifier "iVar6") (= "=") (binary_expression "(int)uVar3 >> 0x1f" (cast_expression "(int)uVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar3")) (>> ">>") (number_literal "0x1f"))) (; ";")) (} "}")))) (expression_statement "*(uint *)(iVar4 + 0x14) = uVar3 - param_1;" (assignment_expression "*(uint *)(iVar4 + 0x14) = uVar3 - param_1" (pointer_expression "*(uint *)(iVar4 + 0x14)" (* "*") (cast_expression "(uint *)(iVar4 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "uVar3 - param_1" (identifier "uVar3") (- "-") (identifier "param_1"))) (; ";")) (expression_statement "*(uint *)(iVar4 + 0x10) = iVar6 - (uint)(uVar3 < uVar3 - param_1);" (assignment_expression "*(uint *)(iVar4 + 0x10) = iVar6 - (uint)(uVar3 < uVar3 - param_1)" (pointer_expression "*(uint *)(iVar4 + 0x10)" (* "*") (cast_expression "(uint *)(iVar4 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x10)" (( "(") (binary_expression "iVar4 + 0x10" (identifier "iVar4") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "iVar6 - (uint)(uVar3 < uVar3 - param_1)" (identifier "iVar6") (- "-") (call_expression "(uint)(uVar3 < uVar3 - param_1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar3 < uVar3 - param_1)" (( "(") (binary_expression "uVar3 < uVar3 - param_1" (identifier "uVar3") (< "<") (binary_expression "uVar3 - param_1" (identifier "uVar3") (- "-") (identifier "param_1"))) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar4 + 0x44) == 0) {\n      uVar5 = 0xaa;\n    }\n    else {\n      if (*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)) {\n        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;\n      }\n      uVar8 = *(uint *)(iVar9 + 0x28);\n      uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30);\n      *(uint *)(iVar9 + 0x24) = uVar3;\n      if (uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)) {\n        *(uint *)(iVar9 + 0x24) = uVar8;\n        uVar3 = uVar8;\n      }\n      *(uint *)(iVar9 + 0x20) = uVar3;\n      iVar4 = frag_alloc(iVar9 + 0x18);\n      *(int *)puVar1 = iVar4;\n      uVar5 = as_where(iVar4 + 0x38);\n      iVar6 = *(int *)puVar1;\n      iVar7 = *(int *)puVar2;\n      *(undefined4 *)(iVar4 + 0x34) = uVar5;\n      *(int *)(iVar10 + 0x30) = iVar6;\n      *(int *)(iVar9 + 4) = iVar6;\n      iVar4 = *(int *)(iVar7 + 4);\n      uVar5 = 0xc6;\n      *(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar6 == iVar4) {\n        *(undefined4 *)(iVar6 + 0x30) = 0;\n        return;\n      }\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar4 + 0x44) == 0)" (( "(") (binary_expression "*(int *)(iVar4 + 0x44) == 0" (pointer_expression "*(int *)(iVar4 + 0x44)" (* "*") (cast_expression "(int *)(iVar4 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x44)" (( "(") (binary_expression "iVar4 + 0x44" (identifier "iVar4") (+ "+") (number_literal "0x44")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar5 = 0xaa;\n    }" ({ "{") (expression_statement "uVar5 = 0xaa;" (assignment_expression "uVar5 = 0xaa" (identifier "uVar5") (= "=") (number_literal "0xaa")) (; ";")) (} "}")) (else_clause "else {\n      if (*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)) {\n        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;\n      }\n      uVar8 = *(uint *)(iVar9 + 0x28);\n      uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30);\n      *(uint *)(iVar9 + 0x24) = uVar3;\n      if (uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)) {\n        *(uint *)(iVar9 + 0x24) = uVar8;\n        uVar3 = uVar8;\n      }\n      *(uint *)(iVar9 + 0x20) = uVar3;\n      iVar4 = frag_alloc(iVar9 + 0x18);\n      *(int *)puVar1 = iVar4;\n      uVar5 = as_where(iVar4 + 0x38);\n      iVar6 = *(int *)puVar1;\n      iVar7 = *(int *)puVar2;\n      *(undefined4 *)(iVar4 + 0x34) = uVar5;\n      *(int *)(iVar10 + 0x30) = iVar6;\n      *(int *)(iVar9 + 4) = iVar6;\n      iVar4 = *(int *)(iVar7 + 4);\n      uVar5 = 0xc6;\n      *(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar6 == iVar4) {\n        *(undefined4 *)(iVar6 + 0x30) = 0;\n        return;\n      }\n    }" (else "else") (compound_statement "{\n      if (*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)) {\n        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;\n      }\n      uVar8 = *(uint *)(iVar9 + 0x28);\n      uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30);\n      *(uint *)(iVar9 + 0x24) = uVar3;\n      if (uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)) {\n        *(uint *)(iVar9 + 0x24) = uVar8;\n        uVar3 = uVar8;\n      }\n      *(uint *)(iVar9 + 0x20) = uVar3;\n      iVar4 = frag_alloc(iVar9 + 0x18);\n      *(int *)puVar1 = iVar4;\n      uVar5 = as_where(iVar4 + 0x38);\n      iVar6 = *(int *)puVar1;\n      iVar7 = *(int *)puVar2;\n      *(undefined4 *)(iVar4 + 0x34) = uVar5;\n      *(int *)(iVar10 + 0x30) = iVar6;\n      *(int *)(iVar9 + 4) = iVar6;\n      iVar4 = *(int *)(iVar7 + 4);\n      uVar5 = 0xc6;\n      *(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;\n      if (iVar6 == iVar4) {\n        *(undefined4 *)(iVar6 + 0x30) = 0;\n        return;\n      }\n    }" ({ "{") (if_statement "if (*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)) {\n        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20))" (( "(") (binary_expression "*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)" (pointer_expression "*(int *)(iVar9 + 0x24)" (* "*") (cast_expression "(int *)(iVar9 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x24)" (( "(") (binary_expression "iVar9 + 0x24" (identifier "iVar9") (+ "+") (number_literal "0x24")) () ")")))) (== "==") (pointer_expression "*(int *)(iVar9 + 0x20)" (* "*") (cast_expression "(int *)(iVar9 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x20)" (( "(") (binary_expression "iVar9 + 0x20" (identifier "iVar9") (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (compound_statement "{\n        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;\n      }" ({ "{") (expression_statement "*(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;" (assignment_expression "*(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40" (pointer_expression "*(byte *)(iVar9 + 0x40)" (* "*") (cast_expression "(byte *)(iVar9 + 0x40)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x40)" (( "(") (binary_expression "iVar9 + 0x40" (identifier "iVar9") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar9 + 0x40) & 0xbf | 0x40" (binary_expression "*(byte *)(iVar9 + 0x40) & 0xbf" (pointer_expression "*(byte *)(iVar9 + 0x40)" (* "*") (cast_expression "(byte *)(iVar9 + 0x40)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x40)" (( "(") (binary_expression "iVar9 + 0x40" (identifier "iVar9") (+ "+") (number_literal "0x40")) () ")")))) (& "&") (number_literal "0xbf")) (| "|") (number_literal "0x40"))) (; ";")) (} "}"))) (expression_statement "uVar8 = *(uint *)(iVar9 + 0x28);" (assignment_expression "uVar8 = *(uint *)(iVar9 + 0x28)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(iVar9 + 0x28)" (* "*") (cast_expression "(uint *)(iVar9 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x28)" (( "(") (binary_expression "iVar9 + 0x28" (identifier "iVar9") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30);" (assignment_expression "uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30)" (identifier "uVar3") (= "=") (binary_expression "*(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30)" (binary_expression "*(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30)" (pointer_expression "*(int *)(iVar9 + 0x24)" (* "*") (cast_expression "(int *)(iVar9 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x24)" (( "(") (binary_expression "iVar9 + 0x24" (identifier "iVar9") (+ "+") (number_literal "0x24")) () ")")))) (+ "+") (pointer_expression "*(uint *)(iVar9 + 0x30)" (* "*") (cast_expression "(uint *)(iVar9 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x30)" (( "(") (binary_expression "iVar9 + 0x30" (identifier "iVar9") (+ "+") (number_literal "0x30")) () ")"))))) (& "&") (unary_expression "~*(uint *)(iVar9 + 0x30)" (~ "~") (pointer_expression "*(uint *)(iVar9 + 0x30)" (* "*") (cast_expression "(uint *)(iVar9 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x30)" (( "(") (binary_expression "iVar9 + 0x30" (identifier "iVar9") (+ "+") (number_literal "0x30")) () ")"))))))) (; ";")) (expression_statement "*(uint *)(iVar9 + 0x24) = uVar3;" (assignment_expression "*(uint *)(iVar9 + 0x24) = uVar3" (pointer_expression "*(uint *)(iVar9 + 0x24)" (* "*") (cast_expression "(uint *)(iVar9 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x24)" (( "(") (binary_expression "iVar9 + 0x24" (identifier "iVar9") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (if_statement "if (uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)) {\n        *(uint *)(iVar9 + 0x24) = uVar8;\n        uVar3 = uVar8;\n      }" (if "if") (parenthesized_expression "(uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c))" (( "(") (binary_expression "uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)" (binary_expression "uVar8 - *(int *)(iVar9 + 0x1c)" (identifier "uVar8") (- "-") (pointer_expression "*(int *)(iVar9 + 0x1c)" (* "*") (cast_expression "(int *)(iVar9 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x1c)" (( "(") (binary_expression "iVar9 + 0x1c" (identifier "iVar9") (+ "+") (number_literal "0x1c")) () ")"))))) (< "<") (binary_expression "uVar3 - *(int *)(iVar9 + 0x1c)" (identifier "uVar3") (- "-") (pointer_expression "*(int *)(iVar9 + 0x1c)" (* "*") (cast_expression "(int *)(iVar9 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x1c)" (( "(") (binary_expression "iVar9 + 0x1c" (identifier "iVar9") (+ "+") (number_literal "0x1c")) () ")")))))) () ")")) (compound_statement "{\n        *(uint *)(iVar9 + 0x24) = uVar8;\n        uVar3 = uVar8;\n      }" ({ "{") (expression_statement "*(uint *)(iVar9 + 0x24) = uVar8;" (assignment_expression "*(uint *)(iVar9 + 0x24) = uVar8" (pointer_expression "*(uint *)(iVar9 + 0x24)" (* "*") (cast_expression "(uint *)(iVar9 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x24)" (( "(") (binary_expression "iVar9 + 0x24" (identifier "iVar9") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "uVar3 = uVar8;" (assignment_expression "uVar3 = uVar8" (identifier "uVar3") (= "=") (identifier "uVar8")) (; ";")) (} "}"))) (expression_statement "*(uint *)(iVar9 + 0x20) = uVar3;" (assignment_expression "*(uint *)(iVar9 + 0x20) = uVar3" (pointer_expression "*(uint *)(iVar9 + 0x20)" (* "*") (cast_expression "(uint *)(iVar9 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x20)" (( "(") (binary_expression "iVar9 + 0x20" (identifier "iVar9") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "iVar4 = frag_alloc(iVar9 + 0x18);" (assignment_expression "iVar4 = frag_alloc(iVar9 + 0x18)" (identifier "iVar4") (= "=") (call_expression "frag_alloc(iVar9 + 0x18)" (identifier "frag_alloc") (argument_list "(iVar9 + 0x18)" (( "(") (binary_expression "iVar9 + 0x18" (identifier "iVar9") (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "*(int *)puVar1 = iVar4;" (assignment_expression "*(int *)puVar1 = iVar4" (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "uVar5 = as_where(iVar4 + 0x38);" (assignment_expression "uVar5 = as_where(iVar4 + 0x38)" (identifier "uVar5") (= "=") (call_expression "as_where(iVar4 + 0x38)" (identifier "as_where") (argument_list "(iVar4 + 0x38)" (( "(") (binary_expression "iVar4 + 0x38" (identifier "iVar4") (+ "+") (number_literal "0x38")) () ")")))) (; ";")) (expression_statement "iVar6 = *(int *)puVar1;" (assignment_expression "iVar6 = *(int *)puVar1" (identifier "iVar6") (= "=") (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1")))) (; ";")) (expression_statement "iVar7 = *(int *)puVar2;" (assignment_expression "iVar7 = *(int *)puVar2" (identifier "iVar7") (= "=") (pointer_expression "*(int *)puVar2" (* "*") (cast_expression "(int *)puVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2")))) (; ";")) (expression_statement "*(undefined4 *)(iVar4 + 0x34) = uVar5;" (assignment_expression "*(undefined4 *)(iVar4 + 0x34) = uVar5" (pointer_expression "*(undefined4 *)(iVar4 + 0x34)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x34)" (( "(") (binary_expression "iVar4 + 0x34" (identifier "iVar4") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "*(int *)(iVar10 + 0x30) = iVar6;" (assignment_expression "*(int *)(iVar10 + 0x30) = iVar6" (pointer_expression "*(int *)(iVar10 + 0x30)" (* "*") (cast_expression "(int *)(iVar10 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x30)" (( "(") (binary_expression "iVar10 + 0x30" (identifier "iVar10") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "*(int *)(iVar9 + 4) = iVar6;" (assignment_expression "*(int *)(iVar9 + 4) = iVar6" (pointer_expression "*(int *)(iVar9 + 4)" (* "*") (cast_expression "(int *)(iVar9 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 4)" (( "(") (binary_expression "iVar9 + 4" (identifier "iVar9") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "iVar4 = *(int *)(iVar7 + 4);" (assignment_expression "iVar4 = *(int *)(iVar7 + 4)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar7 + 4)" (* "*") (cast_expression "(int *)(iVar7 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar5 = 0xc6;" (assignment_expression "uVar5 = 0xc6" (identifier "uVar5") (= "=") (number_literal "0xc6")) (; ";")) (expression_statement "*(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;" (assignment_expression "*(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4" (pointer_expression "*(undefined4 *)(iVar6 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x3c)" (( "(") (binary_expression "iVar6 + 0x3c" (identifier "iVar6") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)PTR_listing_tail_000b60b4" (* "*") (cast_expression "(undefined4 *)PTR_listing_tail_000b60b4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_listing_tail_000b60b4")))) (; ";")) (if_statement "if (iVar6 == iVar4) {\n        *(undefined4 *)(iVar6 + 0x30) = 0;\n        return;\n      }" (if "if") (parenthesized_expression "(iVar6 == iVar4)" (( "(") (binary_expression "iVar6 == iVar4" (identifier "iVar6") (== "==") (identifier "iVar4")) () ")")) (compound_statement "{\n        *(undefined4 *)(iVar6 + 0x30) = 0;\n        return;\n      }" ({ "{") (expression_statement "*(undefined4 *)(iVar6 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(iVar6 + 0x30) = 0" (pointer_expression "*(undefined4 *)(iVar6 + 0x30)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x30)" (( "(") (binary_expression "iVar6 + 0x30" (identifier "iVar6") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (number_literal "0")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")))) (} "}"))) (expression_statement "as_abort(PTR_LAB_000b5cb8 + 0x688c,uVar5,PTR_LAB_000b5cb8 + 0x68e0);" (call_expression "as_abort(PTR_LAB_000b5cb8 + 0x688c,uVar5,PTR_LAB_000b5cb8 + 0x68e0)" (identifier "as_abort") (argument_list "(PTR_LAB_000b5cb8 + 0x688c,uVar5,PTR_LAB_000b5cb8 + 0x68e0)" (( "(") (binary_expression "PTR_LAB_000b5cb8 + 0x688c" (identifier "PTR_LAB_000b5cb8") (+ "+") (number_literal "0x688c")) (, ",") (identifier "uVar5") (, ",") (binary_expression "PTR_LAB_000b5cb8 + 0x68e0" (identifier "PTR_LAB_000b5cb8") (+ "+") (number_literal "0x68e0")) () ")"))) (; ";")) (} "}")))

void function_1(size_t var_7)

{
  type_1 *puVar1;
  type_1 *puVar2;
  type_2 var_6;
  type_3 *pfVar4;
  char *pcVar5;
  int var_3;
  int var_12;
  int var_8;
  type_2 var_9;
  int var_1;
  int var_2;
  
  puVar2 = PTR_frchain_now_000b5fac;
  puVar1 = PTR_frag_now_000b5f28;
  var_1 = *(int *)PTR_frchain_now_000b5fac;
  var_3 = *(int *)PTR_frag_now_000b5f28;
  var_2 = *(int *)(var_1 + 4);
  var_8 = 0xa5;
  if (var_2 == var_3) {
    if (*(type_1 **)PTR_now_seg_000b5f1c == var_4 + 400) {
      var_8 = *(int *)var_5;
      var_6 = *(type_2 *)(var_5 + 4);
    }
    else {
      var_6 = *(int *)(var_1 + 0x24) - (var_2 + 0x4c);
      var_8 = (int)var_6 >> 0x1f;
    }
    *(type_2 *)(var_3 + 0x14) = var_6 - var_7;
    *(type_2 *)(var_3 + 0x10) = var_8 - (type_2)(var_6 < var_6 - var_7);
    if (*(int *)(var_3 + 0x44) == 0) {
      var_8 = 0xaa;
    }
    else {
      if (*(int *)(var_1 + 0x24) == *(int *)(var_1 + 0x20)) {
        *(type_4 *)(var_1 + 0x40) = *(type_4 *)(var_1 + 0x40) & 0xbf | 0x40;
      }
      var_9 = *(type_2 *)(var_1 + 0x28);
      var_6 = *(int *)(var_1 + 0x24) + *(type_2 *)(var_1 + 0x30) & ~*(type_2 *)(var_1 + 0x30);
      *(type_2 *)(var_1 + 0x24) = var_6;
      if (var_9 - *(int *)(var_1 + 0x1c) < var_6 - *(int *)(var_1 + 0x1c)) {
        *(type_2 *)(var_1 + 0x24) = var_9;
        var_6 = var_9;
      }
      *(type_2 *)(var_1 + 0x20) = var_6;
      pfVar4 = var_10((type_5 *)(var_1 + 0x18));
      *(type_3 **)puVar1 = pfVar4;
      pcVar5 = var_11(&pfVar4->fr_line);
      var_12 = *(int *)puVar1;
      var_3 = *(int *)puVar2;
      pfVar4->fr_file = pcVar5;
      *(int *)(var_2 + 0x30) = var_12;
      *(int *)(var_1 + 4) = var_12;
      var_3 = *(int *)(var_3 + 4);
      var_8 = 0xc6;
      *(type_6 *)(var_12 + 0x3c) = *(type_6 *)PTR_listing_tail_000b60b4;
      if (var_12 == var_3) {
        *(type_6 *)(var_12 + 0x30) = 0;
        return;
      }
    }
  }
                    /* WARNING: Subroutine does not return */
  var_13(var_14 + 0x688c,var_8,var_14 + 0x68e0);
}


(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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (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))))) (expression_statement (assignment_expression left: (identifier) right: (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)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) 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: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))))) (if_statement condition: (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))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (if_statement condition: (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: (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))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (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)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (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: (unary_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (return_statement)))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (binary_expression left: (identifier) right: (number_literal))))))))

void MASKED(int param_1)

{
  undefined *puVar1;
  undefined *puVar2;
  uint uVar3;
  int iVar4;
  undefined4 uVar5;
  int iVar6;
  int iVar7;
  uint uVar8;
  int iVar9;
  int iVar10;
  
  puVar2 = PTR_frchain_now_000b5fac;
  puVar1 = PTR_frag_now_000b5f28;
  iVar9 = *(int *)PTR_frchain_now_000b5fac;
  iVar4 = *(int *)PTR_frag_now_000b5f28;
  iVar10 = *(int *)(iVar9 + 4);
  uVar5 = 0xa5;
  if (iVar10 == iVar4) {
    if (*(undefined **)PTR_now_seg_000b5f1c == PTR__bfd_std_section_000b6630 + 400) {
      iVar6 = *(int *)PTR_abs_section_offset_000b6080;
      uVar3 = *(uint *)(PTR_abs_section_offset_000b6080 + 4);
    }
    else {
      uVar3 = *(int *)(iVar9 + 0x24) - (iVar10 + 0x4c);
      iVar6 = (int)uVar3 >> 0x1f;
    }
    *(uint *)(iVar4 + 0x14) = uVar3 - param_1;
    *(uint *)(iVar4 + 0x10) = iVar6 - (uint)(uVar3 < uVar3 - param_1);
    if (*(int *)(iVar4 + 0x44) == 0) {
      uVar5 = 0xaa;
    }
    else {
      if (*(int *)(iVar9 + 0x24) == *(int *)(iVar9 + 0x20)) {
        *(byte *)(iVar9 + 0x40) = *(byte *)(iVar9 + 0x40) & 0xbf | 0x40;
      }
      uVar8 = *(uint *)(iVar9 + 0x28);
      uVar3 = *(int *)(iVar9 + 0x24) + *(uint *)(iVar9 + 0x30) & ~*(uint *)(iVar9 + 0x30);
      *(uint *)(iVar9 + 0x24) = uVar3;
      if (uVar8 - *(int *)(iVar9 + 0x1c) < uVar3 - *(int *)(iVar9 + 0x1c)) {
        *(uint *)(iVar9 + 0x24) = uVar8;
        uVar3 = uVar8;
      }
      *(uint *)(iVar9 + 0x20) = uVar3;
      iVar4 = frag_alloc(iVar9 + 0x18);
      *(int *)puVar1 = iVar4;
      uVar5 = as_where(iVar4 + 0x38);
      iVar6 = *(int *)puVar1;
      iVar7 = *(int *)puVar2;
      *(undefined4 *)(iVar4 + 0x34) = uVar5;
      *(int *)(iVar10 + 0x30) = iVar6;
      *(int *)(iVar9 + 4) = iVar6;
      iVar4 = *(int *)(iVar7 + 4);
      uVar5 = 0xc6;
      *(undefined4 *)(iVar6 + 0x3c) = *(undefined4 *)PTR_listing_tail_000b60b4;
      if (iVar6 == iVar4) {
        *(undefined4 *)(iVar6 + 0x30) = 0;
        return;
      }
    }
  }
                    /* WARNING: Subroutine does not return */
  as_abort(PTR_LAB_000b5cb8 + 0x688c,uVar5,PTR_LAB_000b5cb8 + 0x68e0);
}

