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

void __regparm3 finish_bundle(fragS *frag,uint size)

{
  uint align;
  
  align = bundle_align_p2;
  if (bundle_align_p2 == 0) {
                    /* WARNING: Subroutine does not return */
    as_abort("../../gas/read.c",0x2a3,"finish_bundle");
  }
  if (frag->fr_type == rs_align_code) {
    if (1 < size) {
      *(uint *)&frag->fr_offset = bundle_align_p2;
      *(undefined4 *)((int)&frag->fr_offset + 4) = 0;
      frag->fr_subtype = size - 1;
    }
    record_alignment(now_seg,align);
    return;
  }
                    /* WARNING: Subroutine does not return */
  as_abort("../../gas/read.c",0x2a4,"finish_bundle");
}



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

void __regparm3 FUN_0002d340(int param_1,uint param_2)

{
  int iVar1;
  
  iVar1 = DAT_00088c5c;
  if (DAT_00088c5c == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0002be80("../../gas/read.c",0x2a3,"finish_bundle",param_2);
  }
  if (*(int *)(param_1 + 0x44) == 3) {
    if (1 < param_2) {
      *(int *)(param_1 + 0x20) = DAT_00088c5c;
      *(undefined4 *)(param_1 + 0x24) = 0;
      *(uint *)(param_1 + 0x48) = param_2 - 1;
    }
    FUN_0003f680(DAT_0008973c,iVar1);
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0002be80("../../gas/read.c",0x2a4,"finish_bundle",param_1);
}


PUSH EBX
CALL 0x00016000
ADD EBX,0x52cba
SUB ESP,0x8
MOV ECX,dword ptr [EBX + 0x8c5c]
TEST ECX,ECX
JZ 0x0002d38a
CMP dword ptr [EAX + 0x44],0x3
JNZ 0x0002d3a3
CMP EDX,0x1
JBE 0x0002d374
SUB EDX,0x1
MOV dword ptr [EAX + 0x20],ECX
MOV dword ptr [EAX + 0x24],0x0
MOV dword ptr [EAX + 0x48],EDX
LEA EAX,[EBX + 0x973c]
SUB ESP,0x8
PUSH ECX
PUSH dword ptr [EAX]
CALL 0x0003f680
ADD ESP,0x18
POP EBX
RET
LEA EAX,[EBX + 0xfffe0ccc]
PUSH EDX
PUSH EAX
LEA EAX,[EBX + 0xfffe02a4]
PUSH 0x2a3
PUSH EAX
CALL 0x0002be80
PUSH EAX
LEA EAX,[EBX + 0xfffe0ccc]
PUSH EAX
LEA EAX,[EBX + 0xfffe02a4]
PUSH 0x2a4
PUSH EAX
CALL 0x0002be80
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 FUN_0002d340(int param_1,uint param_2)\n\n{\n  int iVar1;\n  \n  iVar1 = DAT_00088c5c;\n  if (DAT_00088c5c == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0002be80("../../gas/read.c",0x2a3,"finish_bundle",param_2);\n  }\n  if (*(int *)(param_1 + 0x44) == 3) {\n    if (1 < param_2) {\n      *(int *)(param_1 + 0x20) = DAT_00088c5c;\n      *(undefined4 *)(param_1 + 0x24) = 0;\n      *(uint *)(param_1 + 0x48) = param_2 - 1;\n    }\n    FUN_0003f680(DAT_0008973c,iVar1);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0002be80("../../gas/read.c",0x2a4,"finish_bundle",param_1);\n}\n\n" comment (function_definition "void __regparm3 FUN_0002d340(int param_1,uint param_2)\n\n{\n  int iVar1;\n  \n  iVar1 = DAT_00088c5c;\n  if (DAT_00088c5c == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0002be80("../../gas/read.c",0x2a3,"finish_bundle",param_2);\n  }\n  if (*(int *)(param_1 + 0x44) == 3) {\n    if (1 < param_2) {\n      *(int *)(param_1 + 0x20) = DAT_00088c5c;\n      *(undefined4 *)(param_1 + 0x24) = 0;\n      *(uint *)(param_1 + 0x48) = param_2 - 1;\n    }\n    FUN_0003f680(DAT_0008973c,iVar1);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0002be80("../../gas/read.c",0x2a4,"finish_bundle",param_1);\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0002d340(int param_1,uint param_2)" identifier (parameter_list "(int param_1,uint param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  \n  iVar1 = DAT_00088c5c;\n  if (DAT_00088c5c == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0002be80("../../gas/read.c",0x2a3,"finish_bundle",param_2);\n  }\n  if (*(int *)(param_1 + 0x44) == 3) {\n    if (1 < param_2) {\n      *(int *)(param_1 + 0x20) = DAT_00088c5c;\n      *(undefined4 *)(param_1 + 0x24) = 0;\n      *(uint *)(param_1 + 0x48) = param_2 - 1;\n    }\n    FUN_0003f680(DAT_0008973c,iVar1);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0002be80("../../gas/read.c",0x2a4,"finish_bundle",param_1);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (expression_statement "iVar1 = DAT_00088c5c;" (assignment_expression "iVar1 = DAT_00088c5c" identifier = identifier) ;) (if_statement "if (DAT_00088c5c == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0002be80("../../gas/read.c",0x2a3,"finish_bundle",param_2);\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",0x2a3,"finish_bundle",param_2);\n  }" { comment (expression_statement "FUN_0002be80("../../gas/read.c",0x2a3,"finish_bundle",param_2);" (call_expression "FUN_0002be80("../../gas/read.c",0x2a3,"finish_bundle",param_2)" identifier (argument_list "("../../gas/read.c",0x2a3,"finish_bundle",param_2)" ( (string_literal ""../../gas/read.c"" " string_content ") , number_literal , (string_literal ""finish_bundle"" " string_content ") , identifier ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x44) == 3) {\n    if (1 < param_2) {\n      *(int *)(param_1 + 0x20) = DAT_00088c5c;\n      *(undefined4 *)(param_1 + 0x24) = 0;\n      *(uint *)(param_1 + 0x48) = param_2 - 1;\n    }\n    FUN_0003f680(DAT_0008973c,iVar1);\n    return;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x44) == 3)" ( (binary_expression "*(int *)(param_1 + 0x44) == 3" (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    if (1 < param_2) {\n      *(int *)(param_1 + 0x20) = DAT_00088c5c;\n      *(undefined4 *)(param_1 + 0x24) = 0;\n      *(uint *)(param_1 + 0x48) = param_2 - 1;\n    }\n    FUN_0003f680(DAT_0008973c,iVar1);\n    return;\n  }" { (if_statement "if (1 < param_2) {\n      *(int *)(param_1 + 0x20) = DAT_00088c5c;\n      *(undefined4 *)(param_1 + 0x24) = 0;\n      *(uint *)(param_1 + 0x48) = param_2 - 1;\n    }" if (parenthesized_expression "(1 < param_2)" ( (binary_expression "1 < param_2" number_literal < identifier) )) (compound_statement "{\n      *(int *)(param_1 + 0x20) = DAT_00088c5c;\n      *(undefined4 *)(param_1 + 0x24) = 0;\n      *(uint *)(param_1 + 0x48) = param_2 - 1;\n    }" { (expression_statement "*(int *)(param_1 + 0x20) = DAT_00088c5c;" (assignment_expression "*(int *)(param_1 + 0x20) = DAT_00088c5c" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x24) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x24)" * (cast_expression "(undefined4 *)(param_1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(param_1 + 0x48) = param_2 - 1;" (assignment_expression "*(uint *)(param_1 + 0x48) = param_2 - 1" (pointer_expression "*(uint *)(param_1 + 0x48)" * (cast_expression "(uint *)(param_1 + 0x48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) = (binary_expression "param_2 - 1" identifier - number_literal)) ;) })) (expression_statement "FUN_0003f680(DAT_0008973c,iVar1);" (call_expression "FUN_0003f680(DAT_0008973c,iVar1)" identifier (argument_list "(DAT_0008973c,iVar1)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) comment (expression_statement "FUN_0002be80("../../gas/read.c",0x2a4,"finish_bundle",param_1);" (call_expression "FUN_0002be80("../../gas/read.c",0x2a4,"finish_bundle",param_1)" identifier (argument_list "("../../gas/read.c",0x2a4,"finish_bundle",param_1)" ( (string_literal ""../../gas/read.c"" " string_content ") , number_literal , (string_literal ""finish_bundle"" " string_content ") , identifier ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 finish_bundle(fragS *frag,uint size)\n\n{\n  uint align;\n  \n  align = bundle_align_p2;\n  if (bundle_align_p2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    as_abort("../../gas/read.c",0x2a3,"finish_bundle");\n  }\n  if (frag->fr_type == rs_align_code) {\n    if (1 < size) {\n      *(uint *)&frag->fr_offset = bundle_align_p2;\n      *(undefined4 *)((int)&frag->fr_offset + 4) = 0;\n      frag->fr_subtype = size - 1;\n    }\n    record_alignment(now_seg,align);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  as_abort("../../gas/read.c",0x2a4,"finish_bundle");\n}\n\n" comment (function_definition "void __regparm3 finish_bundle(fragS *frag,uint size)\n\n{\n  uint align;\n  \n  align = bundle_align_p2;\n  if (bundle_align_p2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    as_abort("../../gas/read.c",0x2a3,"finish_bundle");\n  }\n  if (frag->fr_type == rs_align_code) {\n    if (1 < size) {\n      *(uint *)&frag->fr_offset = bundle_align_p2;\n      *(undefined4 *)((int)&frag->fr_offset + 4) = 0;\n      frag->fr_subtype = size - 1;\n    }\n    record_alignment(now_seg,align);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  as_abort("../../gas/read.c",0x2a4,"finish_bundle");\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "finish_bundle(fragS *frag,uint size)" identifier (parameter_list "(fragS *frag,uint size)" ( (parameter_declaration "fragS *frag" type_identifier (pointer_declarator "*frag" * identifier)) , (parameter_declaration "uint size" type_identifier identifier) ))) (compound_statement "{\n  uint align;\n  \n  align = bundle_align_p2;\n  if (bundle_align_p2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    as_abort("../../gas/read.c",0x2a3,"finish_bundle");\n  }\n  if (frag->fr_type == rs_align_code) {\n    if (1 < size) {\n      *(uint *)&frag->fr_offset = bundle_align_p2;\n      *(undefined4 *)((int)&frag->fr_offset + 4) = 0;\n      frag->fr_subtype = size - 1;\n    }\n    record_alignment(now_seg,align);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  as_abort("../../gas/read.c",0x2a4,"finish_bundle");\n}" { (declaration "uint align;" type_identifier identifier ;) (expression_statement "align = bundle_align_p2;" (assignment_expression "align = bundle_align_p2" identifier = identifier) ;) (if_statement "if (bundle_align_p2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    as_abort("../../gas/read.c",0x2a3,"finish_bundle");\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",0x2a3,"finish_bundle");\n  }" { comment (expression_statement "as_abort("../../gas/read.c",0x2a3,"finish_bundle");" (call_expression "as_abort("../../gas/read.c",0x2a3,"finish_bundle")" identifier (argument_list "("../../gas/read.c",0x2a3,"finish_bundle")" ( (string_literal ""../../gas/read.c"" " string_content ") , number_literal , (string_literal ""finish_bundle"" " string_content ") ))) ;) })) (if_statement "if (frag->fr_type == rs_align_code) {\n    if (1 < size) {\n      *(uint *)&frag->fr_offset = bundle_align_p2;\n      *(undefined4 *)((int)&frag->fr_offset + 4) = 0;\n      frag->fr_subtype = size - 1;\n    }\n    record_alignment(now_seg,align);\n    return;\n  }" if (parenthesized_expression "(frag->fr_type == rs_align_code)" ( (binary_expression "frag->fr_type == rs_align_code" (field_expression "frag->fr_type" identifier -> field_identifier) == identifier) )) (compound_statement "{\n    if (1 < size) {\n      *(uint *)&frag->fr_offset = bundle_align_p2;\n      *(undefined4 *)((int)&frag->fr_offset + 4) = 0;\n      frag->fr_subtype = size - 1;\n    }\n    record_alignment(now_seg,align);\n    return;\n  }" { (if_statement "if (1 < size) {\n      *(uint *)&frag->fr_offset = bundle_align_p2;\n      *(undefined4 *)((int)&frag->fr_offset + 4) = 0;\n      frag->fr_subtype = size - 1;\n    }" if (parenthesized_expression "(1 < size)" ( (binary_expression "1 < size" number_literal < identifier) )) (compound_statement "{\n      *(uint *)&frag->fr_offset = bundle_align_p2;\n      *(undefined4 *)((int)&frag->fr_offset + 4) = 0;\n      frag->fr_subtype = size - 1;\n    }" { (expression_statement "*(uint *)&frag->fr_offset = bundle_align_p2;" (assignment_expression "*(uint *)&frag->fr_offset = bundle_align_p2" (pointer_expression "*(uint *)&frag->fr_offset" * (cast_expression "(uint *)&frag->fr_offset" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&frag->fr_offset" & (field_expression "frag->fr_offset" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&frag->fr_offset + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&frag->fr_offset + 4) = 0" (pointer_expression "*(undefined4 *)((int)&frag->fr_offset + 4)" * (cast_expression "(undefined4 *)((int)&frag->fr_offset + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&frag->fr_offset + 4)" ( (binary_expression "(int)&frag->fr_offset + 4" (cast_expression "(int)&frag->fr_offset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&frag->fr_offset" & (field_expression "frag->fr_offset" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "frag->fr_subtype = size - 1;" (assignment_expression "frag->fr_subtype = size - 1" (field_expression "frag->fr_subtype" identifier -> field_identifier) = (binary_expression "size - 1" identifier - number_literal)) ;) })) (expression_statement "record_alignment(now_seg,align);" (call_expression "record_alignment(now_seg,align)" identifier (argument_list "(now_seg,align)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) comment (expression_statement "as_abort("../../gas/read.c",0x2a4,"finish_bundle");" (call_expression "as_abort("../../gas/read.c",0x2a4,"finish_bundle")" identifier (argument_list "("../../gas/read.c",0x2a4,"finish_bundle")" ( (string_literal ""../../gas/read.c"" " string_content ") , number_literal , (string_literal ""finish_bundle"" " string_content ") ))) ;) })))
(translation_unit "void __regparm3 FUN_0002d340(int param_1,uint param_2)\n\n{\n  int iVar1;\n  \n  iVar1 = DAT_00088c5c;\n  if (DAT_00088c5c == 0) {\n                    \n    FUN_0002be80("../../gas/read.c",0x2a3,"finish_bundle",param_2);\n  }\n  if (*(int *)(param_1 + 0x44) == 3) {\n    if (1 < param_2) {\n      *(int *)(param_1 + 0x20) = DAT_00088c5c;\n      *(undefined4 *)(param_1 + 0x24) = 0;\n      *(uint *)(param_1 + 0x48) = param_2 - 1;\n    }\n    FUN_0003f680(DAT_0008973c,iVar1);\n    return;\n  }\n                    \n  FUN_0002be80("../../gas/read.c",0x2a4,"finish_bundle",param_1);\n}\n\n" (function_definition "void __regparm3 FUN_0002d340(int param_1,uint param_2)\n\n{\n  int iVar1;\n  \n  iVar1 = DAT_00088c5c;\n  if (DAT_00088c5c == 0) {\n                    \n    FUN_0002be80("../../gas/read.c",0x2a3,"finish_bundle",param_2);\n  }\n  if (*(int *)(param_1 + 0x44) == 3) {\n    if (1 < param_2) {\n      *(int *)(param_1 + 0x20) = DAT_00088c5c;\n      *(undefined4 *)(param_1 + 0x24) = 0;\n      *(uint *)(param_1 + 0x48) = param_2 - 1;\n    }\n    FUN_0003f680(DAT_0008973c,iVar1);\n    return;\n  }\n                    \n  FUN_0002be80("../../gas/read.c",0x2a4,"finish_bundle",param_1);\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0002d340(int param_1,uint param_2)" identifier (parameter_list "(int param_1,uint param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  \n  iVar1 = DAT_00088c5c;\n  if (DAT_00088c5c == 0) {\n                    \n    FUN_0002be80("../../gas/read.c",0x2a3,"finish_bundle",param_2);\n  }\n  if (*(int *)(param_1 + 0x44) == 3) {\n    if (1 < param_2) {\n      *(int *)(param_1 + 0x20) = DAT_00088c5c;\n      *(undefined4 *)(param_1 + 0x24) = 0;\n      *(uint *)(param_1 + 0x48) = param_2 - 1;\n    }\n    FUN_0003f680(DAT_0008973c,iVar1);\n    return;\n  }\n                    \n  FUN_0002be80("../../gas/read.c",0x2a4,"finish_bundle",param_1);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (expression_statement "iVar1 = DAT_00088c5c;" (assignment_expression "iVar1 = DAT_00088c5c" identifier = identifier) ;) (if_statement "if (DAT_00088c5c == 0) {\n                    \n    FUN_0002be80("../../gas/read.c",0x2a3,"finish_bundle",param_2);\n  }" if (parenthesized_expression "(DAT_00088c5c == 0)" ( (binary_expression "DAT_00088c5c == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    FUN_0002be80("../../gas/read.c",0x2a3,"finish_bundle",param_2);\n  }" { (expression_statement "FUN_0002be80("../../gas/read.c",0x2a3,"finish_bundle",param_2);" (call_expression "FUN_0002be80("../../gas/read.c",0x2a3,"finish_bundle",param_2)" identifier (argument_list "("../../gas/read.c",0x2a3,"finish_bundle",param_2)" ( (string_literal ""../../gas/read.c"" " string_content ") , number_literal , (string_literal ""finish_bundle"" " string_content ") , identifier ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x44) == 3) {\n    if (1 < param_2) {\n      *(int *)(param_1 + 0x20) = DAT_00088c5c;\n      *(undefined4 *)(param_1 + 0x24) = 0;\n      *(uint *)(param_1 + 0x48) = param_2 - 1;\n    }\n    FUN_0003f680(DAT_0008973c,iVar1);\n    return;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x44) == 3)" ( (binary_expression "*(int *)(param_1 + 0x44) == 3" (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    if (1 < param_2) {\n      *(int *)(param_1 + 0x20) = DAT_00088c5c;\n      *(undefined4 *)(param_1 + 0x24) = 0;\n      *(uint *)(param_1 + 0x48) = param_2 - 1;\n    }\n    FUN_0003f680(DAT_0008973c,iVar1);\n    return;\n  }" { (if_statement "if (1 < param_2) {\n      *(int *)(param_1 + 0x20) = DAT_00088c5c;\n      *(undefined4 *)(param_1 + 0x24) = 0;\n      *(uint *)(param_1 + 0x48) = param_2 - 1;\n    }" if (parenthesized_expression "(1 < param_2)" ( (binary_expression "1 < param_2" number_literal < identifier) )) (compound_statement "{\n      *(int *)(param_1 + 0x20) = DAT_00088c5c;\n      *(undefined4 *)(param_1 + 0x24) = 0;\n      *(uint *)(param_1 + 0x48) = param_2 - 1;\n    }" { (expression_statement "*(int *)(param_1 + 0x20) = DAT_00088c5c;" (assignment_expression "*(int *)(param_1 + 0x20) = DAT_00088c5c" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x24) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x24)" * (cast_expression "(undefined4 *)(param_1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(param_1 + 0x48) = param_2 - 1;" (assignment_expression "*(uint *)(param_1 + 0x48) = param_2 - 1" (pointer_expression "*(uint *)(param_1 + 0x48)" * (cast_expression "(uint *)(param_1 + 0x48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) = (binary_expression "param_2 - 1" identifier - number_literal)) ;) })) (expression_statement "FUN_0003f680(DAT_0008973c,iVar1);" (call_expression "FUN_0003f680(DAT_0008973c,iVar1)" identifier (argument_list "(DAT_0008973c,iVar1)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_0002be80("../../gas/read.c",0x2a4,"finish_bundle",param_1);" (call_expression "FUN_0002be80("../../gas/read.c",0x2a4,"finish_bundle",param_1)" identifier (argument_list "("../../gas/read.c",0x2a4,"finish_bundle",param_1)" ( (string_literal ""../../gas/read.c"" " string_content ") , number_literal , (string_literal ""finish_bundle"" " string_content ") , identifier ))) ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = 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 ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT - LIT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })))
(function_definition "void __regparm3 FUN_0002d340(int param_1,uint param_2)\n\n{\n  int iVar1;\n  \n  iVar1 = DAT_00088c5c;\n  if (DAT_00088c5c == 0) {\n                    \n    FUN_0002be80("../../gas/read.c",0x2a3,"finish_bundle",param_2);\n  }\n  if (*(int *)(param_1 + 0x44) == 3) {\n    if (1 < param_2) {\n      *(int *)(param_1 + 0x20) = DAT_00088c5c;\n      *(undefined4 *)(param_1 + 0x24) = 0;\n      *(uint *)(param_1 + 0x48) = param_2 - 1;\n    }\n    FUN_0003f680(DAT_0008973c,iVar1);\n    return;\n  }\n                    \n  FUN_0002be80("../../gas/read.c",0x2a4,"finish_bundle",param_1);\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0002d340(int param_1,uint param_2)" (identifier "FUN_0002d340") (parameter_list "(int param_1,uint param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) () ")"))) (compound_statement "{\n  int iVar1;\n  \n  iVar1 = DAT_00088c5c;\n  if (DAT_00088c5c == 0) {\n                    \n    FUN_0002be80("../../gas/read.c",0x2a3,"finish_bundle",param_2);\n  }\n  if (*(int *)(param_1 + 0x44) == 3) {\n    if (1 < param_2) {\n      *(int *)(param_1 + 0x20) = DAT_00088c5c;\n      *(undefined4 *)(param_1 + 0x24) = 0;\n      *(uint *)(param_1 + 0x48) = param_2 - 1;\n    }\n    FUN_0003f680(DAT_0008973c,iVar1);\n    return;\n  }\n                    \n  FUN_0002be80("../../gas/read.c",0x2a4,"finish_bundle",param_1);\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (expression_statement "iVar1 = DAT_00088c5c;" (assignment_expression "iVar1 = DAT_00088c5c" (identifier "iVar1") (= "=") (identifier "DAT_00088c5c")) (; ";")) (if_statement "if (DAT_00088c5c == 0) {\n                    \n    FUN_0002be80("../../gas/read.c",0x2a3,"finish_bundle",param_2);\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",0x2a3,"finish_bundle",param_2);\n  }" ({ "{") (expression_statement "FUN_0002be80("../../gas/read.c",0x2a3,"finish_bundle",param_2);" (call_expression "FUN_0002be80("../../gas/read.c",0x2a3,"finish_bundle",param_2)" (identifier "FUN_0002be80") (argument_list "("../../gas/read.c",0x2a3,"finish_bundle",param_2)" (( "(") (string_literal ""../../gas/read.c"" (" """) (string_content "../../gas/read.c") (" """)) (, ",") (number_literal "0x2a3") (, ",") (string_literal ""finish_bundle"" (" """) (string_content "finish_bundle") (" """)) (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x44) == 3) {\n    if (1 < param_2) {\n      *(int *)(param_1 + 0x20) = DAT_00088c5c;\n      *(undefined4 *)(param_1 + 0x24) = 0;\n      *(uint *)(param_1 + 0x48) = param_2 - 1;\n    }\n    FUN_0003f680(DAT_0008973c,iVar1);\n    return;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x44) == 3)" (( "(") (binary_expression "*(int *)(param_1 + 0x44) == 3" (pointer_expression "*(int *)(param_1 + 0x44)" (* "*") (cast_expression "(int *)(param_1 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")")))) (== "==") (number_literal "3")) () ")")) (compound_statement "{\n    if (1 < param_2) {\n      *(int *)(param_1 + 0x20) = DAT_00088c5c;\n      *(undefined4 *)(param_1 + 0x24) = 0;\n      *(uint *)(param_1 + 0x48) = param_2 - 1;\n    }\n    FUN_0003f680(DAT_0008973c,iVar1);\n    return;\n  }" ({ "{") (if_statement "if (1 < param_2) {\n      *(int *)(param_1 + 0x20) = DAT_00088c5c;\n      *(undefined4 *)(param_1 + 0x24) = 0;\n      *(uint *)(param_1 + 0x48) = param_2 - 1;\n    }" (if "if") (parenthesized_expression "(1 < param_2)" (( "(") (binary_expression "1 < param_2" (number_literal "1") (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n      *(int *)(param_1 + 0x20) = DAT_00088c5c;\n      *(undefined4 *)(param_1 + 0x24) = 0;\n      *(uint *)(param_1 + 0x48) = param_2 - 1;\n    }" ({ "{") (expression_statement "*(int *)(param_1 + 0x20) = DAT_00088c5c;" (assignment_expression "*(int *)(param_1 + 0x20) = DAT_00088c5c" (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "DAT_00088c5c")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x24) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x24)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(uint *)(param_1 + 0x48) = param_2 - 1;" (assignment_expression "*(uint *)(param_1 + 0x48) = param_2 - 1" (pointer_expression "*(uint *)(param_1 + 0x48)" (* "*") (cast_expression "(uint *)(param_1 + 0x48)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (binary_expression "param_2 - 1" (identifier "param_2") (- "-") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "FUN_0003f680(DAT_0008973c,iVar1);" (call_expression "FUN_0003f680(DAT_0008973c,iVar1)" (identifier "FUN_0003f680") (argument_list "(DAT_0008973c,iVar1)" (( "(") (identifier "DAT_0008973c") (, ",") (identifier "iVar1") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_0002be80("../../gas/read.c",0x2a4,"finish_bundle",param_1);" (call_expression "FUN_0002be80("../../gas/read.c",0x2a4,"finish_bundle",param_1)" (identifier "FUN_0002be80") (argument_list "("../../gas/read.c",0x2a4,"finish_bundle",param_1)" (( "(") (string_literal ""../../gas/read.c"" (" """) (string_content "../../gas/read.c") (" """)) (, ",") (number_literal "0x2a4") (, ",") (string_literal ""finish_bundle"" (" """) (string_content "finish_bundle") (" """)) (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}")))

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

void __regparm3 function_1(type_1 *frag,type_2 var_4)

{
  type_2 align;
  
  align = var_1;
  if (var_1 == 0) {
                    /* WARNING: Subroutine does not return */
    var_2("../../gas/read.c",0x2a3,"finish_bundle");
  }
  if (frag->fr_type == var_3) {
    if (1 < var_4) {
      *(type_2 *)&frag->fr_offset = var_1;
      *(type_3 *)((int)&frag->fr_offset + 4) = 0;
      frag->fr_subtype = var_4 - 1;
    }
    var_5(now_seg,align);
    return;
  }
                    /* WARNING: Subroutine does not return */
  var_2("../../gas/read.c",0x2a4,"finish_bundle");
}


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

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

void __regparm3 MASKED(int param_1,uint param_2)

{
  int iVar1;
  
  iVar1 = DAT_00088c5c;
  if (DAT_00088c5c == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0002be80("../../gas/read.c",0x2a3,"finish_bundle",param_2);
  }
  if (*(int *)(param_1 + 0x44) == 3) {
    if (1 < param_2) {
      *(int *)(param_1 + 0x20) = DAT_00088c5c;
      *(undefined4 *)(param_1 + 0x24) = 0;
      *(uint *)(param_1 + 0x48) = param_2 - 1;
    }
    FUN_0003f680(DAT_0008973c,iVar1);
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0002be80("../../gas/read.c",0x2a4,"finish_bundle",param_1);
}

