
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: void put_word(WORD * w, WORD * w) */

void __regparm3 put_word(WORD *w,WORD *w_1)

{
  byte bVar1;
  _IO_FILE *p_Var2;
  byte *pbVar3;
  undefined *puVar4;
  WORD *pWVar5;
  WORD *pWVar6;
  char *pcVar7;
  
  puVar4 = PTR_stdout_0001cfd4;
  pcVar7 = w_1->text;
  if (pcVar7 != (char *)0x0) {
    pWVar5 = w;
    do {
      p_Var2 = *(_IO_FILE **)puVar4;
      pWVar6 = (WORD *)((int)&pWVar5->text + 1);
      bVar1 = *(byte *)&pWVar5->text;
      pbVar3 = (byte *)p_Var2->_IO_write_ptr;
      if (pbVar3 < p_Var2->_IO_write_end) {
        p_Var2->_IO_write_ptr = (char *)(pbVar3 + 1);
        *pbVar3 = bVar1;
      }
      else {
        __overflow(p_Var2,(uint)bVar1);
      }
      pWVar5 = pWVar6;
    } while (pWVar6 != (WORD *)((int)&w->text + (int)pcVar7));
    pcVar7 = w_1->text;
  }
  out_column = (int)(pcVar7 + out_column);
  return;
}



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

void __regparm3 FUN_00011f20(byte *param_1,int *param_2)

{
  byte bVar1;
  _IO_FILE *p_Var2;
  undefined *puVar3;
  byte *pbVar4;
  byte *pbVar5;
  int iVar6;
  
  puVar3 = PTR_stdout_0001cfd4;
  iVar6 = *param_2;
  if (iVar6 != 0) {
    pbVar4 = param_1;
    do {
      p_Var2 = *(_IO_FILE **)puVar3;
      pbVar5 = pbVar4 + 1;
      bVar1 = *pbVar4;
      pbVar4 = (byte *)p_Var2->_IO_write_ptr;
      if (pbVar4 < p_Var2->_IO_write_end) {
        p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);
        *pbVar4 = bVar1;
      }
      else {
        __overflow(p_Var2,(uint)bVar1);
      }
      pbVar4 = pbVar5;
    } while (pbVar5 != param_1 + iVar6);
    iVar6 = *param_2;
  }
  DAT_000252a8 = DAT_000252a8 + iVar6;
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
MOV ESI,EAX
PUSH EBX
CALL 0x000118f0
ADD EBX,0xb0d5
SUB ESP,0x1c
MOV EDI,dword ptr [EDX]
MOV dword ptr [ESP + 0xc],EDX
MOV dword ptr [ESP + 0x8],EBX
TEST EDI,EDI
JZ 0x00011f74
MOV EBP,dword ptr [EBX + 0xffffffd4]
ADD EDI,ESI
LEA ESI,[ESI]
MOV EAX,dword ptr [EBP]
ADD ESI,0x1
MOVZX ECX,byte ptr [ESI + -0x1]
MOV EDX,dword ptr [EAX + 0x14]
CMP EDX,dword ptr [EAX + 0x18]
JNC 0x00011f90
LEA EBX,[EDX + 0x1]
MOV dword ptr [EAX + 0x14],EBX
MOV byte ptr [EDX],CL
CMP ESI,EDI
JNZ 0x00011f50
MOV EAX,dword ptr [ESP + 0xc]
MOV EDI,dword ptr [EAX]
MOV EAX,dword ptr [ESP + 0x8]
ADD dword ptr [EAX + 0x82a8],EDI
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x8
PUSH ECX
PUSH EAX
MOV EBX,dword ptr [ESP + 0x18]
CALL 0x000112c0
ADD ESP,0x10
JMP 0x00011f6a
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 FUN_00011f20(byte *param_1,int *param_2)\n\n{\n  byte bVar1;\n  _IO_FILE *p_Var2;\n  undefined *puVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  int iVar6;\n  \n  puVar3 = PTR_stdout_0001cfd4;\n  iVar6 = *param_2;\n  if (iVar6 != 0) {\n    pbVar4 = param_1;\n    do {\n      p_Var2 = *(_IO_FILE **)puVar3;\n      pbVar5 = pbVar4 + 1;\n      bVar1 = *pbVar4;\n      pbVar4 = (byte *)p_Var2->_IO_write_ptr;\n      if (pbVar4 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);\n        *pbVar4 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }\n      pbVar4 = pbVar5;\n    } while (pbVar5 != param_1 + iVar6);\n    iVar6 = *param_2;\n  }\n  DAT_000252a8 = DAT_000252a8 + iVar6;\n  return;\n}\n\n" comment (function_definition "void __regparm3 FUN_00011f20(byte *param_1,int *param_2)\n\n{\n  byte bVar1;\n  _IO_FILE *p_Var2;\n  undefined *puVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  int iVar6;\n  \n  puVar3 = PTR_stdout_0001cfd4;\n  iVar6 = *param_2;\n  if (iVar6 != 0) {\n    pbVar4 = param_1;\n    do {\n      p_Var2 = *(_IO_FILE **)puVar3;\n      pbVar5 = pbVar4 + 1;\n      bVar1 = *pbVar4;\n      pbVar4 = (byte *)p_Var2->_IO_write_ptr;\n      if (pbVar4 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);\n        *pbVar4 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }\n      pbVar4 = pbVar5;\n    } while (pbVar5 != param_1 + iVar6);\n    iVar6 = *param_2;\n  }\n  DAT_000252a8 = DAT_000252a8 + iVar6;\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00011f20(byte *param_1,int *param_2)" identifier (parameter_list "(byte *param_1,int *param_2)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  _IO_FILE *p_Var2;\n  undefined *puVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  int iVar6;\n  \n  puVar3 = PTR_stdout_0001cfd4;\n  iVar6 = *param_2;\n  if (iVar6 != 0) {\n    pbVar4 = param_1;\n    do {\n      p_Var2 = *(_IO_FILE **)puVar3;\n      pbVar5 = pbVar4 + 1;\n      bVar1 = *pbVar4;\n      pbVar4 = (byte *)p_Var2->_IO_write_ptr;\n      if (pbVar4 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);\n        *pbVar4 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }\n      pbVar4 = pbVar5;\n    } while (pbVar5 != param_1 + iVar6);\n    iVar6 = *param_2;\n  }\n  DAT_000252a8 = DAT_000252a8 + iVar6;\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "_IO_FILE *p_Var2;" type_identifier (pointer_declarator "*p_Var2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (expression_statement "puVar3 = PTR_stdout_0001cfd4;" (assignment_expression "puVar3 = PTR_stdout_0001cfd4" identifier = identifier) ;) (expression_statement "iVar6 = *param_2;" (assignment_expression "iVar6 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (iVar6 != 0) {\n    pbVar4 = param_1;\n    do {\n      p_Var2 = *(_IO_FILE **)puVar3;\n      pbVar5 = pbVar4 + 1;\n      bVar1 = *pbVar4;\n      pbVar4 = (byte *)p_Var2->_IO_write_ptr;\n      if (pbVar4 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);\n        *pbVar4 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }\n      pbVar4 = pbVar5;\n    } while (pbVar5 != param_1 + iVar6);\n    iVar6 = *param_2;\n  }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n    pbVar4 = param_1;\n    do {\n      p_Var2 = *(_IO_FILE **)puVar3;\n      pbVar5 = pbVar4 + 1;\n      bVar1 = *pbVar4;\n      pbVar4 = (byte *)p_Var2->_IO_write_ptr;\n      if (pbVar4 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);\n        *pbVar4 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }\n      pbVar4 = pbVar5;\n    } while (pbVar5 != param_1 + iVar6);\n    iVar6 = *param_2;\n  }" { (expression_statement "pbVar4 = param_1;" (assignment_expression "pbVar4 = param_1" identifier = identifier) ;) (do_statement "do {\n      p_Var2 = *(_IO_FILE **)puVar3;\n      pbVar5 = pbVar4 + 1;\n      bVar1 = *pbVar4;\n      pbVar4 = (byte *)p_Var2->_IO_write_ptr;\n      if (pbVar4 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);\n        *pbVar4 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }\n      pbVar4 = pbVar5;\n    } while (pbVar5 != param_1 + iVar6);" do (compound_statement "{\n      p_Var2 = *(_IO_FILE **)puVar3;\n      pbVar5 = pbVar4 + 1;\n      bVar1 = *pbVar4;\n      pbVar4 = (byte *)p_Var2->_IO_write_ptr;\n      if (pbVar4 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);\n        *pbVar4 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }\n      pbVar4 = pbVar5;\n    }" { (expression_statement "p_Var2 = *(_IO_FILE **)puVar3;" (assignment_expression "p_Var2 = *(_IO_FILE **)puVar3" identifier = (pointer_expression "*(_IO_FILE **)puVar3" * (cast_expression "(_IO_FILE **)puVar3" ( (type_descriptor "_IO_FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pbVar5 = pbVar4 + 1;" (assignment_expression "pbVar5 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = *pbVar4;" (assignment_expression "bVar1 = *pbVar4" identifier = (pointer_expression "*pbVar4" * identifier)) ;) (expression_statement "pbVar4 = (byte *)p_Var2->_IO_write_ptr;" (assignment_expression "pbVar4 = (byte *)p_Var2->_IO_write_ptr" identifier = (cast_expression "(byte *)p_Var2->_IO_write_ptr" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "p_Var2->_IO_write_ptr" identifier -> field_identifier))) ;) (if_statement "if (pbVar4 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);\n        *pbVar4 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }" if (parenthesized_expression "(pbVar4 < p_Var2->_IO_write_end)" ( (binary_expression "pbVar4 < p_Var2->_IO_write_end" identifier < (field_expression "p_Var2->_IO_write_end" identifier -> field_identifier)) )) (compound_statement "{\n        p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);\n        *pbVar4 = bVar1;\n      }" { (expression_statement "p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);" (assignment_expression "p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1)" (field_expression "p_Var2->_IO_write_ptr" identifier -> field_identifier) = (cast_expression "(char *)(pbVar4 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar4 + 1)" ( (binary_expression "pbVar4 + 1" identifier + number_literal) )))) ;) (expression_statement "*pbVar4 = bVar1;" (assignment_expression "*pbVar4 = bVar1" (pointer_expression "*pbVar4" * identifier) = identifier) ;) }) (else_clause "else {\n        __overflow(p_Var2,(uint)bVar1);\n      }" else (compound_statement "{\n        __overflow(p_Var2,(uint)bVar1);\n      }" { (expression_statement "__overflow(p_Var2,(uint)bVar1);" (call_expression "__overflow(p_Var2,(uint)bVar1)" identifier (argument_list "(p_Var2,(uint)bVar1)" ( identifier , (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) }))) (expression_statement "pbVar4 = pbVar5;" (assignment_expression "pbVar4 = pbVar5" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar5 != param_1 + iVar6)" ( (binary_expression "pbVar5 != param_1 + iVar6" identifier != (binary_expression "param_1 + iVar6" identifier + identifier)) )) ;) (expression_statement "iVar6 = *param_2;" (assignment_expression "iVar6 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) })) (expression_statement "DAT_000252a8 = DAT_000252a8 + iVar6;" (assignment_expression "DAT_000252a8 = DAT_000252a8 + iVar6" identifier = (binary_expression "DAT_000252a8 + iVar6" identifier + identifier)) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* DWARF original prototype: void put_word(WORD * w, WORD * w) */\n\nvoid __regparm3 put_word(WORD *w,WORD *w_1)\n\n{\n  byte bVar1;\n  _IO_FILE *p_Var2;\n  byte *pbVar3;\n  undefined *puVar4;\n  WORD *pWVar5;\n  WORD *pWVar6;\n  char *pcVar7;\n  \n  puVar4 = PTR_stdout_0001cfd4;\n  pcVar7 = w_1->text;\n  if (pcVar7 != (char *)0x0) {\n    pWVar5 = w;\n    do {\n      p_Var2 = *(_IO_FILE **)puVar4;\n      pWVar6 = (WORD *)((int)&pWVar5->text + 1);\n      bVar1 = *(byte *)&pWVar5->text;\n      pbVar3 = (byte *)p_Var2->_IO_write_ptr;\n      if (pbVar3 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar3 + 1);\n        *pbVar3 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }\n      pWVar5 = pWVar6;\n    } while (pWVar6 != (WORD *)((int)&w->text + (int)pcVar7));\n    pcVar7 = w_1->text;\n  }\n  out_column = (int)(pcVar7 + out_column);\n  return;\n}\n\n" comment comment (function_definition "void __regparm3 put_word(WORD *w,WORD *w_1)\n\n{\n  byte bVar1;\n  _IO_FILE *p_Var2;\n  byte *pbVar3;\n  undefined *puVar4;\n  WORD *pWVar5;\n  WORD *pWVar6;\n  char *pcVar7;\n  \n  puVar4 = PTR_stdout_0001cfd4;\n  pcVar7 = w_1->text;\n  if (pcVar7 != (char *)0x0) {\n    pWVar5 = w;\n    do {\n      p_Var2 = *(_IO_FILE **)puVar4;\n      pWVar6 = (WORD *)((int)&pWVar5->text + 1);\n      bVar1 = *(byte *)&pWVar5->text;\n      pbVar3 = (byte *)p_Var2->_IO_write_ptr;\n      if (pbVar3 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar3 + 1);\n        *pbVar3 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }\n      pWVar5 = pWVar6;\n    } while (pWVar6 != (WORD *)((int)&w->text + (int)pcVar7));\n    pcVar7 = w_1->text;\n  }\n  out_column = (int)(pcVar7 + out_column);\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "put_word(WORD *w,WORD *w_1)" identifier (parameter_list "(WORD *w,WORD *w_1)" ( (parameter_declaration "WORD *w" type_identifier (pointer_declarator "*w" * identifier)) , (parameter_declaration "WORD *w_1" type_identifier (pointer_declarator "*w_1" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  _IO_FILE *p_Var2;\n  byte *pbVar3;\n  undefined *puVar4;\n  WORD *pWVar5;\n  WORD *pWVar6;\n  char *pcVar7;\n  \n  puVar4 = PTR_stdout_0001cfd4;\n  pcVar7 = w_1->text;\n  if (pcVar7 != (char *)0x0) {\n    pWVar5 = w;\n    do {\n      p_Var2 = *(_IO_FILE **)puVar4;\n      pWVar6 = (WORD *)((int)&pWVar5->text + 1);\n      bVar1 = *(byte *)&pWVar5->text;\n      pbVar3 = (byte *)p_Var2->_IO_write_ptr;\n      if (pbVar3 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar3 + 1);\n        *pbVar3 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }\n      pWVar5 = pWVar6;\n    } while (pWVar6 != (WORD *)((int)&w->text + (int)pcVar7));\n    pcVar7 = w_1->text;\n  }\n  out_column = (int)(pcVar7 + out_column);\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "_IO_FILE *p_Var2;" type_identifier (pointer_declarator "*p_Var2" * identifier) ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "WORD *pWVar5;" type_identifier (pointer_declarator "*pWVar5" * identifier) ;) (declaration "WORD *pWVar6;" type_identifier (pointer_declarator "*pWVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (expression_statement "puVar4 = PTR_stdout_0001cfd4;" (assignment_expression "puVar4 = PTR_stdout_0001cfd4" identifier = identifier) ;) (expression_statement "pcVar7 = w_1->text;" (assignment_expression "pcVar7 = w_1->text" identifier = (field_expression "w_1->text" identifier -> field_identifier)) ;) (if_statement "if (pcVar7 != (char *)0x0) {\n    pWVar5 = w;\n    do {\n      p_Var2 = *(_IO_FILE **)puVar4;\n      pWVar6 = (WORD *)((int)&pWVar5->text + 1);\n      bVar1 = *(byte *)&pWVar5->text;\n      pbVar3 = (byte *)p_Var2->_IO_write_ptr;\n      if (pbVar3 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar3 + 1);\n        *pbVar3 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }\n      pWVar5 = pWVar6;\n    } while (pWVar6 != (WORD *)((int)&w->text + (int)pcVar7));\n    pcVar7 = w_1->text;\n  }" if (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pWVar5 = w;\n    do {\n      p_Var2 = *(_IO_FILE **)puVar4;\n      pWVar6 = (WORD *)((int)&pWVar5->text + 1);\n      bVar1 = *(byte *)&pWVar5->text;\n      pbVar3 = (byte *)p_Var2->_IO_write_ptr;\n      if (pbVar3 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar3 + 1);\n        *pbVar3 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }\n      pWVar5 = pWVar6;\n    } while (pWVar6 != (WORD *)((int)&w->text + (int)pcVar7));\n    pcVar7 = w_1->text;\n  }" { (expression_statement "pWVar5 = w;" (assignment_expression "pWVar5 = w" identifier = identifier) ;) (do_statement "do {\n      p_Var2 = *(_IO_FILE **)puVar4;\n      pWVar6 = (WORD *)((int)&pWVar5->text + 1);\n      bVar1 = *(byte *)&pWVar5->text;\n      pbVar3 = (byte *)p_Var2->_IO_write_ptr;\n      if (pbVar3 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar3 + 1);\n        *pbVar3 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }\n      pWVar5 = pWVar6;\n    } while (pWVar6 != (WORD *)((int)&w->text + (int)pcVar7));" do (compound_statement "{\n      p_Var2 = *(_IO_FILE **)puVar4;\n      pWVar6 = (WORD *)((int)&pWVar5->text + 1);\n      bVar1 = *(byte *)&pWVar5->text;\n      pbVar3 = (byte *)p_Var2->_IO_write_ptr;\n      if (pbVar3 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar3 + 1);\n        *pbVar3 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }\n      pWVar5 = pWVar6;\n    }" { (expression_statement "p_Var2 = *(_IO_FILE **)puVar4;" (assignment_expression "p_Var2 = *(_IO_FILE **)puVar4" identifier = (pointer_expression "*(_IO_FILE **)puVar4" * (cast_expression "(_IO_FILE **)puVar4" ( (type_descriptor "_IO_FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pWVar6 = (WORD *)((int)&pWVar5->text + 1);" (assignment_expression "pWVar6 = (WORD *)((int)&pWVar5->text + 1)" identifier = (cast_expression "(WORD *)((int)&pWVar5->text + 1)" ( (type_descriptor "WORD *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pWVar5->text + 1)" ( (binary_expression "(int)&pWVar5->text + 1" (cast_expression "(int)&pWVar5->text" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pWVar5->text" & (field_expression "pWVar5->text" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "bVar1 = *(byte *)&pWVar5->text;" (assignment_expression "bVar1 = *(byte *)&pWVar5->text" identifier = (pointer_expression "*(byte *)&pWVar5->text" * (cast_expression "(byte *)&pWVar5->text" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pWVar5->text" & (field_expression "pWVar5->text" identifier -> field_identifier))))) ;) (expression_statement "pbVar3 = (byte *)p_Var2->_IO_write_ptr;" (assignment_expression "pbVar3 = (byte *)p_Var2->_IO_write_ptr" identifier = (cast_expression "(byte *)p_Var2->_IO_write_ptr" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "p_Var2->_IO_write_ptr" identifier -> field_identifier))) ;) (if_statement "if (pbVar3 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar3 + 1);\n        *pbVar3 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }" if (parenthesized_expression "(pbVar3 < p_Var2->_IO_write_end)" ( (binary_expression "pbVar3 < p_Var2->_IO_write_end" identifier < (field_expression "p_Var2->_IO_write_end" identifier -> field_identifier)) )) (compound_statement "{\n        p_Var2->_IO_write_ptr = (char *)(pbVar3 + 1);\n        *pbVar3 = bVar1;\n      }" { (expression_statement "p_Var2->_IO_write_ptr = (char *)(pbVar3 + 1);" (assignment_expression "p_Var2->_IO_write_ptr = (char *)(pbVar3 + 1)" (field_expression "p_Var2->_IO_write_ptr" identifier -> field_identifier) = (cast_expression "(char *)(pbVar3 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 1)" ( (binary_expression "pbVar3 + 1" identifier + number_literal) )))) ;) (expression_statement "*pbVar3 = bVar1;" (assignment_expression "*pbVar3 = bVar1" (pointer_expression "*pbVar3" * identifier) = identifier) ;) }) (else_clause "else {\n        __overflow(p_Var2,(uint)bVar1);\n      }" else (compound_statement "{\n        __overflow(p_Var2,(uint)bVar1);\n      }" { (expression_statement "__overflow(p_Var2,(uint)bVar1);" (call_expression "__overflow(p_Var2,(uint)bVar1)" identifier (argument_list "(p_Var2,(uint)bVar1)" ( identifier , (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) }))) (expression_statement "pWVar5 = pWVar6;" (assignment_expression "pWVar5 = pWVar6" identifier = identifier) ;) }) while (parenthesized_expression "(pWVar6 != (WORD *)((int)&w->text + (int)pcVar7))" ( (binary_expression "pWVar6 != (WORD *)((int)&w->text + (int)pcVar7)" identifier != (cast_expression "(WORD *)((int)&w->text + (int)pcVar7)" ( (type_descriptor "WORD *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&w->text + (int)pcVar7)" ( (binary_expression "(int)&w->text + (int)pcVar7" (cast_expression "(int)&w->text" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&w->text" & (field_expression "w->text" identifier -> field_identifier))) + (cast_expression "(int)pcVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) ;) (expression_statement "pcVar7 = w_1->text;" (assignment_expression "pcVar7 = w_1->text" identifier = (field_expression "w_1->text" identifier -> field_identifier)) ;) })) (expression_statement "out_column = (int)(pcVar7 + out_column);" (assignment_expression "out_column = (int)(pcVar7 + out_column)" identifier = (cast_expression "(int)(pcVar7 + out_column)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + out_column)" ( (binary_expression "pcVar7 + out_column" identifier + identifier) )))) ;) (return_statement "return;" return ;) })))
(translation_unit "void __regparm3 FUN_00011f20(byte *param_1,int *param_2)\n\n{\n  byte bVar1;\n  _IO_FILE *p_Var2;\n  undefined *puVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  int iVar6;\n  \n  puVar3 = PTR_stdout_0001cfd4;\n  iVar6 = *param_2;\n  if (iVar6 != 0) {\n    pbVar4 = param_1;\n    do {\n      p_Var2 = *(_IO_FILE **)puVar3;\n      pbVar5 = pbVar4 + 1;\n      bVar1 = *pbVar4;\n      pbVar4 = (byte *)p_Var2->_IO_write_ptr;\n      if (pbVar4 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);\n        *pbVar4 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }\n      pbVar4 = pbVar5;\n    } while (pbVar5 != param_1 + iVar6);\n    iVar6 = *param_2;\n  }\n  DAT_000252a8 = DAT_000252a8 + iVar6;\n  return;\n}\n\n" (function_definition "void __regparm3 FUN_00011f20(byte *param_1,int *param_2)\n\n{\n  byte bVar1;\n  _IO_FILE *p_Var2;\n  undefined *puVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  int iVar6;\n  \n  puVar3 = PTR_stdout_0001cfd4;\n  iVar6 = *param_2;\n  if (iVar6 != 0) {\n    pbVar4 = param_1;\n    do {\n      p_Var2 = *(_IO_FILE **)puVar3;\n      pbVar5 = pbVar4 + 1;\n      bVar1 = *pbVar4;\n      pbVar4 = (byte *)p_Var2->_IO_write_ptr;\n      if (pbVar4 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);\n        *pbVar4 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }\n      pbVar4 = pbVar5;\n    } while (pbVar5 != param_1 + iVar6);\n    iVar6 = *param_2;\n  }\n  DAT_000252a8 = DAT_000252a8 + iVar6;\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00011f20(byte *param_1,int *param_2)" identifier (parameter_list "(byte *param_1,int *param_2)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  _IO_FILE *p_Var2;\n  undefined *puVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  int iVar6;\n  \n  puVar3 = PTR_stdout_0001cfd4;\n  iVar6 = *param_2;\n  if (iVar6 != 0) {\n    pbVar4 = param_1;\n    do {\n      p_Var2 = *(_IO_FILE **)puVar3;\n      pbVar5 = pbVar4 + 1;\n      bVar1 = *pbVar4;\n      pbVar4 = (byte *)p_Var2->_IO_write_ptr;\n      if (pbVar4 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);\n        *pbVar4 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }\n      pbVar4 = pbVar5;\n    } while (pbVar5 != param_1 + iVar6);\n    iVar6 = *param_2;\n  }\n  DAT_000252a8 = DAT_000252a8 + iVar6;\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "_IO_FILE *p_Var2;" type_identifier (pointer_declarator "*p_Var2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (expression_statement "puVar3 = PTR_stdout_0001cfd4;" (assignment_expression "puVar3 = PTR_stdout_0001cfd4" identifier = identifier) ;) (expression_statement "iVar6 = *param_2;" (assignment_expression "iVar6 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (iVar6 != 0) {\n    pbVar4 = param_1;\n    do {\n      p_Var2 = *(_IO_FILE **)puVar3;\n      pbVar5 = pbVar4 + 1;\n      bVar1 = *pbVar4;\n      pbVar4 = (byte *)p_Var2->_IO_write_ptr;\n      if (pbVar4 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);\n        *pbVar4 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }\n      pbVar4 = pbVar5;\n    } while (pbVar5 != param_1 + iVar6);\n    iVar6 = *param_2;\n  }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n    pbVar4 = param_1;\n    do {\n      p_Var2 = *(_IO_FILE **)puVar3;\n      pbVar5 = pbVar4 + 1;\n      bVar1 = *pbVar4;\n      pbVar4 = (byte *)p_Var2->_IO_write_ptr;\n      if (pbVar4 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);\n        *pbVar4 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }\n      pbVar4 = pbVar5;\n    } while (pbVar5 != param_1 + iVar6);\n    iVar6 = *param_2;\n  }" { (expression_statement "pbVar4 = param_1;" (assignment_expression "pbVar4 = param_1" identifier = identifier) ;) (do_statement "do {\n      p_Var2 = *(_IO_FILE **)puVar3;\n      pbVar5 = pbVar4 + 1;\n      bVar1 = *pbVar4;\n      pbVar4 = (byte *)p_Var2->_IO_write_ptr;\n      if (pbVar4 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);\n        *pbVar4 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }\n      pbVar4 = pbVar5;\n    } while (pbVar5 != param_1 + iVar6);" do (compound_statement "{\n      p_Var2 = *(_IO_FILE **)puVar3;\n      pbVar5 = pbVar4 + 1;\n      bVar1 = *pbVar4;\n      pbVar4 = (byte *)p_Var2->_IO_write_ptr;\n      if (pbVar4 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);\n        *pbVar4 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }\n      pbVar4 = pbVar5;\n    }" { (expression_statement "p_Var2 = *(_IO_FILE **)puVar3;" (assignment_expression "p_Var2 = *(_IO_FILE **)puVar3" identifier = (pointer_expression "*(_IO_FILE **)puVar3" * (cast_expression "(_IO_FILE **)puVar3" ( (type_descriptor "_IO_FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pbVar5 = pbVar4 + 1;" (assignment_expression "pbVar5 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = *pbVar4;" (assignment_expression "bVar1 = *pbVar4" identifier = (pointer_expression "*pbVar4" * identifier)) ;) (expression_statement "pbVar4 = (byte *)p_Var2->_IO_write_ptr;" (assignment_expression "pbVar4 = (byte *)p_Var2->_IO_write_ptr" identifier = (cast_expression "(byte *)p_Var2->_IO_write_ptr" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "p_Var2->_IO_write_ptr" identifier -> field_identifier))) ;) (if_statement "if (pbVar4 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);\n        *pbVar4 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }" if (parenthesized_expression "(pbVar4 < p_Var2->_IO_write_end)" ( (binary_expression "pbVar4 < p_Var2->_IO_write_end" identifier < (field_expression "p_Var2->_IO_write_end" identifier -> field_identifier)) )) (compound_statement "{\n        p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);\n        *pbVar4 = bVar1;\n      }" { (expression_statement "p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);" (assignment_expression "p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1)" (field_expression "p_Var2->_IO_write_ptr" identifier -> field_identifier) = (cast_expression "(char *)(pbVar4 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar4 + 1)" ( (binary_expression "pbVar4 + 1" identifier + number_literal) )))) ;) (expression_statement "*pbVar4 = bVar1;" (assignment_expression "*pbVar4 = bVar1" (pointer_expression "*pbVar4" * identifier) = identifier) ;) }) (else_clause "else {\n        __overflow(p_Var2,(uint)bVar1);\n      }" else (compound_statement "{\n        __overflow(p_Var2,(uint)bVar1);\n      }" { (expression_statement "__overflow(p_Var2,(uint)bVar1);" (call_expression "__overflow(p_Var2,(uint)bVar1)" identifier (argument_list "(p_Var2,(uint)bVar1)" ( identifier , (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) }))) (expression_statement "pbVar4 = pbVar5;" (assignment_expression "pbVar4 = pbVar5" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar5 != param_1 + iVar6)" ( (binary_expression "pbVar5 != param_1 + iVar6" identifier != (binary_expression "param_1 + iVar6" identifier + identifier)) )) ;) (expression_statement "iVar6 = *param_2;" (assignment_expression "iVar6 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) })) (expression_statement "DAT_000252a8 = DAT_000252a8 + iVar6;" (assignment_expression "DAT_000252a8 = DAT_000252a8 + iVar6" identifier = (binary_expression "DAT_000252a8 + iVar6" identifier + identifier)) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (field_expression IDENT -> field_identifier))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (field_expression IDENT -> field_identifier)) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + IDENT)) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (return_statement return ;) })))
(function_definition "void __regparm3 FUN_00011f20(byte *param_1,int *param_2)\n\n{\n  byte bVar1;\n  _IO_FILE *p_Var2;\n  undefined *puVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  int iVar6;\n  \n  puVar3 = PTR_stdout_0001cfd4;\n  iVar6 = *param_2;\n  if (iVar6 != 0) {\n    pbVar4 = param_1;\n    do {\n      p_Var2 = *(_IO_FILE **)puVar3;\n      pbVar5 = pbVar4 + 1;\n      bVar1 = *pbVar4;\n      pbVar4 = (byte *)p_Var2->_IO_write_ptr;\n      if (pbVar4 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);\n        *pbVar4 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }\n      pbVar4 = pbVar5;\n    } while (pbVar5 != param_1 + iVar6);\n    iVar6 = *param_2;\n  }\n  DAT_000252a8 = DAT_000252a8 + iVar6;\n  return;\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00011f20(byte *param_1,int *param_2)" (identifier "FUN_00011f20") (parameter_list "(byte *param_1,int *param_2)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  byte bVar1;\n  _IO_FILE *p_Var2;\n  undefined *puVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  int iVar6;\n  \n  puVar3 = PTR_stdout_0001cfd4;\n  iVar6 = *param_2;\n  if (iVar6 != 0) {\n    pbVar4 = param_1;\n    do {\n      p_Var2 = *(_IO_FILE **)puVar3;\n      pbVar5 = pbVar4 + 1;\n      bVar1 = *pbVar4;\n      pbVar4 = (byte *)p_Var2->_IO_write_ptr;\n      if (pbVar4 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);\n        *pbVar4 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }\n      pbVar4 = pbVar5;\n    } while (pbVar5 != param_1 + iVar6);\n    iVar6 = *param_2;\n  }\n  DAT_000252a8 = DAT_000252a8 + iVar6;\n  return;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "_IO_FILE *p_Var2;" (type_identifier "_IO_FILE") (pointer_declarator "*p_Var2" (* "*") (identifier "p_Var2")) (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "byte *pbVar4;" (type_identifier "byte") (pointer_declarator "*pbVar4" (* "*") (identifier "pbVar4")) (; ";")) (declaration "byte *pbVar5;" (type_identifier "byte") (pointer_declarator "*pbVar5" (* "*") (identifier "pbVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (expression_statement "puVar3 = PTR_stdout_0001cfd4;" (assignment_expression "puVar3 = PTR_stdout_0001cfd4" (identifier "puVar3") (= "=") (identifier "PTR_stdout_0001cfd4")) (; ";")) (expression_statement "iVar6 = *param_2;" (assignment_expression "iVar6 = *param_2" (identifier "iVar6") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (if_statement "if (iVar6 != 0) {\n    pbVar4 = param_1;\n    do {\n      p_Var2 = *(_IO_FILE **)puVar3;\n      pbVar5 = pbVar4 + 1;\n      bVar1 = *pbVar4;\n      pbVar4 = (byte *)p_Var2->_IO_write_ptr;\n      if (pbVar4 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);\n        *pbVar4 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }\n      pbVar4 = pbVar5;\n    } while (pbVar5 != param_1 + iVar6);\n    iVar6 = *param_2;\n  }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    pbVar4 = param_1;\n    do {\n      p_Var2 = *(_IO_FILE **)puVar3;\n      pbVar5 = pbVar4 + 1;\n      bVar1 = *pbVar4;\n      pbVar4 = (byte *)p_Var2->_IO_write_ptr;\n      if (pbVar4 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);\n        *pbVar4 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }\n      pbVar4 = pbVar5;\n    } while (pbVar5 != param_1 + iVar6);\n    iVar6 = *param_2;\n  }" ({ "{") (expression_statement "pbVar4 = param_1;" (assignment_expression "pbVar4 = param_1" (identifier "pbVar4") (= "=") (identifier "param_1")) (; ";")) (do_statement "do {\n      p_Var2 = *(_IO_FILE **)puVar3;\n      pbVar5 = pbVar4 + 1;\n      bVar1 = *pbVar4;\n      pbVar4 = (byte *)p_Var2->_IO_write_ptr;\n      if (pbVar4 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);\n        *pbVar4 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }\n      pbVar4 = pbVar5;\n    } while (pbVar5 != param_1 + iVar6);" (do "do") (compound_statement "{\n      p_Var2 = *(_IO_FILE **)puVar3;\n      pbVar5 = pbVar4 + 1;\n      bVar1 = *pbVar4;\n      pbVar4 = (byte *)p_Var2->_IO_write_ptr;\n      if (pbVar4 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);\n        *pbVar4 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }\n      pbVar4 = pbVar5;\n    }" ({ "{") (expression_statement "p_Var2 = *(_IO_FILE **)puVar3;" (assignment_expression "p_Var2 = *(_IO_FILE **)puVar3" (identifier "p_Var2") (= "=") (pointer_expression "*(_IO_FILE **)puVar3" (* "*") (cast_expression "(_IO_FILE **)puVar3" (( "(") (type_descriptor "_IO_FILE **" (type_identifier "_IO_FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar3")))) (; ";")) (expression_statement "pbVar5 = pbVar4 + 1;" (assignment_expression "pbVar5 = pbVar4 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar4 + 1" (identifier "pbVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar1 = *pbVar4;" (assignment_expression "bVar1 = *pbVar4" (identifier "bVar1") (= "=") (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4"))) (; ";")) (expression_statement "pbVar4 = (byte *)p_Var2->_IO_write_ptr;" (assignment_expression "pbVar4 = (byte *)p_Var2->_IO_write_ptr" (identifier "pbVar4") (= "=") (cast_expression "(byte *)p_Var2->_IO_write_ptr" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (field_expression "p_Var2->_IO_write_ptr" (identifier "p_Var2") (-> "->") (field_identifier "_IO_write_ptr")))) (; ";")) (if_statement "if (pbVar4 < p_Var2->_IO_write_end) {\n        p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);\n        *pbVar4 = bVar1;\n      }\n      else {\n        __overflow(p_Var2,(uint)bVar1);\n      }" (if "if") (parenthesized_expression "(pbVar4 < p_Var2->_IO_write_end)" (( "(") (binary_expression "pbVar4 < p_Var2->_IO_write_end" (identifier "pbVar4") (< "<") (field_expression "p_Var2->_IO_write_end" (identifier "p_Var2") (-> "->") (field_identifier "_IO_write_end"))) () ")")) (compound_statement "{\n        p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);\n        *pbVar4 = bVar1;\n      }" ({ "{") (expression_statement "p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);" (assignment_expression "p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1)" (field_expression "p_Var2->_IO_write_ptr" (identifier "p_Var2") (-> "->") (field_identifier "_IO_write_ptr")) (= "=") (cast_expression "(char *)(pbVar4 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar4 + 1)" (( "(") (binary_expression "pbVar4 + 1" (identifier "pbVar4") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*pbVar4 = bVar1;" (assignment_expression "*pbVar4 = bVar1" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (= "=") (identifier "bVar1")) (; ";")) (} "}")) (else_clause "else {\n        __overflow(p_Var2,(uint)bVar1);\n      }" (else "else") (compound_statement "{\n        __overflow(p_Var2,(uint)bVar1);\n      }" ({ "{") (expression_statement "__overflow(p_Var2,(uint)bVar1);" (call_expression "__overflow(p_Var2,(uint)bVar1)" (identifier "__overflow") (argument_list "(p_Var2,(uint)bVar1)" (( "(") (identifier "p_Var2") (, ",") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")) () ")"))) (; ";")) (} "}")))) (expression_statement "pbVar4 = pbVar5;" (assignment_expression "pbVar4 = pbVar5" (identifier "pbVar4") (= "=") (identifier "pbVar5")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar5 != param_1 + iVar6)" (( "(") (binary_expression "pbVar5 != param_1 + iVar6" (identifier "pbVar5") (!= "!=") (binary_expression "param_1 + iVar6" (identifier "param_1") (+ "+") (identifier "iVar6"))) () ")")) (; ";")) (expression_statement "iVar6 = *param_2;" (assignment_expression "iVar6 = *param_2" (identifier "iVar6") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (} "}"))) (expression_statement "DAT_000252a8 = DAT_000252a8 + iVar6;" (assignment_expression "DAT_000252a8 = DAT_000252a8 + iVar6" (identifier "DAT_000252a8") (= "=") (binary_expression "DAT_000252a8 + iVar6" (identifier "DAT_000252a8") (+ "+") (identifier "iVar6"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: void put_word(WORD * w, WORD * w) */

void __regparm3 function_1(type_1 *w,type_1 *w_1)

{
  type_2 bVar1;
  type_3 *p_Var2;
  type_2 *var_2;
  type_4 *puVar4;
  type_1 *pWVar5;
  type_1 *var_4;
  char *var_1;
  
  puVar4 = PTR_stdout_0001cfd4;
  var_1 = w_1->text;
  if (var_1 != (char *)0x0) {
    pWVar5 = w;
    do {
      p_Var2 = *(type_3 **)puVar4;
      var_4 = (type_1 *)((int)&pWVar5->text + 1);
      bVar1 = *(type_2 *)&pWVar5->text;
      var_2 = (type_2 *)p_Var2->_IO_write_ptr;
      if (var_2 < p_Var2->_IO_write_end) {
        p_Var2->_IO_write_ptr = (char *)(var_2 + 1);
        *var_2 = bVar1;
      }
      else {
        var_3(p_Var2,(type_5)bVar1);
      }
      pWVar5 = var_4;
    } while (var_4 != (type_1 *)((int)&w->text + (int)var_1));
    var_1 = w_1->text;
  }
  var_5 = (int)(var_1 + var_5);
  return;
}


(translation_unit (function_definition type: (primitive_type) (ERROR (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (field_expression argument: (identifier) field: (field_identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (return_statement))))

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

void __regparm3 MASKED(byte *param_1,int *param_2)

{
  byte bVar1;
  _IO_FILE *p_Var2;
  undefined *puVar3;
  byte *pbVar4;
  byte *pbVar5;
  int iVar6;
  
  puVar3 = PTR_stdout_0001cfd4;
  iVar6 = *param_2;
  if (iVar6 != 0) {
    pbVar4 = param_1;
    do {
      p_Var2 = *(_IO_FILE **)puVar3;
      pbVar5 = pbVar4 + 1;
      bVar1 = *pbVar4;
      pbVar4 = (byte *)p_Var2->_IO_write_ptr;
      if (pbVar4 < p_Var2->_IO_write_end) {
        p_Var2->_IO_write_ptr = (char *)(pbVar4 + 1);
        *pbVar4 = bVar1;
      }
      else {
        __overflow(p_Var2,(uint)bVar1);
      }
      pbVar4 = pbVar5;
    } while (pbVar5 != param_1 + iVar6);
    iVar6 = *param_2;
  }
  DAT_000252a8 = DAT_000252a8 + iVar6;
  return;
}

