
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

bfd_boolean stab_end_block(void *p,bfd_vma addr)

{
  bfd_boolean bVar1;
  int iVar2;
  
  if (*(uint *)((int)p + 0x10c) < addr._4_4_ ||
      *(uint *)((int)p + 0x10c) - addr._4_4_ < (uint)(*(uint *)((int)p + 0x108) < (uint)addr)) {
    *(bfd_vma *)((int)p + 0x108) = addr;
  }
  if ((*(uint *)((int)p + 0x120) & *(uint *)((int)p + 0x11c)) != 0xffffffff) {
    bVar1 = stab_write_symbol((stab_write_handle *)p,0xc0,0,*(bfd_vma *)((int)p + 0x11c),(char *)0x0
                             );
    if (bVar1 == 0) {
      return 0;
    }
    *(undefined4 *)((int)p + 0x11c) = 0xffffffff;
    *(undefined4 *)((int)p + 0x120) = 0xffffffff;
  }
  if (*(int *)((int)p + 0x110) != 0) {
    iVar2 = *(int *)((int)p + 0x110) + -1;
    *(int *)((int)p + 0x110) = iVar2;
    if (iVar2 == 0) {
      return 1;
    }
    bVar1 = stab_write_symbol((stab_write_handle *)p,0xe0,0,
                              CONCAT44((addr._4_4_ - *(int *)((int)p + 0x118)) -
                                       (uint)((uint)addr < *(uint *)((int)p + 0x114)),
                                       (uint)addr - *(uint *)((int)p + 0x114)),(char *)0x0);
    return bVar1;
  }
                    /* WARNING: Subroutine does not return */
  __assert_fail("info->nesting > 0","../../binutils/wrstabs.c",0x8b6,"stab_end_block");
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4 FUN_00029410(int param_1,uint param_2,uint param_3)

{
  undefined4 uVar1;
  int iVar2;
  
  if (*(uint *)(param_1 + 0x10c) < param_3 ||
      *(uint *)(param_1 + 0x10c) - param_3 < (uint)(*(uint *)(param_1 + 0x108) < param_2)) {
    *(uint *)(param_1 + 0x108) = param_2;
    *(uint *)(param_1 + 0x10c) = param_3;
  }
  if ((*(uint *)(param_1 + 0x120) & *(uint *)(param_1 + 0x11c)) != 0xffffffff) {
    iVar2 = FUN_00029160(*(uint *)(param_1 + 0x11c),*(uint *)(param_1 + 0x120),0);
    if (iVar2 == 0) {
      return 0;
    }
    *(undefined4 *)(param_1 + 0x11c) = 0xffffffff;
    *(undefined4 *)(param_1 + 0x120) = 0xffffffff;
  }
  if (*(int *)(param_1 + 0x110) != 0) {
    iVar2 = *(int *)(param_1 + 0x110) + -1;
    *(int *)(param_1 + 0x110) = iVar2;
    if (iVar2 == 0) {
      return 1;
    }
    uVar1 = FUN_00029160();
    return uVar1;
  }
                    /* WARNING: Subroutine does not return */
  __assert_fail("info->nesting > 0","../../binutils/wrstabs.c",0x8b6,"stab_end_block");
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000166c0
ADD EBX,0x16be7
SUB ESP,0xc
MOV ESI,dword ptr [ESP + 0x20]
MOV EBP,dword ptr [ESP + 0x28]
MOV EDI,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [ESI + 0x10c]
CMP dword ptr [ESI + 0x108],EDI
SBB EAX,EBP
JNC 0x0002944a
MOV dword ptr [ESI + 0x108],EDI
MOV dword ptr [ESI + 0x10c],EBP
MOV EDX,dword ptr [ESI + 0x120]
MOV EAX,dword ptr [ESI + 0x11c]
MOV ECX,EDX
AND ECX,EAX
CMP ECX,-0x1
JNZ 0x000294c0
MOV EDX,dword ptr [ESI + 0x110]
TEST EDX,EDX
JZ 0x000294f5
SUB EDX,0x1
MOV EAX,0x1
MOV dword ptr [ESI + 0x110],EDX
JNZ 0x00029488
ADD ESP,0xc
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV dword ptr [ESP + 0x28],0x0
SUB EDI,dword ptr [ESI + 0x114]
MOV EAX,ESI
MOV EDX,0xe0
SBB EBP,dword ptr [ESI + 0x118]
MOV dword ptr [ESP + 0x20],EDI
XOR ECX,ECX
MOV dword ptr [ESP + 0x24],EBP
ADD ESP,0xc
POP EBX
POP ESI
POP EDI
POP EBP
JMP 0x00029160
SUB ESP,0x4
XOR ECX,ECX
PUSH 0x0
PUSH EDX
MOV EDX,0xc0
PUSH EAX
MOV EAX,ESI
CALL 0x00029160
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0002947d
MOV dword ptr [ESI + 0x11c],0xffffffff
MOV dword ptr [ESI + 0x120],0xffffffff
JMP 0x0002945f
LEA EAX,[EBX + 0xffff5288]
PUSH EAX
LEA EAX,[EBX + 0xffff4dac]
PUSH 0x8b6
PUSH EAX
LEA EAX,[EBX + 0xffff4e06]
PUSH EAX
CALL 0x00013920
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 FUN_00029410(int param_1,uint param_2,uint param_3)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  \n  if (*(uint *)(param_1 + 0x10c) < param_3 ||\n      *(uint *)(param_1 + 0x10c) - param_3 < (uint)(*(uint *)(param_1 + 0x108) < param_2)) {\n    *(uint *)(param_1 + 0x108) = param_2;\n    *(uint *)(param_1 + 0x10c) = param_3;\n  }\n  if ((*(uint *)(param_1 + 0x120) & *(uint *)(param_1 + 0x11c)) != 0xffffffff) {\n    iVar2 = FUN_00029160(*(uint *)(param_1 + 0x11c),*(uint *)(param_1 + 0x120),0);\n    if (iVar2 == 0) {\n      return 0;\n    }\n    *(undefined4 *)(param_1 + 0x11c) = 0xffffffff;\n    *(undefined4 *)(param_1 + 0x120) = 0xffffffff;\n  }\n  if (*(int *)(param_1 + 0x110) != 0) {\n    iVar2 = *(int *)(param_1 + 0x110) + -1;\n    *(int *)(param_1 + 0x110) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    uVar1 = FUN_00029160();\n    return uVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n  __assert_fail("info->nesting > 0","../../binutils/wrstabs.c",0x8b6,"stab_end_block");\n}\n\n" comment (function_definition "undefined4 FUN_00029410(int param_1,uint param_2,uint param_3)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  \n  if (*(uint *)(param_1 + 0x10c) < param_3 ||\n      *(uint *)(param_1 + 0x10c) - param_3 < (uint)(*(uint *)(param_1 + 0x108) < param_2)) {\n    *(uint *)(param_1 + 0x108) = param_2;\n    *(uint *)(param_1 + 0x10c) = param_3;\n  }\n  if ((*(uint *)(param_1 + 0x120) & *(uint *)(param_1 + 0x11c)) != 0xffffffff) {\n    iVar2 = FUN_00029160(*(uint *)(param_1 + 0x11c),*(uint *)(param_1 + 0x120),0);\n    if (iVar2 == 0) {\n      return 0;\n    }\n    *(undefined4 *)(param_1 + 0x11c) = 0xffffffff;\n    *(undefined4 *)(param_1 + 0x120) = 0xffffffff;\n  }\n  if (*(int *)(param_1 + 0x110) != 0) {\n    iVar2 = *(int *)(param_1 + 0x110) + -1;\n    *(int *)(param_1 + 0x110) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    uVar1 = FUN_00029160();\n    return uVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n  __assert_fail("info->nesting > 0","../../binutils/wrstabs.c",0x8b6,"stab_end_block");\n}" type_identifier (function_declarator "FUN_00029410(int param_1,uint param_2,uint param_3)" identifier (parameter_list "(int param_1,uint param_2,uint param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  \n  if (*(uint *)(param_1 + 0x10c) < param_3 ||\n      *(uint *)(param_1 + 0x10c) - param_3 < (uint)(*(uint *)(param_1 + 0x108) < param_2)) {\n    *(uint *)(param_1 + 0x108) = param_2;\n    *(uint *)(param_1 + 0x10c) = param_3;\n  }\n  if ((*(uint *)(param_1 + 0x120) & *(uint *)(param_1 + 0x11c)) != 0xffffffff) {\n    iVar2 = FUN_00029160(*(uint *)(param_1 + 0x11c),*(uint *)(param_1 + 0x120),0);\n    if (iVar2 == 0) {\n      return 0;\n    }\n    *(undefined4 *)(param_1 + 0x11c) = 0xffffffff;\n    *(undefined4 *)(param_1 + 0x120) = 0xffffffff;\n  }\n  if (*(int *)(param_1 + 0x110) != 0) {\n    iVar2 = *(int *)(param_1 + 0x110) + -1;\n    *(int *)(param_1 + 0x110) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    uVar1 = FUN_00029160();\n    return uVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n  __assert_fail("info->nesting > 0","../../binutils/wrstabs.c",0x8b6,"stab_end_block");\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (if_statement "if (*(uint *)(param_1 + 0x10c) < param_3 ||\n      *(uint *)(param_1 + 0x10c) - param_3 < (uint)(*(uint *)(param_1 + 0x108) < param_2)) {\n    *(uint *)(param_1 + 0x108) = param_2;\n    *(uint *)(param_1 + 0x10c) = param_3;\n  }" if (parenthesized_expression "(*(uint *)(param_1 + 0x10c) < param_3 ||\n      *(uint *)(param_1 + 0x10c) - param_3 < (uint)(*(uint *)(param_1 + 0x108) < param_2))" ( (binary_expression "*(uint *)(param_1 + 0x10c) < param_3 ||\n      *(uint *)(param_1 + 0x10c) - param_3 < (uint)(*(uint *)(param_1 + 0x108) < param_2)" (binary_expression "*(uint *)(param_1 + 0x10c) < param_3" (pointer_expression "*(uint *)(param_1 + 0x10c)" * (cast_expression "(uint *)(param_1 + 0x10c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) )))) < identifier) || (binary_expression "*(uint *)(param_1 + 0x10c) - param_3 < (uint)(*(uint *)(param_1 + 0x108) < param_2)" (binary_expression "*(uint *)(param_1 + 0x10c) - param_3" (pointer_expression "*(uint *)(param_1 + 0x10c)" * (cast_expression "(uint *)(param_1 + 0x10c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) )))) - identifier) < (call_expression "(uint)(*(uint *)(param_1 + 0x108) < param_2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(param_1 + 0x108) < param_2)" ( (binary_expression "*(uint *)(param_1 + 0x108) < param_2" (pointer_expression "*(uint *)(param_1 + 0x108)" * (cast_expression "(uint *)(param_1 + 0x108)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) < identifier) ))))) )) (compound_statement "{\n    *(uint *)(param_1 + 0x108) = param_2;\n    *(uint *)(param_1 + 0x10c) = param_3;\n  }" { (expression_statement "*(uint *)(param_1 + 0x108) = param_2;" (assignment_expression "*(uint *)(param_1 + 0x108) = param_2" (pointer_expression "*(uint *)(param_1 + 0x108)" * (cast_expression "(uint *)(param_1 + 0x108)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(param_1 + 0x10c) = param_3;" (assignment_expression "*(uint *)(param_1 + 0x10c) = param_3" (pointer_expression "*(uint *)(param_1 + 0x10c)" * (cast_expression "(uint *)(param_1 + 0x10c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if ((*(uint *)(param_1 + 0x120) & *(uint *)(param_1 + 0x11c)) != 0xffffffff) {\n    iVar2 = FUN_00029160(*(uint *)(param_1 + 0x11c),*(uint *)(param_1 + 0x120),0);\n    if (iVar2 == 0) {\n      return 0;\n    }\n    *(undefined4 *)(param_1 + 0x11c) = 0xffffffff;\n    *(undefined4 *)(param_1 + 0x120) = 0xffffffff;\n  }" if (parenthesized_expression "((*(uint *)(param_1 + 0x120) & *(uint *)(param_1 + 0x11c)) != 0xffffffff)" ( (binary_expression "(*(uint *)(param_1 + 0x120) & *(uint *)(param_1 + 0x11c)) != 0xffffffff" (parenthesized_expression "(*(uint *)(param_1 + 0x120) & *(uint *)(param_1 + 0x11c))" ( (binary_expression "*(uint *)(param_1 + 0x120) & *(uint *)(param_1 + 0x11c)" (pointer_expression "*(uint *)(param_1 + 0x120)" * (cast_expression "(uint *)(param_1 + 0x120)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x120)" ( (binary_expression "param_1 + 0x120" identifier + number_literal) )))) & (pointer_expression "*(uint *)(param_1 + 0x11c)" * (cast_expression "(uint *)(param_1 + 0x11c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x11c)" ( (binary_expression "param_1 + 0x11c" identifier + number_literal) ))))) )) != number_literal) )) (compound_statement "{\n    iVar2 = FUN_00029160(*(uint *)(param_1 + 0x11c),*(uint *)(param_1 + 0x120),0);\n    if (iVar2 == 0) {\n      return 0;\n    }\n    *(undefined4 *)(param_1 + 0x11c) = 0xffffffff;\n    *(undefined4 *)(param_1 + 0x120) = 0xffffffff;\n  }" { (expression_statement "iVar2 = FUN_00029160(*(uint *)(param_1 + 0x11c),*(uint *)(param_1 + 0x120),0);" (assignment_expression "iVar2 = FUN_00029160(*(uint *)(param_1 + 0x11c),*(uint *)(param_1 + 0x120),0)" identifier = (call_expression "FUN_00029160(*(uint *)(param_1 + 0x11c),*(uint *)(param_1 + 0x120),0)" identifier (argument_list "(*(uint *)(param_1 + 0x11c),*(uint *)(param_1 + 0x120),0)" ( (pointer_expression "*(uint *)(param_1 + 0x11c)" * (cast_expression "(uint *)(param_1 + 0x11c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x11c)" ( (binary_expression "param_1 + 0x11c" identifier + number_literal) )))) , (pointer_expression "*(uint *)(param_1 + 0x120)" * (cast_expression "(uint *)(param_1 + 0x120)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x120)" ( (binary_expression "param_1 + 0x120" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "*(undefined4 *)(param_1 + 0x11c) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_1 + 0x11c) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_1 + 0x11c)" * (cast_expression "(undefined4 *)(param_1 + 0x11c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x11c)" ( (binary_expression "param_1 + 0x11c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x120) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_1 + 0x120) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_1 + 0x120)" * (cast_expression "(undefined4 *)(param_1 + 0x120)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x120)" ( (binary_expression "param_1 + 0x120" identifier + number_literal) )))) = number_literal) ;) })) (if_statement "if (*(int *)(param_1 + 0x110) != 0) {\n    iVar2 = *(int *)(param_1 + 0x110) + -1;\n    *(int *)(param_1 + 0x110) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    uVar1 = FUN_00029160();\n    return uVar1;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x110) != 0)" ( (binary_expression "*(int *)(param_1 + 0x110) != 0" (pointer_expression "*(int *)(param_1 + 0x110)" * (cast_expression "(int *)(param_1 + 0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar2 = *(int *)(param_1 + 0x110) + -1;\n    *(int *)(param_1 + 0x110) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    uVar1 = FUN_00029160();\n    return uVar1;\n  }" { (expression_statement "iVar2 = *(int *)(param_1 + 0x110) + -1;" (assignment_expression "iVar2 = *(int *)(param_1 + 0x110) + -1" identifier = (binary_expression "*(int *)(param_1 + 0x110) + -1" (pointer_expression "*(int *)(param_1 + 0x110)" * (cast_expression "(int *)(param_1 + 0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(param_1 + 0x110) = iVar2;" (assignment_expression "*(int *)(param_1 + 0x110) = iVar2" (pointer_expression "*(int *)(param_1 + 0x110)" * (cast_expression "(int *)(param_1 + 0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar2 == 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar1 = FUN_00029160();" (assignment_expression "uVar1 = FUN_00029160()" identifier = (call_expression "FUN_00029160()" identifier (argument_list "()" ( )))) ;) (return_statement "return uVar1;" return identifier ;) })) comment (expression_statement "__assert_fail("info->nesting > 0","../../binutils/wrstabs.c",0x8b6,"stab_end_block");" (call_expression "__assert_fail("info->nesting > 0","../../binutils/wrstabs.c",0x8b6,"stab_end_block")" identifier (argument_list "("info->nesting > 0","../../binutils/wrstabs.c",0x8b6,"stab_end_block")" ( (string_literal ""info->nesting > 0"" " string_content ") , (string_literal ""../../binutils/wrstabs.c"" " string_content ") , number_literal , (string_literal ""stab_end_block"" " string_content ") ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nbfd_boolean stab_end_block(void *p,bfd_vma addr)\n\n{\n  bfd_boolean bVar1;\n  int iVar2;\n  \n  if (*(uint *)((int)p + 0x10c) < addr._4_4_ ||\n      *(uint *)((int)p + 0x10c) - addr._4_4_ < (uint)(*(uint *)((int)p + 0x108) < (uint)addr)) {\n    *(bfd_vma *)((int)p + 0x108) = addr;\n  }\n  if ((*(uint *)((int)p + 0x120) & *(uint *)((int)p + 0x11c)) != 0xffffffff) {\n    bVar1 = stab_write_symbol((stab_write_handle *)p,0xc0,0,*(bfd_vma *)((int)p + 0x11c),(char *)0x0\n                             );\n    if (bVar1 == 0) {\n      return 0;\n    }\n    *(undefined4 *)((int)p + 0x11c) = 0xffffffff;\n    *(undefined4 *)((int)p + 0x120) = 0xffffffff;\n  }\n  if (*(int *)((int)p + 0x110) != 0) {\n    iVar2 = *(int *)((int)p + 0x110) + -1;\n    *(int *)((int)p + 0x110) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    bVar1 = stab_write_symbol((stab_write_handle *)p,0xe0,0,\n                              CONCAT44((addr._4_4_ - *(int *)((int)p + 0x118)) -\n                                       (uint)((uint)addr < *(uint *)((int)p + 0x114)),\n                                       (uint)addr - *(uint *)((int)p + 0x114)),(char *)0x0);\n    return bVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n  __assert_fail("info->nesting > 0","../../binutils/wrstabs.c",0x8b6,"stab_end_block");\n}\n\n" comment (function_definition "bfd_boolean stab_end_block(void *p,bfd_vma addr)\n\n{\n  bfd_boolean bVar1;\n  int iVar2;\n  \n  if (*(uint *)((int)p + 0x10c) < addr._4_4_ ||\n      *(uint *)((int)p + 0x10c) - addr._4_4_ < (uint)(*(uint *)((int)p + 0x108) < (uint)addr)) {\n    *(bfd_vma *)((int)p + 0x108) = addr;\n  }\n  if ((*(uint *)((int)p + 0x120) & *(uint *)((int)p + 0x11c)) != 0xffffffff) {\n    bVar1 = stab_write_symbol((stab_write_handle *)p,0xc0,0,*(bfd_vma *)((int)p + 0x11c),(char *)0x0\n                             );\n    if (bVar1 == 0) {\n      return 0;\n    }\n    *(undefined4 *)((int)p + 0x11c) = 0xffffffff;\n    *(undefined4 *)((int)p + 0x120) = 0xffffffff;\n  }\n  if (*(int *)((int)p + 0x110) != 0) {\n    iVar2 = *(int *)((int)p + 0x110) + -1;\n    *(int *)((int)p + 0x110) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    bVar1 = stab_write_symbol((stab_write_handle *)p,0xe0,0,\n                              CONCAT44((addr._4_4_ - *(int *)((int)p + 0x118)) -\n                                       (uint)((uint)addr < *(uint *)((int)p + 0x114)),\n                                       (uint)addr - *(uint *)((int)p + 0x114)),(char *)0x0);\n    return bVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n  __assert_fail("info->nesting > 0","../../binutils/wrstabs.c",0x8b6,"stab_end_block");\n}" type_identifier (function_declarator "stab_end_block(void *p,bfd_vma addr)" identifier (parameter_list "(void *p,bfd_vma addr)" ( (parameter_declaration "void *p" primitive_type (pointer_declarator "*p" * identifier)) , (parameter_declaration "bfd_vma addr" type_identifier identifier) ))) (compound_statement "{\n  bfd_boolean bVar1;\n  int iVar2;\n  \n  if (*(uint *)((int)p + 0x10c) < addr._4_4_ ||\n      *(uint *)((int)p + 0x10c) - addr._4_4_ < (uint)(*(uint *)((int)p + 0x108) < (uint)addr)) {\n    *(bfd_vma *)((int)p + 0x108) = addr;\n  }\n  if ((*(uint *)((int)p + 0x120) & *(uint *)((int)p + 0x11c)) != 0xffffffff) {\n    bVar1 = stab_write_symbol((stab_write_handle *)p,0xc0,0,*(bfd_vma *)((int)p + 0x11c),(char *)0x0\n                             );\n    if (bVar1 == 0) {\n      return 0;\n    }\n    *(undefined4 *)((int)p + 0x11c) = 0xffffffff;\n    *(undefined4 *)((int)p + 0x120) = 0xffffffff;\n  }\n  if (*(int *)((int)p + 0x110) != 0) {\n    iVar2 = *(int *)((int)p + 0x110) + -1;\n    *(int *)((int)p + 0x110) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    bVar1 = stab_write_symbol((stab_write_handle *)p,0xe0,0,\n                              CONCAT44((addr._4_4_ - *(int *)((int)p + 0x118)) -\n                                       (uint)((uint)addr < *(uint *)((int)p + 0x114)),\n                                       (uint)addr - *(uint *)((int)p + 0x114)),(char *)0x0);\n    return bVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n  __assert_fail("info->nesting > 0","../../binutils/wrstabs.c",0x8b6,"stab_end_block");\n}" { (declaration "bfd_boolean bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (if_statement "if (*(uint *)((int)p + 0x10c) < addr._4_4_ ||\n      *(uint *)((int)p + 0x10c) - addr._4_4_ < (uint)(*(uint *)((int)p + 0x108) < (uint)addr)) {\n    *(bfd_vma *)((int)p + 0x108) = addr;\n  }" if (parenthesized_expression "(*(uint *)((int)p + 0x10c) < addr._4_4_ ||\n      *(uint *)((int)p + 0x10c) - addr._4_4_ < (uint)(*(uint *)((int)p + 0x108) < (uint)addr))" ( (binary_expression "*(uint *)((int)p + 0x10c) < addr._4_4_ ||\n      *(uint *)((int)p + 0x10c) - addr._4_4_ < (uint)(*(uint *)((int)p + 0x108) < (uint)addr)" (binary_expression "*(uint *)((int)p + 0x10c) < addr._4_4_" (pointer_expression "*(uint *)((int)p + 0x10c)" * (cast_expression "(uint *)((int)p + 0x10c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p + 0x10c)" ( (binary_expression "(int)p + 0x10c" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) < (field_expression "addr._4_4_" identifier . field_identifier)) || (binary_expression "*(uint *)((int)p + 0x10c) - addr._4_4_ < (uint)(*(uint *)((int)p + 0x108) < (uint)addr)" (binary_expression "*(uint *)((int)p + 0x10c) - addr._4_4_" (pointer_expression "*(uint *)((int)p + 0x10c)" * (cast_expression "(uint *)((int)p + 0x10c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p + 0x10c)" ( (binary_expression "(int)p + 0x10c" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) - (field_expression "addr._4_4_" identifier . field_identifier)) < (call_expression "(uint)(*(uint *)((int)p + 0x108) < (uint)addr)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)((int)p + 0x108) < (uint)addr)" ( (binary_expression "*(uint *)((int)p + 0x108) < (uint)addr" (pointer_expression "*(uint *)((int)p + 0x108)" * (cast_expression "(uint *)((int)p + 0x108)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p + 0x108)" ( (binary_expression "(int)p + 0x108" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) < (cast_expression "(uint)addr" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) )) (compound_statement "{\n    *(bfd_vma *)((int)p + 0x108) = addr;\n  }" { (expression_statement "*(bfd_vma *)((int)p + 0x108) = addr;" (assignment_expression "*(bfd_vma *)((int)p + 0x108) = addr" (pointer_expression "*(bfd_vma *)((int)p + 0x108)" * (cast_expression "(bfd_vma *)((int)p + 0x108)" ( (type_descriptor "bfd_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p + 0x108)" ( (binary_expression "(int)p + 0x108" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) (if_statement "if ((*(uint *)((int)p + 0x120) & *(uint *)((int)p + 0x11c)) != 0xffffffff) {\n    bVar1 = stab_write_symbol((stab_write_handle *)p,0xc0,0,*(bfd_vma *)((int)p + 0x11c),(char *)0x0\n                             );\n    if (bVar1 == 0) {\n      return 0;\n    }\n    *(undefined4 *)((int)p + 0x11c) = 0xffffffff;\n    *(undefined4 *)((int)p + 0x120) = 0xffffffff;\n  }" if (parenthesized_expression "((*(uint *)((int)p + 0x120) & *(uint *)((int)p + 0x11c)) != 0xffffffff)" ( (binary_expression "(*(uint *)((int)p + 0x120) & *(uint *)((int)p + 0x11c)) != 0xffffffff" (parenthesized_expression "(*(uint *)((int)p + 0x120) & *(uint *)((int)p + 0x11c))" ( (binary_expression "*(uint *)((int)p + 0x120) & *(uint *)((int)p + 0x11c)" (pointer_expression "*(uint *)((int)p + 0x120)" * (cast_expression "(uint *)((int)p + 0x120)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p + 0x120)" ( (binary_expression "(int)p + 0x120" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & (pointer_expression "*(uint *)((int)p + 0x11c)" * (cast_expression "(uint *)((int)p + 0x11c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p + 0x11c)" ( (binary_expression "(int)p + 0x11c" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) != number_literal) )) (compound_statement "{\n    bVar1 = stab_write_symbol((stab_write_handle *)p,0xc0,0,*(bfd_vma *)((int)p + 0x11c),(char *)0x0\n                             );\n    if (bVar1 == 0) {\n      return 0;\n    }\n    *(undefined4 *)((int)p + 0x11c) = 0xffffffff;\n    *(undefined4 *)((int)p + 0x120) = 0xffffffff;\n  }" { (expression_statement "bVar1 = stab_write_symbol((stab_write_handle *)p,0xc0,0,*(bfd_vma *)((int)p + 0x11c),(char *)0x0\n                             );" (assignment_expression "bVar1 = stab_write_symbol((stab_write_handle *)p,0xc0,0,*(bfd_vma *)((int)p + 0x11c),(char *)0x0\n                             )" identifier = (call_expression "stab_write_symbol((stab_write_handle *)p,0xc0,0,*(bfd_vma *)((int)p + 0x11c),(char *)0x0\n                             )" identifier (argument_list "((stab_write_handle *)p,0xc0,0,*(bfd_vma *)((int)p + 0x11c),(char *)0x0\n                             )" ( (cast_expression "(stab_write_handle *)p" ( (type_descriptor "stab_write_handle *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , number_literal , (pointer_expression "*(bfd_vma *)((int)p + 0x11c)" * (cast_expression "(bfd_vma *)((int)p + 0x11c)" ( (type_descriptor "bfd_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p + 0x11c)" ( (binary_expression "(int)p + 0x11c" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (bVar1 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "*(undefined4 *)((int)p + 0x11c) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)p + 0x11c) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)p + 0x11c)" * (cast_expression "(undefined4 *)((int)p + 0x11c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p + 0x11c)" ( (binary_expression "(int)p + 0x11c" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)p + 0x120) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)p + 0x120) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)p + 0x120)" * (cast_expression "(undefined4 *)((int)p + 0x120)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p + 0x120)" ( (binary_expression "(int)p + 0x120" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) (if_statement "if (*(int *)((int)p + 0x110) != 0) {\n    iVar2 = *(int *)((int)p + 0x110) + -1;\n    *(int *)((int)p + 0x110) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    bVar1 = stab_write_symbol((stab_write_handle *)p,0xe0,0,\n                              CONCAT44((addr._4_4_ - *(int *)((int)p + 0x118)) -\n                                       (uint)((uint)addr < *(uint *)((int)p + 0x114)),\n                                       (uint)addr - *(uint *)((int)p + 0x114)),(char *)0x0);\n    return bVar1;\n  }" if (parenthesized_expression "(*(int *)((int)p + 0x110) != 0)" ( (binary_expression "*(int *)((int)p + 0x110) != 0" (pointer_expression "*(int *)((int)p + 0x110)" * (cast_expression "(int *)((int)p + 0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p + 0x110)" ( (binary_expression "(int)p + 0x110" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar2 = *(int *)((int)p + 0x110) + -1;\n    *(int *)((int)p + 0x110) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    bVar1 = stab_write_symbol((stab_write_handle *)p,0xe0,0,\n                              CONCAT44((addr._4_4_ - *(int *)((int)p + 0x118)) -\n                                       (uint)((uint)addr < *(uint *)((int)p + 0x114)),\n                                       (uint)addr - *(uint *)((int)p + 0x114)),(char *)0x0);\n    return bVar1;\n  }" { (expression_statement "iVar2 = *(int *)((int)p + 0x110) + -1;" (assignment_expression "iVar2 = *(int *)((int)p + 0x110) + -1" identifier = (binary_expression "*(int *)((int)p + 0x110) + -1" (pointer_expression "*(int *)((int)p + 0x110)" * (cast_expression "(int *)((int)p + 0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p + 0x110)" ( (binary_expression "(int)p + 0x110" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)((int)p + 0x110) = iVar2;" (assignment_expression "*(int *)((int)p + 0x110) = iVar2" (pointer_expression "*(int *)((int)p + 0x110)" * (cast_expression "(int *)((int)p + 0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p + 0x110)" ( (binary_expression "(int)p + 0x110" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if (iVar2 == 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "bVar1 = stab_write_symbol((stab_write_handle *)p,0xe0,0,\n                              CONCAT44((addr._4_4_ - *(int *)((int)p + 0x118)) -\n                                       (uint)((uint)addr < *(uint *)((int)p + 0x114)),\n                                       (uint)addr - *(uint *)((int)p + 0x114)),(char *)0x0);" (assignment_expression "bVar1 = stab_write_symbol((stab_write_handle *)p,0xe0,0,\n                              CONCAT44((addr._4_4_ - *(int *)((int)p + 0x118)) -\n                                       (uint)((uint)addr < *(uint *)((int)p + 0x114)),\n                                       (uint)addr - *(uint *)((int)p + 0x114)),(char *)0x0)" identifier = (call_expression "stab_write_symbol((stab_write_handle *)p,0xe0,0,\n                              CONCAT44((addr._4_4_ - *(int *)((int)p + 0x118)) -\n                                       (uint)((uint)addr < *(uint *)((int)p + 0x114)),\n                                       (uint)addr - *(uint *)((int)p + 0x114)),(char *)0x0)" identifier (argument_list "((stab_write_handle *)p,0xe0,0,\n                              CONCAT44((addr._4_4_ - *(int *)((int)p + 0x118)) -\n                                       (uint)((uint)addr < *(uint *)((int)p + 0x114)),\n                                       (uint)addr - *(uint *)((int)p + 0x114)),(char *)0x0)" ( (cast_expression "(stab_write_handle *)p" ( (type_descriptor "stab_write_handle *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , number_literal , (call_expression "CONCAT44((addr._4_4_ - *(int *)((int)p + 0x118)) -\n                                       (uint)((uint)addr < *(uint *)((int)p + 0x114)),\n                                       (uint)addr - *(uint *)((int)p + 0x114))" identifier (argument_list "((addr._4_4_ - *(int *)((int)p + 0x118)) -\n                                       (uint)((uint)addr < *(uint *)((int)p + 0x114)),\n                                       (uint)addr - *(uint *)((int)p + 0x114))" ( (binary_expression "(addr._4_4_ - *(int *)((int)p + 0x118)) -\n                                       (uint)((uint)addr < *(uint *)((int)p + 0x114))" (parenthesized_expression "(addr._4_4_ - *(int *)((int)p + 0x118))" ( (binary_expression "addr._4_4_ - *(int *)((int)p + 0x118)" (field_expression "addr._4_4_" identifier . field_identifier) - (pointer_expression "*(int *)((int)p + 0x118)" * (cast_expression "(int *)((int)p + 0x118)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p + 0x118)" ( (binary_expression "(int)p + 0x118" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) - (call_expression "(uint)((uint)addr < *(uint *)((int)p + 0x114))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)addr < *(uint *)((int)p + 0x114))" ( (binary_expression "(uint)addr < *(uint *)((int)p + 0x114)" (cast_expression "(uint)addr" ( (type_descriptor "uint" type_identifier) ) identifier) < (pointer_expression "*(uint *)((int)p + 0x114)" * (cast_expression "(uint *)((int)p + 0x114)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p + 0x114)" ( (binary_expression "(int)p + 0x114" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )))) , (binary_expression "(uint)addr - *(uint *)((int)p + 0x114)" (cast_expression "(uint)addr" ( (type_descriptor "uint" type_identifier) ) identifier) - (pointer_expression "*(uint *)((int)p + 0x114)" * (cast_expression "(uint *)((int)p + 0x114)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p + 0x114)" ( (binary_expression "(int)p + 0x114" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (return_statement "return bVar1;" return identifier ;) })) comment (expression_statement "__assert_fail("info->nesting > 0","../../binutils/wrstabs.c",0x8b6,"stab_end_block");" (call_expression "__assert_fail("info->nesting > 0","../../binutils/wrstabs.c",0x8b6,"stab_end_block")" identifier (argument_list "("info->nesting > 0","../../binutils/wrstabs.c",0x8b6,"stab_end_block")" ( (string_literal ""info->nesting > 0"" " string_content ") , (string_literal ""../../binutils/wrstabs.c"" " string_content ") , number_literal , (string_literal ""stab_end_block"" " string_content ") ))) ;) })))
(translation_unit "undefined4 FUN_00029410(int param_1,uint param_2,uint param_3)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  \n  if (*(uint *)(param_1 + 0x10c) < param_3 ||\n      *(uint *)(param_1 + 0x10c) - param_3 < (uint)(*(uint *)(param_1 + 0x108) < param_2)) {\n    *(uint *)(param_1 + 0x108) = param_2;\n    *(uint *)(param_1 + 0x10c) = param_3;\n  }\n  if ((*(uint *)(param_1 + 0x120) & *(uint *)(param_1 + 0x11c)) != 0xffffffff) {\n    iVar2 = FUN_00029160(*(uint *)(param_1 + 0x11c),*(uint *)(param_1 + 0x120),0);\n    if (iVar2 == 0) {\n      return 0;\n    }\n    *(undefined4 *)(param_1 + 0x11c) = 0xffffffff;\n    *(undefined4 *)(param_1 + 0x120) = 0xffffffff;\n  }\n  if (*(int *)(param_1 + 0x110) != 0) {\n    iVar2 = *(int *)(param_1 + 0x110) + -1;\n    *(int *)(param_1 + 0x110) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    uVar1 = FUN_00029160();\n    return uVar1;\n  }\n                    \n  __assert_fail("info->nesting > 0","../../binutils/wrstabs.c",0x8b6,"stab_end_block");\n}\n\n" (function_definition "undefined4 FUN_00029410(int param_1,uint param_2,uint param_3)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  \n  if (*(uint *)(param_1 + 0x10c) < param_3 ||\n      *(uint *)(param_1 + 0x10c) - param_3 < (uint)(*(uint *)(param_1 + 0x108) < param_2)) {\n    *(uint *)(param_1 + 0x108) = param_2;\n    *(uint *)(param_1 + 0x10c) = param_3;\n  }\n  if ((*(uint *)(param_1 + 0x120) & *(uint *)(param_1 + 0x11c)) != 0xffffffff) {\n    iVar2 = FUN_00029160(*(uint *)(param_1 + 0x11c),*(uint *)(param_1 + 0x120),0);\n    if (iVar2 == 0) {\n      return 0;\n    }\n    *(undefined4 *)(param_1 + 0x11c) = 0xffffffff;\n    *(undefined4 *)(param_1 + 0x120) = 0xffffffff;\n  }\n  if (*(int *)(param_1 + 0x110) != 0) {\n    iVar2 = *(int *)(param_1 + 0x110) + -1;\n    *(int *)(param_1 + 0x110) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    uVar1 = FUN_00029160();\n    return uVar1;\n  }\n                    \n  __assert_fail("info->nesting > 0","../../binutils/wrstabs.c",0x8b6,"stab_end_block");\n}" type_identifier (function_declarator "FUN_00029410(int param_1,uint param_2,uint param_3)" identifier (parameter_list "(int param_1,uint param_2,uint param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  \n  if (*(uint *)(param_1 + 0x10c) < param_3 ||\n      *(uint *)(param_1 + 0x10c) - param_3 < (uint)(*(uint *)(param_1 + 0x108) < param_2)) {\n    *(uint *)(param_1 + 0x108) = param_2;\n    *(uint *)(param_1 + 0x10c) = param_3;\n  }\n  if ((*(uint *)(param_1 + 0x120) & *(uint *)(param_1 + 0x11c)) != 0xffffffff) {\n    iVar2 = FUN_00029160(*(uint *)(param_1 + 0x11c),*(uint *)(param_1 + 0x120),0);\n    if (iVar2 == 0) {\n      return 0;\n    }\n    *(undefined4 *)(param_1 + 0x11c) = 0xffffffff;\n    *(undefined4 *)(param_1 + 0x120) = 0xffffffff;\n  }\n  if (*(int *)(param_1 + 0x110) != 0) {\n    iVar2 = *(int *)(param_1 + 0x110) + -1;\n    *(int *)(param_1 + 0x110) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    uVar1 = FUN_00029160();\n    return uVar1;\n  }\n                    \n  __assert_fail("info->nesting > 0","../../binutils/wrstabs.c",0x8b6,"stab_end_block");\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (if_statement "if (*(uint *)(param_1 + 0x10c) < param_3 ||\n      *(uint *)(param_1 + 0x10c) - param_3 < (uint)(*(uint *)(param_1 + 0x108) < param_2)) {\n    *(uint *)(param_1 + 0x108) = param_2;\n    *(uint *)(param_1 + 0x10c) = param_3;\n  }" if (parenthesized_expression "(*(uint *)(param_1 + 0x10c) < param_3 ||\n      *(uint *)(param_1 + 0x10c) - param_3 < (uint)(*(uint *)(param_1 + 0x108) < param_2))" ( (binary_expression "*(uint *)(param_1 + 0x10c) < param_3 ||\n      *(uint *)(param_1 + 0x10c) - param_3 < (uint)(*(uint *)(param_1 + 0x108) < param_2)" (binary_expression "*(uint *)(param_1 + 0x10c) < param_3" (pointer_expression "*(uint *)(param_1 + 0x10c)" * (cast_expression "(uint *)(param_1 + 0x10c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) )))) < identifier) || (binary_expression "*(uint *)(param_1 + 0x10c) - param_3 < (uint)(*(uint *)(param_1 + 0x108) < param_2)" (binary_expression "*(uint *)(param_1 + 0x10c) - param_3" (pointer_expression "*(uint *)(param_1 + 0x10c)" * (cast_expression "(uint *)(param_1 + 0x10c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) )))) - identifier) < (call_expression "(uint)(*(uint *)(param_1 + 0x108) < param_2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(param_1 + 0x108) < param_2)" ( (binary_expression "*(uint *)(param_1 + 0x108) < param_2" (pointer_expression "*(uint *)(param_1 + 0x108)" * (cast_expression "(uint *)(param_1 + 0x108)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) < identifier) ))))) )) (compound_statement "{\n    *(uint *)(param_1 + 0x108) = param_2;\n    *(uint *)(param_1 + 0x10c) = param_3;\n  }" { (expression_statement "*(uint *)(param_1 + 0x108) = param_2;" (assignment_expression "*(uint *)(param_1 + 0x108) = param_2" (pointer_expression "*(uint *)(param_1 + 0x108)" * (cast_expression "(uint *)(param_1 + 0x108)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(param_1 + 0x10c) = param_3;" (assignment_expression "*(uint *)(param_1 + 0x10c) = param_3" (pointer_expression "*(uint *)(param_1 + 0x10c)" * (cast_expression "(uint *)(param_1 + 0x10c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if ((*(uint *)(param_1 + 0x120) & *(uint *)(param_1 + 0x11c)) != 0xffffffff) {\n    iVar2 = FUN_00029160(*(uint *)(param_1 + 0x11c),*(uint *)(param_1 + 0x120),0);\n    if (iVar2 == 0) {\n      return 0;\n    }\n    *(undefined4 *)(param_1 + 0x11c) = 0xffffffff;\n    *(undefined4 *)(param_1 + 0x120) = 0xffffffff;\n  }" if (parenthesized_expression "((*(uint *)(param_1 + 0x120) & *(uint *)(param_1 + 0x11c)) != 0xffffffff)" ( (binary_expression "(*(uint *)(param_1 + 0x120) & *(uint *)(param_1 + 0x11c)) != 0xffffffff" (parenthesized_expression "(*(uint *)(param_1 + 0x120) & *(uint *)(param_1 + 0x11c))" ( (binary_expression "*(uint *)(param_1 + 0x120) & *(uint *)(param_1 + 0x11c)" (pointer_expression "*(uint *)(param_1 + 0x120)" * (cast_expression "(uint *)(param_1 + 0x120)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x120)" ( (binary_expression "param_1 + 0x120" identifier + number_literal) )))) & (pointer_expression "*(uint *)(param_1 + 0x11c)" * (cast_expression "(uint *)(param_1 + 0x11c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x11c)" ( (binary_expression "param_1 + 0x11c" identifier + number_literal) ))))) )) != number_literal) )) (compound_statement "{\n    iVar2 = FUN_00029160(*(uint *)(param_1 + 0x11c),*(uint *)(param_1 + 0x120),0);\n    if (iVar2 == 0) {\n      return 0;\n    }\n    *(undefined4 *)(param_1 + 0x11c) = 0xffffffff;\n    *(undefined4 *)(param_1 + 0x120) = 0xffffffff;\n  }" { (expression_statement "iVar2 = FUN_00029160(*(uint *)(param_1 + 0x11c),*(uint *)(param_1 + 0x120),0);" (assignment_expression "iVar2 = FUN_00029160(*(uint *)(param_1 + 0x11c),*(uint *)(param_1 + 0x120),0)" identifier = (call_expression "FUN_00029160(*(uint *)(param_1 + 0x11c),*(uint *)(param_1 + 0x120),0)" identifier (argument_list "(*(uint *)(param_1 + 0x11c),*(uint *)(param_1 + 0x120),0)" ( (pointer_expression "*(uint *)(param_1 + 0x11c)" * (cast_expression "(uint *)(param_1 + 0x11c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x11c)" ( (binary_expression "param_1 + 0x11c" identifier + number_literal) )))) , (pointer_expression "*(uint *)(param_1 + 0x120)" * (cast_expression "(uint *)(param_1 + 0x120)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x120)" ( (binary_expression "param_1 + 0x120" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "*(undefined4 *)(param_1 + 0x11c) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_1 + 0x11c) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_1 + 0x11c)" * (cast_expression "(undefined4 *)(param_1 + 0x11c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x11c)" ( (binary_expression "param_1 + 0x11c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x120) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_1 + 0x120) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_1 + 0x120)" * (cast_expression "(undefined4 *)(param_1 + 0x120)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x120)" ( (binary_expression "param_1 + 0x120" identifier + number_literal) )))) = number_literal) ;) })) (if_statement "if (*(int *)(param_1 + 0x110) != 0) {\n    iVar2 = *(int *)(param_1 + 0x110) + -1;\n    *(int *)(param_1 + 0x110) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    uVar1 = FUN_00029160();\n    return uVar1;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x110) != 0)" ( (binary_expression "*(int *)(param_1 + 0x110) != 0" (pointer_expression "*(int *)(param_1 + 0x110)" * (cast_expression "(int *)(param_1 + 0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar2 = *(int *)(param_1 + 0x110) + -1;\n    *(int *)(param_1 + 0x110) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    uVar1 = FUN_00029160();\n    return uVar1;\n  }" { (expression_statement "iVar2 = *(int *)(param_1 + 0x110) + -1;" (assignment_expression "iVar2 = *(int *)(param_1 + 0x110) + -1" identifier = (binary_expression "*(int *)(param_1 + 0x110) + -1" (pointer_expression "*(int *)(param_1 + 0x110)" * (cast_expression "(int *)(param_1 + 0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(param_1 + 0x110) = iVar2;" (assignment_expression "*(int *)(param_1 + 0x110) = iVar2" (pointer_expression "*(int *)(param_1 + 0x110)" * (cast_expression "(int *)(param_1 + 0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar2 == 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar1 = FUN_00029160();" (assignment_expression "uVar1 = FUN_00029160()" identifier = (call_expression "FUN_00029160()" identifier (argument_list "()" ( )))) ;) (return_statement "return uVar1;" return identifier ;) })) (expression_statement "__assert_fail("info->nesting > 0","../../binutils/wrstabs.c",0x8b6,"stab_end_block");" (call_expression "__assert_fail("info->nesting > 0","../../binutils/wrstabs.c",0x8b6,"stab_end_block")" identifier (argument_list "("info->nesting > 0","../../binutils/wrstabs.c",0x8b6,"stab_end_block")" ( (string_literal ""info->nesting > 0"" " string_content ") , (string_literal ""../../binutils/wrstabs.c"" " string_content ") , number_literal , (string_literal ""stab_end_block"" " string_content ") ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) || (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) ))))) )) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (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) ))))) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (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) )))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (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 = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })))
(function_definition "undefined4 FUN_00029410(int param_1,uint param_2,uint param_3)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  \n  if (*(uint *)(param_1 + 0x10c) < param_3 ||\n      *(uint *)(param_1 + 0x10c) - param_3 < (uint)(*(uint *)(param_1 + 0x108) < param_2)) {\n    *(uint *)(param_1 + 0x108) = param_2;\n    *(uint *)(param_1 + 0x10c) = param_3;\n  }\n  if ((*(uint *)(param_1 + 0x120) & *(uint *)(param_1 + 0x11c)) != 0xffffffff) {\n    iVar2 = FUN_00029160(*(uint *)(param_1 + 0x11c),*(uint *)(param_1 + 0x120),0);\n    if (iVar2 == 0) {\n      return 0;\n    }\n    *(undefined4 *)(param_1 + 0x11c) = 0xffffffff;\n    *(undefined4 *)(param_1 + 0x120) = 0xffffffff;\n  }\n  if (*(int *)(param_1 + 0x110) != 0) {\n    iVar2 = *(int *)(param_1 + 0x110) + -1;\n    *(int *)(param_1 + 0x110) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    uVar1 = FUN_00029160();\n    return uVar1;\n  }\n                    \n  __assert_fail("info->nesting > 0","../../binutils/wrstabs.c",0x8b6,"stab_end_block");\n}" (type_identifier "undefined4") (function_declarator "FUN_00029410(int param_1,uint param_2,uint param_3)" (identifier "FUN_00029410") (parameter_list "(int param_1,uint param_2,uint param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  \n  if (*(uint *)(param_1 + 0x10c) < param_3 ||\n      *(uint *)(param_1 + 0x10c) - param_3 < (uint)(*(uint *)(param_1 + 0x108) < param_2)) {\n    *(uint *)(param_1 + 0x108) = param_2;\n    *(uint *)(param_1 + 0x10c) = param_3;\n  }\n  if ((*(uint *)(param_1 + 0x120) & *(uint *)(param_1 + 0x11c)) != 0xffffffff) {\n    iVar2 = FUN_00029160(*(uint *)(param_1 + 0x11c),*(uint *)(param_1 + 0x120),0);\n    if (iVar2 == 0) {\n      return 0;\n    }\n    *(undefined4 *)(param_1 + 0x11c) = 0xffffffff;\n    *(undefined4 *)(param_1 + 0x120) = 0xffffffff;\n  }\n  if (*(int *)(param_1 + 0x110) != 0) {\n    iVar2 = *(int *)(param_1 + 0x110) + -1;\n    *(int *)(param_1 + 0x110) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    uVar1 = FUN_00029160();\n    return uVar1;\n  }\n                    \n  __assert_fail("info->nesting > 0","../../binutils/wrstabs.c",0x8b6,"stab_end_block");\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (if_statement "if (*(uint *)(param_1 + 0x10c) < param_3 ||\n      *(uint *)(param_1 + 0x10c) - param_3 < (uint)(*(uint *)(param_1 + 0x108) < param_2)) {\n    *(uint *)(param_1 + 0x108) = param_2;\n    *(uint *)(param_1 + 0x10c) = param_3;\n  }" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0x10c) < param_3 ||\n      *(uint *)(param_1 + 0x10c) - param_3 < (uint)(*(uint *)(param_1 + 0x108) < param_2))" (( "(") (binary_expression "*(uint *)(param_1 + 0x10c) < param_3 ||\n      *(uint *)(param_1 + 0x10c) - param_3 < (uint)(*(uint *)(param_1 + 0x108) < param_2)" (binary_expression "*(uint *)(param_1 + 0x10c) < param_3" (pointer_expression "*(uint *)(param_1 + 0x10c)" (* "*") (cast_expression "(uint *)(param_1 + 0x10c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10c)" (( "(") (binary_expression "param_1 + 0x10c" (identifier "param_1") (+ "+") (number_literal "0x10c")) () ")")))) (< "<") (identifier "param_3")) (|| "||") (binary_expression "*(uint *)(param_1 + 0x10c) - param_3 < (uint)(*(uint *)(param_1 + 0x108) < param_2)" (binary_expression "*(uint *)(param_1 + 0x10c) - param_3" (pointer_expression "*(uint *)(param_1 + 0x10c)" (* "*") (cast_expression "(uint *)(param_1 + 0x10c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10c)" (( "(") (binary_expression "param_1 + 0x10c" (identifier "param_1") (+ "+") (number_literal "0x10c")) () ")")))) (- "-") (identifier "param_3")) (< "<") (call_expression "(uint)(*(uint *)(param_1 + 0x108) < param_2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(uint *)(param_1 + 0x108) < param_2)" (( "(") (binary_expression "*(uint *)(param_1 + 0x108) < param_2" (pointer_expression "*(uint *)(param_1 + 0x108)" (* "*") (cast_expression "(uint *)(param_1 + 0x108)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x108)" (( "(") (binary_expression "param_1 + 0x108" (identifier "param_1") (+ "+") (number_literal "0x108")) () ")")))) (< "<") (identifier "param_2")) () ")"))))) () ")")) (compound_statement "{\n    *(uint *)(param_1 + 0x108) = param_2;\n    *(uint *)(param_1 + 0x10c) = param_3;\n  }" ({ "{") (expression_statement "*(uint *)(param_1 + 0x108) = param_2;" (assignment_expression "*(uint *)(param_1 + 0x108) = param_2" (pointer_expression "*(uint *)(param_1 + 0x108)" (* "*") (cast_expression "(uint *)(param_1 + 0x108)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x108)" (( "(") (binary_expression "param_1 + 0x108" (identifier "param_1") (+ "+") (number_literal "0x108")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(uint *)(param_1 + 0x10c) = param_3;" (assignment_expression "*(uint *)(param_1 + 0x10c) = param_3" (pointer_expression "*(uint *)(param_1 + 0x10c)" (* "*") (cast_expression "(uint *)(param_1 + 0x10c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10c)" (( "(") (binary_expression "param_1 + 0x10c" (identifier "param_1") (+ "+") (number_literal "0x10c")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (} "}"))) (if_statement "if ((*(uint *)(param_1 + 0x120) & *(uint *)(param_1 + 0x11c)) != 0xffffffff) {\n    iVar2 = FUN_00029160(*(uint *)(param_1 + 0x11c),*(uint *)(param_1 + 0x120),0);\n    if (iVar2 == 0) {\n      return 0;\n    }\n    *(undefined4 *)(param_1 + 0x11c) = 0xffffffff;\n    *(undefined4 *)(param_1 + 0x120) = 0xffffffff;\n  }" (if "if") (parenthesized_expression "((*(uint *)(param_1 + 0x120) & *(uint *)(param_1 + 0x11c)) != 0xffffffff)" (( "(") (binary_expression "(*(uint *)(param_1 + 0x120) & *(uint *)(param_1 + 0x11c)) != 0xffffffff" (parenthesized_expression "(*(uint *)(param_1 + 0x120) & *(uint *)(param_1 + 0x11c))" (( "(") (binary_expression "*(uint *)(param_1 + 0x120) & *(uint *)(param_1 + 0x11c)" (pointer_expression "*(uint *)(param_1 + 0x120)" (* "*") (cast_expression "(uint *)(param_1 + 0x120)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x120)" (( "(") (binary_expression "param_1 + 0x120" (identifier "param_1") (+ "+") (number_literal "0x120")) () ")")))) (& "&") (pointer_expression "*(uint *)(param_1 + 0x11c)" (* "*") (cast_expression "(uint *)(param_1 + 0x11c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x11c)" (( "(") (binary_expression "param_1 + 0x11c" (identifier "param_1") (+ "+") (number_literal "0x11c")) () ")"))))) () ")")) (!= "!=") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n    iVar2 = FUN_00029160(*(uint *)(param_1 + 0x11c),*(uint *)(param_1 + 0x120),0);\n    if (iVar2 == 0) {\n      return 0;\n    }\n    *(undefined4 *)(param_1 + 0x11c) = 0xffffffff;\n    *(undefined4 *)(param_1 + 0x120) = 0xffffffff;\n  }" ({ "{") (expression_statement "iVar2 = FUN_00029160(*(uint *)(param_1 + 0x11c),*(uint *)(param_1 + 0x120),0);" (assignment_expression "iVar2 = FUN_00029160(*(uint *)(param_1 + 0x11c),*(uint *)(param_1 + 0x120),0)" (identifier "iVar2") (= "=") (call_expression "FUN_00029160(*(uint *)(param_1 + 0x11c),*(uint *)(param_1 + 0x120),0)" (identifier "FUN_00029160") (argument_list "(*(uint *)(param_1 + 0x11c),*(uint *)(param_1 + 0x120),0)" (( "(") (pointer_expression "*(uint *)(param_1 + 0x11c)" (* "*") (cast_expression "(uint *)(param_1 + 0x11c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x11c)" (( "(") (binary_expression "param_1 + 0x11c" (identifier "param_1") (+ "+") (number_literal "0x11c")) () ")")))) (, ",") (pointer_expression "*(uint *)(param_1 + 0x120)" (* "*") (cast_expression "(uint *)(param_1 + 0x120)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x120)" (( "(") (binary_expression "param_1 + 0x120" (identifier "param_1") (+ "+") (number_literal "0x120")) () ")")))) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(param_1 + 0x11c) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_1 + 0x11c) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_1 + 0x11c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x11c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x11c)" (( "(") (binary_expression "param_1 + 0x11c" (identifier "param_1") (+ "+") (number_literal "0x11c")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x120) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_1 + 0x120) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_1 + 0x120)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x120)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x120)" (( "(") (binary_expression "param_1 + 0x120" (identifier "param_1") (+ "+") (number_literal "0x120")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x110) != 0) {\n    iVar2 = *(int *)(param_1 + 0x110) + -1;\n    *(int *)(param_1 + 0x110) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    uVar1 = FUN_00029160();\n    return uVar1;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x110) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x110) != 0" (pointer_expression "*(int *)(param_1 + 0x110)" (* "*") (cast_expression "(int *)(param_1 + 0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar2 = *(int *)(param_1 + 0x110) + -1;\n    *(int *)(param_1 + 0x110) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    uVar1 = FUN_00029160();\n    return uVar1;\n  }" ({ "{") (expression_statement "iVar2 = *(int *)(param_1 + 0x110) + -1;" (assignment_expression "iVar2 = *(int *)(param_1 + 0x110) + -1" (identifier "iVar2") (= "=") (binary_expression "*(int *)(param_1 + 0x110) + -1" (pointer_expression "*(int *)(param_1 + 0x110)" (* "*") (cast_expression "(int *)(param_1 + 0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(int *)(param_1 + 0x110) = iVar2;" (assignment_expression "*(int *)(param_1 + 0x110) = iVar2" (pointer_expression "*(int *)(param_1 + 0x110)" (* "*") (cast_expression "(int *)(param_1 + 0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (= "=") (identifier "iVar2")) (; ";")) (if_statement "if (iVar2 == 0) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "uVar1 = FUN_00029160();" (assignment_expression "uVar1 = FUN_00029160()" (identifier "uVar1") (= "=") (call_expression "FUN_00029160()" (identifier "FUN_00029160") (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar1;" (return "return") (identifier "uVar1") (; ";")) (} "}"))) (expression_statement "__assert_fail("info->nesting > 0","../../binutils/wrstabs.c",0x8b6,"stab_end_block");" (call_expression "__assert_fail("info->nesting > 0","../../binutils/wrstabs.c",0x8b6,"stab_end_block")" (identifier "__assert_fail") (argument_list "("info->nesting > 0","../../binutils/wrstabs.c",0x8b6,"stab_end_block")" (( "(") (string_literal ""info->nesting > 0"" (" """) (string_content "info->nesting > 0") (" """)) (, ",") (string_literal ""../../binutils/wrstabs.c"" (" """) (string_content "../../binutils/wrstabs.c") (" """)) (, ",") (number_literal "0x8b6") (, ",") (string_literal ""stab_end_block"" (" """) (string_content "stab_end_block") (" """)) () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

type_1 function_1(void *p,type_2 addr)

{
  type_1 var_2;
  int var_3;
  
  if (*(type_3 *)((int)p + 0x10c) < addr._4_4_ ||
      *(type_3 *)((int)p + 0x10c) - addr._4_4_ < (type_3)(*(type_3 *)((int)p + 0x108) < (type_3)addr)) {
    *(type_2 *)((int)p + 0x108) = addr;
  }
  if ((*(type_3 *)((int)p + 0x120) & *(type_3 *)((int)p + 0x11c)) != 0xffffffff) {
    var_2 = var_1((type_4 *)p,0xc0,0,*(type_2 *)((int)p + 0x11c),(char *)0x0
                             );
    if (var_2 == 0) {
      return 0;
    }
    *(type_5 *)((int)p + 0x11c) = 0xffffffff;
    *(type_5 *)((int)p + 0x120) = 0xffffffff;
  }
  if (*(int *)((int)p + 0x110) != 0) {
    var_3 = *(int *)((int)p + 0x110) + -1;
    *(int *)((int)p + 0x110) = var_3;
    if (var_3 == 0) {
      return 1;
    }
    var_2 = var_1((type_4 *)p,0xe0,0,
                              var_4((addr._4_4_ - *(int *)((int)p + 0x118)) -
                                       (type_3)((type_3)addr < *(type_3 *)((int)p + 0x114)),
                                       (type_3)addr - *(type_3 *)((int)p + 0x114)),(char *)0x0);
    return var_2;
  }
                    /* WARNING: Subroutine does not return */
  var_5("info->nesting > 0","../../binutils/wrstabs.c",0x8b6,"stab_end_block");
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4 MASKED(int param_1,uint param_2,uint param_3)

{
  undefined4 uVar1;
  int iVar2;
  
  if (*(uint *)(param_1 + 0x10c) < param_3 ||
      *(uint *)(param_1 + 0x10c) - param_3 < (uint)(*(uint *)(param_1 + 0x108) < param_2)) {
    *(uint *)(param_1 + 0x108) = param_2;
    *(uint *)(param_1 + 0x10c) = param_3;
  }
  if ((*(uint *)(param_1 + 0x120) & *(uint *)(param_1 + 0x11c)) != 0xffffffff) {
    iVar2 = FUN_00029160(*(uint *)(param_1 + 0x11c),*(uint *)(param_1 + 0x120),0);
    if (iVar2 == 0) {
      return 0;
    }
    *(undefined4 *)(param_1 + 0x11c) = 0xffffffff;
    *(undefined4 *)(param_1 + 0x120) = 0xffffffff;
  }
  if (*(int *)(param_1 + 0x110) != 0) {
    iVar2 = *(int *)(param_1 + 0x110) + -1;
    *(int *)(param_1 + 0x110) = iVar2;
    if (iVar2 == 0) {
      return 1;
    }
    uVar1 = FUN_00029160();
    return uVar1;
  }
                    /* WARNING: Subroutine does not return */
  __assert_fail("info->nesting > 0","../../binutils/wrstabs.c",0x8b6,"stab_end_block");
}

