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

void do_repeat(size_t count,char *start,char *end)

{
  int iVar1;
  char *pcVar2;
  sb one;
  sb many;
  
  if ((int)count < 0) {
    pcVar2 = (char *)dcgettext(0,"negative count for %s - ignored",5);
    as_bad(pcVar2,start);
    sb_new(&one);
    iVar1 = buffer_and_nest(start,end,&one,get_non_macro_line_sb);
    if (iVar1 == 0) goto LAB_0002dd25;
    sb_build(&many,0);
  }
  else {
    sb_new(&one);
    iVar1 = buffer_and_nest(start,end,&one,get_non_macro_line_sb);
    if (iVar1 == 0) {
LAB_0002dd25:
      pcVar2 = (char *)dcgettext(0,"%s without %s",5);
      as_bad(pcVar2,start,end);
      return;
    }
    sb_build(&many,count * one.len);
    iVar1 = count - 1;
    if (count != 0) {
      do {
        iVar1 = iVar1 + -1;
        sb_add_sb(&many,&one);
      } while (iVar1 != -1);
    }
  }
  sb_kill(&one);
  input_scrub_include_sb(&many,input_line_pointer,1);
  sb_kill(&many);
  buffer_limit = input_scrub_next_buffer(&input_line_pointer);
  return;
}



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

void FUN_0002dc10(int param_1,undefined4 param_2,undefined4 param_3)

{
  int iVar1;
  undefined4 uVar2;
  undefined1 local_34 [4];
  int local_30;
  undefined1 local_28 [20];
  undefined4 uStack_14;
  
  uStack_14 = 0x2dc19;
  if (param_1 < 0) {
    uVar2 = dcgettext(0,"negative count for %s - ignored",5);
    FUN_0002bd30(uVar2,param_2);
    FUN_000352f0(local_34);
    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);
    if (iVar1 == 0) goto LAB_0002dd25;
    FUN_000352b0(local_28,0);
  }
  else {
    FUN_000352f0(local_34);
    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);
    if (iVar1 == 0) {
LAB_0002dd25:
      uVar2 = dcgettext(0,"%s without %s",5);
      FUN_0002bd30(uVar2,param_2,param_3);
      return;
    }
    FUN_000352b0(local_28,param_1 * local_30);
    iVar1 = param_1 + -1;
    if (param_1 != 0) {
      do {
        iVar1 = iVar1 + -1;
        FUN_00035350(local_28,local_34);
      } while (iVar1 != -1);
    }
  }
  FUN_00035330(local_34);
  FUN_00025f40(local_28,DAT_00077ef8,1);
  FUN_00035330(local_28);
  DAT_00077a14 = FUN_00026070(&DAT_00077ef8);
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00016090
ADD EBX,0x413e7
SUB ESP,0x2c
MOV EAX,dword ptr [ESP + 0x40]
MOV EBP,dword ptr [ESP + 0x44]
MOV EDI,dword ptr [ESP + 0x48]
TEST EAX,EAX
JS 0x0002dce8
SUB ESP,0xc
LEA ESI,[ESP + 0x14]
PUSH ESI
CALL 0x000352f0
LEA EAX,[EBX + 0xfffbdf00]
PUSH EAX
PUSH ESI
PUSH EDI
PUSH EBP
CALL 0x0002a3b0
ADD ESP,0x20
TEST EAX,EAX
JZ 0x0002dd25
SUB ESP,0x8
MOV EAX,dword ptr [ESP + 0x48]
IMUL EAX,dword ptr [ESP + 0x14]
PUSH EAX
LEA EBP,[ESP + 0x20]
PUSH EBP
CALL 0x000352b0
MOV EAX,dword ptr [ESP + 0x50]
ADD ESP,0x10
LEA EDI,[EAX + -0x1]
MOV EAX,dword ptr [ESP + 0x40]
TEST EAX,EAX
JZ 0x0002dca5
LEA ESI,[ESI]
LEA ESI,[ESI]
SUB ESP,0x8
SUB EDI,0x1
PUSH ESI
PUSH EBP
CALL 0x00035350
ADD ESP,0x10
CMP EDI,-0x1
JNZ 0x0002dc90
SUB ESP,0xc
PUSH ESI
CALL 0x00035330
LEA ESI,[EBX + 0x8ef8]
ADD ESP,0xc
PUSH 0x1
PUSH dword ptr [ESI]
PUSH EBP
CALL 0x00025f40
MOV dword ptr [ESP],EBP
CALL 0x00035330
MOV dword ptr [ESP],ESI
CALL 0x00026070
ADD ESP,0x10
MOV dword ptr [EBX + 0x8a14],EAX
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe37ac]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141c0
POP EDX
POP ECX
PUSH EBP
PUSH EAX
CALL 0x0002bd30
POP ESI
LEA ESI,[ESP + 0x14]
PUSH ESI
CALL 0x000352f0
LEA EAX,[EBX + 0xfffbdf00]
PUSH EAX
PUSH ESI
PUSH EDI
PUSH EBP
CALL 0x0002a3b0
ADD ESP,0x20
TEST EAX,EAX
JNZ 0x0002dd50
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe4171]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141c0
ADD ESP,0xc
PUSH EDI
PUSH EBP
PUSH EAX
CALL 0x0002bd30
ADD ESP,0x10
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x8
PUSH 0x0
LEA EBP,[ESP + 0x20]
PUSH EBP
CALL 0x000352b0
ADD ESP,0x10
JMP 0x0002dca5
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_0002dc10(int param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined1 local_34 [4];\n  int local_30;\n  undefined1 local_28 [20];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2dc19;\n  if (param_1 < 0) {\n    uVar2 = dcgettext(0,"negative count for %s - ignored",5);\n    FUN_0002bd30(uVar2,param_2);\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) goto LAB_0002dd25;\n    FUN_000352b0(local_28,0);\n  }\n  else {\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) {\nLAB_0002dd25:\n      uVar2 = dcgettext(0,"%s without %s",5);\n      FUN_0002bd30(uVar2,param_2,param_3);\n      return;\n    }\n    FUN_000352b0(local_28,param_1 * local_30);\n    iVar1 = param_1 + -1;\n    if (param_1 != 0) {\n      do {\n        iVar1 = iVar1 + -1;\n        FUN_00035350(local_28,local_34);\n      } while (iVar1 != -1);\n    }\n  }\n  FUN_00035330(local_34);\n  FUN_00025f40(local_28,DAT_00077ef8,1);\n  FUN_00035330(local_28);\n  DAT_00077a14 = FUN_00026070(&DAT_00077ef8);\n  return;\n}\n\n" comment (function_definition "void FUN_0002dc10(int param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined1 local_34 [4];\n  int local_30;\n  undefined1 local_28 [20];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2dc19;\n  if (param_1 < 0) {\n    uVar2 = dcgettext(0,"negative count for %s - ignored",5);\n    FUN_0002bd30(uVar2,param_2);\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) goto LAB_0002dd25;\n    FUN_000352b0(local_28,0);\n  }\n  else {\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) {\nLAB_0002dd25:\n      uVar2 = dcgettext(0,"%s without %s",5);\n      FUN_0002bd30(uVar2,param_2,param_3);\n      return;\n    }\n    FUN_000352b0(local_28,param_1 * local_30);\n    iVar1 = param_1 + -1;\n    if (param_1 != 0) {\n      do {\n        iVar1 = iVar1 + -1;\n        FUN_00035350(local_28,local_34);\n      } while (iVar1 != -1);\n    }\n  }\n  FUN_00035330(local_34);\n  FUN_00025f40(local_28,DAT_00077ef8,1);\n  FUN_00035330(local_28);\n  DAT_00077a14 = FUN_00026070(&DAT_00077ef8);\n  return;\n}" primitive_type (function_declarator "FUN_0002dc10(int param_1,undefined4 param_2,undefined4 param_3)" identifier (parameter_list "(int param_1,undefined4 param_2,undefined4 param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  undefined1 local_34 [4];\n  int local_30;\n  undefined1 local_28 [20];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2dc19;\n  if (param_1 < 0) {\n    uVar2 = dcgettext(0,"negative count for %s - ignored",5);\n    FUN_0002bd30(uVar2,param_2);\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) goto LAB_0002dd25;\n    FUN_000352b0(local_28,0);\n  }\n  else {\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) {\nLAB_0002dd25:\n      uVar2 = dcgettext(0,"%s without %s",5);\n      FUN_0002bd30(uVar2,param_2,param_3);\n      return;\n    }\n    FUN_000352b0(local_28,param_1 * local_30);\n    iVar1 = param_1 + -1;\n    if (param_1 != 0) {\n      do {\n        iVar1 = iVar1 + -1;\n        FUN_00035350(local_28,local_34);\n      } while (iVar1 != -1);\n    }\n  }\n  FUN_00035330(local_34);\n  FUN_00025f40(local_28,DAT_00077ef8,1);\n  FUN_00035330(local_28);\n  DAT_00077a14 = FUN_00026070(&DAT_00077ef8);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined1 local_34 [4];" type_identifier (array_declarator "local_34 [4]" identifier [ number_literal ]) ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "undefined1 local_28 [20];" type_identifier (array_declarator "local_28 [20]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x2dc19;" (assignment_expression "uStack_14 = 0x2dc19" identifier = number_literal) ;) (if_statement "if (param_1 < 0) {\n    uVar2 = dcgettext(0,"negative count for %s - ignored",5);\n    FUN_0002bd30(uVar2,param_2);\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) goto LAB_0002dd25;\n    FUN_000352b0(local_28,0);\n  }\n  else {\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) {\nLAB_0002dd25:\n      uVar2 = dcgettext(0,"%s without %s",5);\n      FUN_0002bd30(uVar2,param_2,param_3);\n      return;\n    }\n    FUN_000352b0(local_28,param_1 * local_30);\n    iVar1 = param_1 + -1;\n    if (param_1 != 0) {\n      do {\n        iVar1 = iVar1 + -1;\n        FUN_00035350(local_28,local_34);\n      } while (iVar1 != -1);\n    }\n  }" if (parenthesized_expression "(param_1 < 0)" ( (binary_expression "param_1 < 0" identifier < number_literal) )) (compound_statement "{\n    uVar2 = dcgettext(0,"negative count for %s - ignored",5);\n    FUN_0002bd30(uVar2,param_2);\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) goto LAB_0002dd25;\n    FUN_000352b0(local_28,0);\n  }" { (expression_statement "uVar2 = dcgettext(0,"negative count for %s - ignored",5);" (assignment_expression "uVar2 = dcgettext(0,"negative count for %s - ignored",5)" identifier = (call_expression "dcgettext(0,"negative count for %s - ignored",5)" identifier (argument_list "(0,"negative count for %s - ignored",5)" ( number_literal , (string_literal ""negative count for %s - ignored"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bd30(uVar2,param_2);" (call_expression "FUN_0002bd30(uVar2,param_2)" identifier (argument_list "(uVar2,param_2)" ( identifier , identifier ))) ;) (expression_statement "FUN_000352f0(local_34);" (call_expression "FUN_000352f0(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) (expression_statement "iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);" (assignment_expression "iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00)" identifier = (call_expression "FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00)" identifier (argument_list "(param_2,param_3,local_34,FUN_0002cf00)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar1 == 0) goto LAB_0002dd25;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002dd25;" goto statement_identifier ;)) (expression_statement "FUN_000352b0(local_28,0);" (call_expression "FUN_000352b0(local_28,0)" identifier (argument_list "(local_28,0)" ( identifier , number_literal ))) ;) }) (else_clause "else {\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) {\nLAB_0002dd25:\n      uVar2 = dcgettext(0,"%s without %s",5);\n      FUN_0002bd30(uVar2,param_2,param_3);\n      return;\n    }\n    FUN_000352b0(local_28,param_1 * local_30);\n    iVar1 = param_1 + -1;\n    if (param_1 != 0) {\n      do {\n        iVar1 = iVar1 + -1;\n        FUN_00035350(local_28,local_34);\n      } while (iVar1 != -1);\n    }\n  }" else (compound_statement "{\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) {\nLAB_0002dd25:\n      uVar2 = dcgettext(0,"%s without %s",5);\n      FUN_0002bd30(uVar2,param_2,param_3);\n      return;\n    }\n    FUN_000352b0(local_28,param_1 * local_30);\n    iVar1 = param_1 + -1;\n    if (param_1 != 0) {\n      do {\n        iVar1 = iVar1 + -1;\n        FUN_00035350(local_28,local_34);\n      } while (iVar1 != -1);\n    }\n  }" { (expression_statement "FUN_000352f0(local_34);" (call_expression "FUN_000352f0(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) (expression_statement "iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);" (assignment_expression "iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00)" identifier = (call_expression "FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00)" identifier (argument_list "(param_2,param_3,local_34,FUN_0002cf00)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar1 == 0) {\nLAB_0002dd25:\n      uVar2 = dcgettext(0,"%s without %s",5);\n      FUN_0002bd30(uVar2,param_2,param_3);\n      return;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0002dd25:\n      uVar2 = dcgettext(0,"%s without %s",5);\n      FUN_0002bd30(uVar2,param_2,param_3);\n      return;\n    }" { (labeled_statement "LAB_0002dd25:\n      uVar2 = dcgettext(0,"%s without %s",5);" statement_identifier : (expression_statement "uVar2 = dcgettext(0,"%s without %s",5);" (assignment_expression "uVar2 = dcgettext(0,"%s without %s",5)" identifier = (call_expression "dcgettext(0,"%s without %s",5)" identifier (argument_list "(0,"%s without %s",5)" ( number_literal , (string_literal ""%s without %s"" " string_content ") , number_literal )))) ;)) (expression_statement "FUN_0002bd30(uVar2,param_2,param_3);" (call_expression "FUN_0002bd30(uVar2,param_2,param_3)" identifier (argument_list "(uVar2,param_2,param_3)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_000352b0(local_28,param_1 * local_30);" (call_expression "FUN_000352b0(local_28,param_1 * local_30)" identifier (argument_list "(local_28,param_1 * local_30)" ( identifier , (binary_expression "param_1 * local_30" identifier * identifier) ))) ;) (expression_statement "iVar1 = param_1 + -1;" (assignment_expression "iVar1 = param_1 + -1" identifier = (binary_expression "param_1 + -1" identifier + number_literal)) ;) (if_statement "if (param_1 != 0) {\n      do {\n        iVar1 = iVar1 + -1;\n        FUN_00035350(local_28,local_34);\n      } while (iVar1 != -1);\n    }" if (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) (compound_statement "{\n      do {\n        iVar1 = iVar1 + -1;\n        FUN_00035350(local_28,local_34);\n      } while (iVar1 != -1);\n    }" { (do_statement "do {\n        iVar1 = iVar1 + -1;\n        FUN_00035350(local_28,local_34);\n      } while (iVar1 != -1);" do (compound_statement "{\n        iVar1 = iVar1 + -1;\n        FUN_00035350(local_28,local_34);\n      }" { (expression_statement "iVar1 = iVar1 + -1;" (assignment_expression "iVar1 = iVar1 + -1" identifier = (binary_expression "iVar1 + -1" identifier + number_literal)) ;) (expression_statement "FUN_00035350(local_28,local_34);" (call_expression "FUN_00035350(local_28,local_34)" identifier (argument_list "(local_28,local_34)" ( identifier , identifier ))) ;) }) while (parenthesized_expression "(iVar1 != -1)" ( (binary_expression "iVar1 != -1" identifier != number_literal) )) ;) })) }))) (expression_statement "FUN_00035330(local_34);" (call_expression "FUN_00035330(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) (expression_statement "FUN_00025f40(local_28,DAT_00077ef8,1);" (call_expression "FUN_00025f40(local_28,DAT_00077ef8,1)" identifier (argument_list "(local_28,DAT_00077ef8,1)" ( identifier , identifier , number_literal ))) ;) (expression_statement "FUN_00035330(local_28);" (call_expression "FUN_00035330(local_28)" identifier (argument_list "(local_28)" ( identifier ))) ;) (expression_statement "DAT_00077a14 = FUN_00026070(&DAT_00077ef8);" (assignment_expression "DAT_00077a14 = FUN_00026070(&DAT_00077ef8)" identifier = (call_expression "FUN_00026070(&DAT_00077ef8)" identifier (argument_list "(&DAT_00077ef8)" ( (pointer_expression "&DAT_00077ef8" & identifier) )))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid do_repeat(size_t count,char *start,char *end)\n\n{\n  int iVar1;\n  char *pcVar2;\n  sb one;\n  sb many;\n  \n  if ((int)count < 0) {\n    pcVar2 = (char *)dcgettext(0,"negative count for %s - ignored",5);\n    as_bad(pcVar2,start);\n    sb_new(&one);\n    iVar1 = buffer_and_nest(start,end,&one,get_non_macro_line_sb);\n    if (iVar1 == 0) goto LAB_0002dd25;\n    sb_build(&many,0);\n  }\n  else {\n    sb_new(&one);\n    iVar1 = buffer_and_nest(start,end,&one,get_non_macro_line_sb);\n    if (iVar1 == 0) {\nLAB_0002dd25:\n      pcVar2 = (char *)dcgettext(0,"%s without %s",5);\n      as_bad(pcVar2,start,end);\n      return;\n    }\n    sb_build(&many,count * one.len);\n    iVar1 = count - 1;\n    if (count != 0) {\n      do {\n        iVar1 = iVar1 + -1;\n        sb_add_sb(&many,&one);\n      } while (iVar1 != -1);\n    }\n  }\n  sb_kill(&one);\n  input_scrub_include_sb(&many,input_line_pointer,1);\n  sb_kill(&many);\n  buffer_limit = input_scrub_next_buffer(&input_line_pointer);\n  return;\n}\n\n" comment (function_definition "void do_repeat(size_t count,char *start,char *end)\n\n{\n  int iVar1;\n  char *pcVar2;\n  sb one;\n  sb many;\n  \n  if ((int)count < 0) {\n    pcVar2 = (char *)dcgettext(0,"negative count for %s - ignored",5);\n    as_bad(pcVar2,start);\n    sb_new(&one);\n    iVar1 = buffer_and_nest(start,end,&one,get_non_macro_line_sb);\n    if (iVar1 == 0) goto LAB_0002dd25;\n    sb_build(&many,0);\n  }\n  else {\n    sb_new(&one);\n    iVar1 = buffer_and_nest(start,end,&one,get_non_macro_line_sb);\n    if (iVar1 == 0) {\nLAB_0002dd25:\n      pcVar2 = (char *)dcgettext(0,"%s without %s",5);\n      as_bad(pcVar2,start,end);\n      return;\n    }\n    sb_build(&many,count * one.len);\n    iVar1 = count - 1;\n    if (count != 0) {\n      do {\n        iVar1 = iVar1 + -1;\n        sb_add_sb(&many,&one);\n      } while (iVar1 != -1);\n    }\n  }\n  sb_kill(&one);\n  input_scrub_include_sb(&many,input_line_pointer,1);\n  sb_kill(&many);\n  buffer_limit = input_scrub_next_buffer(&input_line_pointer);\n  return;\n}" primitive_type (function_declarator "do_repeat(size_t count,char *start,char *end)" identifier (parameter_list "(size_t count,char *start,char *end)" ( (parameter_declaration "size_t count" primitive_type identifier) , (parameter_declaration "char *start" primitive_type (pointer_declarator "*start" * identifier)) , (parameter_declaration "char *end" primitive_type (pointer_declarator "*end" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  char *pcVar2;\n  sb one;\n  sb many;\n  \n  if ((int)count < 0) {\n    pcVar2 = (char *)dcgettext(0,"negative count for %s - ignored",5);\n    as_bad(pcVar2,start);\n    sb_new(&one);\n    iVar1 = buffer_and_nest(start,end,&one,get_non_macro_line_sb);\n    if (iVar1 == 0) goto LAB_0002dd25;\n    sb_build(&many,0);\n  }\n  else {\n    sb_new(&one);\n    iVar1 = buffer_and_nest(start,end,&one,get_non_macro_line_sb);\n    if (iVar1 == 0) {\nLAB_0002dd25:\n      pcVar2 = (char *)dcgettext(0,"%s without %s",5);\n      as_bad(pcVar2,start,end);\n      return;\n    }\n    sb_build(&many,count * one.len);\n    iVar1 = count - 1;\n    if (count != 0) {\n      do {\n        iVar1 = iVar1 + -1;\n        sb_add_sb(&many,&one);\n      } while (iVar1 != -1);\n    }\n  }\n  sb_kill(&one);\n  input_scrub_include_sb(&many,input_line_pointer,1);\n  sb_kill(&many);\n  buffer_limit = input_scrub_next_buffer(&input_line_pointer);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "sb one;" type_identifier identifier ;) (declaration "sb many;" type_identifier identifier ;) (if_statement "if ((int)count < 0) {\n    pcVar2 = (char *)dcgettext(0,"negative count for %s - ignored",5);\n    as_bad(pcVar2,start);\n    sb_new(&one);\n    iVar1 = buffer_and_nest(start,end,&one,get_non_macro_line_sb);\n    if (iVar1 == 0) goto LAB_0002dd25;\n    sb_build(&many,0);\n  }\n  else {\n    sb_new(&one);\n    iVar1 = buffer_and_nest(start,end,&one,get_non_macro_line_sb);\n    if (iVar1 == 0) {\nLAB_0002dd25:\n      pcVar2 = (char *)dcgettext(0,"%s without %s",5);\n      as_bad(pcVar2,start,end);\n      return;\n    }\n    sb_build(&many,count * one.len);\n    iVar1 = count - 1;\n    if (count != 0) {\n      do {\n        iVar1 = iVar1 + -1;\n        sb_add_sb(&many,&one);\n      } while (iVar1 != -1);\n    }\n  }" if (parenthesized_expression "((int)count < 0)" ( (binary_expression "(int)count < 0" (cast_expression "(int)count" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    pcVar2 = (char *)dcgettext(0,"negative count for %s - ignored",5);\n    as_bad(pcVar2,start);\n    sb_new(&one);\n    iVar1 = buffer_and_nest(start,end,&one,get_non_macro_line_sb);\n    if (iVar1 == 0) goto LAB_0002dd25;\n    sb_build(&many,0);\n  }" { (expression_statement "pcVar2 = (char *)dcgettext(0,"negative count for %s - ignored",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"negative count for %s - ignored",5)" identifier = (cast_expression "(char *)dcgettext(0,"negative count for %s - ignored",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"negative count for %s - ignored",5)" identifier (argument_list "(0,"negative count for %s - ignored",5)" ( number_literal , (string_literal ""negative count for %s - ignored"" " string_content ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar2,start);" (call_expression "as_bad(pcVar2,start)" identifier (argument_list "(pcVar2,start)" ( identifier , identifier ))) ;) (expression_statement "sb_new(&one);" (call_expression "sb_new(&one)" identifier (argument_list "(&one)" ( (pointer_expression "&one" & identifier) ))) ;) (expression_statement "iVar1 = buffer_and_nest(start,end,&one,get_non_macro_line_sb);" (assignment_expression "iVar1 = buffer_and_nest(start,end,&one,get_non_macro_line_sb)" identifier = (call_expression "buffer_and_nest(start,end,&one,get_non_macro_line_sb)" identifier (argument_list "(start,end,&one,get_non_macro_line_sb)" ( identifier , identifier , (pointer_expression "&one" & identifier) , identifier )))) ;) (if_statement "if (iVar1 == 0) goto LAB_0002dd25;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002dd25;" goto statement_identifier ;)) (expression_statement "sb_build(&many,0);" (call_expression "sb_build(&many,0)" identifier (argument_list "(&many,0)" ( (pointer_expression "&many" & identifier) , number_literal ))) ;) }) (else_clause "else {\n    sb_new(&one);\n    iVar1 = buffer_and_nest(start,end,&one,get_non_macro_line_sb);\n    if (iVar1 == 0) {\nLAB_0002dd25:\n      pcVar2 = (char *)dcgettext(0,"%s without %s",5);\n      as_bad(pcVar2,start,end);\n      return;\n    }\n    sb_build(&many,count * one.len);\n    iVar1 = count - 1;\n    if (count != 0) {\n      do {\n        iVar1 = iVar1 + -1;\n        sb_add_sb(&many,&one);\n      } while (iVar1 != -1);\n    }\n  }" else (compound_statement "{\n    sb_new(&one);\n    iVar1 = buffer_and_nest(start,end,&one,get_non_macro_line_sb);\n    if (iVar1 == 0) {\nLAB_0002dd25:\n      pcVar2 = (char *)dcgettext(0,"%s without %s",5);\n      as_bad(pcVar2,start,end);\n      return;\n    }\n    sb_build(&many,count * one.len);\n    iVar1 = count - 1;\n    if (count != 0) {\n      do {\n        iVar1 = iVar1 + -1;\n        sb_add_sb(&many,&one);\n      } while (iVar1 != -1);\n    }\n  }" { (expression_statement "sb_new(&one);" (call_expression "sb_new(&one)" identifier (argument_list "(&one)" ( (pointer_expression "&one" & identifier) ))) ;) (expression_statement "iVar1 = buffer_and_nest(start,end,&one,get_non_macro_line_sb);" (assignment_expression "iVar1 = buffer_and_nest(start,end,&one,get_non_macro_line_sb)" identifier = (call_expression "buffer_and_nest(start,end,&one,get_non_macro_line_sb)" identifier (argument_list "(start,end,&one,get_non_macro_line_sb)" ( identifier , identifier , (pointer_expression "&one" & identifier) , identifier )))) ;) (if_statement "if (iVar1 == 0) {\nLAB_0002dd25:\n      pcVar2 = (char *)dcgettext(0,"%s without %s",5);\n      as_bad(pcVar2,start,end);\n      return;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0002dd25:\n      pcVar2 = (char *)dcgettext(0,"%s without %s",5);\n      as_bad(pcVar2,start,end);\n      return;\n    }" { (labeled_statement "LAB_0002dd25:\n      pcVar2 = (char *)dcgettext(0,"%s without %s",5);" statement_identifier : (expression_statement "pcVar2 = (char *)dcgettext(0,"%s without %s",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"%s without %s",5)" identifier = (cast_expression "(char *)dcgettext(0,"%s without %s",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%s without %s",5)" identifier (argument_list "(0,"%s without %s",5)" ( number_literal , (string_literal ""%s without %s"" " string_content ") , number_literal ))))) ;)) (expression_statement "as_bad(pcVar2,start,end);" (call_expression "as_bad(pcVar2,start,end)" identifier (argument_list "(pcVar2,start,end)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "sb_build(&many,count * one.len);" (call_expression "sb_build(&many,count * one.len)" identifier (argument_list "(&many,count * one.len)" ( (pointer_expression "&many" & identifier) , (binary_expression "count * one.len" identifier * (field_expression "one.len" identifier . field_identifier)) ))) ;) (expression_statement "iVar1 = count - 1;" (assignment_expression "iVar1 = count - 1" identifier = (binary_expression "count - 1" identifier - number_literal)) ;) (if_statement "if (count != 0) {\n      do {\n        iVar1 = iVar1 + -1;\n        sb_add_sb(&many,&one);\n      } while (iVar1 != -1);\n    }" if (parenthesized_expression "(count != 0)" ( (binary_expression "count != 0" identifier != number_literal) )) (compound_statement "{\n      do {\n        iVar1 = iVar1 + -1;\n        sb_add_sb(&many,&one);\n      } while (iVar1 != -1);\n    }" { (do_statement "do {\n        iVar1 = iVar1 + -1;\n        sb_add_sb(&many,&one);\n      } while (iVar1 != -1);" do (compound_statement "{\n        iVar1 = iVar1 + -1;\n        sb_add_sb(&many,&one);\n      }" { (expression_statement "iVar1 = iVar1 + -1;" (assignment_expression "iVar1 = iVar1 + -1" identifier = (binary_expression "iVar1 + -1" identifier + number_literal)) ;) (expression_statement "sb_add_sb(&many,&one);" (call_expression "sb_add_sb(&many,&one)" identifier (argument_list "(&many,&one)" ( (pointer_expression "&many" & identifier) , (pointer_expression "&one" & identifier) ))) ;) }) while (parenthesized_expression "(iVar1 != -1)" ( (binary_expression "iVar1 != -1" identifier != number_literal) )) ;) })) }))) (expression_statement "sb_kill(&one);" (call_expression "sb_kill(&one)" identifier (argument_list "(&one)" ( (pointer_expression "&one" & identifier) ))) ;) (expression_statement "input_scrub_include_sb(&many,input_line_pointer,1);" (call_expression "input_scrub_include_sb(&many,input_line_pointer,1)" identifier (argument_list "(&many,input_line_pointer,1)" ( (pointer_expression "&many" & identifier) , identifier , number_literal ))) ;) (expression_statement "sb_kill(&many);" (call_expression "sb_kill(&many)" identifier (argument_list "(&many)" ( (pointer_expression "&many" & identifier) ))) ;) (expression_statement "buffer_limit = input_scrub_next_buffer(&input_line_pointer);" (assignment_expression "buffer_limit = input_scrub_next_buffer(&input_line_pointer)" identifier = (call_expression "input_scrub_next_buffer(&input_line_pointer)" identifier (argument_list "(&input_line_pointer)" ( (pointer_expression "&input_line_pointer" & identifier) )))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0002dc10(int param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined1 local_34 [4];\n  int local_30;\n  undefined1 local_28 [20];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2dc19;\n  if (param_1 < 0) {\n    uVar2 = dcgettext(0,"negative count for %s - ignored",5);\n    FUN_0002bd30(uVar2,param_2);\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) goto LAB_0002dd25;\n    FUN_000352b0(local_28,0);\n  }\n  else {\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) {\nLAB_0002dd25:\n      uVar2 = dcgettext(0,"%s without %s",5);\n      FUN_0002bd30(uVar2,param_2,param_3);\n      return;\n    }\n    FUN_000352b0(local_28,param_1 * local_30);\n    iVar1 = param_1 + -1;\n    if (param_1 != 0) {\n      do {\n        iVar1 = iVar1 + -1;\n        FUN_00035350(local_28,local_34);\n      } while (iVar1 != -1);\n    }\n  }\n  FUN_00035330(local_34);\n  FUN_00025f40(local_28,DAT_00077ef8,1);\n  FUN_00035330(local_28);\n  DAT_00077a14 = FUN_00026070(&DAT_00077ef8);\n  return;\n}\n\n" (function_definition "void FUN_0002dc10(int param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined1 local_34 [4];\n  int local_30;\n  undefined1 local_28 [20];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2dc19;\n  if (param_1 < 0) {\n    uVar2 = dcgettext(0,"negative count for %s - ignored",5);\n    FUN_0002bd30(uVar2,param_2);\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) goto LAB_0002dd25;\n    FUN_000352b0(local_28,0);\n  }\n  else {\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) {\nLAB_0002dd25:\n      uVar2 = dcgettext(0,"%s without %s",5);\n      FUN_0002bd30(uVar2,param_2,param_3);\n      return;\n    }\n    FUN_000352b0(local_28,param_1 * local_30);\n    iVar1 = param_1 + -1;\n    if (param_1 != 0) {\n      do {\n        iVar1 = iVar1 + -1;\n        FUN_00035350(local_28,local_34);\n      } while (iVar1 != -1);\n    }\n  }\n  FUN_00035330(local_34);\n  FUN_00025f40(local_28,DAT_00077ef8,1);\n  FUN_00035330(local_28);\n  DAT_00077a14 = FUN_00026070(&DAT_00077ef8);\n  return;\n}" primitive_type (function_declarator "FUN_0002dc10(int param_1,undefined4 param_2,undefined4 param_3)" identifier (parameter_list "(int param_1,undefined4 param_2,undefined4 param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  undefined1 local_34 [4];\n  int local_30;\n  undefined1 local_28 [20];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2dc19;\n  if (param_1 < 0) {\n    uVar2 = dcgettext(0,"negative count for %s - ignored",5);\n    FUN_0002bd30(uVar2,param_2);\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) goto LAB_0002dd25;\n    FUN_000352b0(local_28,0);\n  }\n  else {\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) {\nLAB_0002dd25:\n      uVar2 = dcgettext(0,"%s without %s",5);\n      FUN_0002bd30(uVar2,param_2,param_3);\n      return;\n    }\n    FUN_000352b0(local_28,param_1 * local_30);\n    iVar1 = param_1 + -1;\n    if (param_1 != 0) {\n      do {\n        iVar1 = iVar1 + -1;\n        FUN_00035350(local_28,local_34);\n      } while (iVar1 != -1);\n    }\n  }\n  FUN_00035330(local_34);\n  FUN_00025f40(local_28,DAT_00077ef8,1);\n  FUN_00035330(local_28);\n  DAT_00077a14 = FUN_00026070(&DAT_00077ef8);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined1 local_34 [4];" type_identifier (array_declarator "local_34 [4]" identifier [ number_literal ]) ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "undefined1 local_28 [20];" type_identifier (array_declarator "local_28 [20]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x2dc19;" (assignment_expression "uStack_14 = 0x2dc19" identifier = number_literal) ;) (if_statement "if (param_1 < 0) {\n    uVar2 = dcgettext(0,"negative count for %s - ignored",5);\n    FUN_0002bd30(uVar2,param_2);\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) goto LAB_0002dd25;\n    FUN_000352b0(local_28,0);\n  }\n  else {\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) {\nLAB_0002dd25:\n      uVar2 = dcgettext(0,"%s without %s",5);\n      FUN_0002bd30(uVar2,param_2,param_3);\n      return;\n    }\n    FUN_000352b0(local_28,param_1 * local_30);\n    iVar1 = param_1 + -1;\n    if (param_1 != 0) {\n      do {\n        iVar1 = iVar1 + -1;\n        FUN_00035350(local_28,local_34);\n      } while (iVar1 != -1);\n    }\n  }" if (parenthesized_expression "(param_1 < 0)" ( (binary_expression "param_1 < 0" identifier < number_literal) )) (compound_statement "{\n    uVar2 = dcgettext(0,"negative count for %s - ignored",5);\n    FUN_0002bd30(uVar2,param_2);\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) goto LAB_0002dd25;\n    FUN_000352b0(local_28,0);\n  }" { (expression_statement "uVar2 = dcgettext(0,"negative count for %s - ignored",5);" (assignment_expression "uVar2 = dcgettext(0,"negative count for %s - ignored",5)" identifier = (call_expression "dcgettext(0,"negative count for %s - ignored",5)" identifier (argument_list "(0,"negative count for %s - ignored",5)" ( number_literal , (string_literal ""negative count for %s - ignored"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bd30(uVar2,param_2);" (call_expression "FUN_0002bd30(uVar2,param_2)" identifier (argument_list "(uVar2,param_2)" ( identifier , identifier ))) ;) (expression_statement "FUN_000352f0(local_34);" (call_expression "FUN_000352f0(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) (expression_statement "iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);" (assignment_expression "iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00)" identifier = (call_expression "FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00)" identifier (argument_list "(param_2,param_3,local_34,FUN_0002cf00)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar1 == 0) goto LAB_0002dd25;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002dd25;" goto statement_identifier ;)) (expression_statement "FUN_000352b0(local_28,0);" (call_expression "FUN_000352b0(local_28,0)" identifier (argument_list "(local_28,0)" ( identifier , number_literal ))) ;) }) (else_clause "else {\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) {\nLAB_0002dd25:\n      uVar2 = dcgettext(0,"%s without %s",5);\n      FUN_0002bd30(uVar2,param_2,param_3);\n      return;\n    }\n    FUN_000352b0(local_28,param_1 * local_30);\n    iVar1 = param_1 + -1;\n    if (param_1 != 0) {\n      do {\n        iVar1 = iVar1 + -1;\n        FUN_00035350(local_28,local_34);\n      } while (iVar1 != -1);\n    }\n  }" else (compound_statement "{\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) {\nLAB_0002dd25:\n      uVar2 = dcgettext(0,"%s without %s",5);\n      FUN_0002bd30(uVar2,param_2,param_3);\n      return;\n    }\n    FUN_000352b0(local_28,param_1 * local_30);\n    iVar1 = param_1 + -1;\n    if (param_1 != 0) {\n      do {\n        iVar1 = iVar1 + -1;\n        FUN_00035350(local_28,local_34);\n      } while (iVar1 != -1);\n    }\n  }" { (expression_statement "FUN_000352f0(local_34);" (call_expression "FUN_000352f0(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) (expression_statement "iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);" (assignment_expression "iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00)" identifier = (call_expression "FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00)" identifier (argument_list "(param_2,param_3,local_34,FUN_0002cf00)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar1 == 0) {\nLAB_0002dd25:\n      uVar2 = dcgettext(0,"%s without %s",5);\n      FUN_0002bd30(uVar2,param_2,param_3);\n      return;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0002dd25:\n      uVar2 = dcgettext(0,"%s without %s",5);\n      FUN_0002bd30(uVar2,param_2,param_3);\n      return;\n    }" { (labeled_statement "LAB_0002dd25:\n      uVar2 = dcgettext(0,"%s without %s",5);" statement_identifier : (expression_statement "uVar2 = dcgettext(0,"%s without %s",5);" (assignment_expression "uVar2 = dcgettext(0,"%s without %s",5)" identifier = (call_expression "dcgettext(0,"%s without %s",5)" identifier (argument_list "(0,"%s without %s",5)" ( number_literal , (string_literal ""%s without %s"" " string_content ") , number_literal )))) ;)) (expression_statement "FUN_0002bd30(uVar2,param_2,param_3);" (call_expression "FUN_0002bd30(uVar2,param_2,param_3)" identifier (argument_list "(uVar2,param_2,param_3)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_000352b0(local_28,param_1 * local_30);" (call_expression "FUN_000352b0(local_28,param_1 * local_30)" identifier (argument_list "(local_28,param_1 * local_30)" ( identifier , (binary_expression "param_1 * local_30" identifier * identifier) ))) ;) (expression_statement "iVar1 = param_1 + -1;" (assignment_expression "iVar1 = param_1 + -1" identifier = (binary_expression "param_1 + -1" identifier + number_literal)) ;) (if_statement "if (param_1 != 0) {\n      do {\n        iVar1 = iVar1 + -1;\n        FUN_00035350(local_28,local_34);\n      } while (iVar1 != -1);\n    }" if (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) (compound_statement "{\n      do {\n        iVar1 = iVar1 + -1;\n        FUN_00035350(local_28,local_34);\n      } while (iVar1 != -1);\n    }" { (do_statement "do {\n        iVar1 = iVar1 + -1;\n        FUN_00035350(local_28,local_34);\n      } while (iVar1 != -1);" do (compound_statement "{\n        iVar1 = iVar1 + -1;\n        FUN_00035350(local_28,local_34);\n      }" { (expression_statement "iVar1 = iVar1 + -1;" (assignment_expression "iVar1 = iVar1 + -1" identifier = (binary_expression "iVar1 + -1" identifier + number_literal)) ;) (expression_statement "FUN_00035350(local_28,local_34);" (call_expression "FUN_00035350(local_28,local_34)" identifier (argument_list "(local_28,local_34)" ( identifier , identifier ))) ;) }) while (parenthesized_expression "(iVar1 != -1)" ( (binary_expression "iVar1 != -1" identifier != number_literal) )) ;) })) }))) (expression_statement "FUN_00035330(local_34);" (call_expression "FUN_00035330(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) (expression_statement "FUN_00025f40(local_28,DAT_00077ef8,1);" (call_expression "FUN_00025f40(local_28,DAT_00077ef8,1)" identifier (argument_list "(local_28,DAT_00077ef8,1)" ( identifier , identifier , number_literal ))) ;) (expression_statement "FUN_00035330(local_28);" (call_expression "FUN_00035330(local_28)" identifier (argument_list "(local_28)" ( identifier ))) ;) (expression_statement "DAT_00077a14 = FUN_00026070(&DAT_00077ef8);" (assignment_expression "DAT_00077a14 = FUN_00026070(&DAT_00077ef8)" identifier = (call_expression "FUN_00026070(&DAT_00077ef8)" identifier (argument_list "(&DAT_00077ef8)" ( (pointer_expression "&DAT_00077ef8" & identifier) )))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (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 ))) ;) (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT * IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (return_statement return ;) })))
(function_definition "void FUN_0002dc10(int param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined1 local_34 [4];\n  int local_30;\n  undefined1 local_28 [20];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2dc19;\n  if (param_1 < 0) {\n    uVar2 = dcgettext(0,"negative count for %s - ignored",5);\n    FUN_0002bd30(uVar2,param_2);\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) goto LAB_0002dd25;\n    FUN_000352b0(local_28,0);\n  }\n  else {\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) {\nLAB_0002dd25:\n      uVar2 = dcgettext(0,"%s without %s",5);\n      FUN_0002bd30(uVar2,param_2,param_3);\n      return;\n    }\n    FUN_000352b0(local_28,param_1 * local_30);\n    iVar1 = param_1 + -1;\n    if (param_1 != 0) {\n      do {\n        iVar1 = iVar1 + -1;\n        FUN_00035350(local_28,local_34);\n      } while (iVar1 != -1);\n    }\n  }\n  FUN_00035330(local_34);\n  FUN_00025f40(local_28,DAT_00077ef8,1);\n  FUN_00035330(local_28);\n  DAT_00077a14 = FUN_00026070(&DAT_00077ef8);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0002dc10(int param_1,undefined4 param_2,undefined4 param_3)" (identifier "FUN_0002dc10") (parameter_list "(int param_1,undefined4 param_2,undefined4 param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  undefined1 local_34 [4];\n  int local_30;\n  undefined1 local_28 [20];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2dc19;\n  if (param_1 < 0) {\n    uVar2 = dcgettext(0,"negative count for %s - ignored",5);\n    FUN_0002bd30(uVar2,param_2);\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) goto LAB_0002dd25;\n    FUN_000352b0(local_28,0);\n  }\n  else {\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) {\nLAB_0002dd25:\n      uVar2 = dcgettext(0,"%s without %s",5);\n      FUN_0002bd30(uVar2,param_2,param_3);\n      return;\n    }\n    FUN_000352b0(local_28,param_1 * local_30);\n    iVar1 = param_1 + -1;\n    if (param_1 != 0) {\n      do {\n        iVar1 = iVar1 + -1;\n        FUN_00035350(local_28,local_34);\n      } while (iVar1 != -1);\n    }\n  }\n  FUN_00035330(local_34);\n  FUN_00025f40(local_28,DAT_00077ef8,1);\n  FUN_00035330(local_28);\n  DAT_00077a14 = FUN_00026070(&DAT_00077ef8);\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "undefined1 local_34 [4];" (type_identifier "undefined1") (array_declarator "local_34 [4]" (identifier "local_34") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "undefined1 local_28 [20];" (type_identifier "undefined1") (array_declarator "local_28 [20]" (identifier "local_28") ([ "[") (number_literal "20") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x2dc19;" (assignment_expression "uStack_14 = 0x2dc19" (identifier "uStack_14") (= "=") (number_literal "0x2dc19")) (; ";")) (if_statement "if (param_1 < 0) {\n    uVar2 = dcgettext(0,"negative count for %s - ignored",5);\n    FUN_0002bd30(uVar2,param_2);\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) goto LAB_0002dd25;\n    FUN_000352b0(local_28,0);\n  }\n  else {\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) {\nLAB_0002dd25:\n      uVar2 = dcgettext(0,"%s without %s",5);\n      FUN_0002bd30(uVar2,param_2,param_3);\n      return;\n    }\n    FUN_000352b0(local_28,param_1 * local_30);\n    iVar1 = param_1 + -1;\n    if (param_1 != 0) {\n      do {\n        iVar1 = iVar1 + -1;\n        FUN_00035350(local_28,local_34);\n      } while (iVar1 != -1);\n    }\n  }" (if "if") (parenthesized_expression "(param_1 < 0)" (( "(") (binary_expression "param_1 < 0" (identifier "param_1") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    uVar2 = dcgettext(0,"negative count for %s - ignored",5);\n    FUN_0002bd30(uVar2,param_2);\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) goto LAB_0002dd25;\n    FUN_000352b0(local_28,0);\n  }" ({ "{") (expression_statement "uVar2 = dcgettext(0,"negative count for %s - ignored",5);" (assignment_expression "uVar2 = dcgettext(0,"negative count for %s - ignored",5)" (identifier "uVar2") (= "=") (call_expression "dcgettext(0,"negative count for %s - ignored",5)" (identifier "dcgettext") (argument_list "(0,"negative count for %s - ignored",5)" (( "(") (number_literal "0") (, ",") (string_literal ""negative count for %s - ignored"" (" """) (string_content "negative count for %s - ignored") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bd30(uVar2,param_2);" (call_expression "FUN_0002bd30(uVar2,param_2)" (identifier "FUN_0002bd30") (argument_list "(uVar2,param_2)" (( "(") (identifier "uVar2") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "FUN_000352f0(local_34);" (call_expression "FUN_000352f0(local_34)" (identifier "FUN_000352f0") (argument_list "(local_34)" (( "(") (identifier "local_34") () ")"))) (; ";")) (expression_statement "iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);" (assignment_expression "iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00)" (identifier "iVar1") (= "=") (call_expression "FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00)" (identifier "FUN_0002a3b0") (argument_list "(param_2,param_3,local_34,FUN_0002cf00)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "local_34") (, ",") (identifier "FUN_0002cf00") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) goto LAB_0002dd25;" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002dd25;" (goto "goto") (statement_identifier "LAB_0002dd25") (; ";"))) (expression_statement "FUN_000352b0(local_28,0);" (call_expression "FUN_000352b0(local_28,0)" (identifier "FUN_000352b0") (argument_list "(local_28,0)" (( "(") (identifier "local_28") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) {\nLAB_0002dd25:\n      uVar2 = dcgettext(0,"%s without %s",5);\n      FUN_0002bd30(uVar2,param_2,param_3);\n      return;\n    }\n    FUN_000352b0(local_28,param_1 * local_30);\n    iVar1 = param_1 + -1;\n    if (param_1 != 0) {\n      do {\n        iVar1 = iVar1 + -1;\n        FUN_00035350(local_28,local_34);\n      } while (iVar1 != -1);\n    }\n  }" (else "else") (compound_statement "{\n    FUN_000352f0(local_34);\n    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);\n    if (iVar1 == 0) {\nLAB_0002dd25:\n      uVar2 = dcgettext(0,"%s without %s",5);\n      FUN_0002bd30(uVar2,param_2,param_3);\n      return;\n    }\n    FUN_000352b0(local_28,param_1 * local_30);\n    iVar1 = param_1 + -1;\n    if (param_1 != 0) {\n      do {\n        iVar1 = iVar1 + -1;\n        FUN_00035350(local_28,local_34);\n      } while (iVar1 != -1);\n    }\n  }" ({ "{") (expression_statement "FUN_000352f0(local_34);" (call_expression "FUN_000352f0(local_34)" (identifier "FUN_000352f0") (argument_list "(local_34)" (( "(") (identifier "local_34") () ")"))) (; ";")) (expression_statement "iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);" (assignment_expression "iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00)" (identifier "iVar1") (= "=") (call_expression "FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00)" (identifier "FUN_0002a3b0") (argument_list "(param_2,param_3,local_34,FUN_0002cf00)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "local_34") (, ",") (identifier "FUN_0002cf00") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\nLAB_0002dd25:\n      uVar2 = dcgettext(0,"%s without %s",5);\n      FUN_0002bd30(uVar2,param_2,param_3);\n      return;\n    }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0002dd25:\n      uVar2 = dcgettext(0,"%s without %s",5);\n      FUN_0002bd30(uVar2,param_2,param_3);\n      return;\n    }" ({ "{") (labeled_statement "LAB_0002dd25:\n      uVar2 = dcgettext(0,"%s without %s",5);" (statement_identifier "LAB_0002dd25") (: ":") (expression_statement "uVar2 = dcgettext(0,"%s without %s",5);" (assignment_expression "uVar2 = dcgettext(0,"%s without %s",5)" (identifier "uVar2") (= "=") (call_expression "dcgettext(0,"%s without %s",5)" (identifier "dcgettext") (argument_list "(0,"%s without %s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%s without %s"" (" """) (string_content "%s without %s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_0002bd30(uVar2,param_2,param_3);" (call_expression "FUN_0002bd30(uVar2,param_2,param_3)" (identifier "FUN_0002bd30") (argument_list "(uVar2,param_2,param_3)" (( "(") (identifier "uVar2") (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_000352b0(local_28,param_1 * local_30);" (call_expression "FUN_000352b0(local_28,param_1 * local_30)" (identifier "FUN_000352b0") (argument_list "(local_28,param_1 * local_30)" (( "(") (identifier "local_28") (, ",") (binary_expression "param_1 * local_30" (identifier "param_1") (* "*") (identifier "local_30")) () ")"))) (; ";")) (expression_statement "iVar1 = param_1 + -1;" (assignment_expression "iVar1 = param_1 + -1" (identifier "iVar1") (= "=") (binary_expression "param_1 + -1" (identifier "param_1") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (param_1 != 0) {\n      do {\n        iVar1 = iVar1 + -1;\n        FUN_00035350(local_28,local_34);\n      } while (iVar1 != -1);\n    }" (if "if") (parenthesized_expression "(param_1 != 0)" (( "(") (binary_expression "param_1 != 0" (identifier "param_1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      do {\n        iVar1 = iVar1 + -1;\n        FUN_00035350(local_28,local_34);\n      } while (iVar1 != -1);\n    }" ({ "{") (do_statement "do {\n        iVar1 = iVar1 + -1;\n        FUN_00035350(local_28,local_34);\n      } while (iVar1 != -1);" (do "do") (compound_statement "{\n        iVar1 = iVar1 + -1;\n        FUN_00035350(local_28,local_34);\n      }" ({ "{") (expression_statement "iVar1 = iVar1 + -1;" (assignment_expression "iVar1 = iVar1 + -1" (identifier "iVar1") (= "=") (binary_expression "iVar1 + -1" (identifier "iVar1") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "FUN_00035350(local_28,local_34);" (call_expression "FUN_00035350(local_28,local_34)" (identifier "FUN_00035350") (argument_list "(local_28,local_34)" (( "(") (identifier "local_28") (, ",") (identifier "local_34") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar1 != -1)" (( "(") (binary_expression "iVar1 != -1" (identifier "iVar1") (!= "!=") (number_literal "-1")) () ")")) (; ";")) (} "}"))) (} "}")))) (expression_statement "FUN_00035330(local_34);" (call_expression "FUN_00035330(local_34)" (identifier "FUN_00035330") (argument_list "(local_34)" (( "(") (identifier "local_34") () ")"))) (; ";")) (expression_statement "FUN_00025f40(local_28,DAT_00077ef8,1);" (call_expression "FUN_00025f40(local_28,DAT_00077ef8,1)" (identifier "FUN_00025f40") (argument_list "(local_28,DAT_00077ef8,1)" (( "(") (identifier "local_28") (, ",") (identifier "DAT_00077ef8") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "FUN_00035330(local_28);" (call_expression "FUN_00035330(local_28)" (identifier "FUN_00035330") (argument_list "(local_28)" (( "(") (identifier "local_28") () ")"))) (; ";")) (expression_statement "DAT_00077a14 = FUN_00026070(&DAT_00077ef8);" (assignment_expression "DAT_00077a14 = FUN_00026070(&DAT_00077ef8)" (identifier "DAT_00077a14") (= "=") (call_expression "FUN_00026070(&DAT_00077ef8)" (identifier "FUN_00026070") (argument_list "(&DAT_00077ef8)" (( "(") (pointer_expression "&DAT_00077ef8" (& "&") (identifier "DAT_00077ef8")) () ")")))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void function_1(size_t var_7,char *start,char *end)

{
  int var_5;
  char *pcVar2;
  type_1 one;
  type_1 many;
  
  if ((int)var_7 < 0) {
    pcVar2 = (char *)var_1(0,"negative count for %s - ignored",5);
    var_2(pcVar2,start);
    var_3(&one);
    var_5 = var_4(start,end,&one,get_non_macro_line_sb);
    if (var_5 == 0) goto LAB_0002dd25;
    var_6(&many,0);
  }
  else {
    var_3(&one);
    var_5 = var_4(start,end,&one,get_non_macro_line_sb);
    if (var_5 == 0) {
LAB_0002dd25:
      pcVar2 = (char *)var_1(0,"%s without %s",5);
      var_2(pcVar2,start,end);
      return;
    }
    var_6(&many,var_7 * one.len);
    var_5 = var_7 - 1;
    if (var_7 != 0) {
      do {
        var_5 = var_5 + -1;
        var_8(&many,&one);
      } while (var_5 != -1);
    }
  }
  var_9(&one);
  var_10(&many,input_line_pointer,1);
  var_9(&many);
  buffer_limit = var_11(&input_line_pointer);
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (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)))) (return_statement))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (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 (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (return_statement))))

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

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

{
  int iVar1;
  undefined4 uVar2;
  undefined1 local_34 [4];
  int local_30;
  undefined1 local_28 [20];
  undefined4 uStack_14;
  
  uStack_14 = 0x2dc19;
  if (param_1 < 0) {
    uVar2 = dcgettext(0,"negative count for %s - ignored",5);
    FUN_0002bd30(uVar2,param_2);
    FUN_000352f0(local_34);
    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);
    if (iVar1 == 0) goto LAB_0002dd25;
    FUN_000352b0(local_28,0);
  }
  else {
    FUN_000352f0(local_34);
    iVar1 = FUN_0002a3b0(param_2,param_3,local_34,FUN_0002cf00);
    if (iVar1 == 0) {
LAB_0002dd25:
      uVar2 = dcgettext(0,"%s without %s",5);
      FUN_0002bd30(uVar2,param_2,param_3);
      return;
    }
    FUN_000352b0(local_28,param_1 * local_30);
    iVar1 = param_1 + -1;
    if (param_1 != 0) {
      do {
        iVar1 = iVar1 + -1;
        FUN_00035350(local_28,local_34);
      } while (iVar1 != -1);
    }
  }
  FUN_00035330(local_34);
  FUN_00025f40(local_28,DAT_00077ef8,1);
  FUN_00035330(local_28);
  DAT_00077a14 = FUN_00026070(&DAT_00077ef8);
  return;
}

