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

void dwarf2_emit_insn(int size)

{
  int iVar1;
  addressT aVar2;
  dwarf2_line_info loc;
  
  loc.view = (symbolS *)0x1b0b8;
  iVar1 = dwarf2_loc_directive_seen;
  if (debug_type == DEBUG_DWARF2) {
    iVar1 = seen_at_least_1_file();
  }
  if (iVar1 != 0) {
    dwarf2_where(&loc);
    aVar2 = frag_now_fix();
    dwarf2_gen_line_info(aVar2 - (longlong)size,&loc);
    current.flags = current.flags & 0xfffffff1;
    current.discriminator = 0;
    dwarf2_loc_directive_seen = 0;
    current.view = (symbolS *)0x0;
  }
  return;
}



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

void FUN_0001b0b0(uint param_1)

{
  int iVar1;
  undefined8 uVar2;
  undefined1 local_28 [24];
  undefined4 uStack_10;
  
  uStack_10 = 0x1b0b8;
  iVar1 = DAT_000898f0;
  if (DAT_000888d8 == 5) {
    iVar1 = FUN_00026340();
  }
  if (iVar1 != 0) {
    FUN_0001afb0(local_28);
    uVar2 = FUN_00024dc0();
    FUN_0001aec0((uint)uVar2 - param_1,
                 ((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)) -
                 (uint)((uint)uVar2 < param_1),local_28);
    DAT_00080204 = DAT_00080204 & 0xfffffff1;
    DAT_00080208 = 0;
    DAT_000898f0 = 0;
    DAT_0008020c = 0;
  }
  return;
}


PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00016000
ADD EBX,0x64f48
SUB ESP,0x20
LEA EAX,[EBX + 0x88d8]
CMP dword ptr [EAX],0x5
JZ 0x0001b140
LEA EAX,[EBX + 0x98f0]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
SETZ AL
TEST AL,AL
JNZ 0x0001b131
SUB ESP,0xc
LEA ESI,[ESP + 0x10]
PUSH ESI
CALL 0x0001afb0
CALL 0x00024dc0
ADD ESP,0xc
PUSH ESI
MOV ESI,dword ptr [ESP + 0x38]
MOV EDI,ESI
SAR EDI,0x1f
SUB EAX,ESI
SBB EDX,EDI
PUSH EDX
PUSH EAX
CALL 0x0001aec0
LEA EAX,[EBX + 0x98f0]
AND dword ptr [EBX + 0x204],0xfffffff1
ADD ESP,0x10
MOV dword ptr [EBX + 0x208],0x0
MOV dword ptr [EAX],0x0
MOV dword ptr [EBX + 0x20c],0x0
ADD ESP,0x20
POP EBX
POP ESI
POP EDI
RET
CALL 0x00026340
TEST EAX,EAX
SETZ AL
JMP 0x0001b0d9
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_0001b0b0(uint param_1)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  undefined1 local_28 [24];\n  undefined4 uStack_10;\n  \n  uStack_10 = 0x1b0b8;\n  iVar1 = DAT_000898f0;\n  if (DAT_000888d8 == 5) {\n    iVar1 = FUN_00026340();\n  }\n  if (iVar1 != 0) {\n    FUN_0001afb0(local_28);\n    uVar2 = FUN_00024dc0();\n    FUN_0001aec0((uint)uVar2 - param_1,\n                 ((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)) -\n                 (uint)((uint)uVar2 < param_1),local_28);\n    DAT_00080204 = DAT_00080204 & 0xfffffff1;\n    DAT_00080208 = 0;\n    DAT_000898f0 = 0;\n    DAT_0008020c = 0;\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_0001b0b0(uint param_1)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  undefined1 local_28 [24];\n  undefined4 uStack_10;\n  \n  uStack_10 = 0x1b0b8;\n  iVar1 = DAT_000898f0;\n  if (DAT_000888d8 == 5) {\n    iVar1 = FUN_00026340();\n  }\n  if (iVar1 != 0) {\n    FUN_0001afb0(local_28);\n    uVar2 = FUN_00024dc0();\n    FUN_0001aec0((uint)uVar2 - param_1,\n                 ((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)) -\n                 (uint)((uint)uVar2 < param_1),local_28);\n    DAT_00080204 = DAT_00080204 & 0xfffffff1;\n    DAT_00080208 = 0;\n    DAT_000898f0 = 0;\n    DAT_0008020c = 0;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0001b0b0(uint param_1)" identifier (parameter_list "(uint param_1)" ( (parameter_declaration "uint param_1" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined8 uVar2;\n  undefined1 local_28 [24];\n  undefined4 uStack_10;\n  \n  uStack_10 = 0x1b0b8;\n  iVar1 = DAT_000898f0;\n  if (DAT_000888d8 == 5) {\n    iVar1 = FUN_00026340();\n  }\n  if (iVar1 != 0) {\n    FUN_0001afb0(local_28);\n    uVar2 = FUN_00024dc0();\n    FUN_0001aec0((uint)uVar2 - param_1,\n                 ((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)) -\n                 (uint)((uint)uVar2 < param_1),local_28);\n    DAT_00080204 = DAT_00080204 & 0xfffffff1;\n    DAT_00080208 = 0;\n    DAT_000898f0 = 0;\n    DAT_0008020c = 0;\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined1 local_28 [24];" type_identifier (array_declarator "local_28 [24]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_10;" type_identifier identifier ;) (expression_statement "uStack_10 = 0x1b0b8;" (assignment_expression "uStack_10 = 0x1b0b8" identifier = number_literal) ;) (expression_statement "iVar1 = DAT_000898f0;" (assignment_expression "iVar1 = DAT_000898f0" identifier = identifier) ;) (if_statement "if (DAT_000888d8 == 5) {\n    iVar1 = FUN_00026340();\n  }" if (parenthesized_expression "(DAT_000888d8 == 5)" ( (binary_expression "DAT_000888d8 == 5" identifier == number_literal) )) (compound_statement "{\n    iVar1 = FUN_00026340();\n  }" { (expression_statement "iVar1 = FUN_00026340();" (assignment_expression "iVar1 = FUN_00026340()" identifier = (call_expression "FUN_00026340()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if (iVar1 != 0) {\n    FUN_0001afb0(local_28);\n    uVar2 = FUN_00024dc0();\n    FUN_0001aec0((uint)uVar2 - param_1,\n                 ((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)) -\n                 (uint)((uint)uVar2 < param_1),local_28);\n    DAT_00080204 = DAT_00080204 & 0xfffffff1;\n    DAT_00080208 = 0;\n    DAT_000898f0 = 0;\n    DAT_0008020c = 0;\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_0001afb0(local_28);\n    uVar2 = FUN_00024dc0();\n    FUN_0001aec0((uint)uVar2 - param_1,\n                 ((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)) -\n                 (uint)((uint)uVar2 < param_1),local_28);\n    DAT_00080204 = DAT_00080204 & 0xfffffff1;\n    DAT_00080208 = 0;\n    DAT_000898f0 = 0;\n    DAT_0008020c = 0;\n  }" { (expression_statement "FUN_0001afb0(local_28);" (call_expression "FUN_0001afb0(local_28)" identifier (argument_list "(local_28)" ( identifier ))) ;) (expression_statement "uVar2 = FUN_00024dc0();" (assignment_expression "uVar2 = FUN_00024dc0()" identifier = (call_expression "FUN_00024dc0()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0001aec0((uint)uVar2 - param_1,\n                 ((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)) -\n                 (uint)((uint)uVar2 < param_1),local_28);" (call_expression "FUN_0001aec0((uint)uVar2 - param_1,\n                 ((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)) -\n                 (uint)((uint)uVar2 < param_1),local_28)" identifier (argument_list "((uint)uVar2 - param_1,\n                 ((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)) -\n                 (uint)((uint)uVar2 < param_1),local_28)" ( (binary_expression "(uint)uVar2 - param_1" (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier) - identifier) , (binary_expression "((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)) -\n                 (uint)((uint)uVar2 < param_1)" (parenthesized_expression "((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f))" ( (binary_expression "(int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)" (cast_expression "(int)((ulonglong)uVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar2 >> 0x20)" ( (binary_expression "(ulonglong)uVar2 >> 0x20" (cast_expression "(ulonglong)uVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) - (parenthesized_expression "((int)param_1 >> 0x1f)" ( (binary_expression "(int)param_1 >> 0x1f" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) )) - (call_expression "(uint)((uint)uVar2 < param_1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)uVar2 < param_1)" ( (binary_expression "(uint)uVar2 < param_1" (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) )))) , identifier ))) ;) (expression_statement "DAT_00080204 = DAT_00080204 & 0xfffffff1;" (assignment_expression "DAT_00080204 = DAT_00080204 & 0xfffffff1" identifier = (binary_expression "DAT_00080204 & 0xfffffff1" identifier & number_literal)) ;) (expression_statement "DAT_00080208 = 0;" (assignment_expression "DAT_00080208 = 0" identifier = number_literal) ;) (expression_statement "DAT_000898f0 = 0;" (assignment_expression "DAT_000898f0 = 0" identifier = number_literal) ;) (expression_statement "DAT_0008020c = 0;" (assignment_expression "DAT_0008020c = 0" identifier = number_literal) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nvoid dwarf2_emit_insn(int size)\n\n{\n  int iVar1;\n  addressT aVar2;\n  dwarf2_line_info loc;\n  \n  loc.view = (symbolS *)0x1b0b8;\n  iVar1 = dwarf2_loc_directive_seen;\n  if (debug_type == DEBUG_DWARF2) {\n    iVar1 = seen_at_least_1_file();\n  }\n  if (iVar1 != 0) {\n    dwarf2_where(&loc);\n    aVar2 = frag_now_fix();\n    dwarf2_gen_line_info(aVar2 - (longlong)size,&loc);\n    current.flags = current.flags & 0xfffffff1;\n    current.discriminator = 0;\n    dwarf2_loc_directive_seen = 0;\n    current.view = (symbolS *)0x0;\n  }\n  return;\n}\n\n" comment comment (function_definition "void dwarf2_emit_insn(int size)\n\n{\n  int iVar1;\n  addressT aVar2;\n  dwarf2_line_info loc;\n  \n  loc.view = (symbolS *)0x1b0b8;\n  iVar1 = dwarf2_loc_directive_seen;\n  if (debug_type == DEBUG_DWARF2) {\n    iVar1 = seen_at_least_1_file();\n  }\n  if (iVar1 != 0) {\n    dwarf2_where(&loc);\n    aVar2 = frag_now_fix();\n    dwarf2_gen_line_info(aVar2 - (longlong)size,&loc);\n    current.flags = current.flags & 0xfffffff1;\n    current.discriminator = 0;\n    dwarf2_loc_directive_seen = 0;\n    current.view = (symbolS *)0x0;\n  }\n  return;\n}" primitive_type (function_declarator "dwarf2_emit_insn(int size)" identifier (parameter_list "(int size)" ( (parameter_declaration "int size" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  addressT aVar2;\n  dwarf2_line_info loc;\n  \n  loc.view = (symbolS *)0x1b0b8;\n  iVar1 = dwarf2_loc_directive_seen;\n  if (debug_type == DEBUG_DWARF2) {\n    iVar1 = seen_at_least_1_file();\n  }\n  if (iVar1 != 0) {\n    dwarf2_where(&loc);\n    aVar2 = frag_now_fix();\n    dwarf2_gen_line_info(aVar2 - (longlong)size,&loc);\n    current.flags = current.flags & 0xfffffff1;\n    current.discriminator = 0;\n    dwarf2_loc_directive_seen = 0;\n    current.view = (symbolS *)0x0;\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "addressT aVar2;" type_identifier identifier ;) (declaration "dwarf2_line_info loc;" type_identifier identifier ;) (expression_statement "loc.view = (symbolS *)0x1b0b8;" (assignment_expression "loc.view = (symbolS *)0x1b0b8" (field_expression "loc.view" identifier . field_identifier) = (cast_expression "(symbolS *)0x1b0b8" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar1 = dwarf2_loc_directive_seen;" (assignment_expression "iVar1 = dwarf2_loc_directive_seen" identifier = identifier) ;) (if_statement "if (debug_type == DEBUG_DWARF2) {\n    iVar1 = seen_at_least_1_file();\n  }" if (parenthesized_expression "(debug_type == DEBUG_DWARF2)" ( (binary_expression "debug_type == DEBUG_DWARF2" identifier == identifier) )) (compound_statement "{\n    iVar1 = seen_at_least_1_file();\n  }" { (expression_statement "iVar1 = seen_at_least_1_file();" (assignment_expression "iVar1 = seen_at_least_1_file()" identifier = (call_expression "seen_at_least_1_file()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if (iVar1 != 0) {\n    dwarf2_where(&loc);\n    aVar2 = frag_now_fix();\n    dwarf2_gen_line_info(aVar2 - (longlong)size,&loc);\n    current.flags = current.flags & 0xfffffff1;\n    current.discriminator = 0;\n    dwarf2_loc_directive_seen = 0;\n    current.view = (symbolS *)0x0;\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    dwarf2_where(&loc);\n    aVar2 = frag_now_fix();\n    dwarf2_gen_line_info(aVar2 - (longlong)size,&loc);\n    current.flags = current.flags & 0xfffffff1;\n    current.discriminator = 0;\n    dwarf2_loc_directive_seen = 0;\n    current.view = (symbolS *)0x0;\n  }" { (expression_statement "dwarf2_where(&loc);" (call_expression "dwarf2_where(&loc)" identifier (argument_list "(&loc)" ( (pointer_expression "&loc" & identifier) ))) ;) (expression_statement "aVar2 = frag_now_fix();" (assignment_expression "aVar2 = frag_now_fix()" identifier = (call_expression "frag_now_fix()" identifier (argument_list "()" ( )))) ;) (expression_statement "dwarf2_gen_line_info(aVar2 - (longlong)size,&loc);" (call_expression "dwarf2_gen_line_info(aVar2 - (longlong)size,&loc)" identifier (argument_list "(aVar2 - (longlong)size,&loc)" ( (binary_expression "aVar2 - (longlong)size" identifier - (cast_expression "(longlong)size" ( (type_descriptor "longlong" type_identifier) ) identifier)) , (pointer_expression "&loc" & identifier) ))) ;) (expression_statement "current.flags = current.flags & 0xfffffff1;" (assignment_expression "current.flags = current.flags & 0xfffffff1" (field_expression "current.flags" identifier . field_identifier) = (binary_expression "current.flags & 0xfffffff1" (field_expression "current.flags" identifier . field_identifier) & number_literal)) ;) (expression_statement "current.discriminator = 0;" (assignment_expression "current.discriminator = 0" (field_expression "current.discriminator" identifier . field_identifier) = number_literal) ;) (expression_statement "dwarf2_loc_directive_seen = 0;" (assignment_expression "dwarf2_loc_directive_seen = 0" identifier = number_literal) ;) (expression_statement "current.view = (symbolS *)0x0;" (assignment_expression "current.view = (symbolS *)0x0" (field_expression "current.view" identifier . field_identifier) = (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0001b0b0(uint param_1)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  undefined1 local_28 [24];\n  undefined4 uStack_10;\n  \n  uStack_10 = 0x1b0b8;\n  iVar1 = DAT_000898f0;\n  if (DAT_000888d8 == 5) {\n    iVar1 = FUN_00026340();\n  }\n  if (iVar1 != 0) {\n    FUN_0001afb0(local_28);\n    uVar2 = FUN_00024dc0();\n    FUN_0001aec0((uint)uVar2 - param_1,\n                 ((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)) -\n                 (uint)((uint)uVar2 < param_1),local_28);\n    DAT_00080204 = DAT_00080204 & 0xfffffff1;\n    DAT_00080208 = 0;\n    DAT_000898f0 = 0;\n    DAT_0008020c = 0;\n  }\n  return;\n}\n\n" (function_definition "void FUN_0001b0b0(uint param_1)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  undefined1 local_28 [24];\n  undefined4 uStack_10;\n  \n  uStack_10 = 0x1b0b8;\n  iVar1 = DAT_000898f0;\n  if (DAT_000888d8 == 5) {\n    iVar1 = FUN_00026340();\n  }\n  if (iVar1 != 0) {\n    FUN_0001afb0(local_28);\n    uVar2 = FUN_00024dc0();\n    FUN_0001aec0((uint)uVar2 - param_1,\n                 ((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)) -\n                 (uint)((uint)uVar2 < param_1),local_28);\n    DAT_00080204 = DAT_00080204 & 0xfffffff1;\n    DAT_00080208 = 0;\n    DAT_000898f0 = 0;\n    DAT_0008020c = 0;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0001b0b0(uint param_1)" identifier (parameter_list "(uint param_1)" ( (parameter_declaration "uint param_1" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined8 uVar2;\n  undefined1 local_28 [24];\n  undefined4 uStack_10;\n  \n  uStack_10 = 0x1b0b8;\n  iVar1 = DAT_000898f0;\n  if (DAT_000888d8 == 5) {\n    iVar1 = FUN_00026340();\n  }\n  if (iVar1 != 0) {\n    FUN_0001afb0(local_28);\n    uVar2 = FUN_00024dc0();\n    FUN_0001aec0((uint)uVar2 - param_1,\n                 ((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)) -\n                 (uint)((uint)uVar2 < param_1),local_28);\n    DAT_00080204 = DAT_00080204 & 0xfffffff1;\n    DAT_00080208 = 0;\n    DAT_000898f0 = 0;\n    DAT_0008020c = 0;\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined1 local_28 [24];" type_identifier (array_declarator "local_28 [24]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_10;" type_identifier identifier ;) (expression_statement "uStack_10 = 0x1b0b8;" (assignment_expression "uStack_10 = 0x1b0b8" identifier = number_literal) ;) (expression_statement "iVar1 = DAT_000898f0;" (assignment_expression "iVar1 = DAT_000898f0" identifier = identifier) ;) (if_statement "if (DAT_000888d8 == 5) {\n    iVar1 = FUN_00026340();\n  }" if (parenthesized_expression "(DAT_000888d8 == 5)" ( (binary_expression "DAT_000888d8 == 5" identifier == number_literal) )) (compound_statement "{\n    iVar1 = FUN_00026340();\n  }" { (expression_statement "iVar1 = FUN_00026340();" (assignment_expression "iVar1 = FUN_00026340()" identifier = (call_expression "FUN_00026340()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if (iVar1 != 0) {\n    FUN_0001afb0(local_28);\n    uVar2 = FUN_00024dc0();\n    FUN_0001aec0((uint)uVar2 - param_1,\n                 ((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)) -\n                 (uint)((uint)uVar2 < param_1),local_28);\n    DAT_00080204 = DAT_00080204 & 0xfffffff1;\n    DAT_00080208 = 0;\n    DAT_000898f0 = 0;\n    DAT_0008020c = 0;\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_0001afb0(local_28);\n    uVar2 = FUN_00024dc0();\n    FUN_0001aec0((uint)uVar2 - param_1,\n                 ((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)) -\n                 (uint)((uint)uVar2 < param_1),local_28);\n    DAT_00080204 = DAT_00080204 & 0xfffffff1;\n    DAT_00080208 = 0;\n    DAT_000898f0 = 0;\n    DAT_0008020c = 0;\n  }" { (expression_statement "FUN_0001afb0(local_28);" (call_expression "FUN_0001afb0(local_28)" identifier (argument_list "(local_28)" ( identifier ))) ;) (expression_statement "uVar2 = FUN_00024dc0();" (assignment_expression "uVar2 = FUN_00024dc0()" identifier = (call_expression "FUN_00024dc0()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0001aec0((uint)uVar2 - param_1,\n                 ((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)) -\n                 (uint)((uint)uVar2 < param_1),local_28);" (call_expression "FUN_0001aec0((uint)uVar2 - param_1,\n                 ((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)) -\n                 (uint)((uint)uVar2 < param_1),local_28)" identifier (argument_list "((uint)uVar2 - param_1,\n                 ((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)) -\n                 (uint)((uint)uVar2 < param_1),local_28)" ( (binary_expression "(uint)uVar2 - param_1" (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier) - identifier) , (binary_expression "((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)) -\n                 (uint)((uint)uVar2 < param_1)" (parenthesized_expression "((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f))" ( (binary_expression "(int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)" (cast_expression "(int)((ulonglong)uVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar2 >> 0x20)" ( (binary_expression "(ulonglong)uVar2 >> 0x20" (cast_expression "(ulonglong)uVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) - (parenthesized_expression "((int)param_1 >> 0x1f)" ( (binary_expression "(int)param_1 >> 0x1f" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) )) - (call_expression "(uint)((uint)uVar2 < param_1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)uVar2 < param_1)" ( (binary_expression "(uint)uVar2 < param_1" (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) )))) , identifier ))) ;) (expression_statement "DAT_00080204 = DAT_00080204 & 0xfffffff1;" (assignment_expression "DAT_00080204 = DAT_00080204 & 0xfffffff1" identifier = (binary_expression "DAT_00080204 & 0xfffffff1" identifier & number_literal)) ;) (expression_statement "DAT_00080208 = 0;" (assignment_expression "DAT_00080208 = 0" identifier = number_literal) ;) (expression_statement "DAT_000898f0 = 0;" (assignment_expression "DAT_000898f0 = 0" identifier = number_literal) ;) (expression_statement "DAT_0008020c = 0;" (assignment_expression "DAT_0008020c = 0" identifier = number_literal) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) , (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )))) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (return_statement return ;) })))
(function_definition "void FUN_0001b0b0(uint param_1)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  undefined1 local_28 [24];\n  undefined4 uStack_10;\n  \n  uStack_10 = 0x1b0b8;\n  iVar1 = DAT_000898f0;\n  if (DAT_000888d8 == 5) {\n    iVar1 = FUN_00026340();\n  }\n  if (iVar1 != 0) {\n    FUN_0001afb0(local_28);\n    uVar2 = FUN_00024dc0();\n    FUN_0001aec0((uint)uVar2 - param_1,\n                 ((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)) -\n                 (uint)((uint)uVar2 < param_1),local_28);\n    DAT_00080204 = DAT_00080204 & 0xfffffff1;\n    DAT_00080208 = 0;\n    DAT_000898f0 = 0;\n    DAT_0008020c = 0;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0001b0b0(uint param_1)" (identifier "FUN_0001b0b0") (parameter_list "(uint param_1)" (( "(") (parameter_declaration "uint param_1" (type_identifier "uint") (identifier "param_1")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined8 uVar2;\n  undefined1 local_28 [24];\n  undefined4 uStack_10;\n  \n  uStack_10 = 0x1b0b8;\n  iVar1 = DAT_000898f0;\n  if (DAT_000888d8 == 5) {\n    iVar1 = FUN_00026340();\n  }\n  if (iVar1 != 0) {\n    FUN_0001afb0(local_28);\n    uVar2 = FUN_00024dc0();\n    FUN_0001aec0((uint)uVar2 - param_1,\n                 ((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)) -\n                 (uint)((uint)uVar2 < param_1),local_28);\n    DAT_00080204 = DAT_00080204 & 0xfffffff1;\n    DAT_00080208 = 0;\n    DAT_000898f0 = 0;\n    DAT_0008020c = 0;\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (declaration "undefined1 local_28 [24];" (type_identifier "undefined1") (array_declarator "local_28 [24]" (identifier "local_28") ([ "[") (number_literal "24") (] "]")) (; ";")) (declaration "undefined4 uStack_10;" (type_identifier "undefined4") (identifier "uStack_10") (; ";")) (expression_statement "uStack_10 = 0x1b0b8;" (assignment_expression "uStack_10 = 0x1b0b8" (identifier "uStack_10") (= "=") (number_literal "0x1b0b8")) (; ";")) (expression_statement "iVar1 = DAT_000898f0;" (assignment_expression "iVar1 = DAT_000898f0" (identifier "iVar1") (= "=") (identifier "DAT_000898f0")) (; ";")) (if_statement "if (DAT_000888d8 == 5) {\n    iVar1 = FUN_00026340();\n  }" (if "if") (parenthesized_expression "(DAT_000888d8 == 5)" (( "(") (binary_expression "DAT_000888d8 == 5" (identifier "DAT_000888d8") (== "==") (number_literal "5")) () ")")) (compound_statement "{\n    iVar1 = FUN_00026340();\n  }" ({ "{") (expression_statement "iVar1 = FUN_00026340();" (assignment_expression "iVar1 = FUN_00026340()" (identifier "iVar1") (= "=") (call_expression "FUN_00026340()" (identifier "FUN_00026340") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (if_statement "if (iVar1 != 0) {\n    FUN_0001afb0(local_28);\n    uVar2 = FUN_00024dc0();\n    FUN_0001aec0((uint)uVar2 - param_1,\n                 ((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)) -\n                 (uint)((uint)uVar2 < param_1),local_28);\n    DAT_00080204 = DAT_00080204 & 0xfffffff1;\n    DAT_00080208 = 0;\n    DAT_000898f0 = 0;\n    DAT_0008020c = 0;\n  }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0001afb0(local_28);\n    uVar2 = FUN_00024dc0();\n    FUN_0001aec0((uint)uVar2 - param_1,\n                 ((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)) -\n                 (uint)((uint)uVar2 < param_1),local_28);\n    DAT_00080204 = DAT_00080204 & 0xfffffff1;\n    DAT_00080208 = 0;\n    DAT_000898f0 = 0;\n    DAT_0008020c = 0;\n  }" ({ "{") (expression_statement "FUN_0001afb0(local_28);" (call_expression "FUN_0001afb0(local_28)" (identifier "FUN_0001afb0") (argument_list "(local_28)" (( "(") (identifier "local_28") () ")"))) (; ";")) (expression_statement "uVar2 = FUN_00024dc0();" (assignment_expression "uVar2 = FUN_00024dc0()" (identifier "uVar2") (= "=") (call_expression "FUN_00024dc0()" (identifier "FUN_00024dc0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "FUN_0001aec0((uint)uVar2 - param_1,\n                 ((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)) -\n                 (uint)((uint)uVar2 < param_1),local_28);" (call_expression "FUN_0001aec0((uint)uVar2 - param_1,\n                 ((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)) -\n                 (uint)((uint)uVar2 < param_1),local_28)" (identifier "FUN_0001aec0") (argument_list "((uint)uVar2 - param_1,\n                 ((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)) -\n                 (uint)((uint)uVar2 < param_1),local_28)" (( "(") (binary_expression "(uint)uVar2 - param_1" (cast_expression "(uint)uVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar2")) (- "-") (identifier "param_1")) (, ",") (binary_expression "((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)) -\n                 (uint)((uint)uVar2 < param_1)" (parenthesized_expression "((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f))" (( "(") (binary_expression "(int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)" (cast_expression "(int)((ulonglong)uVar2 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar2 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar2 >> 0x20" (cast_expression "(ulonglong)uVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar2")) (>> ">>") (number_literal "0x20")) () ")"))) (- "-") (parenthesized_expression "((int)param_1 >> 0x1f)" (( "(") (binary_expression "(int)param_1 >> 0x1f" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (>> ">>") (number_literal "0x1f")) () ")"))) () ")")) (- "-") (call_expression "(uint)((uint)uVar2 < param_1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)uVar2 < param_1)" (( "(") (binary_expression "(uint)uVar2 < param_1" (cast_expression "(uint)uVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar2")) (< "<") (identifier "param_1")) () ")")))) (, ",") (identifier "local_28") () ")"))) (; ";")) (expression_statement "DAT_00080204 = DAT_00080204 & 0xfffffff1;" (assignment_expression "DAT_00080204 = DAT_00080204 & 0xfffffff1" (identifier "DAT_00080204") (= "=") (binary_expression "DAT_00080204 & 0xfffffff1" (identifier "DAT_00080204") (& "&") (number_literal "0xfffffff1"))) (; ";")) (expression_statement "DAT_00080208 = 0;" (assignment_expression "DAT_00080208 = 0" (identifier "DAT_00080208") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_000898f0 = 0;" (assignment_expression "DAT_000898f0 = 0" (identifier "DAT_000898f0") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_0008020c = 0;" (assignment_expression "DAT_0008020c = 0" (identifier "DAT_0008020c") (= "=") (number_literal "0")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void function_1(int size)

{
  int var_4;
  type_1 var_8;
  type_2 loc;
  
  loc.view = (type_3 *)0x1b0b8;
  var_4 = dwarf2_loc_directive_seen;
  if (var_1 == var_2) {
    var_4 = var_3();
  }
  if (var_4 != 0) {
    var_5(&loc);
    var_8 = var_6();
    var_7(var_8 - (type_4)size,&loc);
    current.flags = current.flags & 0xfffffff1;
    current.discriminator = 0;
    dwarf2_loc_directive_seen = 0;
    current.view = (type_3 *)0x0;
  }
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (identifier)) (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (identifier))))) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (return_statement))))

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

void MASKED(uint param_1)

{
  int iVar1;
  undefined8 uVar2;
  undefined1 local_28 [24];
  undefined4 uStack_10;
  
  uStack_10 = 0x1b0b8;
  iVar1 = DAT_000898f0;
  if (DAT_000888d8 == 5) {
    iVar1 = FUN_00026340();
  }
  if (iVar1 != 0) {
    FUN_0001afb0(local_28);
    uVar2 = FUN_00024dc0();
    FUN_0001aec0((uint)uVar2 - param_1,
                 ((int)((ulonglong)uVar2 >> 0x20) - ((int)param_1 >> 0x1f)) -
                 (uint)((uint)uVar2 < param_1),local_28);
    DAT_00080204 = DAT_00080204 & 0xfffffff1;
    DAT_00080208 = 0;
    DAT_000898f0 = 0;
    DAT_0008020c = 0;
  }
  return;
}

