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

void s_bundle_unlock(int arg)

{
  uint size;
  char *pcVar1;
  uint uVar2;
  
  demand_empty_rest_of_line();
  if (bundle_lock_frag == (fragS *)0x0) {
    pcVar1 = (char *)dcgettext(0,".bundle_unlock without preceding .bundle_lock",5);
    as_bad(pcVar1);
  }
  else {
    if (bundle_align_p2 == 0) {
                    /* WARNING: Subroutine does not return */
      as_abort("../../gas/read.c",0x17c5,"s_bundle_unlock");
    }
    if (bundle_lock_depth == 0) {
                    /* WARNING: Subroutine does not return */
      as_abort("../../gas/read.c",0x17c7,"s_bundle_unlock");
    }
    bundle_lock_depth = bundle_lock_depth - 1;
    if (bundle_lock_depth == 0) {
      size = pending_bundle_size(bundle_lock_frag);
      uVar2 = 1 << ((byte)bundle_align_p2 & 0x1f);
      if (uVar2 < size) {
        pcVar1 = (char *)dcgettext(0,
                                   ".bundle_lock sequence is %u bytes, but bundle size is only %u bytes"
                                   ,5);
        as_bad(pcVar1,size,uVar2);
      }
      else {
        finish_bundle(bundle_lock_frag,size);
      }
      bundle_lock_frag = (fragS *)0x0;
      bundle_lock_frchain = (frchainS *)0x0;
      return;
    }
  }
  return;
}



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

void FUN_0002f6f0(void)

{
  uint uVar1;
  undefined4 uVar2;
  undefined4 extraout_EDX;
  uint uVar3;
  
  FUN_0002e4e0();
  if (DAT_00088c58 == 0) {
    uVar2 = dcgettext(0,".bundle_unlock without preceding .bundle_lock",5);
    FUN_0002bd60(uVar2);
  }
  else {
    if (DAT_00088c5c == 0) {
                    /* WARNING: Subroutine does not return */
      FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX);
    }
    if (DAT_00088c50 == 0) {
                    /* WARNING: Subroutine does not return */
      FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58);
    }
    DAT_00088c50 = DAT_00088c50 + -1;
    if (DAT_00088c50 == 0) {
      uVar1 = FUN_0002c960();
      uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f);
      if (uVar3 < uVar1) {
        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)
        ;
        FUN_0002bd60(uVar2,uVar1,uVar3);
      }
      else {
        FUN_0002d340();
      }
      DAT_00088c58 = 0;
      DAT_00088c54 = 0;
      return;
    }
  }
  return;
}


PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00016000
ADD EBX,0x50908
CALL 0x0002e4e0
MOV EAX,dword ptr [EBX + 0x8c58]
TEST EAX,EAX
JZ 0x0002f7b0
MOV ECX,dword ptr [EBX + 0x8c5c]
TEST ECX,ECX
JZ 0x0002f7d3
MOV EDX,dword ptr [EBX + 0x8c50]
TEST EDX,EDX
JZ 0x0002f7ec
SUB EDX,0x1
MOV dword ptr [EBX + 0x8c50],EDX
JZ 0x0002f740
POP EBX
POP ESI
POP EDI
RET
CALL 0x0002c960
MOV ECX,dword ptr [EBX + 0x8c5c]
MOV ESI,0x1
MOV EDI,EAX
SHL ESI,CL
CMP ESI,EAX
JNC 0x0002f798
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdfb04]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
ADD ESP,0xc
PUSH ESI
PUSH EDI
PUSH EAX
CALL 0x0002bd60
ADD ESP,0x10
MOV dword ptr [EBX + 0x8c58],0x0
MOV dword ptr [EBX + 0x8c54],0x0
POP EBX
POP ESI
POP EDI
RET
MOV EDX,EAX
MOV EAX,dword ptr [EBX + 0x8c58]
CALL 0x0002d340
JMP 0x0002f779
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdfad4]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
MOV dword ptr [ESP],EAX
CALL 0x0002bd60
ADD ESP,0x10
JMP 0x0002f738
LEA EAX,[EBX + 0xfffe0be0]
PUSH EDX
PUSH EAX
LEA EAX,[EBX + 0xfffe02a4]
PUSH 0x17c5
PUSH EAX
CALL 0x0002be80
PUSH EAX
LEA EAX,[EBX + 0xfffe0be0]
PUSH EAX
LEA EAX,[EBX + 0xfffe02a4]
PUSH 0x17c7
PUSH EAX
CALL 0x0002be80
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_0002f6f0(void)\n\n{\n  uint uVar1;\n  undefined4 uVar2;\n  undefined4 extraout_EDX;\n  uint uVar3;\n  \n  FUN_0002e4e0();\n  if (DAT_00088c58 == 0) {\n    uVar2 = dcgettext(0,".bundle_unlock without preceding .bundle_lock",5);\n    FUN_0002bd60(uVar2);\n  }\n  else {\n    if (DAT_00088c5c == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX);\n    }\n    if (DAT_00088c50 == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58);\n    }\n    DAT_00088c50 = DAT_00088c50 + -1;\n    if (DAT_00088c50 == 0) {\n      uVar1 = FUN_0002c960();\n      uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f);\n      if (uVar3 < uVar1) {\n        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;\n        FUN_0002bd60(uVar2,uVar1,uVar3);\n      }\n      else {\n        FUN_0002d340();\n      }\n      DAT_00088c58 = 0;\n      DAT_00088c54 = 0;\n      return;\n    }\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_0002f6f0(void)\n\n{\n  uint uVar1;\n  undefined4 uVar2;\n  undefined4 extraout_EDX;\n  uint uVar3;\n  \n  FUN_0002e4e0();\n  if (DAT_00088c58 == 0) {\n    uVar2 = dcgettext(0,".bundle_unlock without preceding .bundle_lock",5);\n    FUN_0002bd60(uVar2);\n  }\n  else {\n    if (DAT_00088c5c == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX);\n    }\n    if (DAT_00088c50 == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58);\n    }\n    DAT_00088c50 = DAT_00088c50 + -1;\n    if (DAT_00088c50 == 0) {\n      uVar1 = FUN_0002c960();\n      uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f);\n      if (uVar3 < uVar1) {\n        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;\n        FUN_0002bd60(uVar2,uVar1,uVar3);\n      }\n      else {\n        FUN_0002d340();\n      }\n      DAT_00088c58 = 0;\n      DAT_00088c54 = 0;\n      return;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0002f6f0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  uint uVar1;\n  undefined4 uVar2;\n  undefined4 extraout_EDX;\n  uint uVar3;\n  \n  FUN_0002e4e0();\n  if (DAT_00088c58 == 0) {\n    uVar2 = dcgettext(0,".bundle_unlock without preceding .bundle_lock",5);\n    FUN_0002bd60(uVar2);\n  }\n  else {\n    if (DAT_00088c5c == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX);\n    }\n    if (DAT_00088c50 == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58);\n    }\n    DAT_00088c50 = DAT_00088c50 + -1;\n    if (DAT_00088c50 == 0) {\n      uVar1 = FUN_0002c960();\n      uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f);\n      if (uVar3 < uVar1) {\n        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;\n        FUN_0002bd60(uVar2,uVar1,uVar3);\n      }\n      else {\n        FUN_0002d340();\n      }\n      DAT_00088c58 = 0;\n      DAT_00088c54 = 0;\n      return;\n    }\n  }\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (expression_statement "FUN_0002e4e0();" (call_expression "FUN_0002e4e0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (DAT_00088c58 == 0) {\n    uVar2 = dcgettext(0,".bundle_unlock without preceding .bundle_lock",5);\n    FUN_0002bd60(uVar2);\n  }\n  else {\n    if (DAT_00088c5c == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX);\n    }\n    if (DAT_00088c50 == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58);\n    }\n    DAT_00088c50 = DAT_00088c50 + -1;\n    if (DAT_00088c50 == 0) {\n      uVar1 = FUN_0002c960();\n      uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f);\n      if (uVar3 < uVar1) {\n        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;\n        FUN_0002bd60(uVar2,uVar1,uVar3);\n      }\n      else {\n        FUN_0002d340();\n      }\n      DAT_00088c58 = 0;\n      DAT_00088c54 = 0;\n      return;\n    }\n  }" if (parenthesized_expression "(DAT_00088c58 == 0)" ( (binary_expression "DAT_00088c58 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar2 = dcgettext(0,".bundle_unlock without preceding .bundle_lock",5);\n    FUN_0002bd60(uVar2);\n  }" { (expression_statement "uVar2 = dcgettext(0,".bundle_unlock without preceding .bundle_lock",5);" (assignment_expression "uVar2 = dcgettext(0,".bundle_unlock without preceding .bundle_lock",5)" identifier = (call_expression "dcgettext(0,".bundle_unlock without preceding .bundle_lock",5)" identifier (argument_list "(0,".bundle_unlock without preceding .bundle_lock",5)" ( number_literal , (string_literal "".bundle_unlock without preceding .bundle_lock"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar2);" (call_expression "FUN_0002bd60(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) }) (else_clause "else {\n    if (DAT_00088c5c == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX);\n    }\n    if (DAT_00088c50 == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58);\n    }\n    DAT_00088c50 = DAT_00088c50 + -1;\n    if (DAT_00088c50 == 0) {\n      uVar1 = FUN_0002c960();\n      uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f);\n      if (uVar3 < uVar1) {\n        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;\n        FUN_0002bd60(uVar2,uVar1,uVar3);\n      }\n      else {\n        FUN_0002d340();\n      }\n      DAT_00088c58 = 0;\n      DAT_00088c54 = 0;\n      return;\n    }\n  }" else (compound_statement "{\n    if (DAT_00088c5c == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX);\n    }\n    if (DAT_00088c50 == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58);\n    }\n    DAT_00088c50 = DAT_00088c50 + -1;\n    if (DAT_00088c50 == 0) {\n      uVar1 = FUN_0002c960();\n      uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f);\n      if (uVar3 < uVar1) {\n        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;\n        FUN_0002bd60(uVar2,uVar1,uVar3);\n      }\n      else {\n        FUN_0002d340();\n      }\n      DAT_00088c58 = 0;\n      DAT_00088c54 = 0;\n      return;\n    }\n  }" { (if_statement "if (DAT_00088c5c == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX);\n    }" if (parenthesized_expression "(DAT_00088c5c == 0)" ( (binary_expression "DAT_00088c5c == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX);\n    }" { comment (expression_statement "FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX);" (call_expression "FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX)" identifier (argument_list "("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX)" ( (string_literal ""../../gas/read.c"" " string_content ") , number_literal , (string_literal ""s_bundle_unlock"" " string_content ") , identifier ))) ;) })) (if_statement "if (DAT_00088c50 == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58);\n    }" if (parenthesized_expression "(DAT_00088c50 == 0)" ( (binary_expression "DAT_00088c50 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58);\n    }" { comment (expression_statement "FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58);" (call_expression "FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58)" identifier (argument_list "("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58)" ( (string_literal ""../../gas/read.c"" " string_content ") , number_literal , (string_literal ""s_bundle_unlock"" " string_content ") , identifier ))) ;) })) (expression_statement "DAT_00088c50 = DAT_00088c50 + -1;" (assignment_expression "DAT_00088c50 = DAT_00088c50 + -1" identifier = (binary_expression "DAT_00088c50 + -1" identifier + number_literal)) ;) (if_statement "if (DAT_00088c50 == 0) {\n      uVar1 = FUN_0002c960();\n      uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f);\n      if (uVar3 < uVar1) {\n        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;\n        FUN_0002bd60(uVar2,uVar1,uVar3);\n      }\n      else {\n        FUN_0002d340();\n      }\n      DAT_00088c58 = 0;\n      DAT_00088c54 = 0;\n      return;\n    }" if (parenthesized_expression "(DAT_00088c50 == 0)" ( (binary_expression "DAT_00088c50 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar1 = FUN_0002c960();\n      uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f);\n      if (uVar3 < uVar1) {\n        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;\n        FUN_0002bd60(uVar2,uVar1,uVar3);\n      }\n      else {\n        FUN_0002d340();\n      }\n      DAT_00088c58 = 0;\n      DAT_00088c54 = 0;\n      return;\n    }" { (expression_statement "uVar1 = FUN_0002c960();" (assignment_expression "uVar1 = FUN_0002c960()" identifier = (call_expression "FUN_0002c960()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f);" (assignment_expression "uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f)" identifier = (binary_expression "1 << ((byte)DAT_00088c5c & 0x1f)" number_literal << (parenthesized_expression "((byte)DAT_00088c5c & 0x1f)" ( (binary_expression "(byte)DAT_00088c5c & 0x1f" (cast_expression "(byte)DAT_00088c5c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (if_statement "if (uVar3 < uVar1) {\n        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;\n        FUN_0002bd60(uVar2,uVar1,uVar3);\n      }\n      else {\n        FUN_0002d340();\n      }" if (parenthesized_expression "(uVar3 < uVar1)" ( (binary_expression "uVar3 < uVar1" identifier < identifier) )) (compound_statement "{\n        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;\n        FUN_0002bd60(uVar2,uVar1,uVar3);\n      }" { (expression_statement "uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;" (assignment_expression "uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)" identifier = (call_expression "dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)" identifier (argument_list "(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)" ( number_literal , (string_literal "".bundle_lock sequence is %u bytes, but bundle size is only %u bytes"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar2,uVar1,uVar3);" (call_expression "FUN_0002bd60(uVar2,uVar1,uVar3)" identifier (argument_list "(uVar2,uVar1,uVar3)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n        FUN_0002d340();\n      }" else (compound_statement "{\n        FUN_0002d340();\n      }" { (expression_statement "FUN_0002d340();" (call_expression "FUN_0002d340()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "DAT_00088c58 = 0;" (assignment_expression "DAT_00088c58 = 0" identifier = number_literal) ;) (expression_statement "DAT_00088c54 = 0;" (assignment_expression "DAT_00088c54 = 0" identifier = number_literal) ;) (return_statement "return;" return ;) })) }))) (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 s_bundle_unlock(int arg)\n\n{\n  uint size;\n  char *pcVar1;\n  uint uVar2;\n  \n  demand_empty_rest_of_line();\n  if (bundle_lock_frag == (fragS *)0x0) {\n    pcVar1 = (char *)dcgettext(0,".bundle_unlock without preceding .bundle_lock",5);\n    as_bad(pcVar1);\n  }\n  else {\n    if (bundle_align_p2 == 0) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/read.c",0x17c5,"s_bundle_unlock");\n    }\n    if (bundle_lock_depth == 0) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/read.c",0x17c7,"s_bundle_unlock");\n    }\n    bundle_lock_depth = bundle_lock_depth - 1;\n    if (bundle_lock_depth == 0) {\n      size = pending_bundle_size(bundle_lock_frag);\n      uVar2 = 1 << ((byte)bundle_align_p2 & 0x1f);\n      if (uVar2 < size) {\n        pcVar1 = (char *)dcgettext(0,\n                                   ".bundle_lock sequence is %u bytes, but bundle size is only %u bytes"\n                                   ,5);\n        as_bad(pcVar1,size,uVar2);\n      }\n      else {\n        finish_bundle(bundle_lock_frag,size);\n      }\n      bundle_lock_frag = (fragS *)0x0;\n      bundle_lock_frchain = (frchainS *)0x0;\n      return;\n    }\n  }\n  return;\n}\n\n" comment comment (function_definition "void s_bundle_unlock(int arg)\n\n{\n  uint size;\n  char *pcVar1;\n  uint uVar2;\n  \n  demand_empty_rest_of_line();\n  if (bundle_lock_frag == (fragS *)0x0) {\n    pcVar1 = (char *)dcgettext(0,".bundle_unlock without preceding .bundle_lock",5);\n    as_bad(pcVar1);\n  }\n  else {\n    if (bundle_align_p2 == 0) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/read.c",0x17c5,"s_bundle_unlock");\n    }\n    if (bundle_lock_depth == 0) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/read.c",0x17c7,"s_bundle_unlock");\n    }\n    bundle_lock_depth = bundle_lock_depth - 1;\n    if (bundle_lock_depth == 0) {\n      size = pending_bundle_size(bundle_lock_frag);\n      uVar2 = 1 << ((byte)bundle_align_p2 & 0x1f);\n      if (uVar2 < size) {\n        pcVar1 = (char *)dcgettext(0,\n                                   ".bundle_lock sequence is %u bytes, but bundle size is only %u bytes"\n                                   ,5);\n        as_bad(pcVar1,size,uVar2);\n      }\n      else {\n        finish_bundle(bundle_lock_frag,size);\n      }\n      bundle_lock_frag = (fragS *)0x0;\n      bundle_lock_frchain = (frchainS *)0x0;\n      return;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "s_bundle_unlock(int arg)" identifier (parameter_list "(int arg)" ( (parameter_declaration "int arg" primitive_type identifier) ))) (compound_statement "{\n  uint size;\n  char *pcVar1;\n  uint uVar2;\n  \n  demand_empty_rest_of_line();\n  if (bundle_lock_frag == (fragS *)0x0) {\n    pcVar1 = (char *)dcgettext(0,".bundle_unlock without preceding .bundle_lock",5);\n    as_bad(pcVar1);\n  }\n  else {\n    if (bundle_align_p2 == 0) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/read.c",0x17c5,"s_bundle_unlock");\n    }\n    if (bundle_lock_depth == 0) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/read.c",0x17c7,"s_bundle_unlock");\n    }\n    bundle_lock_depth = bundle_lock_depth - 1;\n    if (bundle_lock_depth == 0) {\n      size = pending_bundle_size(bundle_lock_frag);\n      uVar2 = 1 << ((byte)bundle_align_p2 & 0x1f);\n      if (uVar2 < size) {\n        pcVar1 = (char *)dcgettext(0,\n                                   ".bundle_lock sequence is %u bytes, but bundle size is only %u bytes"\n                                   ,5);\n        as_bad(pcVar1,size,uVar2);\n      }\n      else {\n        finish_bundle(bundle_lock_frag,size);\n      }\n      bundle_lock_frag = (fragS *)0x0;\n      bundle_lock_frchain = (frchainS *)0x0;\n      return;\n    }\n  }\n  return;\n}" { (declaration "uint size;" type_identifier identifier ;) (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (expression_statement "demand_empty_rest_of_line();" (call_expression "demand_empty_rest_of_line()" identifier (argument_list "()" ( ))) ;) (if_statement "if (bundle_lock_frag == (fragS *)0x0) {\n    pcVar1 = (char *)dcgettext(0,".bundle_unlock without preceding .bundle_lock",5);\n    as_bad(pcVar1);\n  }\n  else {\n    if (bundle_align_p2 == 0) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/read.c",0x17c5,"s_bundle_unlock");\n    }\n    if (bundle_lock_depth == 0) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/read.c",0x17c7,"s_bundle_unlock");\n    }\n    bundle_lock_depth = bundle_lock_depth - 1;\n    if (bundle_lock_depth == 0) {\n      size = pending_bundle_size(bundle_lock_frag);\n      uVar2 = 1 << ((byte)bundle_align_p2 & 0x1f);\n      if (uVar2 < size) {\n        pcVar1 = (char *)dcgettext(0,\n                                   ".bundle_lock sequence is %u bytes, but bundle size is only %u bytes"\n                                   ,5);\n        as_bad(pcVar1,size,uVar2);\n      }\n      else {\n        finish_bundle(bundle_lock_frag,size);\n      }\n      bundle_lock_frag = (fragS *)0x0;\n      bundle_lock_frchain = (frchainS *)0x0;\n      return;\n    }\n  }" if (parenthesized_expression "(bundle_lock_frag == (fragS *)0x0)" ( (binary_expression "bundle_lock_frag == (fragS *)0x0" identifier == (cast_expression "(fragS *)0x0" ( (type_descriptor "fragS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar1 = (char *)dcgettext(0,".bundle_unlock without preceding .bundle_lock",5);\n    as_bad(pcVar1);\n  }" { (expression_statement "pcVar1 = (char *)dcgettext(0,".bundle_unlock without preceding .bundle_lock",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,".bundle_unlock without preceding .bundle_lock",5)" identifier = (cast_expression "(char *)dcgettext(0,".bundle_unlock without preceding .bundle_lock",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,".bundle_unlock without preceding .bundle_lock",5)" identifier (argument_list "(0,".bundle_unlock without preceding .bundle_lock",5)" ( number_literal , (string_literal "".bundle_unlock without preceding .bundle_lock"" " string_content ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar1);" (call_expression "as_bad(pcVar1)" identifier (argument_list "(pcVar1)" ( identifier ))) ;) }) (else_clause "else {\n    if (bundle_align_p2 == 0) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/read.c",0x17c5,"s_bundle_unlock");\n    }\n    if (bundle_lock_depth == 0) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/read.c",0x17c7,"s_bundle_unlock");\n    }\n    bundle_lock_depth = bundle_lock_depth - 1;\n    if (bundle_lock_depth == 0) {\n      size = pending_bundle_size(bundle_lock_frag);\n      uVar2 = 1 << ((byte)bundle_align_p2 & 0x1f);\n      if (uVar2 < size) {\n        pcVar1 = (char *)dcgettext(0,\n                                   ".bundle_lock sequence is %u bytes, but bundle size is only %u bytes"\n                                   ,5);\n        as_bad(pcVar1,size,uVar2);\n      }\n      else {\n        finish_bundle(bundle_lock_frag,size);\n      }\n      bundle_lock_frag = (fragS *)0x0;\n      bundle_lock_frchain = (frchainS *)0x0;\n      return;\n    }\n  }" else (compound_statement "{\n    if (bundle_align_p2 == 0) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/read.c",0x17c5,"s_bundle_unlock");\n    }\n    if (bundle_lock_depth == 0) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/read.c",0x17c7,"s_bundle_unlock");\n    }\n    bundle_lock_depth = bundle_lock_depth - 1;\n    if (bundle_lock_depth == 0) {\n      size = pending_bundle_size(bundle_lock_frag);\n      uVar2 = 1 << ((byte)bundle_align_p2 & 0x1f);\n      if (uVar2 < size) {\n        pcVar1 = (char *)dcgettext(0,\n                                   ".bundle_lock sequence is %u bytes, but bundle size is only %u bytes"\n                                   ,5);\n        as_bad(pcVar1,size,uVar2);\n      }\n      else {\n        finish_bundle(bundle_lock_frag,size);\n      }\n      bundle_lock_frag = (fragS *)0x0;\n      bundle_lock_frchain = (frchainS *)0x0;\n      return;\n    }\n  }" { (if_statement "if (bundle_align_p2 == 0) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/read.c",0x17c5,"s_bundle_unlock");\n    }" if (parenthesized_expression "(bundle_align_p2 == 0)" ( (binary_expression "bundle_align_p2 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/read.c",0x17c5,"s_bundle_unlock");\n    }" { comment (expression_statement "as_abort("../../gas/read.c",0x17c5,"s_bundle_unlock");" (call_expression "as_abort("../../gas/read.c",0x17c5,"s_bundle_unlock")" identifier (argument_list "("../../gas/read.c",0x17c5,"s_bundle_unlock")" ( (string_literal ""../../gas/read.c"" " string_content ") , number_literal , (string_literal ""s_bundle_unlock"" " string_content ") ))) ;) })) (if_statement "if (bundle_lock_depth == 0) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/read.c",0x17c7,"s_bundle_unlock");\n    }" if (parenthesized_expression "(bundle_lock_depth == 0)" ( (binary_expression "bundle_lock_depth == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/read.c",0x17c7,"s_bundle_unlock");\n    }" { comment (expression_statement "as_abort("../../gas/read.c",0x17c7,"s_bundle_unlock");" (call_expression "as_abort("../../gas/read.c",0x17c7,"s_bundle_unlock")" identifier (argument_list "("../../gas/read.c",0x17c7,"s_bundle_unlock")" ( (string_literal ""../../gas/read.c"" " string_content ") , number_literal , (string_literal ""s_bundle_unlock"" " string_content ") ))) ;) })) (expression_statement "bundle_lock_depth = bundle_lock_depth - 1;" (assignment_expression "bundle_lock_depth = bundle_lock_depth - 1" identifier = (binary_expression "bundle_lock_depth - 1" identifier - number_literal)) ;) (if_statement "if (bundle_lock_depth == 0) {\n      size = pending_bundle_size(bundle_lock_frag);\n      uVar2 = 1 << ((byte)bundle_align_p2 & 0x1f);\n      if (uVar2 < size) {\n        pcVar1 = (char *)dcgettext(0,\n                                   ".bundle_lock sequence is %u bytes, but bundle size is only %u bytes"\n                                   ,5);\n        as_bad(pcVar1,size,uVar2);\n      }\n      else {\n        finish_bundle(bundle_lock_frag,size);\n      }\n      bundle_lock_frag = (fragS *)0x0;\n      bundle_lock_frchain = (frchainS *)0x0;\n      return;\n    }" if (parenthesized_expression "(bundle_lock_depth == 0)" ( (binary_expression "bundle_lock_depth == 0" identifier == number_literal) )) (compound_statement "{\n      size = pending_bundle_size(bundle_lock_frag);\n      uVar2 = 1 << ((byte)bundle_align_p2 & 0x1f);\n      if (uVar2 < size) {\n        pcVar1 = (char *)dcgettext(0,\n                                   ".bundle_lock sequence is %u bytes, but bundle size is only %u bytes"\n                                   ,5);\n        as_bad(pcVar1,size,uVar2);\n      }\n      else {\n        finish_bundle(bundle_lock_frag,size);\n      }\n      bundle_lock_frag = (fragS *)0x0;\n      bundle_lock_frchain = (frchainS *)0x0;\n      return;\n    }" { (expression_statement "size = pending_bundle_size(bundle_lock_frag);" (assignment_expression "size = pending_bundle_size(bundle_lock_frag)" identifier = (call_expression "pending_bundle_size(bundle_lock_frag)" identifier (argument_list "(bundle_lock_frag)" ( identifier )))) ;) (expression_statement "uVar2 = 1 << ((byte)bundle_align_p2 & 0x1f);" (assignment_expression "uVar2 = 1 << ((byte)bundle_align_p2 & 0x1f)" identifier = (binary_expression "1 << ((byte)bundle_align_p2 & 0x1f)" number_literal << (parenthesized_expression "((byte)bundle_align_p2 & 0x1f)" ( (binary_expression "(byte)bundle_align_p2 & 0x1f" (cast_expression "(byte)bundle_align_p2" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (if_statement "if (uVar2 < size) {\n        pcVar1 = (char *)dcgettext(0,\n                                   ".bundle_lock sequence is %u bytes, but bundle size is only %u bytes"\n                                   ,5);\n        as_bad(pcVar1,size,uVar2);\n      }\n      else {\n        finish_bundle(bundle_lock_frag,size);\n      }" if (parenthesized_expression "(uVar2 < size)" ( (binary_expression "uVar2 < size" identifier < identifier) )) (compound_statement "{\n        pcVar1 = (char *)dcgettext(0,\n                                   ".bundle_lock sequence is %u bytes, but bundle size is only %u bytes"\n                                   ,5);\n        as_bad(pcVar1,size,uVar2);\n      }" { (expression_statement "pcVar1 = (char *)dcgettext(0,\n                                   ".bundle_lock sequence is %u bytes, but bundle size is only %u bytes"\n                                   ,5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,\n                                   ".bundle_lock sequence is %u bytes, but bundle size is only %u bytes"\n                                   ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                   ".bundle_lock sequence is %u bytes, but bundle size is only %u bytes"\n                                   ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                   ".bundle_lock sequence is %u bytes, but bundle size is only %u bytes"\n                                   ,5)" identifier (argument_list "(0,\n                                   ".bundle_lock sequence is %u bytes, but bundle size is only %u bytes"\n                                   ,5)" ( number_literal , (string_literal "".bundle_lock sequence is %u bytes, but bundle size is only %u bytes"" " string_content ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar1,size,uVar2);" (call_expression "as_bad(pcVar1,size,uVar2)" identifier (argument_list "(pcVar1,size,uVar2)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n        finish_bundle(bundle_lock_frag,size);\n      }" else (compound_statement "{\n        finish_bundle(bundle_lock_frag,size);\n      }" { (expression_statement "finish_bundle(bundle_lock_frag,size);" (call_expression "finish_bundle(bundle_lock_frag,size)" identifier (argument_list "(bundle_lock_frag,size)" ( identifier , identifier ))) ;) }))) (expression_statement "bundle_lock_frag = (fragS *)0x0;" (assignment_expression "bundle_lock_frag = (fragS *)0x0" identifier = (cast_expression "(fragS *)0x0" ( (type_descriptor "fragS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bundle_lock_frchain = (frchainS *)0x0;" (assignment_expression "bundle_lock_frchain = (frchainS *)0x0" identifier = (cast_expression "(frchainS *)0x0" ( (type_descriptor "frchainS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (return_statement "return;" return ;) })) }))) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0002f6f0(void)\n\n{\n  uint uVar1;\n  undefined4 uVar2;\n  undefined4 extraout_EDX;\n  uint uVar3;\n  \n  FUN_0002e4e0();\n  if (DAT_00088c58 == 0) {\n    uVar2 = dcgettext(0,".bundle_unlock without preceding .bundle_lock",5);\n    FUN_0002bd60(uVar2);\n  }\n  else {\n    if (DAT_00088c5c == 0) {\n                    \n      FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX);\n    }\n    if (DAT_00088c50 == 0) {\n                    \n      FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58);\n    }\n    DAT_00088c50 = DAT_00088c50 + -1;\n    if (DAT_00088c50 == 0) {\n      uVar1 = FUN_0002c960();\n      uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f);\n      if (uVar3 < uVar1) {\n        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;\n        FUN_0002bd60(uVar2,uVar1,uVar3);\n      }\n      else {\n        FUN_0002d340();\n      }\n      DAT_00088c58 = 0;\n      DAT_00088c54 = 0;\n      return;\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_0002f6f0(void)\n\n{\n  uint uVar1;\n  undefined4 uVar2;\n  undefined4 extraout_EDX;\n  uint uVar3;\n  \n  FUN_0002e4e0();\n  if (DAT_00088c58 == 0) {\n    uVar2 = dcgettext(0,".bundle_unlock without preceding .bundle_lock",5);\n    FUN_0002bd60(uVar2);\n  }\n  else {\n    if (DAT_00088c5c == 0) {\n                    \n      FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX);\n    }\n    if (DAT_00088c50 == 0) {\n                    \n      FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58);\n    }\n    DAT_00088c50 = DAT_00088c50 + -1;\n    if (DAT_00088c50 == 0) {\n      uVar1 = FUN_0002c960();\n      uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f);\n      if (uVar3 < uVar1) {\n        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;\n        FUN_0002bd60(uVar2,uVar1,uVar3);\n      }\n      else {\n        FUN_0002d340();\n      }\n      DAT_00088c58 = 0;\n      DAT_00088c54 = 0;\n      return;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0002f6f0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  uint uVar1;\n  undefined4 uVar2;\n  undefined4 extraout_EDX;\n  uint uVar3;\n  \n  FUN_0002e4e0();\n  if (DAT_00088c58 == 0) {\n    uVar2 = dcgettext(0,".bundle_unlock without preceding .bundle_lock",5);\n    FUN_0002bd60(uVar2);\n  }\n  else {\n    if (DAT_00088c5c == 0) {\n                    \n      FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX);\n    }\n    if (DAT_00088c50 == 0) {\n                    \n      FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58);\n    }\n    DAT_00088c50 = DAT_00088c50 + -1;\n    if (DAT_00088c50 == 0) {\n      uVar1 = FUN_0002c960();\n      uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f);\n      if (uVar3 < uVar1) {\n        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;\n        FUN_0002bd60(uVar2,uVar1,uVar3);\n      }\n      else {\n        FUN_0002d340();\n      }\n      DAT_00088c58 = 0;\n      DAT_00088c54 = 0;\n      return;\n    }\n  }\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (expression_statement "FUN_0002e4e0();" (call_expression "FUN_0002e4e0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (DAT_00088c58 == 0) {\n    uVar2 = dcgettext(0,".bundle_unlock without preceding .bundle_lock",5);\n    FUN_0002bd60(uVar2);\n  }\n  else {\n    if (DAT_00088c5c == 0) {\n                    \n      FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX);\n    }\n    if (DAT_00088c50 == 0) {\n                    \n      FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58);\n    }\n    DAT_00088c50 = DAT_00088c50 + -1;\n    if (DAT_00088c50 == 0) {\n      uVar1 = FUN_0002c960();\n      uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f);\n      if (uVar3 < uVar1) {\n        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;\n        FUN_0002bd60(uVar2,uVar1,uVar3);\n      }\n      else {\n        FUN_0002d340();\n      }\n      DAT_00088c58 = 0;\n      DAT_00088c54 = 0;\n      return;\n    }\n  }" if (parenthesized_expression "(DAT_00088c58 == 0)" ( (binary_expression "DAT_00088c58 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar2 = dcgettext(0,".bundle_unlock without preceding .bundle_lock",5);\n    FUN_0002bd60(uVar2);\n  }" { (expression_statement "uVar2 = dcgettext(0,".bundle_unlock without preceding .bundle_lock",5);" (assignment_expression "uVar2 = dcgettext(0,".bundle_unlock without preceding .bundle_lock",5)" identifier = (call_expression "dcgettext(0,".bundle_unlock without preceding .bundle_lock",5)" identifier (argument_list "(0,".bundle_unlock without preceding .bundle_lock",5)" ( number_literal , (string_literal "".bundle_unlock without preceding .bundle_lock"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar2);" (call_expression "FUN_0002bd60(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) }) (else_clause "else {\n    if (DAT_00088c5c == 0) {\n                    \n      FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX);\n    }\n    if (DAT_00088c50 == 0) {\n                    \n      FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58);\n    }\n    DAT_00088c50 = DAT_00088c50 + -1;\n    if (DAT_00088c50 == 0) {\n      uVar1 = FUN_0002c960();\n      uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f);\n      if (uVar3 < uVar1) {\n        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;\n        FUN_0002bd60(uVar2,uVar1,uVar3);\n      }\n      else {\n        FUN_0002d340();\n      }\n      DAT_00088c58 = 0;\n      DAT_00088c54 = 0;\n      return;\n    }\n  }" else (compound_statement "{\n    if (DAT_00088c5c == 0) {\n                    \n      FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX);\n    }\n    if (DAT_00088c50 == 0) {\n                    \n      FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58);\n    }\n    DAT_00088c50 = DAT_00088c50 + -1;\n    if (DAT_00088c50 == 0) {\n      uVar1 = FUN_0002c960();\n      uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f);\n      if (uVar3 < uVar1) {\n        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;\n        FUN_0002bd60(uVar2,uVar1,uVar3);\n      }\n      else {\n        FUN_0002d340();\n      }\n      DAT_00088c58 = 0;\n      DAT_00088c54 = 0;\n      return;\n    }\n  }" { (if_statement "if (DAT_00088c5c == 0) {\n                    \n      FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX);\n    }" if (parenthesized_expression "(DAT_00088c5c == 0)" ( (binary_expression "DAT_00088c5c == 0" identifier == number_literal) )) (compound_statement "{\n                    \n      FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX);\n    }" { (expression_statement "FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX);" (call_expression "FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX)" identifier (argument_list "("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX)" ( (string_literal ""../../gas/read.c"" " string_content ") , number_literal , (string_literal ""s_bundle_unlock"" " string_content ") , identifier ))) ;) })) (if_statement "if (DAT_00088c50 == 0) {\n                    \n      FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58);\n    }" if (parenthesized_expression "(DAT_00088c50 == 0)" ( (binary_expression "DAT_00088c50 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n      FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58);\n    }" { (expression_statement "FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58);" (call_expression "FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58)" identifier (argument_list "("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58)" ( (string_literal ""../../gas/read.c"" " string_content ") , number_literal , (string_literal ""s_bundle_unlock"" " string_content ") , identifier ))) ;) })) (expression_statement "DAT_00088c50 = DAT_00088c50 + -1;" (assignment_expression "DAT_00088c50 = DAT_00088c50 + -1" identifier = (binary_expression "DAT_00088c50 + -1" identifier + number_literal)) ;) (if_statement "if (DAT_00088c50 == 0) {\n      uVar1 = FUN_0002c960();\n      uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f);\n      if (uVar3 < uVar1) {\n        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;\n        FUN_0002bd60(uVar2,uVar1,uVar3);\n      }\n      else {\n        FUN_0002d340();\n      }\n      DAT_00088c58 = 0;\n      DAT_00088c54 = 0;\n      return;\n    }" if (parenthesized_expression "(DAT_00088c50 == 0)" ( (binary_expression "DAT_00088c50 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar1 = FUN_0002c960();\n      uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f);\n      if (uVar3 < uVar1) {\n        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;\n        FUN_0002bd60(uVar2,uVar1,uVar3);\n      }\n      else {\n        FUN_0002d340();\n      }\n      DAT_00088c58 = 0;\n      DAT_00088c54 = 0;\n      return;\n    }" { (expression_statement "uVar1 = FUN_0002c960();" (assignment_expression "uVar1 = FUN_0002c960()" identifier = (call_expression "FUN_0002c960()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f);" (assignment_expression "uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f)" identifier = (binary_expression "1 << ((byte)DAT_00088c5c & 0x1f)" number_literal << (parenthesized_expression "((byte)DAT_00088c5c & 0x1f)" ( (binary_expression "(byte)DAT_00088c5c & 0x1f" (cast_expression "(byte)DAT_00088c5c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (if_statement "if (uVar3 < uVar1) {\n        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;\n        FUN_0002bd60(uVar2,uVar1,uVar3);\n      }\n      else {\n        FUN_0002d340();\n      }" if (parenthesized_expression "(uVar3 < uVar1)" ( (binary_expression "uVar3 < uVar1" identifier < identifier) )) (compound_statement "{\n        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;\n        FUN_0002bd60(uVar2,uVar1,uVar3);\n      }" { (expression_statement "uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;" (assignment_expression "uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)" identifier = (call_expression "dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)" identifier (argument_list "(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)" ( number_literal , (string_literal "".bundle_lock sequence is %u bytes, but bundle size is only %u bytes"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar2,uVar1,uVar3);" (call_expression "FUN_0002bd60(uVar2,uVar1,uVar3)" identifier (argument_list "(uVar2,uVar1,uVar3)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n        FUN_0002d340();\n      }" else (compound_statement "{\n        FUN_0002d340();\n      }" { (expression_statement "FUN_0002d340();" (call_expression "FUN_0002d340()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "DAT_00088c58 = 0;" (assignment_expression "DAT_00088c58 = 0" identifier = number_literal) ;) (expression_statement "DAT_00088c54 = 0;" (assignment_expression "DAT_00088c54 = 0" identifier = number_literal) ;) (return_statement "return;" return ;) })) }))) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (return_statement return ;) })) }))) (return_statement return ;) })))
(function_definition "void FUN_0002f6f0(void)\n\n{\n  uint uVar1;\n  undefined4 uVar2;\n  undefined4 extraout_EDX;\n  uint uVar3;\n  \n  FUN_0002e4e0();\n  if (DAT_00088c58 == 0) {\n    uVar2 = dcgettext(0,".bundle_unlock without preceding .bundle_lock",5);\n    FUN_0002bd60(uVar2);\n  }\n  else {\n    if (DAT_00088c5c == 0) {\n                    \n      FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX);\n    }\n    if (DAT_00088c50 == 0) {\n                    \n      FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58);\n    }\n    DAT_00088c50 = DAT_00088c50 + -1;\n    if (DAT_00088c50 == 0) {\n      uVar1 = FUN_0002c960();\n      uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f);\n      if (uVar3 < uVar1) {\n        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;\n        FUN_0002bd60(uVar2,uVar1,uVar3);\n      }\n      else {\n        FUN_0002d340();\n      }\n      DAT_00088c58 = 0;\n      DAT_00088c54 = 0;\n      return;\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0002f6f0(void)" (identifier "FUN_0002f6f0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  uint uVar1;\n  undefined4 uVar2;\n  undefined4 extraout_EDX;\n  uint uVar3;\n  \n  FUN_0002e4e0();\n  if (DAT_00088c58 == 0) {\n    uVar2 = dcgettext(0,".bundle_unlock without preceding .bundle_lock",5);\n    FUN_0002bd60(uVar2);\n  }\n  else {\n    if (DAT_00088c5c == 0) {\n                    \n      FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX);\n    }\n    if (DAT_00088c50 == 0) {\n                    \n      FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58);\n    }\n    DAT_00088c50 = DAT_00088c50 + -1;\n    if (DAT_00088c50 == 0) {\n      uVar1 = FUN_0002c960();\n      uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f);\n      if (uVar3 < uVar1) {\n        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;\n        FUN_0002bd60(uVar2,uVar1,uVar3);\n      }\n      else {\n        FUN_0002d340();\n      }\n      DAT_00088c58 = 0;\n      DAT_00088c54 = 0;\n      return;\n    }\n  }\n  return;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "undefined4 extraout_EDX;" (type_identifier "undefined4") (identifier "extraout_EDX") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (expression_statement "FUN_0002e4e0();" (call_expression "FUN_0002e4e0()" (identifier "FUN_0002e4e0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (DAT_00088c58 == 0) {\n    uVar2 = dcgettext(0,".bundle_unlock without preceding .bundle_lock",5);\n    FUN_0002bd60(uVar2);\n  }\n  else {\n    if (DAT_00088c5c == 0) {\n                    \n      FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX);\n    }\n    if (DAT_00088c50 == 0) {\n                    \n      FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58);\n    }\n    DAT_00088c50 = DAT_00088c50 + -1;\n    if (DAT_00088c50 == 0) {\n      uVar1 = FUN_0002c960();\n      uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f);\n      if (uVar3 < uVar1) {\n        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;\n        FUN_0002bd60(uVar2,uVar1,uVar3);\n      }\n      else {\n        FUN_0002d340();\n      }\n      DAT_00088c58 = 0;\n      DAT_00088c54 = 0;\n      return;\n    }\n  }" (if "if") (parenthesized_expression "(DAT_00088c58 == 0)" (( "(") (binary_expression "DAT_00088c58 == 0" (identifier "DAT_00088c58") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar2 = dcgettext(0,".bundle_unlock without preceding .bundle_lock",5);\n    FUN_0002bd60(uVar2);\n  }" ({ "{") (expression_statement "uVar2 = dcgettext(0,".bundle_unlock without preceding .bundle_lock",5);" (assignment_expression "uVar2 = dcgettext(0,".bundle_unlock without preceding .bundle_lock",5)" (identifier "uVar2") (= "=") (call_expression "dcgettext(0,".bundle_unlock without preceding .bundle_lock",5)" (identifier "dcgettext") (argument_list "(0,".bundle_unlock without preceding .bundle_lock",5)" (( "(") (number_literal "0") (, ",") (string_literal "".bundle_unlock without preceding .bundle_lock"" (" """) (string_content ".bundle_unlock without preceding .bundle_lock") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bd60(uVar2);" (call_expression "FUN_0002bd60(uVar2)" (identifier "FUN_0002bd60") (argument_list "(uVar2)" (( "(") (identifier "uVar2") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    if (DAT_00088c5c == 0) {\n                    \n      FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX);\n    }\n    if (DAT_00088c50 == 0) {\n                    \n      FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58);\n    }\n    DAT_00088c50 = DAT_00088c50 + -1;\n    if (DAT_00088c50 == 0) {\n      uVar1 = FUN_0002c960();\n      uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f);\n      if (uVar3 < uVar1) {\n        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;\n        FUN_0002bd60(uVar2,uVar1,uVar3);\n      }\n      else {\n        FUN_0002d340();\n      }\n      DAT_00088c58 = 0;\n      DAT_00088c54 = 0;\n      return;\n    }\n  }" (else "else") (compound_statement "{\n    if (DAT_00088c5c == 0) {\n                    \n      FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX);\n    }\n    if (DAT_00088c50 == 0) {\n                    \n      FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58);\n    }\n    DAT_00088c50 = DAT_00088c50 + -1;\n    if (DAT_00088c50 == 0) {\n      uVar1 = FUN_0002c960();\n      uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f);\n      if (uVar3 < uVar1) {\n        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;\n        FUN_0002bd60(uVar2,uVar1,uVar3);\n      }\n      else {\n        FUN_0002d340();\n      }\n      DAT_00088c58 = 0;\n      DAT_00088c54 = 0;\n      return;\n    }\n  }" ({ "{") (if_statement "if (DAT_00088c5c == 0) {\n                    \n      FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX);\n    }" (if "if") (parenthesized_expression "(DAT_00088c5c == 0)" (( "(") (binary_expression "DAT_00088c5c == 0" (identifier "DAT_00088c5c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n      FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX);\n    }" ({ "{") (expression_statement "FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX);" (call_expression "FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX)" (identifier "FUN_0002be80") (argument_list "("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX)" (( "(") (string_literal ""../../gas/read.c"" (" """) (string_content "../../gas/read.c") (" """)) (, ",") (number_literal "0x17c5") (, ",") (string_literal ""s_bundle_unlock"" (" """) (string_content "s_bundle_unlock") (" """)) (, ",") (identifier "extraout_EDX") () ")"))) (; ";")) (} "}"))) (if_statement "if (DAT_00088c50 == 0) {\n                    \n      FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58);\n    }" (if "if") (parenthesized_expression "(DAT_00088c50 == 0)" (( "(") (binary_expression "DAT_00088c50 == 0" (identifier "DAT_00088c50") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n      FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58);\n    }" ({ "{") (expression_statement "FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58);" (call_expression "FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58)" (identifier "FUN_0002be80") (argument_list "("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58)" (( "(") (string_literal ""../../gas/read.c"" (" """) (string_content "../../gas/read.c") (" """)) (, ",") (number_literal "0x17c7") (, ",") (string_literal ""s_bundle_unlock"" (" """) (string_content "s_bundle_unlock") (" """)) (, ",") (identifier "DAT_00088c58") () ")"))) (; ";")) (} "}"))) (expression_statement "DAT_00088c50 = DAT_00088c50 + -1;" (assignment_expression "DAT_00088c50 = DAT_00088c50 + -1" (identifier "DAT_00088c50") (= "=") (binary_expression "DAT_00088c50 + -1" (identifier "DAT_00088c50") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (DAT_00088c50 == 0) {\n      uVar1 = FUN_0002c960();\n      uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f);\n      if (uVar3 < uVar1) {\n        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;\n        FUN_0002bd60(uVar2,uVar1,uVar3);\n      }\n      else {\n        FUN_0002d340();\n      }\n      DAT_00088c58 = 0;\n      DAT_00088c54 = 0;\n      return;\n    }" (if "if") (parenthesized_expression "(DAT_00088c50 == 0)" (( "(") (binary_expression "DAT_00088c50 == 0" (identifier "DAT_00088c50") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar1 = FUN_0002c960();\n      uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f);\n      if (uVar3 < uVar1) {\n        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;\n        FUN_0002bd60(uVar2,uVar1,uVar3);\n      }\n      else {\n        FUN_0002d340();\n      }\n      DAT_00088c58 = 0;\n      DAT_00088c54 = 0;\n      return;\n    }" ({ "{") (expression_statement "uVar1 = FUN_0002c960();" (assignment_expression "uVar1 = FUN_0002c960()" (identifier "uVar1") (= "=") (call_expression "FUN_0002c960()" (identifier "FUN_0002c960") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f);" (assignment_expression "uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f)" (identifier "uVar3") (= "=") (binary_expression "1 << ((byte)DAT_00088c5c & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)DAT_00088c5c & 0x1f)" (( "(") (binary_expression "(byte)DAT_00088c5c & 0x1f" (cast_expression "(byte)DAT_00088c5c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_00088c5c")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (if_statement "if (uVar3 < uVar1) {\n        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;\n        FUN_0002bd60(uVar2,uVar1,uVar3);\n      }\n      else {\n        FUN_0002d340();\n      }" (if "if") (parenthesized_expression "(uVar3 < uVar1)" (( "(") (binary_expression "uVar3 < uVar1" (identifier "uVar3") (< "<") (identifier "uVar1")) () ")")) (compound_statement "{\n        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;\n        FUN_0002bd60(uVar2,uVar1,uVar3);\n      }" ({ "{") (expression_statement "uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)\n        ;" (assignment_expression "uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)" (identifier "uVar2") (= "=") (call_expression "dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)" (identifier "dcgettext") (argument_list "(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)" (( "(") (number_literal "0") (, ",") (string_literal "".bundle_lock sequence is %u bytes, but bundle size is only %u bytes"" (" """) (string_content ".bundle_lock sequence is %u bytes, but bundle size is only %u bytes") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bd60(uVar2,uVar1,uVar3);" (call_expression "FUN_0002bd60(uVar2,uVar1,uVar3)" (identifier "FUN_0002bd60") (argument_list "(uVar2,uVar1,uVar3)" (( "(") (identifier "uVar2") (, ",") (identifier "uVar1") (, ",") (identifier "uVar3") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        FUN_0002d340();\n      }" (else "else") (compound_statement "{\n        FUN_0002d340();\n      }" ({ "{") (expression_statement "FUN_0002d340();" (call_expression "FUN_0002d340()" (identifier "FUN_0002d340") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "DAT_00088c58 = 0;" (assignment_expression "DAT_00088c58 = 0" (identifier "DAT_00088c58") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00088c54 = 0;" (assignment_expression "DAT_00088c54 = 0" (identifier "DAT_00088c54") (= "=") (number_literal "0")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")))) (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 arg)

{
  type_1 var_10;
  char *pcVar1;
  type_1 var_9;
  
  var_1();
  if (var_2 == (type_2 *)0x0) {
    pcVar1 = (char *)var_3(0,".bundle_unlock without preceding .bundle_lock",5);
    var_4(pcVar1);
  }
  else {
    if (var_5 == 0) {
                    /* WARNING: Subroutine does not return */
      var_6("../../gas/read.c",0x17c5,"s_bundle_unlock");
    }
    if (var_7 == 0) {
                    /* WARNING: Subroutine does not return */
      var_6("../../gas/read.c",0x17c7,"s_bundle_unlock");
    }
    var_7 = var_7 - 1;
    if (var_7 == 0) {
      var_10 = var_8(var_2);
      var_9 = 1 << ((type_3)var_5 & 0x1f);
      if (var_9 < var_10) {
        pcVar1 = (char *)var_3(0,
                                   ".bundle_lock sequence is %u bytes, but bundle size is only %u bytes"
                                   ,5);
        var_4(pcVar1,var_10,var_9);
      }
      else {
        var_11(var_2,var_10);
      }
      var_2 = (type_2 *)0x0;
      bundle_lock_frchain = (type_4 *)0x0;
      return;
    }
  }
  return;
}


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

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

void MASKED(void)

{
  uint uVar1;
  undefined4 uVar2;
  undefined4 extraout_EDX;
  uint uVar3;
  
  FUN_0002e4e0();
  if (DAT_00088c58 == 0) {
    uVar2 = dcgettext(0,".bundle_unlock without preceding .bundle_lock",5);
    FUN_0002bd60(uVar2);
  }
  else {
    if (DAT_00088c5c == 0) {
                    /* WARNING: Subroutine does not return */
      FUN_0002be80("../../gas/read.c",0x17c5,"s_bundle_unlock",extraout_EDX);
    }
    if (DAT_00088c50 == 0) {
                    /* WARNING: Subroutine does not return */
      FUN_0002be80("../../gas/read.c",0x17c7,"s_bundle_unlock",DAT_00088c58);
    }
    DAT_00088c50 = DAT_00088c50 + -1;
    if (DAT_00088c50 == 0) {
      uVar1 = FUN_0002c960();
      uVar3 = 1 << ((byte)DAT_00088c5c & 0x1f);
      if (uVar3 < uVar1) {
        uVar2 = dcgettext(0,".bundle_lock sequence is %u bytes, but bundle size is only %u bytes",5)
        ;
        FUN_0002bd60(uVar2,uVar1,uVar3);
      }
      else {
        FUN_0002d340();
      }
      DAT_00088c58 = 0;
      DAT_00088c54 = 0;
      return;
    }
  }
  return;
}

