
/* 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 + 0x108) < addr) {
    *(bfd_vma *)((int)p + 0x108) = addr;
  }
  if (*(bfd_vma *)((int)p + 0x114) != 0xffffffff) {
    bVar1 = stab_write_symbol((stab_write_handle *)p,0xc0,0,*(bfd_vma *)((int)p + 0x114),(char *)0x0
                             );
    if (bVar1 == 0) {
      return 0;
    }
    *(undefined4 *)((int)p + 0x114) = 0xffffffff;
  }
  if (*(int *)((int)p + 0x10c) != 0) {
    iVar2 = *(int *)((int)p + 0x10c) + -1;
    *(int *)((int)p + 0x10c) = iVar2;
    if (iVar2 == 0) {
      return 1;
    }
    bVar1 = stab_write_symbol((stab_write_handle *)p,0xe0,0,addr - *(int *)((int)p + 0x110),
                              (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_00029540(int param_1,uint param_2)

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


PUSH EDI
PUSH ESI
PUSH EBX
MOV ESI,dword ptr [ESP + 0x10]
CALL 0x000165d0
ADD EBX,0x15ab4
MOV EDI,dword ptr [ESP + 0x14]
CMP dword ptr [ESI + 0x108],EDI
JNC 0x00029564
MOV dword ptr [ESI + 0x108],EDI
MOV EAX,dword ptr [ESI + 0x114]
CMP EAX,-0x1
JNZ 0x000295b8
MOV EDX,dword ptr [ESI + 0x10c]
TEST EDX,EDX
JZ 0x000295df
SUB EDX,0x1
MOV EAX,0x1
MOV dword ptr [ESI + 0x10c],EDX
JNZ 0x00029590
POP EBX
POP ESI
POP EDI
RET
MOV dword ptr [ESP + 0x14],0x0
SUB EDI,dword ptr [ESI + 0x110]
MOV EAX,ESI
XOR ECX,ECX
MOV dword ptr [ESP + 0x10],EDI
MOV EDX,0xe0
POP EBX
POP ESI
POP EDI
JMP 0x000280c0
SUB ESP,0x8
XOR ECX,ECX
MOV EDX,0xc0
PUSH 0x0
PUSH EAX
MOV EAX,ESI
CALL 0x000280c0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00029589
MOV dword ptr [ESI + 0x114],0xffffffff
JMP 0x0002956f
LEA EAX,[EBX + 0xffff5288]
PUSH EAX
LEA EAX,[EBX + 0xffff4da8]
PUSH 0x8b6
PUSH EAX
LEA EAX,[EBX + 0xffff4e9e]
PUSH EAX
CALL 0x00013920
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 FUN_00029540(int param_1,uint param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  \n  if (*(uint *)(param_1 + 0x108) < param_2) {\n    *(uint *)(param_1 + 0x108) = param_2;\n  }\n  if (*(int *)(param_1 + 0x114) != -1) {\n    iVar2 = FUN_000280c0(*(int *)(param_1 + 0x114),0);\n    if (iVar2 == 0) {\n      return 0;\n    }\n    *(undefined4 *)(param_1 + 0x114) = 0xffffffff;\n  }\n  if (*(int *)(param_1 + 0x10c) != 0) {\n    iVar2 = *(int *)(param_1 + 0x10c) + -1;\n    *(int *)(param_1 + 0x10c) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    uVar1 = FUN_000280c0();\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_00029540(int param_1,uint param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  \n  if (*(uint *)(param_1 + 0x108) < param_2) {\n    *(uint *)(param_1 + 0x108) = param_2;\n  }\n  if (*(int *)(param_1 + 0x114) != -1) {\n    iVar2 = FUN_000280c0(*(int *)(param_1 + 0x114),0);\n    if (iVar2 == 0) {\n      return 0;\n    }\n    *(undefined4 *)(param_1 + 0x114) = 0xffffffff;\n  }\n  if (*(int *)(param_1 + 0x10c) != 0) {\n    iVar2 = *(int *)(param_1 + 0x10c) + -1;\n    *(int *)(param_1 + 0x10c) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    uVar1 = FUN_000280c0();\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_00029540(int param_1,uint param_2)" identifier (parameter_list "(int param_1,uint param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  \n  if (*(uint *)(param_1 + 0x108) < param_2) {\n    *(uint *)(param_1 + 0x108) = param_2;\n  }\n  if (*(int *)(param_1 + 0x114) != -1) {\n    iVar2 = FUN_000280c0(*(int *)(param_1 + 0x114),0);\n    if (iVar2 == 0) {\n      return 0;\n    }\n    *(undefined4 *)(param_1 + 0x114) = 0xffffffff;\n  }\n  if (*(int *)(param_1 + 0x10c) != 0) {\n    iVar2 = *(int *)(param_1 + 0x10c) + -1;\n    *(int *)(param_1 + 0x10c) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    uVar1 = FUN_000280c0();\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 + 0x108) < param_2) {\n    *(uint *)(param_1 + 0x108) = param_2;\n  }" if (parenthesized_expression "(*(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  }" { (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) ;) })) (if_statement "if (*(int *)(param_1 + 0x114) != -1) {\n    iVar2 = FUN_000280c0(*(int *)(param_1 + 0x114),0);\n    if (iVar2 == 0) {\n      return 0;\n    }\n    *(undefined4 *)(param_1 + 0x114) = 0xffffffff;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x114) != -1)" ( (binary_expression "*(int *)(param_1 + 0x114) != -1" (pointer_expression "*(int *)(param_1 + 0x114)" * (cast_expression "(int *)(param_1 + 0x114)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x114)" ( (binary_expression "param_1 + 0x114" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar2 = FUN_000280c0(*(int *)(param_1 + 0x114),0);\n    if (iVar2 == 0) {\n      return 0;\n    }\n    *(undefined4 *)(param_1 + 0x114) = 0xffffffff;\n  }" { (expression_statement "iVar2 = FUN_000280c0(*(int *)(param_1 + 0x114),0);" (assignment_expression "iVar2 = FUN_000280c0(*(int *)(param_1 + 0x114),0)" identifier = (call_expression "FUN_000280c0(*(int *)(param_1 + 0x114),0)" identifier (argument_list "(*(int *)(param_1 + 0x114),0)" ( (pointer_expression "*(int *)(param_1 + 0x114)" * (cast_expression "(int *)(param_1 + 0x114)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x114)" ( (binary_expression "param_1 + 0x114" 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 + 0x114) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_1 + 0x114) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_1 + 0x114)" * (cast_expression "(undefined4 *)(param_1 + 0x114)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x114)" ( (binary_expression "param_1 + 0x114" identifier + number_literal) )))) = number_literal) ;) })) (if_statement "if (*(int *)(param_1 + 0x10c) != 0) {\n    iVar2 = *(int *)(param_1 + 0x10c) + -1;\n    *(int *)(param_1 + 0x10c) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    uVar1 = FUN_000280c0();\n    return uVar1;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x10c) != 0)" ( (binary_expression "*(int *)(param_1 + 0x10c) != 0" (pointer_expression "*(int *)(param_1 + 0x10c)" * (cast_expression "(int *)(param_1 + 0x10c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar2 = *(int *)(param_1 + 0x10c) + -1;\n    *(int *)(param_1 + 0x10c) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    uVar1 = FUN_000280c0();\n    return uVar1;\n  }" { (expression_statement "iVar2 = *(int *)(param_1 + 0x10c) + -1;" (assignment_expression "iVar2 = *(int *)(param_1 + 0x10c) + -1" identifier = (binary_expression "*(int *)(param_1 + 0x10c) + -1" (pointer_expression "*(int *)(param_1 + 0x10c)" * (cast_expression "(int *)(param_1 + 0x10c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(param_1 + 0x10c) = iVar2;" (assignment_expression "*(int *)(param_1 + 0x10c) = iVar2" (pointer_expression "*(int *)(param_1 + 0x10c)" * (cast_expression "(int *)(param_1 + 0x10c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" 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_000280c0();" (assignment_expression "uVar1 = FUN_000280c0()" identifier = (call_expression "FUN_000280c0()" 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 + 0x108) < addr) {\n    *(bfd_vma *)((int)p + 0x108) = addr;\n  }\n  if (*(bfd_vma *)((int)p + 0x114) != 0xffffffff) {\n    bVar1 = stab_write_symbol((stab_write_handle *)p,0xc0,0,*(bfd_vma *)((int)p + 0x114),(char *)0x0\n                             );\n    if (bVar1 == 0) {\n      return 0;\n    }\n    *(undefined4 *)((int)p + 0x114) = 0xffffffff;\n  }\n  if (*(int *)((int)p + 0x10c) != 0) {\n    iVar2 = *(int *)((int)p + 0x10c) + -1;\n    *(int *)((int)p + 0x10c) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    bVar1 = stab_write_symbol((stab_write_handle *)p,0xe0,0,addr - *(int *)((int)p + 0x110),\n                              (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 + 0x108) < addr) {\n    *(bfd_vma *)((int)p + 0x108) = addr;\n  }\n  if (*(bfd_vma *)((int)p + 0x114) != 0xffffffff) {\n    bVar1 = stab_write_symbol((stab_write_handle *)p,0xc0,0,*(bfd_vma *)((int)p + 0x114),(char *)0x0\n                             );\n    if (bVar1 == 0) {\n      return 0;\n    }\n    *(undefined4 *)((int)p + 0x114) = 0xffffffff;\n  }\n  if (*(int *)((int)p + 0x10c) != 0) {\n    iVar2 = *(int *)((int)p + 0x10c) + -1;\n    *(int *)((int)p + 0x10c) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    bVar1 = stab_write_symbol((stab_write_handle *)p,0xe0,0,addr - *(int *)((int)p + 0x110),\n                              (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 + 0x108) < addr) {\n    *(bfd_vma *)((int)p + 0x108) = addr;\n  }\n  if (*(bfd_vma *)((int)p + 0x114) != 0xffffffff) {\n    bVar1 = stab_write_symbol((stab_write_handle *)p,0xc0,0,*(bfd_vma *)((int)p + 0x114),(char *)0x0\n                             );\n    if (bVar1 == 0) {\n      return 0;\n    }\n    *(undefined4 *)((int)p + 0x114) = 0xffffffff;\n  }\n  if (*(int *)((int)p + 0x10c) != 0) {\n    iVar2 = *(int *)((int)p + 0x10c) + -1;\n    *(int *)((int)p + 0x10c) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    bVar1 = stab_write_symbol((stab_write_handle *)p,0xe0,0,addr - *(int *)((int)p + 0x110),\n                              (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 + 0x108) < addr) {\n    *(bfd_vma *)((int)p + 0x108) = addr;\n  }" if (parenthesized_expression "(*(uint *)((int)p + 0x108) < addr)" ( (binary_expression "*(uint *)((int)p + 0x108) < 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) )))) < 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 (*(bfd_vma *)((int)p + 0x114) != 0xffffffff) {\n    bVar1 = stab_write_symbol((stab_write_handle *)p,0xc0,0,*(bfd_vma *)((int)p + 0x114),(char *)0x0\n                             );\n    if (bVar1 == 0) {\n      return 0;\n    }\n    *(undefined4 *)((int)p + 0x114) = 0xffffffff;\n  }" if (parenthesized_expression "(*(bfd_vma *)((int)p + 0x114) != 0xffffffff)" ( (binary_expression "*(bfd_vma *)((int)p + 0x114) != 0xffffffff" (pointer_expression "*(bfd_vma *)((int)p + 0x114)" * (cast_expression "(bfd_vma *)((int)p + 0x114)" ( (type_descriptor "bfd_vma *" 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) )))) != number_literal) )) (compound_statement "{\n    bVar1 = stab_write_symbol((stab_write_handle *)p,0xc0,0,*(bfd_vma *)((int)p + 0x114),(char *)0x0\n                             );\n    if (bVar1 == 0) {\n      return 0;\n    }\n    *(undefined4 *)((int)p + 0x114) = 0xffffffff;\n  }" { (expression_statement "bVar1 = stab_write_symbol((stab_write_handle *)p,0xc0,0,*(bfd_vma *)((int)p + 0x114),(char *)0x0\n                             );" (assignment_expression "bVar1 = stab_write_symbol((stab_write_handle *)p,0xc0,0,*(bfd_vma *)((int)p + 0x114),(char *)0x0\n                             )" identifier = (call_expression "stab_write_symbol((stab_write_handle *)p,0xc0,0,*(bfd_vma *)((int)p + 0x114),(char *)0x0\n                             )" identifier (argument_list "((stab_write_handle *)p,0xc0,0,*(bfd_vma *)((int)p + 0x114),(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 + 0x114)" * (cast_expression "(bfd_vma *)((int)p + 0x114)" ( (type_descriptor "bfd_vma *" 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) )))) ;) (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 + 0x114) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)p + 0x114) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)p + 0x114)" * (cast_expression "(undefined4 *)((int)p + 0x114)" ( (type_descriptor "undefined4 *" 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) )))) = number_literal) ;) })) (if_statement "if (*(int *)((int)p + 0x10c) != 0) {\n    iVar2 = *(int *)((int)p + 0x10c) + -1;\n    *(int *)((int)p + 0x10c) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    bVar1 = stab_write_symbol((stab_write_handle *)p,0xe0,0,addr - *(int *)((int)p + 0x110),\n                              (char *)0x0);\n    return bVar1;\n  }" if (parenthesized_expression "(*(int *)((int)p + 0x10c) != 0)" ( (binary_expression "*(int *)((int)p + 0x10c) != 0" (pointer_expression "*(int *)((int)p + 0x10c)" * (cast_expression "(int *)((int)p + 0x10c)" ( (type_descriptor "int *" primitive_type (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) )))) != number_literal) )) (compound_statement "{\n    iVar2 = *(int *)((int)p + 0x10c) + -1;\n    *(int *)((int)p + 0x10c) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    bVar1 = stab_write_symbol((stab_write_handle *)p,0xe0,0,addr - *(int *)((int)p + 0x110),\n                              (char *)0x0);\n    return bVar1;\n  }" { (expression_statement "iVar2 = *(int *)((int)p + 0x10c) + -1;" (assignment_expression "iVar2 = *(int *)((int)p + 0x10c) + -1" identifier = (binary_expression "*(int *)((int)p + 0x10c) + -1" (pointer_expression "*(int *)((int)p + 0x10c)" * (cast_expression "(int *)((int)p + 0x10c)" ( (type_descriptor "int *" primitive_type (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) )))) + number_literal)) ;) (expression_statement "*(int *)((int)p + 0x10c) = iVar2;" (assignment_expression "*(int *)((int)p + 0x10c) = iVar2" (pointer_expression "*(int *)((int)p + 0x10c)" * (cast_expression "(int *)((int)p + 0x10c)" ( (type_descriptor "int *" primitive_type (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) )))) = 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,addr - *(int *)((int)p + 0x110),\n                              (char *)0x0);" (assignment_expression "bVar1 = stab_write_symbol((stab_write_handle *)p,0xe0,0,addr - *(int *)((int)p + 0x110),\n                              (char *)0x0)" identifier = (call_expression "stab_write_symbol((stab_write_handle *)p,0xe0,0,addr - *(int *)((int)p + 0x110),\n                              (char *)0x0)" identifier (argument_list "((stab_write_handle *)p,0xe0,0,addr - *(int *)((int)p + 0x110),\n                              (char *)0x0)" ( (cast_expression "(stab_write_handle *)p" ( (type_descriptor "stab_write_handle *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , number_literal , (binary_expression "addr - *(int *)((int)p + 0x110)" identifier - (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) ))))) , (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_00029540(int param_1,uint param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  \n  if (*(uint *)(param_1 + 0x108) < param_2) {\n    *(uint *)(param_1 + 0x108) = param_2;\n  }\n  if (*(int *)(param_1 + 0x114) != -1) {\n    iVar2 = FUN_000280c0(*(int *)(param_1 + 0x114),0);\n    if (iVar2 == 0) {\n      return 0;\n    }\n    *(undefined4 *)(param_1 + 0x114) = 0xffffffff;\n  }\n  if (*(int *)(param_1 + 0x10c) != 0) {\n    iVar2 = *(int *)(param_1 + 0x10c) + -1;\n    *(int *)(param_1 + 0x10c) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    uVar1 = FUN_000280c0();\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_00029540(int param_1,uint param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  \n  if (*(uint *)(param_1 + 0x108) < param_2) {\n    *(uint *)(param_1 + 0x108) = param_2;\n  }\n  if (*(int *)(param_1 + 0x114) != -1) {\n    iVar2 = FUN_000280c0(*(int *)(param_1 + 0x114),0);\n    if (iVar2 == 0) {\n      return 0;\n    }\n    *(undefined4 *)(param_1 + 0x114) = 0xffffffff;\n  }\n  if (*(int *)(param_1 + 0x10c) != 0) {\n    iVar2 = *(int *)(param_1 + 0x10c) + -1;\n    *(int *)(param_1 + 0x10c) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    uVar1 = FUN_000280c0();\n    return uVar1;\n  }\n                    \n  __assert_fail("info->nesting > 0","../../binutils/wrstabs.c",0x8b6,"stab_end_block");\n}" type_identifier (function_declarator "FUN_00029540(int param_1,uint param_2)" identifier (parameter_list "(int param_1,uint param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  \n  if (*(uint *)(param_1 + 0x108) < param_2) {\n    *(uint *)(param_1 + 0x108) = param_2;\n  }\n  if (*(int *)(param_1 + 0x114) != -1) {\n    iVar2 = FUN_000280c0(*(int *)(param_1 + 0x114),0);\n    if (iVar2 == 0) {\n      return 0;\n    }\n    *(undefined4 *)(param_1 + 0x114) = 0xffffffff;\n  }\n  if (*(int *)(param_1 + 0x10c) != 0) {\n    iVar2 = *(int *)(param_1 + 0x10c) + -1;\n    *(int *)(param_1 + 0x10c) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    uVar1 = FUN_000280c0();\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 + 0x108) < param_2) {\n    *(uint *)(param_1 + 0x108) = param_2;\n  }" if (parenthesized_expression "(*(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  }" { (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) ;) })) (if_statement "if (*(int *)(param_1 + 0x114) != -1) {\n    iVar2 = FUN_000280c0(*(int *)(param_1 + 0x114),0);\n    if (iVar2 == 0) {\n      return 0;\n    }\n    *(undefined4 *)(param_1 + 0x114) = 0xffffffff;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x114) != -1)" ( (binary_expression "*(int *)(param_1 + 0x114) != -1" (pointer_expression "*(int *)(param_1 + 0x114)" * (cast_expression "(int *)(param_1 + 0x114)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x114)" ( (binary_expression "param_1 + 0x114" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar2 = FUN_000280c0(*(int *)(param_1 + 0x114),0);\n    if (iVar2 == 0) {\n      return 0;\n    }\n    *(undefined4 *)(param_1 + 0x114) = 0xffffffff;\n  }" { (expression_statement "iVar2 = FUN_000280c0(*(int *)(param_1 + 0x114),0);" (assignment_expression "iVar2 = FUN_000280c0(*(int *)(param_1 + 0x114),0)" identifier = (call_expression "FUN_000280c0(*(int *)(param_1 + 0x114),0)" identifier (argument_list "(*(int *)(param_1 + 0x114),0)" ( (pointer_expression "*(int *)(param_1 + 0x114)" * (cast_expression "(int *)(param_1 + 0x114)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x114)" ( (binary_expression "param_1 + 0x114" 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 + 0x114) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_1 + 0x114) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_1 + 0x114)" * (cast_expression "(undefined4 *)(param_1 + 0x114)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x114)" ( (binary_expression "param_1 + 0x114" identifier + number_literal) )))) = number_literal) ;) })) (if_statement "if (*(int *)(param_1 + 0x10c) != 0) {\n    iVar2 = *(int *)(param_1 + 0x10c) + -1;\n    *(int *)(param_1 + 0x10c) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    uVar1 = FUN_000280c0();\n    return uVar1;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x10c) != 0)" ( (binary_expression "*(int *)(param_1 + 0x10c) != 0" (pointer_expression "*(int *)(param_1 + 0x10c)" * (cast_expression "(int *)(param_1 + 0x10c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar2 = *(int *)(param_1 + 0x10c) + -1;\n    *(int *)(param_1 + 0x10c) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    uVar1 = FUN_000280c0();\n    return uVar1;\n  }" { (expression_statement "iVar2 = *(int *)(param_1 + 0x10c) + -1;" (assignment_expression "iVar2 = *(int *)(param_1 + 0x10c) + -1" identifier = (binary_expression "*(int *)(param_1 + 0x10c) + -1" (pointer_expression "*(int *)(param_1 + 0x10c)" * (cast_expression "(int *)(param_1 + 0x10c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(param_1 + 0x10c) = iVar2;" (assignment_expression "*(int *)(param_1 + 0x10c) = iVar2" (pointer_expression "*(int *)(param_1 + 0x10c)" * (cast_expression "(int *)(param_1 + 0x10c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" 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_000280c0();" (assignment_expression "uVar1 = FUN_000280c0()" identifier = (call_expression "FUN_000280c0()" 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) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (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) ;) })) (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 = (call_expression IDENT (argument_list ( (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) ;) })) (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_00029540(int param_1,uint param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  \n  if (*(uint *)(param_1 + 0x108) < param_2) {\n    *(uint *)(param_1 + 0x108) = param_2;\n  }\n  if (*(int *)(param_1 + 0x114) != -1) {\n    iVar2 = FUN_000280c0(*(int *)(param_1 + 0x114),0);\n    if (iVar2 == 0) {\n      return 0;\n    }\n    *(undefined4 *)(param_1 + 0x114) = 0xffffffff;\n  }\n  if (*(int *)(param_1 + 0x10c) != 0) {\n    iVar2 = *(int *)(param_1 + 0x10c) + -1;\n    *(int *)(param_1 + 0x10c) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    uVar1 = FUN_000280c0();\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_00029540(int param_1,uint param_2)" (identifier "FUN_00029540") (parameter_list "(int param_1,uint param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  \n  if (*(uint *)(param_1 + 0x108) < param_2) {\n    *(uint *)(param_1 + 0x108) = param_2;\n  }\n  if (*(int *)(param_1 + 0x114) != -1) {\n    iVar2 = FUN_000280c0(*(int *)(param_1 + 0x114),0);\n    if (iVar2 == 0) {\n      return 0;\n    }\n    *(undefined4 *)(param_1 + 0x114) = 0xffffffff;\n  }\n  if (*(int *)(param_1 + 0x10c) != 0) {\n    iVar2 = *(int *)(param_1 + 0x10c) + -1;\n    *(int *)(param_1 + 0x10c) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    uVar1 = FUN_000280c0();\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 + 0x108) < param_2) {\n    *(uint *)(param_1 + 0x108) = param_2;\n  }" (if "if") (parenthesized_expression "(*(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  }" ({ "{") (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")) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x114) != -1) {\n    iVar2 = FUN_000280c0(*(int *)(param_1 + 0x114),0);\n    if (iVar2 == 0) {\n      return 0;\n    }\n    *(undefined4 *)(param_1 + 0x114) = 0xffffffff;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x114) != -1)" (( "(") (binary_expression "*(int *)(param_1 + 0x114) != -1" (pointer_expression "*(int *)(param_1 + 0x114)" (* "*") (cast_expression "(int *)(param_1 + 0x114)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x114)" (( "(") (binary_expression "param_1 + 0x114" (identifier "param_1") (+ "+") (number_literal "0x114")) () ")")))) (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n    iVar2 = FUN_000280c0(*(int *)(param_1 + 0x114),0);\n    if (iVar2 == 0) {\n      return 0;\n    }\n    *(undefined4 *)(param_1 + 0x114) = 0xffffffff;\n  }" ({ "{") (expression_statement "iVar2 = FUN_000280c0(*(int *)(param_1 + 0x114),0);" (assignment_expression "iVar2 = FUN_000280c0(*(int *)(param_1 + 0x114),0)" (identifier "iVar2") (= "=") (call_expression "FUN_000280c0(*(int *)(param_1 + 0x114),0)" (identifier "FUN_000280c0") (argument_list "(*(int *)(param_1 + 0x114),0)" (( "(") (pointer_expression "*(int *)(param_1 + 0x114)" (* "*") (cast_expression "(int *)(param_1 + 0x114)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x114)" (( "(") (binary_expression "param_1 + 0x114" (identifier "param_1") (+ "+") (number_literal "0x114")) () ")")))) (, ",") (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 + 0x114) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_1 + 0x114) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_1 + 0x114)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x114)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x114)" (( "(") (binary_expression "param_1 + 0x114" (identifier "param_1") (+ "+") (number_literal "0x114")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x10c) != 0) {\n    iVar2 = *(int *)(param_1 + 0x10c) + -1;\n    *(int *)(param_1 + 0x10c) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    uVar1 = FUN_000280c0();\n    return uVar1;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x10c) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x10c) != 0" (pointer_expression "*(int *)(param_1 + 0x10c)" (* "*") (cast_expression "(int *)(param_1 + 0x10c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10c)" (( "(") (binary_expression "param_1 + 0x10c" (identifier "param_1") (+ "+") (number_literal "0x10c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar2 = *(int *)(param_1 + 0x10c) + -1;\n    *(int *)(param_1 + 0x10c) = iVar2;\n    if (iVar2 == 0) {\n      return 1;\n    }\n    uVar1 = FUN_000280c0();\n    return uVar1;\n  }" ({ "{") (expression_statement "iVar2 = *(int *)(param_1 + 0x10c) + -1;" (assignment_expression "iVar2 = *(int *)(param_1 + 0x10c) + -1" (identifier "iVar2") (= "=") (binary_expression "*(int *)(param_1 + 0x10c) + -1" (pointer_expression "*(int *)(param_1 + 0x10c)" (* "*") (cast_expression "(int *)(param_1 + 0x10c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10c)" (( "(") (binary_expression "param_1 + 0x10c" (identifier "param_1") (+ "+") (number_literal "0x10c")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(int *)(param_1 + 0x10c) = iVar2;" (assignment_expression "*(int *)(param_1 + 0x10c) = iVar2" (pointer_expression "*(int *)(param_1 + 0x10c)" (* "*") (cast_expression "(int *)(param_1 + 0x10c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10c)" (( "(") (binary_expression "param_1 + 0x10c" (identifier "param_1") (+ "+") (number_literal "0x10c")) () ")")))) (= "=") (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_000280c0();" (assignment_expression "uVar1 = FUN_000280c0()" (identifier "uVar1") (= "=") (call_expression "FUN_000280c0()" (identifier "FUN_000280c0") (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 var_1)

{
  type_1 var_3;
  int var_4;
  
  if (*(type_3 *)((int)p + 0x108) < var_1) {
    *(type_2 *)((int)p + 0x108) = var_1;
  }
  if (*(type_2 *)((int)p + 0x114) != 0xffffffff) {
    var_3 = var_2((type_4 *)p,0xc0,0,*(type_2 *)((int)p + 0x114),(char *)0x0
                             );
    if (var_3 == 0) {
      return 0;
    }
    *(type_5 *)((int)p + 0x114) = 0xffffffff;
  }
  if (*(int *)((int)p + 0x10c) != 0) {
    var_4 = *(int *)((int)p + 0x10c) + -1;
    *(int *)((int)p + 0x10c) = var_4;
    if (var_4 == 0) {
      return 1;
    }
    var_3 = var_2((type_4 *)p,0xe0,0,var_1 - *(int *)((int)p + 0x110),
                              (char *)0x0);
    return var_3;
  }
                    /* 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)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (if_statement condition: (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: (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))))) (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: (call_expression function: (identifier) arguments: (argument_list (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))))) (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))))) (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)

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

