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

char * input_scrub_next_buffer(char **bufp)

{
  char *pcVar1;
  input_save *piVar2;
  char *pcVar3;
  char *pcVar4;
  char *pcVar5;
  size_t sVar6;
  size_t sVar7;
  
  pcVar3 = buffer_start;
  sVar6 = partial_size;
  sVar7 = sb_index;
  if (sb_index == 0xffffffff) {
    pcVar4 = buffer_start + 1;
    if (partial_size != 0) {
      memmove(pcVar4,partial_where,partial_size);
      pcVar3[1] = save_source[0];
    }
    while( true ) {
      *bufp = pcVar4;
      pcVar4 = input_file_give_next_buffer(pcVar3 + sVar6 + 1);
      if (pcVar4 == (char *)0x0) break;
      *pcVar4 = '\0';
      sVar7 = buffer_length;
      if (pcVar4[-1] == '\n') {
        save_source[0] = '\0';
        sVar7 = 0;
        goto LAB_00024c64;
      }
      pcVar5 = pcVar4 + -1;
      if (pcVar3 + sVar6 + 1 <= pcVar4 + -1) {
        do {
          pcVar1 = pcVar5 + -1;
          if (pcVar5[-1] == '\n') {
            save_source[0] = *pcVar5;
            sVar7 = (int)pcVar4 - (int)pcVar5;
            pcVar4 = pcVar5;
            goto LAB_00024c64;
          }
          pcVar5 = pcVar1;
        } while (pcVar1 != pcVar3 + sVar6);
      }
      partial_size = (int)pcVar4 - (int)(buffer_start + 1);
      sVar6 = input_file_buffer_size();
      if (sVar7 - sVar6 < partial_size) {
        buffer_length = buffer_length * 2;
        pcVar3 = (char *)xrealloc(buffer_start,buffer_length + 3);
        pcVar4 = pcVar3 + 1;
        sVar6 = partial_size;
        buffer_start = pcVar3;
      }
      else {
        pcVar4 = buffer_start + 1;
        pcVar3 = buffer_start;
        sVar6 = partial_size;
      }
    }
    if (partial_size != 0) {
      pcVar3 = (char *)dcgettext(0,"end of file not at end of a line; newline inserted",5);
      as_warn(pcVar3);
      sVar7 = 0;
      pcVar3 = buffer_start + partial_size + 1;
      pcVar4 = pcVar3 + 1;
      *pcVar3 = '\n';
      save_source[0] = pcVar3[1];
LAB_00024c64:
      *pcVar4 = '\0';
      partial_where = pcVar4;
      partial_size = sVar7;
      return pcVar4;
    }
    if (listing != 0) {
      listing_newline((char *)0x0);
    }
    partial_where = (char *)0x0;
    if (next_saved_file != (input_save *)0x0) {
LAB_00024bd7:
      partial_where = (char *)0x0;
      pcVar3 = input_scrub_pop(next_saved_file);
      *bufp = pcVar3;
      return partial_where;
    }
    piVar2 = (input_save *)0x0;
  }
  else if (sb_index < from_sb.len) {
    sb_index = from_sb.len;
    partial_size = 0;
    piVar2 = (input_save *)(from_sb.ptr + from_sb.len);
    partial_where = (char *)piVar2;
    *bufp = from_sb.ptr + sVar7;
  }
  else {
    sb_kill(&from_sb);
    if (from_sb_is_expansion != 0) {
      cond_finish_check(macro_nest);
    }
    macro_nest = macro_nest + -1;
    partial_where = (char *)0x0;
    partial_size = 0;
    piVar2 = next_saved_file;
    if (next_saved_file != (input_save *)0x0) goto LAB_00024bd7;
  }
  return (char *)piVar2;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

undefined1 * FUN_00024b30(int *param_1)

{
  undefined1 *puVar1;
  uint uVar2;
  int iVar3;
  int iVar4;
  undefined1 *puVar5;
  undefined1 *puVar6;
  undefined4 uVar7;
  void *__dest;
  size_t sVar8;
  
  iVar4 = DAT_00072808;
  sVar8 = DAT_00072800;
  uVar2 = DAT_0006a29c;
  if (DAT_0006a29c == 0xffffffff) {
    __dest = (void *)(DAT_00072808 + 1);
    if (DAT_00072800 != 0) {
      memmove(__dest,DAT_00072804,DAT_00072800);
      *(undefined1 *)(iVar4 + 1) = DAT_000727fc;
    }
    while( true ) {
      puVar1 = (undefined1 *)(iVar4 + 1 + sVar8);
      *param_1 = (int)__dest;
      puVar5 = (undefined1 *)FUN_00024610(puVar1);
      if (puVar5 == (undefined1 *)0x0) break;
      *puVar5 = 0;
      iVar3 = DAT_000727f8;
      if (puVar5[-1] == '\n') {
        DAT_000727fc = 0;
        iVar4 = 0;
        goto LAB_00024c64;
      }
      puVar6 = puVar5 + -1;
      if (puVar1 <= puVar5 + -1) {
        do {
          puVar1 = puVar6 + -1;
          if (puVar6[-1] == '\n') {
            DAT_000727fc = *puVar6;
            iVar4 = (int)puVar5 - (int)puVar6;
            puVar5 = puVar6;
            goto LAB_00024c64;
          }
          puVar6 = puVar1;
        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));
      }
      DAT_00072800 = (int)puVar5 - (DAT_00072808 + 1);
      iVar4 = FUN_000241b0();
      if ((uint)(iVar3 - iVar4) < DAT_00072800) {
        DAT_000727f8 = DAT_000727f8 * 2;
        iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);
        __dest = (void *)(iVar4 + 1);
        sVar8 = DAT_00072800;
        DAT_00072808 = iVar4;
      }
      else {
        __dest = (void *)(DAT_00072808 + 1);
        iVar4 = DAT_00072808;
        sVar8 = DAT_00072800;
      }
    }
    if (DAT_00072800 != 0) {
      uVar7 = dcgettext(0,"end of file not at end of a line; newline inserted",5);
      FUN_0002a660(uVar7);
      iVar4 = 0;
      puVar1 = (undefined1 *)(DAT_00072808 + 1 + DAT_00072800);
      puVar5 = puVar1 + 1;
      *puVar1 = 10;
      DAT_000727fc = puVar1[1];
LAB_00024c64:
      *puVar5 = 0;
      DAT_00072804 = puVar5;
      DAT_00072800 = iVar4;
      return puVar5;
    }
    if (_DAT_00072d6c != 0) {
      FUN_00025cc0(0);
    }
    DAT_00072804 = (undefined1 *)0x0;
    if (DAT_000727d8 != (undefined1 *)0x0) {
LAB_00024bd7:
      DAT_00072804 = (undefined1 *)0x0;
      iVar4 = FUN_00024880();
      *param_1 = iVar4;
      return DAT_00072804;
    }
    puVar5 = (undefined1 *)0x0;
  }
  else if (DAT_0006a29c < DAT_000727f0) {
    DAT_0006a29c = DAT_000727f0;
    DAT_00072800 = 0;
    puVar5 = (undefined1 *)(DAT_000727ec + DAT_000727f0);
    DAT_00072804 = puVar5;
    *param_1 = uVar2 + DAT_000727ec;
  }
  else {
    FUN_00033520(&DAT_000727ec);
    if (DAT_0006a298 != 0) {
      FUN_00019960(DAT_00072e54);
    }
    DAT_00072e54 = DAT_00072e54 + -1;
    DAT_00072804 = (undefined1 *)0x0;
    DAT_00072800 = 0;
    puVar5 = DAT_000727d8;
    if (DAT_000727d8 != (undefined1 *)0x0) goto LAB_00024bd7;
  }
  return puVar5;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000160b0
ADD EBX,0x454c7
SUB ESP,0x1c
MOV EDX,dword ptr [EBX + 0x29c]
CMP EDX,-0x1
JZ 0x00024bf0
MOV ECX,dword ptr [EBX + 0x87f0]
CMP EDX,ECX
JNC 0x00024b90
MOV ESI,dword ptr [EBX + 0x87ec]
MOV EDI,dword ptr [ESP + 0x30]
MOV dword ptr [EBX + 0x29c],ECX
MOV dword ptr [EBX + 0x8800],0x0
LEA EAX,[ESI + ECX*0x1]
ADD EDX,ESI
MOV dword ptr [EBX + 0x8804],EAX
MOV dword ptr [EDI],EDX
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
LEA EAX,[EBX + 0x87ec]
PUSH EAX
CALL 0x00033520
MOV ECX,dword ptr [EBX + 0x298]
ADD ESP,0x10
LEA ESI,[EBX + 0x8e54]
TEST ECX,ECX
JNZ 0x00024cc8
MOV EAX,dword ptr [EBX + 0x87d8]
SUB dword ptr [ESI],0x1
MOV dword ptr [EBX + 0x8804],0x0
MOV dword ptr [EBX + 0x8800],0x0
TEST EAX,EAX
JZ 0x00024b82
CALL 0x00024880
MOV EDI,dword ptr [ESP + 0x30]
MOV dword ptr [EDI],EAX
MOV EAX,dword ptr [EBX + 0x8804]
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV ESI,dword ptr [EBX + 0x8808]
MOV EDI,dword ptr [EBX + 0x8800]
LEA EBP,[ESI + 0x1]
TEST EDI,EDI
JNZ 0x00024ce0
MOV EAX,dword ptr [ESP + 0x30]
LEA EDX,[ESI + EDI*0x1 + 0x1]
SUB ESP,0xc
MOV dword ptr [EAX],EBP
PUSH EDX
MOV dword ptr [ESP + 0x1c],EDX
CALL 0x00024610
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xc]
TEST EAX,EAX
MOV ECX,EAX
JZ 0x00024d0d
MOV byte ptr [EAX],0x0
CMP byte ptr [ECX + -0x1],0xa
LEA EAX,[EAX + -0x1]
JZ 0x00024d02
ADD ESI,EDI
CMP EDX,EAX
JBE 0x00024c56
JMP 0x00024c88
MOV EAX,EDX
CMP EDX,ESI
JZ 0x00024c88
CMP byte ptr [EAX + -0x1],0xa
LEA EDX,[EAX + -0x1]
JNZ 0x00024c50
MOVZX EDX,byte ptr [EAX]
SUB ECX,EAX
MOV byte ptr [EAX],0x0
MOV dword ptr [EBX + 0x8804],EAX
MOV dword ptr [EBX + 0x8800],ECX
MOV byte ptr [EBX + 0x87fc],DL
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EBX + 0x8808]
MOV ESI,dword ptr [EBX + 0x87f8]
ADD EAX,0x1
SUB ECX,EAX
MOV dword ptr [EBX + 0x8800],ECX
CALL 0x000241b0
MOV EDI,dword ptr [EBX + 0x8800]
SUB ESI,EAX
CMP ESI,EDI
JC 0x00024d44
MOV ESI,dword ptr [EBX + 0x8808]
LEA EBP,[ESI + 0x1]
JMP 0x00024c07
SUB ESP,0xc
PUSH dword ptr [ESI]
CALL 0x00019960
ADD ESP,0x10
JMP 0x00024bb6
SUB ESP,0x4
PUSH EDI
PUSH dword ptr [EBX + 0x8804]
PUSH EBP
CALL 0x000140f0
MOVZX EAX,byte ptr [EBX + 0x87fc]
ADD ESP,0x10
MOV byte ptr [ESI + 0x1],AL
JMP 0x00024c07
MOV EAX,ECX
XOR EDX,EDX
XOR ECX,ECX
JMP 0x00024c64
MOV EDX,dword ptr [EBX + 0x8800]
TEST EDX,EDX
JNZ 0x00024d7d
LEA EAX,[EBX + 0x8d6c]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JNZ 0x00024dbc
MOV dword ptr [EBX + 0x8804],0x0
MOV EAX,dword ptr [EBX + 0x87d8]
TEST EAX,EAX
JNZ 0x00024bd7
JMP 0x00024b82
MOV EAX,dword ptr [EBX + 0x87f8]
SUB ESP,0x8
ADD EAX,EAX
MOV dword ptr [EBX + 0x87f8],EAX
ADD EAX,0x3
PUSH EAX
PUSH dword ptr [EBX + 0x8808]
CALL 0x00014230
MOV EDI,dword ptr [EBX + 0x8800]
ADD ESP,0x10
MOV ESI,EAX
MOV dword ptr [EBX + 0x8808],EAX
LEA EBP,[EAX + 0x1]
JMP 0x00024c07
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe0064]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141c0
MOV dword ptr [ESP],EAX
CALL 0x0002a660
MOV EAX,dword ptr [EBX + 0x8800]
ADD ESP,0x10
XOR ECX,ECX
MOV EDX,dword ptr [EBX + 0x8808]
LEA EDX,[EDX + EAX*0x1 + 0x1]
LEA EAX,[EDX + 0x1]
MOV byte ptr [EDX],0xa
MOVZX EDX,byte ptr [EDX + 0x1]
JMP 0x00024c64
SUB ESP,0xc
PUSH 0x0
CALL 0x00025cc0
ADD ESP,0x10
JMP 0x00024d27
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nundefined1 * FUN_00024b30(int *param_1)\n\n{\n  undefined1 *puVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  undefined1 *puVar6;\n  undefined4 uVar7;\n  void *__dest;\n  size_t sVar8;\n  \n  iVar4 = DAT_00072808;\n  sVar8 = DAT_00072800;\n  uVar2 = DAT_0006a29c;\n  if (DAT_0006a29c == 0xffffffff) {\n    __dest = (void *)(DAT_00072808 + 1);\n    if (DAT_00072800 != 0) {\n      memmove(__dest,DAT_00072804,DAT_00072800);\n      *(undefined1 *)(iVar4 + 1) = DAT_000727fc;\n    }\n    while( true ) {\n      puVar1 = (undefined1 *)(iVar4 + 1 + sVar8);\n      *param_1 = (int)__dest;\n      puVar5 = (undefined1 *)FUN_00024610(puVar1);\n      if (puVar5 == (undefined1 *)0x0) break;\n      *puVar5 = 0;\n      iVar3 = DAT_000727f8;\n      if (puVar5[-1] == '\n') {\n        DAT_000727fc = 0;\n        iVar4 = 0;\n        goto LAB_00024c64;\n      }\n      puVar6 = puVar5 + -1;\n      if (puVar1 <= puVar5 + -1) {\n        do {\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));\n      }\n      DAT_00072800 = (int)puVar5 - (DAT_00072808 + 1);\n      iVar4 = FUN_000241b0();\n      if ((uint)(iVar3 - iVar4) < DAT_00072800) {\n        DAT_000727f8 = DAT_000727f8 * 2;\n        iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);\n        __dest = (void *)(iVar4 + 1);\n        sVar8 = DAT_00072800;\n        DAT_00072808 = iVar4;\n      }\n      else {\n        __dest = (void *)(DAT_00072808 + 1);\n        iVar4 = DAT_00072808;\n        sVar8 = DAT_00072800;\n      }\n    }\n    if (DAT_00072800 != 0) {\n      uVar7 = dcgettext(0,"end of file not at end of a line; newline inserted",5);\n      FUN_0002a660(uVar7);\n      iVar4 = 0;\n      puVar1 = (undefined1 *)(DAT_00072808 + 1 + DAT_00072800);\n      puVar5 = puVar1 + 1;\n      *puVar1 = 10;\n      DAT_000727fc = puVar1[1];\nLAB_00024c64:\n      *puVar5 = 0;\n      DAT_00072804 = puVar5;\n      DAT_00072800 = iVar4;\n      return puVar5;\n    }\n    if (_DAT_00072d6c != 0) {\n      FUN_00025cc0(0);\n    }\n    DAT_00072804 = (undefined1 *)0x0;\n    if (DAT_000727d8 != (undefined1 *)0x0) {\nLAB_00024bd7:\n      DAT_00072804 = (undefined1 *)0x0;\n      iVar4 = FUN_00024880();\n      *param_1 = iVar4;\n      return DAT_00072804;\n    }\n    puVar5 = (undefined1 *)0x0;\n  }\n  else if (DAT_0006a29c < DAT_000727f0) {\n    DAT_0006a29c = DAT_000727f0;\n    DAT_00072800 = 0;\n    puVar5 = (undefined1 *)(DAT_000727ec + DAT_000727f0);\n    DAT_00072804 = puVar5;\n    *param_1 = uVar2 + DAT_000727ec;\n  }\n  else {\n    FUN_00033520(&DAT_000727ec);\n    if (DAT_0006a298 != 0) {\n      FUN_00019960(DAT_00072e54);\n    }\n    DAT_00072e54 = DAT_00072e54 + -1;\n    DAT_00072804 = (undefined1 *)0x0;\n    DAT_00072800 = 0;\n    puVar5 = DAT_000727d8;\n    if (DAT_000727d8 != (undefined1 *)0x0) goto LAB_00024bd7;\n  }\n  return puVar5;\n}\n\n" comment comment (function_definition "undefined1 * FUN_00024b30(int *param_1)\n\n{\n  undefined1 *puVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  undefined1 *puVar6;\n  undefined4 uVar7;\n  void *__dest;\n  size_t sVar8;\n  \n  iVar4 = DAT_00072808;\n  sVar8 = DAT_00072800;\n  uVar2 = DAT_0006a29c;\n  if (DAT_0006a29c == 0xffffffff) {\n    __dest = (void *)(DAT_00072808 + 1);\n    if (DAT_00072800 != 0) {\n      memmove(__dest,DAT_00072804,DAT_00072800);\n      *(undefined1 *)(iVar4 + 1) = DAT_000727fc;\n    }\n    while( true ) {\n      puVar1 = (undefined1 *)(iVar4 + 1 + sVar8);\n      *param_1 = (int)__dest;\n      puVar5 = (undefined1 *)FUN_00024610(puVar1);\n      if (puVar5 == (undefined1 *)0x0) break;\n      *puVar5 = 0;\n      iVar3 = DAT_000727f8;\n      if (puVar5[-1] == '\n') {\n        DAT_000727fc = 0;\n        iVar4 = 0;\n        goto LAB_00024c64;\n      }\n      puVar6 = puVar5 + -1;\n      if (puVar1 <= puVar5 + -1) {\n        do {\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));\n      }\n      DAT_00072800 = (int)puVar5 - (DAT_00072808 + 1);\n      iVar4 = FUN_000241b0();\n      if ((uint)(iVar3 - iVar4) < DAT_00072800) {\n        DAT_000727f8 = DAT_000727f8 * 2;\n        iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);\n        __dest = (void *)(iVar4 + 1);\n        sVar8 = DAT_00072800;\n        DAT_00072808 = iVar4;\n      }\n      else {\n        __dest = (void *)(DAT_00072808 + 1);\n        iVar4 = DAT_00072808;\n        sVar8 = DAT_00072800;\n      }\n    }\n    if (DAT_00072800 != 0) {\n      uVar7 = dcgettext(0,"end of file not at end of a line; newline inserted",5);\n      FUN_0002a660(uVar7);\n      iVar4 = 0;\n      puVar1 = (undefined1 *)(DAT_00072808 + 1 + DAT_00072800);\n      puVar5 = puVar1 + 1;\n      *puVar1 = 10;\n      DAT_000727fc = puVar1[1];\nLAB_00024c64:\n      *puVar5 = 0;\n      DAT_00072804 = puVar5;\n      DAT_00072800 = iVar4;\n      return puVar5;\n    }\n    if (_DAT_00072d6c != 0) {\n      FUN_00025cc0(0);\n    }\n    DAT_00072804 = (undefined1 *)0x0;\n    if (DAT_000727d8 != (undefined1 *)0x0) {\nLAB_00024bd7:\n      DAT_00072804 = (undefined1 *)0x0;\n      iVar4 = FUN_00024880();\n      *param_1 = iVar4;\n      return DAT_00072804;\n    }\n    puVar5 = (undefined1 *)0x0;\n  }\n  else if (DAT_0006a29c < DAT_000727f0) {\n    DAT_0006a29c = DAT_000727f0;\n    DAT_00072800 = 0;\n    puVar5 = (undefined1 *)(DAT_000727ec + DAT_000727f0);\n    DAT_00072804 = puVar5;\n    *param_1 = uVar2 + DAT_000727ec;\n  }\n  else {\n    FUN_00033520(&DAT_000727ec);\n    if (DAT_0006a298 != 0) {\n      FUN_00019960(DAT_00072e54);\n    }\n    DAT_00072e54 = DAT_00072e54 + -1;\n    DAT_00072804 = (undefined1 *)0x0;\n    DAT_00072800 = 0;\n    puVar5 = DAT_000727d8;\n    if (DAT_000727d8 != (undefined1 *)0x0) goto LAB_00024bd7;\n  }\n  return puVar5;\n}" type_identifier (pointer_declarator "* FUN_00024b30(int *param_1)" * (function_declarator "FUN_00024b30(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) )))) (compound_statement "{\n  undefined1 *puVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  undefined1 *puVar6;\n  undefined4 uVar7;\n  void *__dest;\n  size_t sVar8;\n  \n  iVar4 = DAT_00072808;\n  sVar8 = DAT_00072800;\n  uVar2 = DAT_0006a29c;\n  if (DAT_0006a29c == 0xffffffff) {\n    __dest = (void *)(DAT_00072808 + 1);\n    if (DAT_00072800 != 0) {\n      memmove(__dest,DAT_00072804,DAT_00072800);\n      *(undefined1 *)(iVar4 + 1) = DAT_000727fc;\n    }\n    while( true ) {\n      puVar1 = (undefined1 *)(iVar4 + 1 + sVar8);\n      *param_1 = (int)__dest;\n      puVar5 = (undefined1 *)FUN_00024610(puVar1);\n      if (puVar5 == (undefined1 *)0x0) break;\n      *puVar5 = 0;\n      iVar3 = DAT_000727f8;\n      if (puVar5[-1] == '\n') {\n        DAT_000727fc = 0;\n        iVar4 = 0;\n        goto LAB_00024c64;\n      }\n      puVar6 = puVar5 + -1;\n      if (puVar1 <= puVar5 + -1) {\n        do {\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));\n      }\n      DAT_00072800 = (int)puVar5 - (DAT_00072808 + 1);\n      iVar4 = FUN_000241b0();\n      if ((uint)(iVar3 - iVar4) < DAT_00072800) {\n        DAT_000727f8 = DAT_000727f8 * 2;\n        iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);\n        __dest = (void *)(iVar4 + 1);\n        sVar8 = DAT_00072800;\n        DAT_00072808 = iVar4;\n      }\n      else {\n        __dest = (void *)(DAT_00072808 + 1);\n        iVar4 = DAT_00072808;\n        sVar8 = DAT_00072800;\n      }\n    }\n    if (DAT_00072800 != 0) {\n      uVar7 = dcgettext(0,"end of file not at end of a line; newline inserted",5);\n      FUN_0002a660(uVar7);\n      iVar4 = 0;\n      puVar1 = (undefined1 *)(DAT_00072808 + 1 + DAT_00072800);\n      puVar5 = puVar1 + 1;\n      *puVar1 = 10;\n      DAT_000727fc = puVar1[1];\nLAB_00024c64:\n      *puVar5 = 0;\n      DAT_00072804 = puVar5;\n      DAT_00072800 = iVar4;\n      return puVar5;\n    }\n    if (_DAT_00072d6c != 0) {\n      FUN_00025cc0(0);\n    }\n    DAT_00072804 = (undefined1 *)0x0;\n    if (DAT_000727d8 != (undefined1 *)0x0) {\nLAB_00024bd7:\n      DAT_00072804 = (undefined1 *)0x0;\n      iVar4 = FUN_00024880();\n      *param_1 = iVar4;\n      return DAT_00072804;\n    }\n    puVar5 = (undefined1 *)0x0;\n  }\n  else if (DAT_0006a29c < DAT_000727f0) {\n    DAT_0006a29c = DAT_000727f0;\n    DAT_00072800 = 0;\n    puVar5 = (undefined1 *)(DAT_000727ec + DAT_000727f0);\n    DAT_00072804 = puVar5;\n    *param_1 = uVar2 + DAT_000727ec;\n  }\n  else {\n    FUN_00033520(&DAT_000727ec);\n    if (DAT_0006a298 != 0) {\n      FUN_00019960(DAT_00072e54);\n    }\n    DAT_00072e54 = DAT_00072e54 + -1;\n    DAT_00072804 = (undefined1 *)0x0;\n    DAT_00072800 = 0;\n    puVar5 = DAT_000727d8;\n    if (DAT_000727d8 != (undefined1 *)0x0) goto LAB_00024bd7;\n  }\n  return puVar5;\n}" { (declaration "undefined1 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined1 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined1 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "void *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "size_t sVar8;" primitive_type identifier ;) (expression_statement "iVar4 = DAT_00072808;" (assignment_expression "iVar4 = DAT_00072808" identifier = identifier) ;) (expression_statement "sVar8 = DAT_00072800;" (assignment_expression "sVar8 = DAT_00072800" identifier = identifier) ;) (expression_statement "uVar2 = DAT_0006a29c;" (assignment_expression "uVar2 = DAT_0006a29c" identifier = identifier) ;) (if_statement "if (DAT_0006a29c == 0xffffffff) {\n    __dest = (void *)(DAT_00072808 + 1);\n    if (DAT_00072800 != 0) {\n      memmove(__dest,DAT_00072804,DAT_00072800);\n      *(undefined1 *)(iVar4 + 1) = DAT_000727fc;\n    }\n    while( true ) {\n      puVar1 = (undefined1 *)(iVar4 + 1 + sVar8);\n      *param_1 = (int)__dest;\n      puVar5 = (undefined1 *)FUN_00024610(puVar1);\n      if (puVar5 == (undefined1 *)0x0) break;\n      *puVar5 = 0;\n      iVar3 = DAT_000727f8;\n      if (puVar5[-1] == '\n') {\n        DAT_000727fc = 0;\n        iVar4 = 0;\n        goto LAB_00024c64;\n      }\n      puVar6 = puVar5 + -1;\n      if (puVar1 <= puVar5 + -1) {\n        do {\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));\n      }\n      DAT_00072800 = (int)puVar5 - (DAT_00072808 + 1);\n      iVar4 = FUN_000241b0();\n      if ((uint)(iVar3 - iVar4) < DAT_00072800) {\n        DAT_000727f8 = DAT_000727f8 * 2;\n        iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);\n        __dest = (void *)(iVar4 + 1);\n        sVar8 = DAT_00072800;\n        DAT_00072808 = iVar4;\n      }\n      else {\n        __dest = (void *)(DAT_00072808 + 1);\n        iVar4 = DAT_00072808;\n        sVar8 = DAT_00072800;\n      }\n    }\n    if (DAT_00072800 != 0) {\n      uVar7 = dcgettext(0,"end of file not at end of a line; newline inserted",5);\n      FUN_0002a660(uVar7);\n      iVar4 = 0;\n      puVar1 = (undefined1 *)(DAT_00072808 + 1 + DAT_00072800);\n      puVar5 = puVar1 + 1;\n      *puVar1 = 10;\n      DAT_000727fc = puVar1[1];\nLAB_00024c64:\n      *puVar5 = 0;\n      DAT_00072804 = puVar5;\n      DAT_00072800 = iVar4;\n      return puVar5;\n    }\n    if (_DAT_00072d6c != 0) {\n      FUN_00025cc0(0);\n    }\n    DAT_00072804 = (undefined1 *)0x0;\n    if (DAT_000727d8 != (undefined1 *)0x0) {\nLAB_00024bd7:\n      DAT_00072804 = (undefined1 *)0x0;\n      iVar4 = FUN_00024880();\n      *param_1 = iVar4;\n      return DAT_00072804;\n    }\n    puVar5 = (undefined1 *)0x0;\n  }\n  else if (DAT_0006a29c < DAT_000727f0) {\n    DAT_0006a29c = DAT_000727f0;\n    DAT_00072800 = 0;\n    puVar5 = (undefined1 *)(DAT_000727ec + DAT_000727f0);\n    DAT_00072804 = puVar5;\n    *param_1 = uVar2 + DAT_000727ec;\n  }\n  else {\n    FUN_00033520(&DAT_000727ec);\n    if (DAT_0006a298 != 0) {\n      FUN_00019960(DAT_00072e54);\n    }\n    DAT_00072e54 = DAT_00072e54 + -1;\n    DAT_00072804 = (undefined1 *)0x0;\n    DAT_00072800 = 0;\n    puVar5 = DAT_000727d8;\n    if (DAT_000727d8 != (undefined1 *)0x0) goto LAB_00024bd7;\n  }" if (parenthesized_expression "(DAT_0006a29c == 0xffffffff)" ( (binary_expression "DAT_0006a29c == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n    __dest = (void *)(DAT_00072808 + 1);\n    if (DAT_00072800 != 0) {\n      memmove(__dest,DAT_00072804,DAT_00072800);\n      *(undefined1 *)(iVar4 + 1) = DAT_000727fc;\n    }\n    while( true ) {\n      puVar1 = (undefined1 *)(iVar4 + 1 + sVar8);\n      *param_1 = (int)__dest;\n      puVar5 = (undefined1 *)FUN_00024610(puVar1);\n      if (puVar5 == (undefined1 *)0x0) break;\n      *puVar5 = 0;\n      iVar3 = DAT_000727f8;\n      if (puVar5[-1] == '\n') {\n        DAT_000727fc = 0;\n        iVar4 = 0;\n        goto LAB_00024c64;\n      }\n      puVar6 = puVar5 + -1;\n      if (puVar1 <= puVar5 + -1) {\n        do {\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));\n      }\n      DAT_00072800 = (int)puVar5 - (DAT_00072808 + 1);\n      iVar4 = FUN_000241b0();\n      if ((uint)(iVar3 - iVar4) < DAT_00072800) {\n        DAT_000727f8 = DAT_000727f8 * 2;\n        iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);\n        __dest = (void *)(iVar4 + 1);\n        sVar8 = DAT_00072800;\n        DAT_00072808 = iVar4;\n      }\n      else {\n        __dest = (void *)(DAT_00072808 + 1);\n        iVar4 = DAT_00072808;\n        sVar8 = DAT_00072800;\n      }\n    }\n    if (DAT_00072800 != 0) {\n      uVar7 = dcgettext(0,"end of file not at end of a line; newline inserted",5);\n      FUN_0002a660(uVar7);\n      iVar4 = 0;\n      puVar1 = (undefined1 *)(DAT_00072808 + 1 + DAT_00072800);\n      puVar5 = puVar1 + 1;\n      *puVar1 = 10;\n      DAT_000727fc = puVar1[1];\nLAB_00024c64:\n      *puVar5 = 0;\n      DAT_00072804 = puVar5;\n      DAT_00072800 = iVar4;\n      return puVar5;\n    }\n    if (_DAT_00072d6c != 0) {\n      FUN_00025cc0(0);\n    }\n    DAT_00072804 = (undefined1 *)0x0;\n    if (DAT_000727d8 != (undefined1 *)0x0) {\nLAB_00024bd7:\n      DAT_00072804 = (undefined1 *)0x0;\n      iVar4 = FUN_00024880();\n      *param_1 = iVar4;\n      return DAT_00072804;\n    }\n    puVar5 = (undefined1 *)0x0;\n  }" { (expression_statement "__dest = (void *)(DAT_00072808 + 1);" (assignment_expression "__dest = (void *)(DAT_00072808 + 1)" identifier = (cast_expression "(void *)(DAT_00072808 + 1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00072808 + 1)" ( (binary_expression "DAT_00072808 + 1" identifier + number_literal) )))) ;) (if_statement "if (DAT_00072800 != 0) {\n      memmove(__dest,DAT_00072804,DAT_00072800);\n      *(undefined1 *)(iVar4 + 1) = DAT_000727fc;\n    }" if (parenthesized_expression "(DAT_00072800 != 0)" ( (binary_expression "DAT_00072800 != 0" identifier != number_literal) )) (compound_statement "{\n      memmove(__dest,DAT_00072804,DAT_00072800);\n      *(undefined1 *)(iVar4 + 1) = DAT_000727fc;\n    }" { (expression_statement "memmove(__dest,DAT_00072804,DAT_00072800);" (call_expression "memmove(__dest,DAT_00072804,DAT_00072800)" identifier (argument_list "(__dest,DAT_00072804,DAT_00072800)" ( identifier , identifier , identifier ))) ;) (expression_statement "*(undefined1 *)(iVar4 + 1) = DAT_000727fc;" (assignment_expression "*(undefined1 *)(iVar4 + 1) = DAT_000727fc" (pointer_expression "*(undefined1 *)(iVar4 + 1)" * (cast_expression "(undefined1 *)(iVar4 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 1)" ( (binary_expression "iVar4 + 1" identifier + number_literal) )))) = identifier) ;) })) (while_statement "while( true ) {\n      puVar1 = (undefined1 *)(iVar4 + 1 + sVar8);\n      *param_1 = (int)__dest;\n      puVar5 = (undefined1 *)FUN_00024610(puVar1);\n      if (puVar5 == (undefined1 *)0x0) break;\n      *puVar5 = 0;\n      iVar3 = DAT_000727f8;\n      if (puVar5[-1] == '\n') {\n        DAT_000727fc = 0;\n        iVar4 = 0;\n        goto LAB_00024c64;\n      }\n      puVar6 = puVar5 + -1;\n      if (puVar1 <= puVar5 + -1) {\n        do {\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));\n      }\n      DAT_00072800 = (int)puVar5 - (DAT_00072808 + 1);\n      iVar4 = FUN_000241b0();\n      if ((uint)(iVar3 - iVar4) < DAT_00072800) {\n        DAT_000727f8 = DAT_000727f8 * 2;\n        iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);\n        __dest = (void *)(iVar4 + 1);\n        sVar8 = DAT_00072800;\n        DAT_00072808 = iVar4;\n      }\n      else {\n        __dest = (void *)(DAT_00072808 + 1);\n        iVar4 = DAT_00072808;\n        sVar8 = DAT_00072800;\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      puVar1 = (undefined1 *)(iVar4 + 1 + sVar8);\n      *param_1 = (int)__dest;\n      puVar5 = (undefined1 *)FUN_00024610(puVar1);\n      if (puVar5 == (undefined1 *)0x0) break;\n      *puVar5 = 0;\n      iVar3 = DAT_000727f8;\n      if (puVar5[-1] == '\n') {\n        DAT_000727fc = 0;\n        iVar4 = 0;\n        goto LAB_00024c64;\n      }\n      puVar6 = puVar5 + -1;\n      if (puVar1 <= puVar5 + -1) {\n        do {\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));\n      }\n      DAT_00072800 = (int)puVar5 - (DAT_00072808 + 1);\n      iVar4 = FUN_000241b0();\n      if ((uint)(iVar3 - iVar4) < DAT_00072800) {\n        DAT_000727f8 = DAT_000727f8 * 2;\n        iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);\n        __dest = (void *)(iVar4 + 1);\n        sVar8 = DAT_00072800;\n        DAT_00072808 = iVar4;\n      }\n      else {\n        __dest = (void *)(DAT_00072808 + 1);\n        iVar4 = DAT_00072808;\n        sVar8 = DAT_00072800;\n      }\n    }" { (expression_statement "puVar1 = (undefined1 *)(iVar4 + 1 + sVar8);" (assignment_expression "puVar1 = (undefined1 *)(iVar4 + 1 + sVar8)" identifier = (cast_expression "(undefined1 *)(iVar4 + 1 + sVar8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 1 + sVar8)" ( (binary_expression "iVar4 + 1 + sVar8" (binary_expression "iVar4 + 1" identifier + number_literal) + identifier) )))) ;) (expression_statement "*param_1 = (int)__dest;" (assignment_expression "*param_1 = (int)__dest" (pointer_expression "*param_1" * identifier) = (cast_expression "(int)__dest" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar5 = (undefined1 *)FUN_00024610(puVar1);" (assignment_expression "puVar5 = (undefined1 *)FUN_00024610(puVar1)" identifier = (cast_expression "(undefined1 *)FUN_00024610(puVar1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00024610(puVar1)" identifier (argument_list "(puVar1)" ( identifier ))))) ;) (if_statement "if (puVar5 == (undefined1 *)0x0) break;" if (parenthesized_expression "(puVar5 == (undefined1 *)0x0)" ( (binary_expression "puVar5 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "*puVar5 = 0;" (assignment_expression "*puVar5 = 0" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (expression_statement "iVar3 = DAT_000727f8;" (assignment_expression "iVar3 = DAT_000727f8" identifier = identifier) ;) (if_statement "if (puVar5[-1] == '\n') {\n        DAT_000727fc = 0;\n        iVar4 = 0;\n        goto LAB_00024c64;\n      }" if (parenthesized_expression "(puVar5[-1] == '\n')" ( (binary_expression "puVar5[-1] == '\n'" (subscript_expression "puVar5[-1]" identifier [ number_literal ]) == (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n        DAT_000727fc = 0;\n        iVar4 = 0;\n        goto LAB_00024c64;\n      }" { (expression_statement "DAT_000727fc = 0;" (assignment_expression "DAT_000727fc = 0" identifier = number_literal) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00024c64;" goto statement_identifier ;) })) (expression_statement "puVar6 = puVar5 + -1;" (assignment_expression "puVar6 = puVar5 + -1" identifier = (binary_expression "puVar5 + -1" identifier + number_literal)) ;) (if_statement "if (puVar1 <= puVar5 + -1) {\n        do {\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));\n      }" if (parenthesized_expression "(puVar1 <= puVar5 + -1)" ( (binary_expression "puVar1 <= puVar5 + -1" identifier <= (binary_expression "puVar5 + -1" identifier + number_literal)) )) (compound_statement "{\n        do {\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));\n      }" { (do_statement "do {\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));" do (compound_statement "{\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        }" { (expression_statement "puVar1 = puVar6 + -1;" (assignment_expression "puVar1 = puVar6 + -1" identifier = (binary_expression "puVar6 + -1" identifier + number_literal)) ;) (if_statement "if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }" if (parenthesized_expression "(puVar6[-1] == '\n')" ( (binary_expression "puVar6[-1] == '\n'" (subscript_expression "puVar6[-1]" identifier [ number_literal ]) == (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }" { (expression_statement "DAT_000727fc = *puVar6;" (assignment_expression "DAT_000727fc = *puVar6" identifier = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "iVar4 = (int)puVar5 - (int)puVar6;" (assignment_expression "iVar4 = (int)puVar5 - (int)puVar6" identifier = (binary_expression "(int)puVar5 - (int)puVar6" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar5 = puVar6;" (assignment_expression "puVar5 = puVar6" identifier = identifier) ;) (goto_statement "goto LAB_00024c64;" goto statement_identifier ;) })) (expression_statement "puVar6 = puVar1;" (assignment_expression "puVar6 = puVar1" identifier = identifier) ;) }) while (parenthesized_expression "(puVar1 != (undefined1 *)(iVar4 + sVar8))" ( (binary_expression "puVar1 != (undefined1 *)(iVar4 + sVar8)" identifier != (cast_expression "(undefined1 *)(iVar4 + sVar8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + sVar8)" ( (binary_expression "iVar4 + sVar8" identifier + identifier) )))) )) ;) })) (expression_statement "DAT_00072800 = (int)puVar5 - (DAT_00072808 + 1);" (assignment_expression "DAT_00072800 = (int)puVar5 - (DAT_00072808 + 1)" identifier = (binary_expression "(int)puVar5 - (DAT_00072808 + 1)" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) - (parenthesized_expression "(DAT_00072808 + 1)" ( (binary_expression "DAT_00072808 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar4 = FUN_000241b0();" (assignment_expression "iVar4 = FUN_000241b0()" identifier = (call_expression "FUN_000241b0()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((uint)(iVar3 - iVar4) < DAT_00072800) {\n        DAT_000727f8 = DAT_000727f8 * 2;\n        iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);\n        __dest = (void *)(iVar4 + 1);\n        sVar8 = DAT_00072800;\n        DAT_00072808 = iVar4;\n      }\n      else {\n        __dest = (void *)(DAT_00072808 + 1);\n        iVar4 = DAT_00072808;\n        sVar8 = DAT_00072800;\n      }" if (parenthesized_expression "((uint)(iVar3 - iVar4) < DAT_00072800)" ( (binary_expression "(uint)(iVar3 - iVar4) < DAT_00072800" (call_expression "(uint)(iVar3 - iVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar3 - iVar4)" ( (binary_expression "iVar3 - iVar4" identifier - identifier) ))) < identifier) )) (compound_statement "{\n        DAT_000727f8 = DAT_000727f8 * 2;\n        iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);\n        __dest = (void *)(iVar4 + 1);\n        sVar8 = DAT_00072800;\n        DAT_00072808 = iVar4;\n      }" { (expression_statement "DAT_000727f8 = DAT_000727f8 * 2;" (assignment_expression "DAT_000727f8 = DAT_000727f8 * 2" identifier = (binary_expression "DAT_000727f8 * 2" identifier * number_literal)) ;) (expression_statement "iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);" (assignment_expression "iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3)" identifier = (call_expression "xrealloc(DAT_00072808,DAT_000727f8 + 3)" identifier (argument_list "(DAT_00072808,DAT_000727f8 + 3)" ( identifier , (binary_expression "DAT_000727f8 + 3" identifier + number_literal) )))) ;) (expression_statement "__dest = (void *)(iVar4 + 1);" (assignment_expression "__dest = (void *)(iVar4 + 1)" identifier = (cast_expression "(void *)(iVar4 + 1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 1)" ( (binary_expression "iVar4 + 1" identifier + number_literal) )))) ;) (expression_statement "sVar8 = DAT_00072800;" (assignment_expression "sVar8 = DAT_00072800" identifier = identifier) ;) (expression_statement "DAT_00072808 = iVar4;" (assignment_expression "DAT_00072808 = iVar4" identifier = identifier) ;) }) (else_clause "else {\n        __dest = (void *)(DAT_00072808 + 1);\n        iVar4 = DAT_00072808;\n        sVar8 = DAT_00072800;\n      }" else (compound_statement "{\n        __dest = (void *)(DAT_00072808 + 1);\n        iVar4 = DAT_00072808;\n        sVar8 = DAT_00072800;\n      }" { (expression_statement "__dest = (void *)(DAT_00072808 + 1);" (assignment_expression "__dest = (void *)(DAT_00072808 + 1)" identifier = (cast_expression "(void *)(DAT_00072808 + 1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00072808 + 1)" ( (binary_expression "DAT_00072808 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar4 = DAT_00072808;" (assignment_expression "iVar4 = DAT_00072808" identifier = identifier) ;) (expression_statement "sVar8 = DAT_00072800;" (assignment_expression "sVar8 = DAT_00072800" identifier = identifier) ;) }))) })) (if_statement "if (DAT_00072800 != 0) {\n      uVar7 = dcgettext(0,"end of file not at end of a line; newline inserted",5);\n      FUN_0002a660(uVar7);\n      iVar4 = 0;\n      puVar1 = (undefined1 *)(DAT_00072808 + 1 + DAT_00072800);\n      puVar5 = puVar1 + 1;\n      *puVar1 = 10;\n      DAT_000727fc = puVar1[1];\nLAB_00024c64:\n      *puVar5 = 0;\n      DAT_00072804 = puVar5;\n      DAT_00072800 = iVar4;\n      return puVar5;\n    }" if (parenthesized_expression "(DAT_00072800 != 0)" ( (binary_expression "DAT_00072800 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar7 = dcgettext(0,"end of file not at end of a line; newline inserted",5);\n      FUN_0002a660(uVar7);\n      iVar4 = 0;\n      puVar1 = (undefined1 *)(DAT_00072808 + 1 + DAT_00072800);\n      puVar5 = puVar1 + 1;\n      *puVar1 = 10;\n      DAT_000727fc = puVar1[1];\nLAB_00024c64:\n      *puVar5 = 0;\n      DAT_00072804 = puVar5;\n      DAT_00072800 = iVar4;\n      return puVar5;\n    }" { (expression_statement "uVar7 = dcgettext(0,"end of file not at end of a line; newline inserted",5);" (assignment_expression "uVar7 = dcgettext(0,"end of file not at end of a line; newline inserted",5)" identifier = (call_expression "dcgettext(0,"end of file not at end of a line; newline inserted",5)" identifier (argument_list "(0,"end of file not at end of a line; newline inserted",5)" ( number_literal , (string_literal ""end of file not at end of a line; newline inserted"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002a660(uVar7);" (call_expression "FUN_0002a660(uVar7)" identifier (argument_list "(uVar7)" ( identifier ))) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "puVar1 = (undefined1 *)(DAT_00072808 + 1 + DAT_00072800);" (assignment_expression "puVar1 = (undefined1 *)(DAT_00072808 + 1 + DAT_00072800)" identifier = (cast_expression "(undefined1 *)(DAT_00072808 + 1 + DAT_00072800)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00072808 + 1 + DAT_00072800)" ( (binary_expression "DAT_00072808 + 1 + DAT_00072800" (binary_expression "DAT_00072808 + 1" identifier + number_literal) + identifier) )))) ;) (expression_statement "puVar5 = puVar1 + 1;" (assignment_expression "puVar5 = puVar1 + 1" identifier = (binary_expression "puVar1 + 1" identifier + number_literal)) ;) (expression_statement "*puVar1 = 10;" (assignment_expression "*puVar1 = 10" (pointer_expression "*puVar1" * identifier) = number_literal) ;) (expression_statement "DAT_000727fc = puVar1[1];" (assignment_expression "DAT_000727fc = puVar1[1]" identifier = (subscript_expression "puVar1[1]" identifier [ number_literal ])) ;) (labeled_statement "LAB_00024c64:\n      *puVar5 = 0;" statement_identifier : (expression_statement "*puVar5 = 0;" (assignment_expression "*puVar5 = 0" (pointer_expression "*puVar5" * identifier) = number_literal) ;)) (expression_statement "DAT_00072804 = puVar5;" (assignment_expression "DAT_00072804 = puVar5" identifier = identifier) ;) (expression_statement "DAT_00072800 = iVar4;" (assignment_expression "DAT_00072800 = iVar4" identifier = identifier) ;) (return_statement "return puVar5;" return identifier ;) })) (if_statement "if (_DAT_00072d6c != 0) {\n      FUN_00025cc0(0);\n    }" if (parenthesized_expression "(_DAT_00072d6c != 0)" ( (binary_expression "_DAT_00072d6c != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_00025cc0(0);\n    }" { (expression_statement "FUN_00025cc0(0);" (call_expression "FUN_00025cc0(0)" identifier (argument_list "(0)" ( number_literal ))) ;) })) (expression_statement "DAT_00072804 = (undefined1 *)0x0;" (assignment_expression "DAT_00072804 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (DAT_000727d8 != (undefined1 *)0x0) {\nLAB_00024bd7:\n      DAT_00072804 = (undefined1 *)0x0;\n      iVar4 = FUN_00024880();\n      *param_1 = iVar4;\n      return DAT_00072804;\n    }" if (parenthesized_expression "(DAT_000727d8 != (undefined1 *)0x0)" ( (binary_expression "DAT_000727d8 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00024bd7:\n      DAT_00072804 = (undefined1 *)0x0;\n      iVar4 = FUN_00024880();\n      *param_1 = iVar4;\n      return DAT_00072804;\n    }" { (labeled_statement "LAB_00024bd7:\n      DAT_00072804 = (undefined1 *)0x0;" statement_identifier : (expression_statement "DAT_00072804 = (undefined1 *)0x0;" (assignment_expression "DAT_00072804 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "iVar4 = FUN_00024880();" (assignment_expression "iVar4 = FUN_00024880()" identifier = (call_expression "FUN_00024880()" identifier (argument_list "()" ( )))) ;) (expression_statement "*param_1 = iVar4;" (assignment_expression "*param_1 = iVar4" (pointer_expression "*param_1" * identifier) = identifier) ;) (return_statement "return DAT_00072804;" return identifier ;) })) (expression_statement "puVar5 = (undefined1 *)0x0;" (assignment_expression "puVar5 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (DAT_0006a29c < DAT_000727f0) {\n    DAT_0006a29c = DAT_000727f0;\n    DAT_00072800 = 0;\n    puVar5 = (undefined1 *)(DAT_000727ec + DAT_000727f0);\n    DAT_00072804 = puVar5;\n    *param_1 = uVar2 + DAT_000727ec;\n  }\n  else {\n    FUN_00033520(&DAT_000727ec);\n    if (DAT_0006a298 != 0) {\n      FUN_00019960(DAT_00072e54);\n    }\n    DAT_00072e54 = DAT_00072e54 + -1;\n    DAT_00072804 = (undefined1 *)0x0;\n    DAT_00072800 = 0;\n    puVar5 = DAT_000727d8;\n    if (DAT_000727d8 != (undefined1 *)0x0) goto LAB_00024bd7;\n  }" else (if_statement "if (DAT_0006a29c < DAT_000727f0) {\n    DAT_0006a29c = DAT_000727f0;\n    DAT_00072800 = 0;\n    puVar5 = (undefined1 *)(DAT_000727ec + DAT_000727f0);\n    DAT_00072804 = puVar5;\n    *param_1 = uVar2 + DAT_000727ec;\n  }\n  else {\n    FUN_00033520(&DAT_000727ec);\n    if (DAT_0006a298 != 0) {\n      FUN_00019960(DAT_00072e54);\n    }\n    DAT_00072e54 = DAT_00072e54 + -1;\n    DAT_00072804 = (undefined1 *)0x0;\n    DAT_00072800 = 0;\n    puVar5 = DAT_000727d8;\n    if (DAT_000727d8 != (undefined1 *)0x0) goto LAB_00024bd7;\n  }" if (parenthesized_expression "(DAT_0006a29c < DAT_000727f0)" ( (binary_expression "DAT_0006a29c < DAT_000727f0" identifier < identifier) )) (compound_statement "{\n    DAT_0006a29c = DAT_000727f0;\n    DAT_00072800 = 0;\n    puVar5 = (undefined1 *)(DAT_000727ec + DAT_000727f0);\n    DAT_00072804 = puVar5;\n    *param_1 = uVar2 + DAT_000727ec;\n  }" { (expression_statement "DAT_0006a29c = DAT_000727f0;" (assignment_expression "DAT_0006a29c = DAT_000727f0" identifier = identifier) ;) (expression_statement "DAT_00072800 = 0;" (assignment_expression "DAT_00072800 = 0" identifier = number_literal) ;) (expression_statement "puVar5 = (undefined1 *)(DAT_000727ec + DAT_000727f0);" (assignment_expression "puVar5 = (undefined1 *)(DAT_000727ec + DAT_000727f0)" identifier = (cast_expression "(undefined1 *)(DAT_000727ec + DAT_000727f0)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000727ec + DAT_000727f0)" ( (binary_expression "DAT_000727ec + DAT_000727f0" identifier + identifier) )))) ;) (expression_statement "DAT_00072804 = puVar5;" (assignment_expression "DAT_00072804 = puVar5" identifier = identifier) ;) (expression_statement "*param_1 = uVar2 + DAT_000727ec;" (assignment_expression "*param_1 = uVar2 + DAT_000727ec" (pointer_expression "*param_1" * identifier) = (binary_expression "uVar2 + DAT_000727ec" identifier + identifier)) ;) }) (else_clause "else {\n    FUN_00033520(&DAT_000727ec);\n    if (DAT_0006a298 != 0) {\n      FUN_00019960(DAT_00072e54);\n    }\n    DAT_00072e54 = DAT_00072e54 + -1;\n    DAT_00072804 = (undefined1 *)0x0;\n    DAT_00072800 = 0;\n    puVar5 = DAT_000727d8;\n    if (DAT_000727d8 != (undefined1 *)0x0) goto LAB_00024bd7;\n  }" else (compound_statement "{\n    FUN_00033520(&DAT_000727ec);\n    if (DAT_0006a298 != 0) {\n      FUN_00019960(DAT_00072e54);\n    }\n    DAT_00072e54 = DAT_00072e54 + -1;\n    DAT_00072804 = (undefined1 *)0x0;\n    DAT_00072800 = 0;\n    puVar5 = DAT_000727d8;\n    if (DAT_000727d8 != (undefined1 *)0x0) goto LAB_00024bd7;\n  }" { (expression_statement "FUN_00033520(&DAT_000727ec);" (call_expression "FUN_00033520(&DAT_000727ec)" identifier (argument_list "(&DAT_000727ec)" ( (pointer_expression "&DAT_000727ec" & identifier) ))) ;) (if_statement "if (DAT_0006a298 != 0) {\n      FUN_00019960(DAT_00072e54);\n    }" if (parenthesized_expression "(DAT_0006a298 != 0)" ( (binary_expression "DAT_0006a298 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_00019960(DAT_00072e54);\n    }" { (expression_statement "FUN_00019960(DAT_00072e54);" (call_expression "FUN_00019960(DAT_00072e54)" identifier (argument_list "(DAT_00072e54)" ( identifier ))) ;) })) (expression_statement "DAT_00072e54 = DAT_00072e54 + -1;" (assignment_expression "DAT_00072e54 = DAT_00072e54 + -1" identifier = (binary_expression "DAT_00072e54 + -1" identifier + number_literal)) ;) (expression_statement "DAT_00072804 = (undefined1 *)0x0;" (assignment_expression "DAT_00072804 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00072800 = 0;" (assignment_expression "DAT_00072800 = 0" identifier = number_literal) ;) (expression_statement "puVar5 = DAT_000727d8;" (assignment_expression "puVar5 = DAT_000727d8" identifier = identifier) ;) (if_statement "if (DAT_000727d8 != (undefined1 *)0x0) goto LAB_00024bd7;" if (parenthesized_expression "(DAT_000727d8 != (undefined1 *)0x0)" ( (binary_expression "DAT_000727d8 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00024bd7;" goto statement_identifier ;)) }))))) (return_statement "return puVar5;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nchar * input_scrub_next_buffer(char **bufp)\n\n{\n  char *pcVar1;\n  input_save *piVar2;\n  char *pcVar3;\n  char *pcVar4;\n  char *pcVar5;\n  size_t sVar6;\n  size_t sVar7;\n  \n  pcVar3 = buffer_start;\n  sVar6 = partial_size;\n  sVar7 = sb_index;\n  if (sb_index == 0xffffffff) {\n    pcVar4 = buffer_start + 1;\n    if (partial_size != 0) {\n      memmove(pcVar4,partial_where,partial_size);\n      pcVar3[1] = save_source[0];\n    }\n    while( true ) {\n      *bufp = pcVar4;\n      pcVar4 = input_file_give_next_buffer(pcVar3 + sVar6 + 1);\n      if (pcVar4 == (char *)0x0) break;\n      *pcVar4 = '\0';\n      sVar7 = buffer_length;\n      if (pcVar4[-1] == '\n') {\n        save_source[0] = '\0';\n        sVar7 = 0;\n        goto LAB_00024c64;\n      }\n      pcVar5 = pcVar4 + -1;\n      if (pcVar3 + sVar6 + 1 <= pcVar4 + -1) {\n        do {\n          pcVar1 = pcVar5 + -1;\n          if (pcVar5[-1] == '\n') {\n            save_source[0] = *pcVar5;\n            sVar7 = (int)pcVar4 - (int)pcVar5;\n            pcVar4 = pcVar5;\n            goto LAB_00024c64;\n          }\n          pcVar5 = pcVar1;\n        } while (pcVar1 != pcVar3 + sVar6);\n      }\n      partial_size = (int)pcVar4 - (int)(buffer_start + 1);\n      sVar6 = input_file_buffer_size();\n      if (sVar7 - sVar6 < partial_size) {\n        buffer_length = buffer_length * 2;\n        pcVar3 = (char *)xrealloc(buffer_start,buffer_length + 3);\n        pcVar4 = pcVar3 + 1;\n        sVar6 = partial_size;\n        buffer_start = pcVar3;\n      }\n      else {\n        pcVar4 = buffer_start + 1;\n        pcVar3 = buffer_start;\n        sVar6 = partial_size;\n      }\n    }\n    if (partial_size != 0) {\n      pcVar3 = (char *)dcgettext(0,"end of file not at end of a line; newline inserted",5);\n      as_warn(pcVar3);\n      sVar7 = 0;\n      pcVar3 = buffer_start + partial_size + 1;\n      pcVar4 = pcVar3 + 1;\n      *pcVar3 = '\n';\n      save_source[0] = pcVar3[1];\nLAB_00024c64:\n      *pcVar4 = '\0';\n      partial_where = pcVar4;\n      partial_size = sVar7;\n      return pcVar4;\n    }\n    if (listing != 0) {\n      listing_newline((char *)0x0);\n    }\n    partial_where = (char *)0x0;\n    if (next_saved_file != (input_save *)0x0) {\nLAB_00024bd7:\n      partial_where = (char *)0x0;\n      pcVar3 = input_scrub_pop(next_saved_file);\n      *bufp = pcVar3;\n      return partial_where;\n    }\n    piVar2 = (input_save *)0x0;\n  }\n  else if (sb_index < from_sb.len) {\n    sb_index = from_sb.len;\n    partial_size = 0;\n    piVar2 = (input_save *)(from_sb.ptr + from_sb.len);\n    partial_where = (char *)piVar2;\n    *bufp = from_sb.ptr + sVar7;\n  }\n  else {\n    sb_kill(&from_sb);\n    if (from_sb_is_expansion != 0) {\n      cond_finish_check(macro_nest);\n    }\n    macro_nest = macro_nest + -1;\n    partial_where = (char *)0x0;\n    partial_size = 0;\n    piVar2 = next_saved_file;\n    if (next_saved_file != (input_save *)0x0) goto LAB_00024bd7;\n  }\n  return (char *)piVar2;\n}\n\n" comment comment (function_definition "char * input_scrub_next_buffer(char **bufp)\n\n{\n  char *pcVar1;\n  input_save *piVar2;\n  char *pcVar3;\n  char *pcVar4;\n  char *pcVar5;\n  size_t sVar6;\n  size_t sVar7;\n  \n  pcVar3 = buffer_start;\n  sVar6 = partial_size;\n  sVar7 = sb_index;\n  if (sb_index == 0xffffffff) {\n    pcVar4 = buffer_start + 1;\n    if (partial_size != 0) {\n      memmove(pcVar4,partial_where,partial_size);\n      pcVar3[1] = save_source[0];\n    }\n    while( true ) {\n      *bufp = pcVar4;\n      pcVar4 = input_file_give_next_buffer(pcVar3 + sVar6 + 1);\n      if (pcVar4 == (char *)0x0) break;\n      *pcVar4 = '\0';\n      sVar7 = buffer_length;\n      if (pcVar4[-1] == '\n') {\n        save_source[0] = '\0';\n        sVar7 = 0;\n        goto LAB_00024c64;\n      }\n      pcVar5 = pcVar4 + -1;\n      if (pcVar3 + sVar6 + 1 <= pcVar4 + -1) {\n        do {\n          pcVar1 = pcVar5 + -1;\n          if (pcVar5[-1] == '\n') {\n            save_source[0] = *pcVar5;\n            sVar7 = (int)pcVar4 - (int)pcVar5;\n            pcVar4 = pcVar5;\n            goto LAB_00024c64;\n          }\n          pcVar5 = pcVar1;\n        } while (pcVar1 != pcVar3 + sVar6);\n      }\n      partial_size = (int)pcVar4 - (int)(buffer_start + 1);\n      sVar6 = input_file_buffer_size();\n      if (sVar7 - sVar6 < partial_size) {\n        buffer_length = buffer_length * 2;\n        pcVar3 = (char *)xrealloc(buffer_start,buffer_length + 3);\n        pcVar4 = pcVar3 + 1;\n        sVar6 = partial_size;\n        buffer_start = pcVar3;\n      }\n      else {\n        pcVar4 = buffer_start + 1;\n        pcVar3 = buffer_start;\n        sVar6 = partial_size;\n      }\n    }\n    if (partial_size != 0) {\n      pcVar3 = (char *)dcgettext(0,"end of file not at end of a line; newline inserted",5);\n      as_warn(pcVar3);\n      sVar7 = 0;\n      pcVar3 = buffer_start + partial_size + 1;\n      pcVar4 = pcVar3 + 1;\n      *pcVar3 = '\n';\n      save_source[0] = pcVar3[1];\nLAB_00024c64:\n      *pcVar4 = '\0';\n      partial_where = pcVar4;\n      partial_size = sVar7;\n      return pcVar4;\n    }\n    if (listing != 0) {\n      listing_newline((char *)0x0);\n    }\n    partial_where = (char *)0x0;\n    if (next_saved_file != (input_save *)0x0) {\nLAB_00024bd7:\n      partial_where = (char *)0x0;\n      pcVar3 = input_scrub_pop(next_saved_file);\n      *bufp = pcVar3;\n      return partial_where;\n    }\n    piVar2 = (input_save *)0x0;\n  }\n  else if (sb_index < from_sb.len) {\n    sb_index = from_sb.len;\n    partial_size = 0;\n    piVar2 = (input_save *)(from_sb.ptr + from_sb.len);\n    partial_where = (char *)piVar2;\n    *bufp = from_sb.ptr + sVar7;\n  }\n  else {\n    sb_kill(&from_sb);\n    if (from_sb_is_expansion != 0) {\n      cond_finish_check(macro_nest);\n    }\n    macro_nest = macro_nest + -1;\n    partial_where = (char *)0x0;\n    partial_size = 0;\n    piVar2 = next_saved_file;\n    if (next_saved_file != (input_save *)0x0) goto LAB_00024bd7;\n  }\n  return (char *)piVar2;\n}" primitive_type (pointer_declarator "* input_scrub_next_buffer(char **bufp)" * (function_declarator "input_scrub_next_buffer(char **bufp)" identifier (parameter_list "(char **bufp)" ( (parameter_declaration "char **bufp" primitive_type (pointer_declarator "**bufp" * (pointer_declarator "*bufp" * identifier))) )))) (compound_statement "{\n  char *pcVar1;\n  input_save *piVar2;\n  char *pcVar3;\n  char *pcVar4;\n  char *pcVar5;\n  size_t sVar6;\n  size_t sVar7;\n  \n  pcVar3 = buffer_start;\n  sVar6 = partial_size;\n  sVar7 = sb_index;\n  if (sb_index == 0xffffffff) {\n    pcVar4 = buffer_start + 1;\n    if (partial_size != 0) {\n      memmove(pcVar4,partial_where,partial_size);\n      pcVar3[1] = save_source[0];\n    }\n    while( true ) {\n      *bufp = pcVar4;\n      pcVar4 = input_file_give_next_buffer(pcVar3 + sVar6 + 1);\n      if (pcVar4 == (char *)0x0) break;\n      *pcVar4 = '\0';\n      sVar7 = buffer_length;\n      if (pcVar4[-1] == '\n') {\n        save_source[0] = '\0';\n        sVar7 = 0;\n        goto LAB_00024c64;\n      }\n      pcVar5 = pcVar4 + -1;\n      if (pcVar3 + sVar6 + 1 <= pcVar4 + -1) {\n        do {\n          pcVar1 = pcVar5 + -1;\n          if (pcVar5[-1] == '\n') {\n            save_source[0] = *pcVar5;\n            sVar7 = (int)pcVar4 - (int)pcVar5;\n            pcVar4 = pcVar5;\n            goto LAB_00024c64;\n          }\n          pcVar5 = pcVar1;\n        } while (pcVar1 != pcVar3 + sVar6);\n      }\n      partial_size = (int)pcVar4 - (int)(buffer_start + 1);\n      sVar6 = input_file_buffer_size();\n      if (sVar7 - sVar6 < partial_size) {\n        buffer_length = buffer_length * 2;\n        pcVar3 = (char *)xrealloc(buffer_start,buffer_length + 3);\n        pcVar4 = pcVar3 + 1;\n        sVar6 = partial_size;\n        buffer_start = pcVar3;\n      }\n      else {\n        pcVar4 = buffer_start + 1;\n        pcVar3 = buffer_start;\n        sVar6 = partial_size;\n      }\n    }\n    if (partial_size != 0) {\n      pcVar3 = (char *)dcgettext(0,"end of file not at end of a line; newline inserted",5);\n      as_warn(pcVar3);\n      sVar7 = 0;\n      pcVar3 = buffer_start + partial_size + 1;\n      pcVar4 = pcVar3 + 1;\n      *pcVar3 = '\n';\n      save_source[0] = pcVar3[1];\nLAB_00024c64:\n      *pcVar4 = '\0';\n      partial_where = pcVar4;\n      partial_size = sVar7;\n      return pcVar4;\n    }\n    if (listing != 0) {\n      listing_newline((char *)0x0);\n    }\n    partial_where = (char *)0x0;\n    if (next_saved_file != (input_save *)0x0) {\nLAB_00024bd7:\n      partial_where = (char *)0x0;\n      pcVar3 = input_scrub_pop(next_saved_file);\n      *bufp = pcVar3;\n      return partial_where;\n    }\n    piVar2 = (input_save *)0x0;\n  }\n  else if (sb_index < from_sb.len) {\n    sb_index = from_sb.len;\n    partial_size = 0;\n    piVar2 = (input_save *)(from_sb.ptr + from_sb.len);\n    partial_where = (char *)piVar2;\n    *bufp = from_sb.ptr + sVar7;\n  }\n  else {\n    sb_kill(&from_sb);\n    if (from_sb_is_expansion != 0) {\n      cond_finish_check(macro_nest);\n    }\n    macro_nest = macro_nest + -1;\n    partial_where = (char *)0x0;\n    partial_size = 0;\n    piVar2 = next_saved_file;\n    if (next_saved_file != (input_save *)0x0) goto LAB_00024bd7;\n  }\n  return (char *)piVar2;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "input_save *piVar2;" type_identifier (pointer_declarator "*piVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "size_t sVar7;" primitive_type identifier ;) (expression_statement "pcVar3 = buffer_start;" (assignment_expression "pcVar3 = buffer_start" identifier = identifier) ;) (expression_statement "sVar6 = partial_size;" (assignment_expression "sVar6 = partial_size" identifier = identifier) ;) (expression_statement "sVar7 = sb_index;" (assignment_expression "sVar7 = sb_index" identifier = identifier) ;) (if_statement "if (sb_index == 0xffffffff) {\n    pcVar4 = buffer_start + 1;\n    if (partial_size != 0) {\n      memmove(pcVar4,partial_where,partial_size);\n      pcVar3[1] = save_source[0];\n    }\n    while( true ) {\n      *bufp = pcVar4;\n      pcVar4 = input_file_give_next_buffer(pcVar3 + sVar6 + 1);\n      if (pcVar4 == (char *)0x0) break;\n      *pcVar4 = '\0';\n      sVar7 = buffer_length;\n      if (pcVar4[-1] == '\n') {\n        save_source[0] = '\0';\n        sVar7 = 0;\n        goto LAB_00024c64;\n      }\n      pcVar5 = pcVar4 + -1;\n      if (pcVar3 + sVar6 + 1 <= pcVar4 + -1) {\n        do {\n          pcVar1 = pcVar5 + -1;\n          if (pcVar5[-1] == '\n') {\n            save_source[0] = *pcVar5;\n            sVar7 = (int)pcVar4 - (int)pcVar5;\n            pcVar4 = pcVar5;\n            goto LAB_00024c64;\n          }\n          pcVar5 = pcVar1;\n        } while (pcVar1 != pcVar3 + sVar6);\n      }\n      partial_size = (int)pcVar4 - (int)(buffer_start + 1);\n      sVar6 = input_file_buffer_size();\n      if (sVar7 - sVar6 < partial_size) {\n        buffer_length = buffer_length * 2;\n        pcVar3 = (char *)xrealloc(buffer_start,buffer_length + 3);\n        pcVar4 = pcVar3 + 1;\n        sVar6 = partial_size;\n        buffer_start = pcVar3;\n      }\n      else {\n        pcVar4 = buffer_start + 1;\n        pcVar3 = buffer_start;\n        sVar6 = partial_size;\n      }\n    }\n    if (partial_size != 0) {\n      pcVar3 = (char *)dcgettext(0,"end of file not at end of a line; newline inserted",5);\n      as_warn(pcVar3);\n      sVar7 = 0;\n      pcVar3 = buffer_start + partial_size + 1;\n      pcVar4 = pcVar3 + 1;\n      *pcVar3 = '\n';\n      save_source[0] = pcVar3[1];\nLAB_00024c64:\n      *pcVar4 = '\0';\n      partial_where = pcVar4;\n      partial_size = sVar7;\n      return pcVar4;\n    }\n    if (listing != 0) {\n      listing_newline((char *)0x0);\n    }\n    partial_where = (char *)0x0;\n    if (next_saved_file != (input_save *)0x0) {\nLAB_00024bd7:\n      partial_where = (char *)0x0;\n      pcVar3 = input_scrub_pop(next_saved_file);\n      *bufp = pcVar3;\n      return partial_where;\n    }\n    piVar2 = (input_save *)0x0;\n  }\n  else if (sb_index < from_sb.len) {\n    sb_index = from_sb.len;\n    partial_size = 0;\n    piVar2 = (input_save *)(from_sb.ptr + from_sb.len);\n    partial_where = (char *)piVar2;\n    *bufp = from_sb.ptr + sVar7;\n  }\n  else {\n    sb_kill(&from_sb);\n    if (from_sb_is_expansion != 0) {\n      cond_finish_check(macro_nest);\n    }\n    macro_nest = macro_nest + -1;\n    partial_where = (char *)0x0;\n    partial_size = 0;\n    piVar2 = next_saved_file;\n    if (next_saved_file != (input_save *)0x0) goto LAB_00024bd7;\n  }" if (parenthesized_expression "(sb_index == 0xffffffff)" ( (binary_expression "sb_index == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n    pcVar4 = buffer_start + 1;\n    if (partial_size != 0) {\n      memmove(pcVar4,partial_where,partial_size);\n      pcVar3[1] = save_source[0];\n    }\n    while( true ) {\n      *bufp = pcVar4;\n      pcVar4 = input_file_give_next_buffer(pcVar3 + sVar6 + 1);\n      if (pcVar4 == (char *)0x0) break;\n      *pcVar4 = '\0';\n      sVar7 = buffer_length;\n      if (pcVar4[-1] == '\n') {\n        save_source[0] = '\0';\n        sVar7 = 0;\n        goto LAB_00024c64;\n      }\n      pcVar5 = pcVar4 + -1;\n      if (pcVar3 + sVar6 + 1 <= pcVar4 + -1) {\n        do {\n          pcVar1 = pcVar5 + -1;\n          if (pcVar5[-1] == '\n') {\n            save_source[0] = *pcVar5;\n            sVar7 = (int)pcVar4 - (int)pcVar5;\n            pcVar4 = pcVar5;\n            goto LAB_00024c64;\n          }\n          pcVar5 = pcVar1;\n        } while (pcVar1 != pcVar3 + sVar6);\n      }\n      partial_size = (int)pcVar4 - (int)(buffer_start + 1);\n      sVar6 = input_file_buffer_size();\n      if (sVar7 - sVar6 < partial_size) {\n        buffer_length = buffer_length * 2;\n        pcVar3 = (char *)xrealloc(buffer_start,buffer_length + 3);\n        pcVar4 = pcVar3 + 1;\n        sVar6 = partial_size;\n        buffer_start = pcVar3;\n      }\n      else {\n        pcVar4 = buffer_start + 1;\n        pcVar3 = buffer_start;\n        sVar6 = partial_size;\n      }\n    }\n    if (partial_size != 0) {\n      pcVar3 = (char *)dcgettext(0,"end of file not at end of a line; newline inserted",5);\n      as_warn(pcVar3);\n      sVar7 = 0;\n      pcVar3 = buffer_start + partial_size + 1;\n      pcVar4 = pcVar3 + 1;\n      *pcVar3 = '\n';\n      save_source[0] = pcVar3[1];\nLAB_00024c64:\n      *pcVar4 = '\0';\n      partial_where = pcVar4;\n      partial_size = sVar7;\n      return pcVar4;\n    }\n    if (listing != 0) {\n      listing_newline((char *)0x0);\n    }\n    partial_where = (char *)0x0;\n    if (next_saved_file != (input_save *)0x0) {\nLAB_00024bd7:\n      partial_where = (char *)0x0;\n      pcVar3 = input_scrub_pop(next_saved_file);\n      *bufp = pcVar3;\n      return partial_where;\n    }\n    piVar2 = (input_save *)0x0;\n  }" { (expression_statement "pcVar4 = buffer_start + 1;" (assignment_expression "pcVar4 = buffer_start + 1" identifier = (binary_expression "buffer_start + 1" identifier + number_literal)) ;) (if_statement "if (partial_size != 0) {\n      memmove(pcVar4,partial_where,partial_size);\n      pcVar3[1] = save_source[0];\n    }" if (parenthesized_expression "(partial_size != 0)" ( (binary_expression "partial_size != 0" identifier != number_literal) )) (compound_statement "{\n      memmove(pcVar4,partial_where,partial_size);\n      pcVar3[1] = save_source[0];\n    }" { (expression_statement "memmove(pcVar4,partial_where,partial_size);" (call_expression "memmove(pcVar4,partial_where,partial_size)" identifier (argument_list "(pcVar4,partial_where,partial_size)" ( identifier , identifier , identifier ))) ;) (expression_statement "pcVar3[1] = save_source[0];" (assignment_expression "pcVar3[1] = save_source[0]" (subscript_expression "pcVar3[1]" identifier [ number_literal ]) = (subscript_expression "save_source[0]" identifier [ number_literal ])) ;) })) (while_statement "while( true ) {\n      *bufp = pcVar4;\n      pcVar4 = input_file_give_next_buffer(pcVar3 + sVar6 + 1);\n      if (pcVar4 == (char *)0x0) break;\n      *pcVar4 = '\0';\n      sVar7 = buffer_length;\n      if (pcVar4[-1] == '\n') {\n        save_source[0] = '\0';\n        sVar7 = 0;\n        goto LAB_00024c64;\n      }\n      pcVar5 = pcVar4 + -1;\n      if (pcVar3 + sVar6 + 1 <= pcVar4 + -1) {\n        do {\n          pcVar1 = pcVar5 + -1;\n          if (pcVar5[-1] == '\n') {\n            save_source[0] = *pcVar5;\n            sVar7 = (int)pcVar4 - (int)pcVar5;\n            pcVar4 = pcVar5;\n            goto LAB_00024c64;\n          }\n          pcVar5 = pcVar1;\n        } while (pcVar1 != pcVar3 + sVar6);\n      }\n      partial_size = (int)pcVar4 - (int)(buffer_start + 1);\n      sVar6 = input_file_buffer_size();\n      if (sVar7 - sVar6 < partial_size) {\n        buffer_length = buffer_length * 2;\n        pcVar3 = (char *)xrealloc(buffer_start,buffer_length + 3);\n        pcVar4 = pcVar3 + 1;\n        sVar6 = partial_size;\n        buffer_start = pcVar3;\n      }\n      else {\n        pcVar4 = buffer_start + 1;\n        pcVar3 = buffer_start;\n        sVar6 = partial_size;\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      *bufp = pcVar4;\n      pcVar4 = input_file_give_next_buffer(pcVar3 + sVar6 + 1);\n      if (pcVar4 == (char *)0x0) break;\n      *pcVar4 = '\0';\n      sVar7 = buffer_length;\n      if (pcVar4[-1] == '\n') {\n        save_source[0] = '\0';\n        sVar7 = 0;\n        goto LAB_00024c64;\n      }\n      pcVar5 = pcVar4 + -1;\n      if (pcVar3 + sVar6 + 1 <= pcVar4 + -1) {\n        do {\n          pcVar1 = pcVar5 + -1;\n          if (pcVar5[-1] == '\n') {\n            save_source[0] = *pcVar5;\n            sVar7 = (int)pcVar4 - (int)pcVar5;\n            pcVar4 = pcVar5;\n            goto LAB_00024c64;\n          }\n          pcVar5 = pcVar1;\n        } while (pcVar1 != pcVar3 + sVar6);\n      }\n      partial_size = (int)pcVar4 - (int)(buffer_start + 1);\n      sVar6 = input_file_buffer_size();\n      if (sVar7 - sVar6 < partial_size) {\n        buffer_length = buffer_length * 2;\n        pcVar3 = (char *)xrealloc(buffer_start,buffer_length + 3);\n        pcVar4 = pcVar3 + 1;\n        sVar6 = partial_size;\n        buffer_start = pcVar3;\n      }\n      else {\n        pcVar4 = buffer_start + 1;\n        pcVar3 = buffer_start;\n        sVar6 = partial_size;\n      }\n    }" { (expression_statement "*bufp = pcVar4;" (assignment_expression "*bufp = pcVar4" (pointer_expression "*bufp" * identifier) = identifier) ;) (expression_statement "pcVar4 = input_file_give_next_buffer(pcVar3 + sVar6 + 1);" (assignment_expression "pcVar4 = input_file_give_next_buffer(pcVar3 + sVar6 + 1)" identifier = (call_expression "input_file_give_next_buffer(pcVar3 + sVar6 + 1)" identifier (argument_list "(pcVar3 + sVar6 + 1)" ( (binary_expression "pcVar3 + sVar6 + 1" (binary_expression "pcVar3 + sVar6" identifier + identifier) + number_literal) )))) ;) (if_statement "if (pcVar4 == (char *)0x0) break;" if (parenthesized_expression "(pcVar4 == (char *)0x0)" ( (binary_expression "pcVar4 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "*pcVar4 = '\0';" (assignment_expression "*pcVar4 = '\0'" (pointer_expression "*pcVar4" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "sVar7 = buffer_length;" (assignment_expression "sVar7 = buffer_length" identifier = identifier) ;) (if_statement "if (pcVar4[-1] == '\n') {\n        save_source[0] = '\0';\n        sVar7 = 0;\n        goto LAB_00024c64;\n      }" if (parenthesized_expression "(pcVar4[-1] == '\n')" ( (binary_expression "pcVar4[-1] == '\n'" (subscript_expression "pcVar4[-1]" identifier [ number_literal ]) == (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n        save_source[0] = '\0';\n        sVar7 = 0;\n        goto LAB_00024c64;\n      }" { (expression_statement "save_source[0] = '\0';" (assignment_expression "save_source[0] = '\0'" (subscript_expression "save_source[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "sVar7 = 0;" (assignment_expression "sVar7 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00024c64;" goto statement_identifier ;) })) (expression_statement "pcVar5 = pcVar4 + -1;" (assignment_expression "pcVar5 = pcVar4 + -1" identifier = (binary_expression "pcVar4 + -1" identifier + number_literal)) ;) (if_statement "if (pcVar3 + sVar6 + 1 <= pcVar4 + -1) {\n        do {\n          pcVar1 = pcVar5 + -1;\n          if (pcVar5[-1] == '\n') {\n            save_source[0] = *pcVar5;\n            sVar7 = (int)pcVar4 - (int)pcVar5;\n            pcVar4 = pcVar5;\n            goto LAB_00024c64;\n          }\n          pcVar5 = pcVar1;\n        } while (pcVar1 != pcVar3 + sVar6);\n      }" if (parenthesized_expression "(pcVar3 + sVar6 + 1 <= pcVar4 + -1)" ( (binary_expression "pcVar3 + sVar6 + 1 <= pcVar4 + -1" (binary_expression "pcVar3 + sVar6 + 1" (binary_expression "pcVar3 + sVar6" identifier + identifier) + number_literal) <= (binary_expression "pcVar4 + -1" identifier + number_literal)) )) (compound_statement "{\n        do {\n          pcVar1 = pcVar5 + -1;\n          if (pcVar5[-1] == '\n') {\n            save_source[0] = *pcVar5;\n            sVar7 = (int)pcVar4 - (int)pcVar5;\n            pcVar4 = pcVar5;\n            goto LAB_00024c64;\n          }\n          pcVar5 = pcVar1;\n        } while (pcVar1 != pcVar3 + sVar6);\n      }" { (do_statement "do {\n          pcVar1 = pcVar5 + -1;\n          if (pcVar5[-1] == '\n') {\n            save_source[0] = *pcVar5;\n            sVar7 = (int)pcVar4 - (int)pcVar5;\n            pcVar4 = pcVar5;\n            goto LAB_00024c64;\n          }\n          pcVar5 = pcVar1;\n        } while (pcVar1 != pcVar3 + sVar6);" do (compound_statement "{\n          pcVar1 = pcVar5 + -1;\n          if (pcVar5[-1] == '\n') {\n            save_source[0] = *pcVar5;\n            sVar7 = (int)pcVar4 - (int)pcVar5;\n            pcVar4 = pcVar5;\n            goto LAB_00024c64;\n          }\n          pcVar5 = pcVar1;\n        }" { (expression_statement "pcVar1 = pcVar5 + -1;" (assignment_expression "pcVar1 = pcVar5 + -1" identifier = (binary_expression "pcVar5 + -1" identifier + number_literal)) ;) (if_statement "if (pcVar5[-1] == '\n') {\n            save_source[0] = *pcVar5;\n            sVar7 = (int)pcVar4 - (int)pcVar5;\n            pcVar4 = pcVar5;\n            goto LAB_00024c64;\n          }" if (parenthesized_expression "(pcVar5[-1] == '\n')" ( (binary_expression "pcVar5[-1] == '\n'" (subscript_expression "pcVar5[-1]" identifier [ number_literal ]) == (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n            save_source[0] = *pcVar5;\n            sVar7 = (int)pcVar4 - (int)pcVar5;\n            pcVar4 = pcVar5;\n            goto LAB_00024c64;\n          }" { (expression_statement "save_source[0] = *pcVar5;" (assignment_expression "save_source[0] = *pcVar5" (subscript_expression "save_source[0]" identifier [ number_literal ]) = (pointer_expression "*pcVar5" * identifier)) ;) (expression_statement "sVar7 = (int)pcVar4 - (int)pcVar5;" (assignment_expression "sVar7 = (int)pcVar4 - (int)pcVar5" identifier = (binary_expression "(int)pcVar4 - (int)pcVar5" (cast_expression "(int)pcVar4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar4 = pcVar5;" (assignment_expression "pcVar4 = pcVar5" identifier = identifier) ;) (goto_statement "goto LAB_00024c64;" goto statement_identifier ;) })) (expression_statement "pcVar5 = pcVar1;" (assignment_expression "pcVar5 = pcVar1" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar1 != pcVar3 + sVar6)" ( (binary_expression "pcVar1 != pcVar3 + sVar6" identifier != (binary_expression "pcVar3 + sVar6" identifier + identifier)) )) ;) })) (expression_statement "partial_size = (int)pcVar4 - (int)(buffer_start + 1);" (assignment_expression "partial_size = (int)pcVar4 - (int)(buffer_start + 1)" identifier = (binary_expression "(int)pcVar4 - (int)(buffer_start + 1)" (cast_expression "(int)pcVar4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(buffer_start + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(buffer_start + 1)" ( (binary_expression "buffer_start + 1" identifier + number_literal) ))))) ;) (expression_statement "sVar6 = input_file_buffer_size();" (assignment_expression "sVar6 = input_file_buffer_size()" identifier = (call_expression "input_file_buffer_size()" identifier (argument_list "()" ( )))) ;) (if_statement "if (sVar7 - sVar6 < partial_size) {\n        buffer_length = buffer_length * 2;\n        pcVar3 = (char *)xrealloc(buffer_start,buffer_length + 3);\n        pcVar4 = pcVar3 + 1;\n        sVar6 = partial_size;\n        buffer_start = pcVar3;\n      }\n      else {\n        pcVar4 = buffer_start + 1;\n        pcVar3 = buffer_start;\n        sVar6 = partial_size;\n      }" if (parenthesized_expression "(sVar7 - sVar6 < partial_size)" ( (binary_expression "sVar7 - sVar6 < partial_size" (binary_expression "sVar7 - sVar6" identifier - identifier) < identifier) )) (compound_statement "{\n        buffer_length = buffer_length * 2;\n        pcVar3 = (char *)xrealloc(buffer_start,buffer_length + 3);\n        pcVar4 = pcVar3 + 1;\n        sVar6 = partial_size;\n        buffer_start = pcVar3;\n      }" { (expression_statement "buffer_length = buffer_length * 2;" (assignment_expression "buffer_length = buffer_length * 2" identifier = (binary_expression "buffer_length * 2" identifier * number_literal)) ;) (expression_statement "pcVar3 = (char *)xrealloc(buffer_start,buffer_length + 3);" (assignment_expression "pcVar3 = (char *)xrealloc(buffer_start,buffer_length + 3)" identifier = (cast_expression "(char *)xrealloc(buffer_start,buffer_length + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(buffer_start,buffer_length + 3)" identifier (argument_list "(buffer_start,buffer_length + 3)" ( identifier , (binary_expression "buffer_length + 3" identifier + number_literal) ))))) ;) (expression_statement "pcVar4 = pcVar3 + 1;" (assignment_expression "pcVar4 = pcVar3 + 1" identifier = (binary_expression "pcVar3 + 1" identifier + number_literal)) ;) (expression_statement "sVar6 = partial_size;" (assignment_expression "sVar6 = partial_size" identifier = identifier) ;) (expression_statement "buffer_start = pcVar3;" (assignment_expression "buffer_start = pcVar3" identifier = identifier) ;) }) (else_clause "else {\n        pcVar4 = buffer_start + 1;\n        pcVar3 = buffer_start;\n        sVar6 = partial_size;\n      }" else (compound_statement "{\n        pcVar4 = buffer_start + 1;\n        pcVar3 = buffer_start;\n        sVar6 = partial_size;\n      }" { (expression_statement "pcVar4 = buffer_start + 1;" (assignment_expression "pcVar4 = buffer_start + 1" identifier = (binary_expression "buffer_start + 1" identifier + number_literal)) ;) (expression_statement "pcVar3 = buffer_start;" (assignment_expression "pcVar3 = buffer_start" identifier = identifier) ;) (expression_statement "sVar6 = partial_size;" (assignment_expression "sVar6 = partial_size" identifier = identifier) ;) }))) })) (if_statement "if (partial_size != 0) {\n      pcVar3 = (char *)dcgettext(0,"end of file not at end of a line; newline inserted",5);\n      as_warn(pcVar3);\n      sVar7 = 0;\n      pcVar3 = buffer_start + partial_size + 1;\n      pcVar4 = pcVar3 + 1;\n      *pcVar3 = '\n';\n      save_source[0] = pcVar3[1];\nLAB_00024c64:\n      *pcVar4 = '\0';\n      partial_where = pcVar4;\n      partial_size = sVar7;\n      return pcVar4;\n    }" if (parenthesized_expression "(partial_size != 0)" ( (binary_expression "partial_size != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar3 = (char *)dcgettext(0,"end of file not at end of a line; newline inserted",5);\n      as_warn(pcVar3);\n      sVar7 = 0;\n      pcVar3 = buffer_start + partial_size + 1;\n      pcVar4 = pcVar3 + 1;\n      *pcVar3 = '\n';\n      save_source[0] = pcVar3[1];\nLAB_00024c64:\n      *pcVar4 = '\0';\n      partial_where = pcVar4;\n      partial_size = sVar7;\n      return pcVar4;\n    }" { (expression_statement "pcVar3 = (char *)dcgettext(0,"end of file not at end of a line; newline inserted",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"end of file not at end of a line; newline inserted",5)" identifier = (cast_expression "(char *)dcgettext(0,"end of file not at end of a line; newline inserted",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"end of file not at end of a line; newline inserted",5)" identifier (argument_list "(0,"end of file not at end of a line; newline inserted",5)" ( number_literal , (string_literal ""end of file not at end of a line; newline inserted"" " string_content ") , number_literal ))))) ;) (expression_statement "as_warn(pcVar3);" (call_expression "as_warn(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (expression_statement "sVar7 = 0;" (assignment_expression "sVar7 = 0" identifier = number_literal) ;) (expression_statement "pcVar3 = buffer_start + partial_size + 1;" (assignment_expression "pcVar3 = buffer_start + partial_size + 1" identifier = (binary_expression "buffer_start + partial_size + 1" (binary_expression "buffer_start + partial_size" identifier + identifier) + number_literal)) ;) (expression_statement "pcVar4 = pcVar3 + 1;" (assignment_expression "pcVar4 = pcVar3 + 1" identifier = (binary_expression "pcVar3 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar3 = '\n';" (assignment_expression "*pcVar3 = '\n'" (pointer_expression "*pcVar3" * identifier) = (char_literal "'\n'" ' escape_sequence ')) ;) (expression_statement "save_source[0] = pcVar3[1];" (assignment_expression "save_source[0] = pcVar3[1]" (subscript_expression "save_source[0]" identifier [ number_literal ]) = (subscript_expression "pcVar3[1]" identifier [ number_literal ])) ;) (labeled_statement "LAB_00024c64:\n      *pcVar4 = '\0';" statement_identifier : (expression_statement "*pcVar4 = '\0';" (assignment_expression "*pcVar4 = '\0'" (pointer_expression "*pcVar4" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;)) (expression_statement "partial_where = pcVar4;" (assignment_expression "partial_where = pcVar4" identifier = identifier) ;) (expression_statement "partial_size = sVar7;" (assignment_expression "partial_size = sVar7" identifier = identifier) ;) (return_statement "return pcVar4;" return identifier ;) })) (if_statement "if (listing != 0) {\n      listing_newline((char *)0x0);\n    }" if (parenthesized_expression "(listing != 0)" ( (binary_expression "listing != 0" identifier != number_literal) )) (compound_statement "{\n      listing_newline((char *)0x0);\n    }" { (expression_statement "listing_newline((char *)0x0);" (call_expression "listing_newline((char *)0x0)" identifier (argument_list "((char *)0x0)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) })) (expression_statement "partial_where = (char *)0x0;" (assignment_expression "partial_where = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (next_saved_file != (input_save *)0x0) {\nLAB_00024bd7:\n      partial_where = (char *)0x0;\n      pcVar3 = input_scrub_pop(next_saved_file);\n      *bufp = pcVar3;\n      return partial_where;\n    }" if (parenthesized_expression "(next_saved_file != (input_save *)0x0)" ( (binary_expression "next_saved_file != (input_save *)0x0" identifier != (cast_expression "(input_save *)0x0" ( (type_descriptor "input_save *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00024bd7:\n      partial_where = (char *)0x0;\n      pcVar3 = input_scrub_pop(next_saved_file);\n      *bufp = pcVar3;\n      return partial_where;\n    }" { (labeled_statement "LAB_00024bd7:\n      partial_where = (char *)0x0;" statement_identifier : (expression_statement "partial_where = (char *)0x0;" (assignment_expression "partial_where = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pcVar3 = input_scrub_pop(next_saved_file);" (assignment_expression "pcVar3 = input_scrub_pop(next_saved_file)" identifier = (call_expression "input_scrub_pop(next_saved_file)" identifier (argument_list "(next_saved_file)" ( identifier )))) ;) (expression_statement "*bufp = pcVar3;" (assignment_expression "*bufp = pcVar3" (pointer_expression "*bufp" * identifier) = identifier) ;) (return_statement "return partial_where;" return identifier ;) })) (expression_statement "piVar2 = (input_save *)0x0;" (assignment_expression "piVar2 = (input_save *)0x0" identifier = (cast_expression "(input_save *)0x0" ( (type_descriptor "input_save *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (sb_index < from_sb.len) {\n    sb_index = from_sb.len;\n    partial_size = 0;\n    piVar2 = (input_save *)(from_sb.ptr + from_sb.len);\n    partial_where = (char *)piVar2;\n    *bufp = from_sb.ptr + sVar7;\n  }\n  else {\n    sb_kill(&from_sb);\n    if (from_sb_is_expansion != 0) {\n      cond_finish_check(macro_nest);\n    }\n    macro_nest = macro_nest + -1;\n    partial_where = (char *)0x0;\n    partial_size = 0;\n    piVar2 = next_saved_file;\n    if (next_saved_file != (input_save *)0x0) goto LAB_00024bd7;\n  }" else (if_statement "if (sb_index < from_sb.len) {\n    sb_index = from_sb.len;\n    partial_size = 0;\n    piVar2 = (input_save *)(from_sb.ptr + from_sb.len);\n    partial_where = (char *)piVar2;\n    *bufp = from_sb.ptr + sVar7;\n  }\n  else {\n    sb_kill(&from_sb);\n    if (from_sb_is_expansion != 0) {\n      cond_finish_check(macro_nest);\n    }\n    macro_nest = macro_nest + -1;\n    partial_where = (char *)0x0;\n    partial_size = 0;\n    piVar2 = next_saved_file;\n    if (next_saved_file != (input_save *)0x0) goto LAB_00024bd7;\n  }" if (parenthesized_expression "(sb_index < from_sb.len)" ( (binary_expression "sb_index < from_sb.len" identifier < (field_expression "from_sb.len" identifier . field_identifier)) )) (compound_statement "{\n    sb_index = from_sb.len;\n    partial_size = 0;\n    piVar2 = (input_save *)(from_sb.ptr + from_sb.len);\n    partial_where = (char *)piVar2;\n    *bufp = from_sb.ptr + sVar7;\n  }" { (expression_statement "sb_index = from_sb.len;" (assignment_expression "sb_index = from_sb.len" identifier = (field_expression "from_sb.len" identifier . field_identifier)) ;) (expression_statement "partial_size = 0;" (assignment_expression "partial_size = 0" identifier = number_literal) ;) (expression_statement "piVar2 = (input_save *)(from_sb.ptr + from_sb.len);" (assignment_expression "piVar2 = (input_save *)(from_sb.ptr + from_sb.len)" identifier = (cast_expression "(input_save *)(from_sb.ptr + from_sb.len)" ( (type_descriptor "input_save *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(from_sb.ptr + from_sb.len)" ( (binary_expression "from_sb.ptr + from_sb.len" (field_expression "from_sb.ptr" identifier . field_identifier) + (field_expression "from_sb.len" identifier . field_identifier)) )))) ;) (expression_statement "partial_where = (char *)piVar2;" (assignment_expression "partial_where = (char *)piVar2" identifier = (cast_expression "(char *)piVar2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*bufp = from_sb.ptr + sVar7;" (assignment_expression "*bufp = from_sb.ptr + sVar7" (pointer_expression "*bufp" * identifier) = (binary_expression "from_sb.ptr + sVar7" (field_expression "from_sb.ptr" identifier . field_identifier) + identifier)) ;) }) (else_clause "else {\n    sb_kill(&from_sb);\n    if (from_sb_is_expansion != 0) {\n      cond_finish_check(macro_nest);\n    }\n    macro_nest = macro_nest + -1;\n    partial_where = (char *)0x0;\n    partial_size = 0;\n    piVar2 = next_saved_file;\n    if (next_saved_file != (input_save *)0x0) goto LAB_00024bd7;\n  }" else (compound_statement "{\n    sb_kill(&from_sb);\n    if (from_sb_is_expansion != 0) {\n      cond_finish_check(macro_nest);\n    }\n    macro_nest = macro_nest + -1;\n    partial_where = (char *)0x0;\n    partial_size = 0;\n    piVar2 = next_saved_file;\n    if (next_saved_file != (input_save *)0x0) goto LAB_00024bd7;\n  }" { (expression_statement "sb_kill(&from_sb);" (call_expression "sb_kill(&from_sb)" identifier (argument_list "(&from_sb)" ( (pointer_expression "&from_sb" & identifier) ))) ;) (if_statement "if (from_sb_is_expansion != 0) {\n      cond_finish_check(macro_nest);\n    }" if (parenthesized_expression "(from_sb_is_expansion != 0)" ( (binary_expression "from_sb_is_expansion != 0" identifier != number_literal) )) (compound_statement "{\n      cond_finish_check(macro_nest);\n    }" { (expression_statement "cond_finish_check(macro_nest);" (call_expression "cond_finish_check(macro_nest)" identifier (argument_list "(macro_nest)" ( identifier ))) ;) })) (expression_statement "macro_nest = macro_nest + -1;" (assignment_expression "macro_nest = macro_nest + -1" identifier = (binary_expression "macro_nest + -1" identifier + number_literal)) ;) (expression_statement "partial_where = (char *)0x0;" (assignment_expression "partial_where = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "partial_size = 0;" (assignment_expression "partial_size = 0" identifier = number_literal) ;) (expression_statement "piVar2 = next_saved_file;" (assignment_expression "piVar2 = next_saved_file" identifier = identifier) ;) (if_statement "if (next_saved_file != (input_save *)0x0) goto LAB_00024bd7;" if (parenthesized_expression "(next_saved_file != (input_save *)0x0)" ( (binary_expression "next_saved_file != (input_save *)0x0" identifier != (cast_expression "(input_save *)0x0" ( (type_descriptor "input_save *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00024bd7;" goto statement_identifier ;)) }))))) (return_statement "return (char *)piVar2;" return (cast_expression "(char *)piVar2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ;) })))
(translation_unit "undefined1 * FUN_00024b30(int *param_1)\n\n{\n  undefined1 *puVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  undefined1 *puVar6;\n  undefined4 uVar7;\n  void *__dest;\n  size_t sVar8;\n  \n  iVar4 = DAT_00072808;\n  sVar8 = DAT_00072800;\n  uVar2 = DAT_0006a29c;\n  if (DAT_0006a29c == 0xffffffff) {\n    __dest = (void *)(DAT_00072808 + 1);\n    if (DAT_00072800 != 0) {\n      memmove(__dest,DAT_00072804,DAT_00072800);\n      *(undefined1 *)(iVar4 + 1) = DAT_000727fc;\n    }\n    while( true ) {\n      puVar1 = (undefined1 *)(iVar4 + 1 + sVar8);\n      *param_1 = (int)__dest;\n      puVar5 = (undefined1 *)FUN_00024610(puVar1);\n      if (puVar5 == (undefined1 *)0x0) break;\n      *puVar5 = 0;\n      iVar3 = DAT_000727f8;\n      if (puVar5[-1] == '\n') {\n        DAT_000727fc = 0;\n        iVar4 = 0;\n        goto LAB_00024c64;\n      }\n      puVar6 = puVar5 + -1;\n      if (puVar1 <= puVar5 + -1) {\n        do {\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));\n      }\n      DAT_00072800 = (int)puVar5 - (DAT_00072808 + 1);\n      iVar4 = FUN_000241b0();\n      if ((uint)(iVar3 - iVar4) < DAT_00072800) {\n        DAT_000727f8 = DAT_000727f8 * 2;\n        iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);\n        __dest = (void *)(iVar4 + 1);\n        sVar8 = DAT_00072800;\n        DAT_00072808 = iVar4;\n      }\n      else {\n        __dest = (void *)(DAT_00072808 + 1);\n        iVar4 = DAT_00072808;\n        sVar8 = DAT_00072800;\n      }\n    }\n    if (DAT_00072800 != 0) {\n      uVar7 = dcgettext(0,"end of file not at end of a line; newline inserted",5);\n      FUN_0002a660(uVar7);\n      iVar4 = 0;\n      puVar1 = (undefined1 *)(DAT_00072808 + 1 + DAT_00072800);\n      puVar5 = puVar1 + 1;\n      *puVar1 = 10;\n      DAT_000727fc = puVar1[1];\nLAB_00024c64:\n      *puVar5 = 0;\n      DAT_00072804 = puVar5;\n      DAT_00072800 = iVar4;\n      return puVar5;\n    }\n    if (_DAT_00072d6c != 0) {\n      FUN_00025cc0(0);\n    }\n    DAT_00072804 = (undefined1 *)0x0;\n    if (DAT_000727d8 != (undefined1 *)0x0) {\nLAB_00024bd7:\n      DAT_00072804 = (undefined1 *)0x0;\n      iVar4 = FUN_00024880();\n      *param_1 = iVar4;\n      return DAT_00072804;\n    }\n    puVar5 = (undefined1 *)0x0;\n  }\n  else if (DAT_0006a29c < DAT_000727f0) {\n    DAT_0006a29c = DAT_000727f0;\n    DAT_00072800 = 0;\n    puVar5 = (undefined1 *)(DAT_000727ec + DAT_000727f0);\n    DAT_00072804 = puVar5;\n    *param_1 = uVar2 + DAT_000727ec;\n  }\n  else {\n    FUN_00033520(&DAT_000727ec);\n    if (DAT_0006a298 != 0) {\n      FUN_00019960(DAT_00072e54);\n    }\n    DAT_00072e54 = DAT_00072e54 + -1;\n    DAT_00072804 = (undefined1 *)0x0;\n    DAT_00072800 = 0;\n    puVar5 = DAT_000727d8;\n    if (DAT_000727d8 != (undefined1 *)0x0) goto LAB_00024bd7;\n  }\n  return puVar5;\n}\n\n" (function_definition "undefined1 * FUN_00024b30(int *param_1)\n\n{\n  undefined1 *puVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  undefined1 *puVar6;\n  undefined4 uVar7;\n  void *__dest;\n  size_t sVar8;\n  \n  iVar4 = DAT_00072808;\n  sVar8 = DAT_00072800;\n  uVar2 = DAT_0006a29c;\n  if (DAT_0006a29c == 0xffffffff) {\n    __dest = (void *)(DAT_00072808 + 1);\n    if (DAT_00072800 != 0) {\n      memmove(__dest,DAT_00072804,DAT_00072800);\n      *(undefined1 *)(iVar4 + 1) = DAT_000727fc;\n    }\n    while( true ) {\n      puVar1 = (undefined1 *)(iVar4 + 1 + sVar8);\n      *param_1 = (int)__dest;\n      puVar5 = (undefined1 *)FUN_00024610(puVar1);\n      if (puVar5 == (undefined1 *)0x0) break;\n      *puVar5 = 0;\n      iVar3 = DAT_000727f8;\n      if (puVar5[-1] == '\n') {\n        DAT_000727fc = 0;\n        iVar4 = 0;\n        goto LAB_00024c64;\n      }\n      puVar6 = puVar5 + -1;\n      if (puVar1 <= puVar5 + -1) {\n        do {\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));\n      }\n      DAT_00072800 = (int)puVar5 - (DAT_00072808 + 1);\n      iVar4 = FUN_000241b0();\n      if ((uint)(iVar3 - iVar4) < DAT_00072800) {\n        DAT_000727f8 = DAT_000727f8 * 2;\n        iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);\n        __dest = (void *)(iVar4 + 1);\n        sVar8 = DAT_00072800;\n        DAT_00072808 = iVar4;\n      }\n      else {\n        __dest = (void *)(DAT_00072808 + 1);\n        iVar4 = DAT_00072808;\n        sVar8 = DAT_00072800;\n      }\n    }\n    if (DAT_00072800 != 0) {\n      uVar7 = dcgettext(0,"end of file not at end of a line; newline inserted",5);\n      FUN_0002a660(uVar7);\n      iVar4 = 0;\n      puVar1 = (undefined1 *)(DAT_00072808 + 1 + DAT_00072800);\n      puVar5 = puVar1 + 1;\n      *puVar1 = 10;\n      DAT_000727fc = puVar1[1];\nLAB_00024c64:\n      *puVar5 = 0;\n      DAT_00072804 = puVar5;\n      DAT_00072800 = iVar4;\n      return puVar5;\n    }\n    if (_DAT_00072d6c != 0) {\n      FUN_00025cc0(0);\n    }\n    DAT_00072804 = (undefined1 *)0x0;\n    if (DAT_000727d8 != (undefined1 *)0x0) {\nLAB_00024bd7:\n      DAT_00072804 = (undefined1 *)0x0;\n      iVar4 = FUN_00024880();\n      *param_1 = iVar4;\n      return DAT_00072804;\n    }\n    puVar5 = (undefined1 *)0x0;\n  }\n  else if (DAT_0006a29c < DAT_000727f0) {\n    DAT_0006a29c = DAT_000727f0;\n    DAT_00072800 = 0;\n    puVar5 = (undefined1 *)(DAT_000727ec + DAT_000727f0);\n    DAT_00072804 = puVar5;\n    *param_1 = uVar2 + DAT_000727ec;\n  }\n  else {\n    FUN_00033520(&DAT_000727ec);\n    if (DAT_0006a298 != 0) {\n      FUN_00019960(DAT_00072e54);\n    }\n    DAT_00072e54 = DAT_00072e54 + -1;\n    DAT_00072804 = (undefined1 *)0x0;\n    DAT_00072800 = 0;\n    puVar5 = DAT_000727d8;\n    if (DAT_000727d8 != (undefined1 *)0x0) goto LAB_00024bd7;\n  }\n  return puVar5;\n}" type_identifier (pointer_declarator "* FUN_00024b30(int *param_1)" * (function_declarator "FUN_00024b30(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) )))) (compound_statement "{\n  undefined1 *puVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  undefined1 *puVar6;\n  undefined4 uVar7;\n  void *__dest;\n  size_t sVar8;\n  \n  iVar4 = DAT_00072808;\n  sVar8 = DAT_00072800;\n  uVar2 = DAT_0006a29c;\n  if (DAT_0006a29c == 0xffffffff) {\n    __dest = (void *)(DAT_00072808 + 1);\n    if (DAT_00072800 != 0) {\n      memmove(__dest,DAT_00072804,DAT_00072800);\n      *(undefined1 *)(iVar4 + 1) = DAT_000727fc;\n    }\n    while( true ) {\n      puVar1 = (undefined1 *)(iVar4 + 1 + sVar8);\n      *param_1 = (int)__dest;\n      puVar5 = (undefined1 *)FUN_00024610(puVar1);\n      if (puVar5 == (undefined1 *)0x0) break;\n      *puVar5 = 0;\n      iVar3 = DAT_000727f8;\n      if (puVar5[-1] == '\n') {\n        DAT_000727fc = 0;\n        iVar4 = 0;\n        goto LAB_00024c64;\n      }\n      puVar6 = puVar5 + -1;\n      if (puVar1 <= puVar5 + -1) {\n        do {\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));\n      }\n      DAT_00072800 = (int)puVar5 - (DAT_00072808 + 1);\n      iVar4 = FUN_000241b0();\n      if ((uint)(iVar3 - iVar4) < DAT_00072800) {\n        DAT_000727f8 = DAT_000727f8 * 2;\n        iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);\n        __dest = (void *)(iVar4 + 1);\n        sVar8 = DAT_00072800;\n        DAT_00072808 = iVar4;\n      }\n      else {\n        __dest = (void *)(DAT_00072808 + 1);\n        iVar4 = DAT_00072808;\n        sVar8 = DAT_00072800;\n      }\n    }\n    if (DAT_00072800 != 0) {\n      uVar7 = dcgettext(0,"end of file not at end of a line; newline inserted",5);\n      FUN_0002a660(uVar7);\n      iVar4 = 0;\n      puVar1 = (undefined1 *)(DAT_00072808 + 1 + DAT_00072800);\n      puVar5 = puVar1 + 1;\n      *puVar1 = 10;\n      DAT_000727fc = puVar1[1];\nLAB_00024c64:\n      *puVar5 = 0;\n      DAT_00072804 = puVar5;\n      DAT_00072800 = iVar4;\n      return puVar5;\n    }\n    if (_DAT_00072d6c != 0) {\n      FUN_00025cc0(0);\n    }\n    DAT_00072804 = (undefined1 *)0x0;\n    if (DAT_000727d8 != (undefined1 *)0x0) {\nLAB_00024bd7:\n      DAT_00072804 = (undefined1 *)0x0;\n      iVar4 = FUN_00024880();\n      *param_1 = iVar4;\n      return DAT_00072804;\n    }\n    puVar5 = (undefined1 *)0x0;\n  }\n  else if (DAT_0006a29c < DAT_000727f0) {\n    DAT_0006a29c = DAT_000727f0;\n    DAT_00072800 = 0;\n    puVar5 = (undefined1 *)(DAT_000727ec + DAT_000727f0);\n    DAT_00072804 = puVar5;\n    *param_1 = uVar2 + DAT_000727ec;\n  }\n  else {\n    FUN_00033520(&DAT_000727ec);\n    if (DAT_0006a298 != 0) {\n      FUN_00019960(DAT_00072e54);\n    }\n    DAT_00072e54 = DAT_00072e54 + -1;\n    DAT_00072804 = (undefined1 *)0x0;\n    DAT_00072800 = 0;\n    puVar5 = DAT_000727d8;\n    if (DAT_000727d8 != (undefined1 *)0x0) goto LAB_00024bd7;\n  }\n  return puVar5;\n}" { (declaration "undefined1 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined1 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined1 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "void *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "size_t sVar8;" primitive_type identifier ;) (expression_statement "iVar4 = DAT_00072808;" (assignment_expression "iVar4 = DAT_00072808" identifier = identifier) ;) (expression_statement "sVar8 = DAT_00072800;" (assignment_expression "sVar8 = DAT_00072800" identifier = identifier) ;) (expression_statement "uVar2 = DAT_0006a29c;" (assignment_expression "uVar2 = DAT_0006a29c" identifier = identifier) ;) (if_statement "if (DAT_0006a29c == 0xffffffff) {\n    __dest = (void *)(DAT_00072808 + 1);\n    if (DAT_00072800 != 0) {\n      memmove(__dest,DAT_00072804,DAT_00072800);\n      *(undefined1 *)(iVar4 + 1) = DAT_000727fc;\n    }\n    while( true ) {\n      puVar1 = (undefined1 *)(iVar4 + 1 + sVar8);\n      *param_1 = (int)__dest;\n      puVar5 = (undefined1 *)FUN_00024610(puVar1);\n      if (puVar5 == (undefined1 *)0x0) break;\n      *puVar5 = 0;\n      iVar3 = DAT_000727f8;\n      if (puVar5[-1] == '\n') {\n        DAT_000727fc = 0;\n        iVar4 = 0;\n        goto LAB_00024c64;\n      }\n      puVar6 = puVar5 + -1;\n      if (puVar1 <= puVar5 + -1) {\n        do {\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));\n      }\n      DAT_00072800 = (int)puVar5 - (DAT_00072808 + 1);\n      iVar4 = FUN_000241b0();\n      if ((uint)(iVar3 - iVar4) < DAT_00072800) {\n        DAT_000727f8 = DAT_000727f8 * 2;\n        iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);\n        __dest = (void *)(iVar4 + 1);\n        sVar8 = DAT_00072800;\n        DAT_00072808 = iVar4;\n      }\n      else {\n        __dest = (void *)(DAT_00072808 + 1);\n        iVar4 = DAT_00072808;\n        sVar8 = DAT_00072800;\n      }\n    }\n    if (DAT_00072800 != 0) {\n      uVar7 = dcgettext(0,"end of file not at end of a line; newline inserted",5);\n      FUN_0002a660(uVar7);\n      iVar4 = 0;\n      puVar1 = (undefined1 *)(DAT_00072808 + 1 + DAT_00072800);\n      puVar5 = puVar1 + 1;\n      *puVar1 = 10;\n      DAT_000727fc = puVar1[1];\nLAB_00024c64:\n      *puVar5 = 0;\n      DAT_00072804 = puVar5;\n      DAT_00072800 = iVar4;\n      return puVar5;\n    }\n    if (_DAT_00072d6c != 0) {\n      FUN_00025cc0(0);\n    }\n    DAT_00072804 = (undefined1 *)0x0;\n    if (DAT_000727d8 != (undefined1 *)0x0) {\nLAB_00024bd7:\n      DAT_00072804 = (undefined1 *)0x0;\n      iVar4 = FUN_00024880();\n      *param_1 = iVar4;\n      return DAT_00072804;\n    }\n    puVar5 = (undefined1 *)0x0;\n  }\n  else if (DAT_0006a29c < DAT_000727f0) {\n    DAT_0006a29c = DAT_000727f0;\n    DAT_00072800 = 0;\n    puVar5 = (undefined1 *)(DAT_000727ec + DAT_000727f0);\n    DAT_00072804 = puVar5;\n    *param_1 = uVar2 + DAT_000727ec;\n  }\n  else {\n    FUN_00033520(&DAT_000727ec);\n    if (DAT_0006a298 != 0) {\n      FUN_00019960(DAT_00072e54);\n    }\n    DAT_00072e54 = DAT_00072e54 + -1;\n    DAT_00072804 = (undefined1 *)0x0;\n    DAT_00072800 = 0;\n    puVar5 = DAT_000727d8;\n    if (DAT_000727d8 != (undefined1 *)0x0) goto LAB_00024bd7;\n  }" if (parenthesized_expression "(DAT_0006a29c == 0xffffffff)" ( (binary_expression "DAT_0006a29c == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n    __dest = (void *)(DAT_00072808 + 1);\n    if (DAT_00072800 != 0) {\n      memmove(__dest,DAT_00072804,DAT_00072800);\n      *(undefined1 *)(iVar4 + 1) = DAT_000727fc;\n    }\n    while( true ) {\n      puVar1 = (undefined1 *)(iVar4 + 1 + sVar8);\n      *param_1 = (int)__dest;\n      puVar5 = (undefined1 *)FUN_00024610(puVar1);\n      if (puVar5 == (undefined1 *)0x0) break;\n      *puVar5 = 0;\n      iVar3 = DAT_000727f8;\n      if (puVar5[-1] == '\n') {\n        DAT_000727fc = 0;\n        iVar4 = 0;\n        goto LAB_00024c64;\n      }\n      puVar6 = puVar5 + -1;\n      if (puVar1 <= puVar5 + -1) {\n        do {\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));\n      }\n      DAT_00072800 = (int)puVar5 - (DAT_00072808 + 1);\n      iVar4 = FUN_000241b0();\n      if ((uint)(iVar3 - iVar4) < DAT_00072800) {\n        DAT_000727f8 = DAT_000727f8 * 2;\n        iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);\n        __dest = (void *)(iVar4 + 1);\n        sVar8 = DAT_00072800;\n        DAT_00072808 = iVar4;\n      }\n      else {\n        __dest = (void *)(DAT_00072808 + 1);\n        iVar4 = DAT_00072808;\n        sVar8 = DAT_00072800;\n      }\n    }\n    if (DAT_00072800 != 0) {\n      uVar7 = dcgettext(0,"end of file not at end of a line; newline inserted",5);\n      FUN_0002a660(uVar7);\n      iVar4 = 0;\n      puVar1 = (undefined1 *)(DAT_00072808 + 1 + DAT_00072800);\n      puVar5 = puVar1 + 1;\n      *puVar1 = 10;\n      DAT_000727fc = puVar1[1];\nLAB_00024c64:\n      *puVar5 = 0;\n      DAT_00072804 = puVar5;\n      DAT_00072800 = iVar4;\n      return puVar5;\n    }\n    if (_DAT_00072d6c != 0) {\n      FUN_00025cc0(0);\n    }\n    DAT_00072804 = (undefined1 *)0x0;\n    if (DAT_000727d8 != (undefined1 *)0x0) {\nLAB_00024bd7:\n      DAT_00072804 = (undefined1 *)0x0;\n      iVar4 = FUN_00024880();\n      *param_1 = iVar4;\n      return DAT_00072804;\n    }\n    puVar5 = (undefined1 *)0x0;\n  }" { (expression_statement "__dest = (void *)(DAT_00072808 + 1);" (assignment_expression "__dest = (void *)(DAT_00072808 + 1)" identifier = (cast_expression "(void *)(DAT_00072808 + 1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00072808 + 1)" ( (binary_expression "DAT_00072808 + 1" identifier + number_literal) )))) ;) (if_statement "if (DAT_00072800 != 0) {\n      memmove(__dest,DAT_00072804,DAT_00072800);\n      *(undefined1 *)(iVar4 + 1) = DAT_000727fc;\n    }" if (parenthesized_expression "(DAT_00072800 != 0)" ( (binary_expression "DAT_00072800 != 0" identifier != number_literal) )) (compound_statement "{\n      memmove(__dest,DAT_00072804,DAT_00072800);\n      *(undefined1 *)(iVar4 + 1) = DAT_000727fc;\n    }" { (expression_statement "memmove(__dest,DAT_00072804,DAT_00072800);" (call_expression "memmove(__dest,DAT_00072804,DAT_00072800)" identifier (argument_list "(__dest,DAT_00072804,DAT_00072800)" ( identifier , identifier , identifier ))) ;) (expression_statement "*(undefined1 *)(iVar4 + 1) = DAT_000727fc;" (assignment_expression "*(undefined1 *)(iVar4 + 1) = DAT_000727fc" (pointer_expression "*(undefined1 *)(iVar4 + 1)" * (cast_expression "(undefined1 *)(iVar4 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 1)" ( (binary_expression "iVar4 + 1" identifier + number_literal) )))) = identifier) ;) })) (while_statement "while( true ) {\n      puVar1 = (undefined1 *)(iVar4 + 1 + sVar8);\n      *param_1 = (int)__dest;\n      puVar5 = (undefined1 *)FUN_00024610(puVar1);\n      if (puVar5 == (undefined1 *)0x0) break;\n      *puVar5 = 0;\n      iVar3 = DAT_000727f8;\n      if (puVar5[-1] == '\n') {\n        DAT_000727fc = 0;\n        iVar4 = 0;\n        goto LAB_00024c64;\n      }\n      puVar6 = puVar5 + -1;\n      if (puVar1 <= puVar5 + -1) {\n        do {\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));\n      }\n      DAT_00072800 = (int)puVar5 - (DAT_00072808 + 1);\n      iVar4 = FUN_000241b0();\n      if ((uint)(iVar3 - iVar4) < DAT_00072800) {\n        DAT_000727f8 = DAT_000727f8 * 2;\n        iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);\n        __dest = (void *)(iVar4 + 1);\n        sVar8 = DAT_00072800;\n        DAT_00072808 = iVar4;\n      }\n      else {\n        __dest = (void *)(DAT_00072808 + 1);\n        iVar4 = DAT_00072808;\n        sVar8 = DAT_00072800;\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      puVar1 = (undefined1 *)(iVar4 + 1 + sVar8);\n      *param_1 = (int)__dest;\n      puVar5 = (undefined1 *)FUN_00024610(puVar1);\n      if (puVar5 == (undefined1 *)0x0) break;\n      *puVar5 = 0;\n      iVar3 = DAT_000727f8;\n      if (puVar5[-1] == '\n') {\n        DAT_000727fc = 0;\n        iVar4 = 0;\n        goto LAB_00024c64;\n      }\n      puVar6 = puVar5 + -1;\n      if (puVar1 <= puVar5 + -1) {\n        do {\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));\n      }\n      DAT_00072800 = (int)puVar5 - (DAT_00072808 + 1);\n      iVar4 = FUN_000241b0();\n      if ((uint)(iVar3 - iVar4) < DAT_00072800) {\n        DAT_000727f8 = DAT_000727f8 * 2;\n        iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);\n        __dest = (void *)(iVar4 + 1);\n        sVar8 = DAT_00072800;\n        DAT_00072808 = iVar4;\n      }\n      else {\n        __dest = (void *)(DAT_00072808 + 1);\n        iVar4 = DAT_00072808;\n        sVar8 = DAT_00072800;\n      }\n    }" { (expression_statement "puVar1 = (undefined1 *)(iVar4 + 1 + sVar8);" (assignment_expression "puVar1 = (undefined1 *)(iVar4 + 1 + sVar8)" identifier = (cast_expression "(undefined1 *)(iVar4 + 1 + sVar8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 1 + sVar8)" ( (binary_expression "iVar4 + 1 + sVar8" (binary_expression "iVar4 + 1" identifier + number_literal) + identifier) )))) ;) (expression_statement "*param_1 = (int)__dest;" (assignment_expression "*param_1 = (int)__dest" (pointer_expression "*param_1" * identifier) = (cast_expression "(int)__dest" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar5 = (undefined1 *)FUN_00024610(puVar1);" (assignment_expression "puVar5 = (undefined1 *)FUN_00024610(puVar1)" identifier = (cast_expression "(undefined1 *)FUN_00024610(puVar1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00024610(puVar1)" identifier (argument_list "(puVar1)" ( identifier ))))) ;) (if_statement "if (puVar5 == (undefined1 *)0x0) break;" if (parenthesized_expression "(puVar5 == (undefined1 *)0x0)" ( (binary_expression "puVar5 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "*puVar5 = 0;" (assignment_expression "*puVar5 = 0" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (expression_statement "iVar3 = DAT_000727f8;" (assignment_expression "iVar3 = DAT_000727f8" identifier = identifier) ;) (if_statement "if (puVar5[-1] == '\n') {\n        DAT_000727fc = 0;\n        iVar4 = 0;\n        goto LAB_00024c64;\n      }" if (parenthesized_expression "(puVar5[-1] == '\n')" ( (binary_expression "puVar5[-1] == '\n'" (subscript_expression "puVar5[-1]" identifier [ number_literal ]) == (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n        DAT_000727fc = 0;\n        iVar4 = 0;\n        goto LAB_00024c64;\n      }" { (expression_statement "DAT_000727fc = 0;" (assignment_expression "DAT_000727fc = 0" identifier = number_literal) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00024c64;" goto statement_identifier ;) })) (expression_statement "puVar6 = puVar5 + -1;" (assignment_expression "puVar6 = puVar5 + -1" identifier = (binary_expression "puVar5 + -1" identifier + number_literal)) ;) (if_statement "if (puVar1 <= puVar5 + -1) {\n        do {\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));\n      }" if (parenthesized_expression "(puVar1 <= puVar5 + -1)" ( (binary_expression "puVar1 <= puVar5 + -1" identifier <= (binary_expression "puVar5 + -1" identifier + number_literal)) )) (compound_statement "{\n        do {\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));\n      }" { (do_statement "do {\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));" do (compound_statement "{\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        }" { (expression_statement "puVar1 = puVar6 + -1;" (assignment_expression "puVar1 = puVar6 + -1" identifier = (binary_expression "puVar6 + -1" identifier + number_literal)) ;) (if_statement "if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }" if (parenthesized_expression "(puVar6[-1] == '\n')" ( (binary_expression "puVar6[-1] == '\n'" (subscript_expression "puVar6[-1]" identifier [ number_literal ]) == (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }" { (expression_statement "DAT_000727fc = *puVar6;" (assignment_expression "DAT_000727fc = *puVar6" identifier = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "iVar4 = (int)puVar5 - (int)puVar6;" (assignment_expression "iVar4 = (int)puVar5 - (int)puVar6" identifier = (binary_expression "(int)puVar5 - (int)puVar6" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar5 = puVar6;" (assignment_expression "puVar5 = puVar6" identifier = identifier) ;) (goto_statement "goto LAB_00024c64;" goto statement_identifier ;) })) (expression_statement "puVar6 = puVar1;" (assignment_expression "puVar6 = puVar1" identifier = identifier) ;) }) while (parenthesized_expression "(puVar1 != (undefined1 *)(iVar4 + sVar8))" ( (binary_expression "puVar1 != (undefined1 *)(iVar4 + sVar8)" identifier != (cast_expression "(undefined1 *)(iVar4 + sVar8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + sVar8)" ( (binary_expression "iVar4 + sVar8" identifier + identifier) )))) )) ;) })) (expression_statement "DAT_00072800 = (int)puVar5 - (DAT_00072808 + 1);" (assignment_expression "DAT_00072800 = (int)puVar5 - (DAT_00072808 + 1)" identifier = (binary_expression "(int)puVar5 - (DAT_00072808 + 1)" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) - (parenthesized_expression "(DAT_00072808 + 1)" ( (binary_expression "DAT_00072808 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar4 = FUN_000241b0();" (assignment_expression "iVar4 = FUN_000241b0()" identifier = (call_expression "FUN_000241b0()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((uint)(iVar3 - iVar4) < DAT_00072800) {\n        DAT_000727f8 = DAT_000727f8 * 2;\n        iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);\n        __dest = (void *)(iVar4 + 1);\n        sVar8 = DAT_00072800;\n        DAT_00072808 = iVar4;\n      }\n      else {\n        __dest = (void *)(DAT_00072808 + 1);\n        iVar4 = DAT_00072808;\n        sVar8 = DAT_00072800;\n      }" if (parenthesized_expression "((uint)(iVar3 - iVar4) < DAT_00072800)" ( (binary_expression "(uint)(iVar3 - iVar4) < DAT_00072800" (call_expression "(uint)(iVar3 - iVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar3 - iVar4)" ( (binary_expression "iVar3 - iVar4" identifier - identifier) ))) < identifier) )) (compound_statement "{\n        DAT_000727f8 = DAT_000727f8 * 2;\n        iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);\n        __dest = (void *)(iVar4 + 1);\n        sVar8 = DAT_00072800;\n        DAT_00072808 = iVar4;\n      }" { (expression_statement "DAT_000727f8 = DAT_000727f8 * 2;" (assignment_expression "DAT_000727f8 = DAT_000727f8 * 2" identifier = (binary_expression "DAT_000727f8 * 2" identifier * number_literal)) ;) (expression_statement "iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);" (assignment_expression "iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3)" identifier = (call_expression "xrealloc(DAT_00072808,DAT_000727f8 + 3)" identifier (argument_list "(DAT_00072808,DAT_000727f8 + 3)" ( identifier , (binary_expression "DAT_000727f8 + 3" identifier + number_literal) )))) ;) (expression_statement "__dest = (void *)(iVar4 + 1);" (assignment_expression "__dest = (void *)(iVar4 + 1)" identifier = (cast_expression "(void *)(iVar4 + 1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 1)" ( (binary_expression "iVar4 + 1" identifier + number_literal) )))) ;) (expression_statement "sVar8 = DAT_00072800;" (assignment_expression "sVar8 = DAT_00072800" identifier = identifier) ;) (expression_statement "DAT_00072808 = iVar4;" (assignment_expression "DAT_00072808 = iVar4" identifier = identifier) ;) }) (else_clause "else {\n        __dest = (void *)(DAT_00072808 + 1);\n        iVar4 = DAT_00072808;\n        sVar8 = DAT_00072800;\n      }" else (compound_statement "{\n        __dest = (void *)(DAT_00072808 + 1);\n        iVar4 = DAT_00072808;\n        sVar8 = DAT_00072800;\n      }" { (expression_statement "__dest = (void *)(DAT_00072808 + 1);" (assignment_expression "__dest = (void *)(DAT_00072808 + 1)" identifier = (cast_expression "(void *)(DAT_00072808 + 1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00072808 + 1)" ( (binary_expression "DAT_00072808 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar4 = DAT_00072808;" (assignment_expression "iVar4 = DAT_00072808" identifier = identifier) ;) (expression_statement "sVar8 = DAT_00072800;" (assignment_expression "sVar8 = DAT_00072800" identifier = identifier) ;) }))) })) (if_statement "if (DAT_00072800 != 0) {\n      uVar7 = dcgettext(0,"end of file not at end of a line; newline inserted",5);\n      FUN_0002a660(uVar7);\n      iVar4 = 0;\n      puVar1 = (undefined1 *)(DAT_00072808 + 1 + DAT_00072800);\n      puVar5 = puVar1 + 1;\n      *puVar1 = 10;\n      DAT_000727fc = puVar1[1];\nLAB_00024c64:\n      *puVar5 = 0;\n      DAT_00072804 = puVar5;\n      DAT_00072800 = iVar4;\n      return puVar5;\n    }" if (parenthesized_expression "(DAT_00072800 != 0)" ( (binary_expression "DAT_00072800 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar7 = dcgettext(0,"end of file not at end of a line; newline inserted",5);\n      FUN_0002a660(uVar7);\n      iVar4 = 0;\n      puVar1 = (undefined1 *)(DAT_00072808 + 1 + DAT_00072800);\n      puVar5 = puVar1 + 1;\n      *puVar1 = 10;\n      DAT_000727fc = puVar1[1];\nLAB_00024c64:\n      *puVar5 = 0;\n      DAT_00072804 = puVar5;\n      DAT_00072800 = iVar4;\n      return puVar5;\n    }" { (expression_statement "uVar7 = dcgettext(0,"end of file not at end of a line; newline inserted",5);" (assignment_expression "uVar7 = dcgettext(0,"end of file not at end of a line; newline inserted",5)" identifier = (call_expression "dcgettext(0,"end of file not at end of a line; newline inserted",5)" identifier (argument_list "(0,"end of file not at end of a line; newline inserted",5)" ( number_literal , (string_literal ""end of file not at end of a line; newline inserted"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002a660(uVar7);" (call_expression "FUN_0002a660(uVar7)" identifier (argument_list "(uVar7)" ( identifier ))) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "puVar1 = (undefined1 *)(DAT_00072808 + 1 + DAT_00072800);" (assignment_expression "puVar1 = (undefined1 *)(DAT_00072808 + 1 + DAT_00072800)" identifier = (cast_expression "(undefined1 *)(DAT_00072808 + 1 + DAT_00072800)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00072808 + 1 + DAT_00072800)" ( (binary_expression "DAT_00072808 + 1 + DAT_00072800" (binary_expression "DAT_00072808 + 1" identifier + number_literal) + identifier) )))) ;) (expression_statement "puVar5 = puVar1 + 1;" (assignment_expression "puVar5 = puVar1 + 1" identifier = (binary_expression "puVar1 + 1" identifier + number_literal)) ;) (expression_statement "*puVar1 = 10;" (assignment_expression "*puVar1 = 10" (pointer_expression "*puVar1" * identifier) = number_literal) ;) (expression_statement "DAT_000727fc = puVar1[1];" (assignment_expression "DAT_000727fc = puVar1[1]" identifier = (subscript_expression "puVar1[1]" identifier [ number_literal ])) ;) (labeled_statement "LAB_00024c64:\n      *puVar5 = 0;" statement_identifier : (expression_statement "*puVar5 = 0;" (assignment_expression "*puVar5 = 0" (pointer_expression "*puVar5" * identifier) = number_literal) ;)) (expression_statement "DAT_00072804 = puVar5;" (assignment_expression "DAT_00072804 = puVar5" identifier = identifier) ;) (expression_statement "DAT_00072800 = iVar4;" (assignment_expression "DAT_00072800 = iVar4" identifier = identifier) ;) (return_statement "return puVar5;" return identifier ;) })) (if_statement "if (_DAT_00072d6c != 0) {\n      FUN_00025cc0(0);\n    }" if (parenthesized_expression "(_DAT_00072d6c != 0)" ( (binary_expression "_DAT_00072d6c != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_00025cc0(0);\n    }" { (expression_statement "FUN_00025cc0(0);" (call_expression "FUN_00025cc0(0)" identifier (argument_list "(0)" ( number_literal ))) ;) })) (expression_statement "DAT_00072804 = (undefined1 *)0x0;" (assignment_expression "DAT_00072804 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (DAT_000727d8 != (undefined1 *)0x0) {\nLAB_00024bd7:\n      DAT_00072804 = (undefined1 *)0x0;\n      iVar4 = FUN_00024880();\n      *param_1 = iVar4;\n      return DAT_00072804;\n    }" if (parenthesized_expression "(DAT_000727d8 != (undefined1 *)0x0)" ( (binary_expression "DAT_000727d8 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00024bd7:\n      DAT_00072804 = (undefined1 *)0x0;\n      iVar4 = FUN_00024880();\n      *param_1 = iVar4;\n      return DAT_00072804;\n    }" { (labeled_statement "LAB_00024bd7:\n      DAT_00072804 = (undefined1 *)0x0;" statement_identifier : (expression_statement "DAT_00072804 = (undefined1 *)0x0;" (assignment_expression "DAT_00072804 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "iVar4 = FUN_00024880();" (assignment_expression "iVar4 = FUN_00024880()" identifier = (call_expression "FUN_00024880()" identifier (argument_list "()" ( )))) ;) (expression_statement "*param_1 = iVar4;" (assignment_expression "*param_1 = iVar4" (pointer_expression "*param_1" * identifier) = identifier) ;) (return_statement "return DAT_00072804;" return identifier ;) })) (expression_statement "puVar5 = (undefined1 *)0x0;" (assignment_expression "puVar5 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (DAT_0006a29c < DAT_000727f0) {\n    DAT_0006a29c = DAT_000727f0;\n    DAT_00072800 = 0;\n    puVar5 = (undefined1 *)(DAT_000727ec + DAT_000727f0);\n    DAT_00072804 = puVar5;\n    *param_1 = uVar2 + DAT_000727ec;\n  }\n  else {\n    FUN_00033520(&DAT_000727ec);\n    if (DAT_0006a298 != 0) {\n      FUN_00019960(DAT_00072e54);\n    }\n    DAT_00072e54 = DAT_00072e54 + -1;\n    DAT_00072804 = (undefined1 *)0x0;\n    DAT_00072800 = 0;\n    puVar5 = DAT_000727d8;\n    if (DAT_000727d8 != (undefined1 *)0x0) goto LAB_00024bd7;\n  }" else (if_statement "if (DAT_0006a29c < DAT_000727f0) {\n    DAT_0006a29c = DAT_000727f0;\n    DAT_00072800 = 0;\n    puVar5 = (undefined1 *)(DAT_000727ec + DAT_000727f0);\n    DAT_00072804 = puVar5;\n    *param_1 = uVar2 + DAT_000727ec;\n  }\n  else {\n    FUN_00033520(&DAT_000727ec);\n    if (DAT_0006a298 != 0) {\n      FUN_00019960(DAT_00072e54);\n    }\n    DAT_00072e54 = DAT_00072e54 + -1;\n    DAT_00072804 = (undefined1 *)0x0;\n    DAT_00072800 = 0;\n    puVar5 = DAT_000727d8;\n    if (DAT_000727d8 != (undefined1 *)0x0) goto LAB_00024bd7;\n  }" if (parenthesized_expression "(DAT_0006a29c < DAT_000727f0)" ( (binary_expression "DAT_0006a29c < DAT_000727f0" identifier < identifier) )) (compound_statement "{\n    DAT_0006a29c = DAT_000727f0;\n    DAT_00072800 = 0;\n    puVar5 = (undefined1 *)(DAT_000727ec + DAT_000727f0);\n    DAT_00072804 = puVar5;\n    *param_1 = uVar2 + DAT_000727ec;\n  }" { (expression_statement "DAT_0006a29c = DAT_000727f0;" (assignment_expression "DAT_0006a29c = DAT_000727f0" identifier = identifier) ;) (expression_statement "DAT_00072800 = 0;" (assignment_expression "DAT_00072800 = 0" identifier = number_literal) ;) (expression_statement "puVar5 = (undefined1 *)(DAT_000727ec + DAT_000727f0);" (assignment_expression "puVar5 = (undefined1 *)(DAT_000727ec + DAT_000727f0)" identifier = (cast_expression "(undefined1 *)(DAT_000727ec + DAT_000727f0)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000727ec + DAT_000727f0)" ( (binary_expression "DAT_000727ec + DAT_000727f0" identifier + identifier) )))) ;) (expression_statement "DAT_00072804 = puVar5;" (assignment_expression "DAT_00072804 = puVar5" identifier = identifier) ;) (expression_statement "*param_1 = uVar2 + DAT_000727ec;" (assignment_expression "*param_1 = uVar2 + DAT_000727ec" (pointer_expression "*param_1" * identifier) = (binary_expression "uVar2 + DAT_000727ec" identifier + identifier)) ;) }) (else_clause "else {\n    FUN_00033520(&DAT_000727ec);\n    if (DAT_0006a298 != 0) {\n      FUN_00019960(DAT_00072e54);\n    }\n    DAT_00072e54 = DAT_00072e54 + -1;\n    DAT_00072804 = (undefined1 *)0x0;\n    DAT_00072800 = 0;\n    puVar5 = DAT_000727d8;\n    if (DAT_000727d8 != (undefined1 *)0x0) goto LAB_00024bd7;\n  }" else (compound_statement "{\n    FUN_00033520(&DAT_000727ec);\n    if (DAT_0006a298 != 0) {\n      FUN_00019960(DAT_00072e54);\n    }\n    DAT_00072e54 = DAT_00072e54 + -1;\n    DAT_00072804 = (undefined1 *)0x0;\n    DAT_00072800 = 0;\n    puVar5 = DAT_000727d8;\n    if (DAT_000727d8 != (undefined1 *)0x0) goto LAB_00024bd7;\n  }" { (expression_statement "FUN_00033520(&DAT_000727ec);" (call_expression "FUN_00033520(&DAT_000727ec)" identifier (argument_list "(&DAT_000727ec)" ( (pointer_expression "&DAT_000727ec" & identifier) ))) ;) (if_statement "if (DAT_0006a298 != 0) {\n      FUN_00019960(DAT_00072e54);\n    }" if (parenthesized_expression "(DAT_0006a298 != 0)" ( (binary_expression "DAT_0006a298 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_00019960(DAT_00072e54);\n    }" { (expression_statement "FUN_00019960(DAT_00072e54);" (call_expression "FUN_00019960(DAT_00072e54)" identifier (argument_list "(DAT_00072e54)" ( identifier ))) ;) })) (expression_statement "DAT_00072e54 = DAT_00072e54 + -1;" (assignment_expression "DAT_00072e54 = DAT_00072e54 + -1" identifier = (binary_expression "DAT_00072e54 + -1" identifier + number_literal)) ;) (expression_statement "DAT_00072804 = (undefined1 *)0x0;" (assignment_expression "DAT_00072804 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00072800 = 0;" (assignment_expression "DAT_00072800 = 0" identifier = number_literal) ;) (expression_statement "puVar5 = DAT_000727d8;" (assignment_expression "puVar5 = DAT_000727d8" identifier = identifier) ;) (if_statement "if (DAT_000727d8 != (undefined1 *)0x0) goto LAB_00024bd7;" if (parenthesized_expression "(DAT_000727d8 != (undefined1 *)0x0)" ( (binary_expression "DAT_000727d8 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00024bd7;" goto statement_identifier ;)) }))))) (return_statement "return puVar5;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT + LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - IDENT) ))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }))))) (return_statement return IDENT ;) })))
(function_definition "undefined1 * FUN_00024b30(int *param_1)\n\n{\n  undefined1 *puVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  undefined1 *puVar6;\n  undefined4 uVar7;\n  void *__dest;\n  size_t sVar8;\n  \n  iVar4 = DAT_00072808;\n  sVar8 = DAT_00072800;\n  uVar2 = DAT_0006a29c;\n  if (DAT_0006a29c == 0xffffffff) {\n    __dest = (void *)(DAT_00072808 + 1);\n    if (DAT_00072800 != 0) {\n      memmove(__dest,DAT_00072804,DAT_00072800);\n      *(undefined1 *)(iVar4 + 1) = DAT_000727fc;\n    }\n    while( true ) {\n      puVar1 = (undefined1 *)(iVar4 + 1 + sVar8);\n      *param_1 = (int)__dest;\n      puVar5 = (undefined1 *)FUN_00024610(puVar1);\n      if (puVar5 == (undefined1 *)0x0) break;\n      *puVar5 = 0;\n      iVar3 = DAT_000727f8;\n      if (puVar5[-1] == '\n') {\n        DAT_000727fc = 0;\n        iVar4 = 0;\n        goto LAB_00024c64;\n      }\n      puVar6 = puVar5 + -1;\n      if (puVar1 <= puVar5 + -1) {\n        do {\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));\n      }\n      DAT_00072800 = (int)puVar5 - (DAT_00072808 + 1);\n      iVar4 = FUN_000241b0();\n      if ((uint)(iVar3 - iVar4) < DAT_00072800) {\n        DAT_000727f8 = DAT_000727f8 * 2;\n        iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);\n        __dest = (void *)(iVar4 + 1);\n        sVar8 = DAT_00072800;\n        DAT_00072808 = iVar4;\n      }\n      else {\n        __dest = (void *)(DAT_00072808 + 1);\n        iVar4 = DAT_00072808;\n        sVar8 = DAT_00072800;\n      }\n    }\n    if (DAT_00072800 != 0) {\n      uVar7 = dcgettext(0,"end of file not at end of a line; newline inserted",5);\n      FUN_0002a660(uVar7);\n      iVar4 = 0;\n      puVar1 = (undefined1 *)(DAT_00072808 + 1 + DAT_00072800);\n      puVar5 = puVar1 + 1;\n      *puVar1 = 10;\n      DAT_000727fc = puVar1[1];\nLAB_00024c64:\n      *puVar5 = 0;\n      DAT_00072804 = puVar5;\n      DAT_00072800 = iVar4;\n      return puVar5;\n    }\n    if (_DAT_00072d6c != 0) {\n      FUN_00025cc0(0);\n    }\n    DAT_00072804 = (undefined1 *)0x0;\n    if (DAT_000727d8 != (undefined1 *)0x0) {\nLAB_00024bd7:\n      DAT_00072804 = (undefined1 *)0x0;\n      iVar4 = FUN_00024880();\n      *param_1 = iVar4;\n      return DAT_00072804;\n    }\n    puVar5 = (undefined1 *)0x0;\n  }\n  else if (DAT_0006a29c < DAT_000727f0) {\n    DAT_0006a29c = DAT_000727f0;\n    DAT_00072800 = 0;\n    puVar5 = (undefined1 *)(DAT_000727ec + DAT_000727f0);\n    DAT_00072804 = puVar5;\n    *param_1 = uVar2 + DAT_000727ec;\n  }\n  else {\n    FUN_00033520(&DAT_000727ec);\n    if (DAT_0006a298 != 0) {\n      FUN_00019960(DAT_00072e54);\n    }\n    DAT_00072e54 = DAT_00072e54 + -1;\n    DAT_00072804 = (undefined1 *)0x0;\n    DAT_00072800 = 0;\n    puVar5 = DAT_000727d8;\n    if (DAT_000727d8 != (undefined1 *)0x0) goto LAB_00024bd7;\n  }\n  return puVar5;\n}" (type_identifier "undefined1") (pointer_declarator "* FUN_00024b30(int *param_1)" (* "*") (function_declarator "FUN_00024b30(int *param_1)" (identifier "FUN_00024b30") (parameter_list "(int *param_1)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")")))) (compound_statement "{\n  undefined1 *puVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  undefined1 *puVar6;\n  undefined4 uVar7;\n  void *__dest;\n  size_t sVar8;\n  \n  iVar4 = DAT_00072808;\n  sVar8 = DAT_00072800;\n  uVar2 = DAT_0006a29c;\n  if (DAT_0006a29c == 0xffffffff) {\n    __dest = (void *)(DAT_00072808 + 1);\n    if (DAT_00072800 != 0) {\n      memmove(__dest,DAT_00072804,DAT_00072800);\n      *(undefined1 *)(iVar4 + 1) = DAT_000727fc;\n    }\n    while( true ) {\n      puVar1 = (undefined1 *)(iVar4 + 1 + sVar8);\n      *param_1 = (int)__dest;\n      puVar5 = (undefined1 *)FUN_00024610(puVar1);\n      if (puVar5 == (undefined1 *)0x0) break;\n      *puVar5 = 0;\n      iVar3 = DAT_000727f8;\n      if (puVar5[-1] == '\n') {\n        DAT_000727fc = 0;\n        iVar4 = 0;\n        goto LAB_00024c64;\n      }\n      puVar6 = puVar5 + -1;\n      if (puVar1 <= puVar5 + -1) {\n        do {\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));\n      }\n      DAT_00072800 = (int)puVar5 - (DAT_00072808 + 1);\n      iVar4 = FUN_000241b0();\n      if ((uint)(iVar3 - iVar4) < DAT_00072800) {\n        DAT_000727f8 = DAT_000727f8 * 2;\n        iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);\n        __dest = (void *)(iVar4 + 1);\n        sVar8 = DAT_00072800;\n        DAT_00072808 = iVar4;\n      }\n      else {\n        __dest = (void *)(DAT_00072808 + 1);\n        iVar4 = DAT_00072808;\n        sVar8 = DAT_00072800;\n      }\n    }\n    if (DAT_00072800 != 0) {\n      uVar7 = dcgettext(0,"end of file not at end of a line; newline inserted",5);\n      FUN_0002a660(uVar7);\n      iVar4 = 0;\n      puVar1 = (undefined1 *)(DAT_00072808 + 1 + DAT_00072800);\n      puVar5 = puVar1 + 1;\n      *puVar1 = 10;\n      DAT_000727fc = puVar1[1];\nLAB_00024c64:\n      *puVar5 = 0;\n      DAT_00072804 = puVar5;\n      DAT_00072800 = iVar4;\n      return puVar5;\n    }\n    if (_DAT_00072d6c != 0) {\n      FUN_00025cc0(0);\n    }\n    DAT_00072804 = (undefined1 *)0x0;\n    if (DAT_000727d8 != (undefined1 *)0x0) {\nLAB_00024bd7:\n      DAT_00072804 = (undefined1 *)0x0;\n      iVar4 = FUN_00024880();\n      *param_1 = iVar4;\n      return DAT_00072804;\n    }\n    puVar5 = (undefined1 *)0x0;\n  }\n  else if (DAT_0006a29c < DAT_000727f0) {\n    DAT_0006a29c = DAT_000727f0;\n    DAT_00072800 = 0;\n    puVar5 = (undefined1 *)(DAT_000727ec + DAT_000727f0);\n    DAT_00072804 = puVar5;\n    *param_1 = uVar2 + DAT_000727ec;\n  }\n  else {\n    FUN_00033520(&DAT_000727ec);\n    if (DAT_0006a298 != 0) {\n      FUN_00019960(DAT_00072e54);\n    }\n    DAT_00072e54 = DAT_00072e54 + -1;\n    DAT_00072804 = (undefined1 *)0x0;\n    DAT_00072800 = 0;\n    puVar5 = DAT_000727d8;\n    if (DAT_000727d8 != (undefined1 *)0x0) goto LAB_00024bd7;\n  }\n  return puVar5;\n}" ({ "{") (declaration "undefined1 *puVar1;" (type_identifier "undefined1") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "undefined1 *puVar5;" (type_identifier "undefined1") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined1 *puVar6;" (type_identifier "undefined1") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "void *__dest;" (primitive_type "void") (pointer_declarator "*__dest" (* "*") (identifier "__dest")) (; ";")) (declaration "size_t sVar8;" (primitive_type "size_t") (identifier "sVar8") (; ";")) (expression_statement "iVar4 = DAT_00072808;" (assignment_expression "iVar4 = DAT_00072808" (identifier "iVar4") (= "=") (identifier "DAT_00072808")) (; ";")) (expression_statement "sVar8 = DAT_00072800;" (assignment_expression "sVar8 = DAT_00072800" (identifier "sVar8") (= "=") (identifier "DAT_00072800")) (; ";")) (expression_statement "uVar2 = DAT_0006a29c;" (assignment_expression "uVar2 = DAT_0006a29c" (identifier "uVar2") (= "=") (identifier "DAT_0006a29c")) (; ";")) (if_statement "if (DAT_0006a29c == 0xffffffff) {\n    __dest = (void *)(DAT_00072808 + 1);\n    if (DAT_00072800 != 0) {\n      memmove(__dest,DAT_00072804,DAT_00072800);\n      *(undefined1 *)(iVar4 + 1) = DAT_000727fc;\n    }\n    while( true ) {\n      puVar1 = (undefined1 *)(iVar4 + 1 + sVar8);\n      *param_1 = (int)__dest;\n      puVar5 = (undefined1 *)FUN_00024610(puVar1);\n      if (puVar5 == (undefined1 *)0x0) break;\n      *puVar5 = 0;\n      iVar3 = DAT_000727f8;\n      if (puVar5[-1] == '\n') {\n        DAT_000727fc = 0;\n        iVar4 = 0;\n        goto LAB_00024c64;\n      }\n      puVar6 = puVar5 + -1;\n      if (puVar1 <= puVar5 + -1) {\n        do {\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));\n      }\n      DAT_00072800 = (int)puVar5 - (DAT_00072808 + 1);\n      iVar4 = FUN_000241b0();\n      if ((uint)(iVar3 - iVar4) < DAT_00072800) {\n        DAT_000727f8 = DAT_000727f8 * 2;\n        iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);\n        __dest = (void *)(iVar4 + 1);\n        sVar8 = DAT_00072800;\n        DAT_00072808 = iVar4;\n      }\n      else {\n        __dest = (void *)(DAT_00072808 + 1);\n        iVar4 = DAT_00072808;\n        sVar8 = DAT_00072800;\n      }\n    }\n    if (DAT_00072800 != 0) {\n      uVar7 = dcgettext(0,"end of file not at end of a line; newline inserted",5);\n      FUN_0002a660(uVar7);\n      iVar4 = 0;\n      puVar1 = (undefined1 *)(DAT_00072808 + 1 + DAT_00072800);\n      puVar5 = puVar1 + 1;\n      *puVar1 = 10;\n      DAT_000727fc = puVar1[1];\nLAB_00024c64:\n      *puVar5 = 0;\n      DAT_00072804 = puVar5;\n      DAT_00072800 = iVar4;\n      return puVar5;\n    }\n    if (_DAT_00072d6c != 0) {\n      FUN_00025cc0(0);\n    }\n    DAT_00072804 = (undefined1 *)0x0;\n    if (DAT_000727d8 != (undefined1 *)0x0) {\nLAB_00024bd7:\n      DAT_00072804 = (undefined1 *)0x0;\n      iVar4 = FUN_00024880();\n      *param_1 = iVar4;\n      return DAT_00072804;\n    }\n    puVar5 = (undefined1 *)0x0;\n  }\n  else if (DAT_0006a29c < DAT_000727f0) {\n    DAT_0006a29c = DAT_000727f0;\n    DAT_00072800 = 0;\n    puVar5 = (undefined1 *)(DAT_000727ec + DAT_000727f0);\n    DAT_00072804 = puVar5;\n    *param_1 = uVar2 + DAT_000727ec;\n  }\n  else {\n    FUN_00033520(&DAT_000727ec);\n    if (DAT_0006a298 != 0) {\n      FUN_00019960(DAT_00072e54);\n    }\n    DAT_00072e54 = DAT_00072e54 + -1;\n    DAT_00072804 = (undefined1 *)0x0;\n    DAT_00072800 = 0;\n    puVar5 = DAT_000727d8;\n    if (DAT_000727d8 != (undefined1 *)0x0) goto LAB_00024bd7;\n  }" (if "if") (parenthesized_expression "(DAT_0006a29c == 0xffffffff)" (( "(") (binary_expression "DAT_0006a29c == 0xffffffff" (identifier "DAT_0006a29c") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n    __dest = (void *)(DAT_00072808 + 1);\n    if (DAT_00072800 != 0) {\n      memmove(__dest,DAT_00072804,DAT_00072800);\n      *(undefined1 *)(iVar4 + 1) = DAT_000727fc;\n    }\n    while( true ) {\n      puVar1 = (undefined1 *)(iVar4 + 1 + sVar8);\n      *param_1 = (int)__dest;\n      puVar5 = (undefined1 *)FUN_00024610(puVar1);\n      if (puVar5 == (undefined1 *)0x0) break;\n      *puVar5 = 0;\n      iVar3 = DAT_000727f8;\n      if (puVar5[-1] == '\n') {\n        DAT_000727fc = 0;\n        iVar4 = 0;\n        goto LAB_00024c64;\n      }\n      puVar6 = puVar5 + -1;\n      if (puVar1 <= puVar5 + -1) {\n        do {\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));\n      }\n      DAT_00072800 = (int)puVar5 - (DAT_00072808 + 1);\n      iVar4 = FUN_000241b0();\n      if ((uint)(iVar3 - iVar4) < DAT_00072800) {\n        DAT_000727f8 = DAT_000727f8 * 2;\n        iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);\n        __dest = (void *)(iVar4 + 1);\n        sVar8 = DAT_00072800;\n        DAT_00072808 = iVar4;\n      }\n      else {\n        __dest = (void *)(DAT_00072808 + 1);\n        iVar4 = DAT_00072808;\n        sVar8 = DAT_00072800;\n      }\n    }\n    if (DAT_00072800 != 0) {\n      uVar7 = dcgettext(0,"end of file not at end of a line; newline inserted",5);\n      FUN_0002a660(uVar7);\n      iVar4 = 0;\n      puVar1 = (undefined1 *)(DAT_00072808 + 1 + DAT_00072800);\n      puVar5 = puVar1 + 1;\n      *puVar1 = 10;\n      DAT_000727fc = puVar1[1];\nLAB_00024c64:\n      *puVar5 = 0;\n      DAT_00072804 = puVar5;\n      DAT_00072800 = iVar4;\n      return puVar5;\n    }\n    if (_DAT_00072d6c != 0) {\n      FUN_00025cc0(0);\n    }\n    DAT_00072804 = (undefined1 *)0x0;\n    if (DAT_000727d8 != (undefined1 *)0x0) {\nLAB_00024bd7:\n      DAT_00072804 = (undefined1 *)0x0;\n      iVar4 = FUN_00024880();\n      *param_1 = iVar4;\n      return DAT_00072804;\n    }\n    puVar5 = (undefined1 *)0x0;\n  }" ({ "{") (expression_statement "__dest = (void *)(DAT_00072808 + 1);" (assignment_expression "__dest = (void *)(DAT_00072808 + 1)" (identifier "__dest") (= "=") (cast_expression "(void *)(DAT_00072808 + 1)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00072808 + 1)" (( "(") (binary_expression "DAT_00072808 + 1" (identifier "DAT_00072808") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (DAT_00072800 != 0) {\n      memmove(__dest,DAT_00072804,DAT_00072800);\n      *(undefined1 *)(iVar4 + 1) = DAT_000727fc;\n    }" (if "if") (parenthesized_expression "(DAT_00072800 != 0)" (( "(") (binary_expression "DAT_00072800 != 0" (identifier "DAT_00072800") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      memmove(__dest,DAT_00072804,DAT_00072800);\n      *(undefined1 *)(iVar4 + 1) = DAT_000727fc;\n    }" ({ "{") (expression_statement "memmove(__dest,DAT_00072804,DAT_00072800);" (call_expression "memmove(__dest,DAT_00072804,DAT_00072800)" (identifier "memmove") (argument_list "(__dest,DAT_00072804,DAT_00072800)" (( "(") (identifier "__dest") (, ",") (identifier "DAT_00072804") (, ",") (identifier "DAT_00072800") () ")"))) (; ";")) (expression_statement "*(undefined1 *)(iVar4 + 1) = DAT_000727fc;" (assignment_expression "*(undefined1 *)(iVar4 + 1) = DAT_000727fc" (pointer_expression "*(undefined1 *)(iVar4 + 1)" (* "*") (cast_expression "(undefined1 *)(iVar4 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 1)" (( "(") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1")) () ")")))) (= "=") (identifier "DAT_000727fc")) (; ";")) (} "}"))) (while_statement "while( true ) {\n      puVar1 = (undefined1 *)(iVar4 + 1 + sVar8);\n      *param_1 = (int)__dest;\n      puVar5 = (undefined1 *)FUN_00024610(puVar1);\n      if (puVar5 == (undefined1 *)0x0) break;\n      *puVar5 = 0;\n      iVar3 = DAT_000727f8;\n      if (puVar5[-1] == '\n') {\n        DAT_000727fc = 0;\n        iVar4 = 0;\n        goto LAB_00024c64;\n      }\n      puVar6 = puVar5 + -1;\n      if (puVar1 <= puVar5 + -1) {\n        do {\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));\n      }\n      DAT_00072800 = (int)puVar5 - (DAT_00072808 + 1);\n      iVar4 = FUN_000241b0();\n      if ((uint)(iVar3 - iVar4) < DAT_00072800) {\n        DAT_000727f8 = DAT_000727f8 * 2;\n        iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);\n        __dest = (void *)(iVar4 + 1);\n        sVar8 = DAT_00072800;\n        DAT_00072808 = iVar4;\n      }\n      else {\n        __dest = (void *)(DAT_00072808 + 1);\n        iVar4 = DAT_00072808;\n        sVar8 = DAT_00072800;\n      }\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      puVar1 = (undefined1 *)(iVar4 + 1 + sVar8);\n      *param_1 = (int)__dest;\n      puVar5 = (undefined1 *)FUN_00024610(puVar1);\n      if (puVar5 == (undefined1 *)0x0) break;\n      *puVar5 = 0;\n      iVar3 = DAT_000727f8;\n      if (puVar5[-1] == '\n') {\n        DAT_000727fc = 0;\n        iVar4 = 0;\n        goto LAB_00024c64;\n      }\n      puVar6 = puVar5 + -1;\n      if (puVar1 <= puVar5 + -1) {\n        do {\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));\n      }\n      DAT_00072800 = (int)puVar5 - (DAT_00072808 + 1);\n      iVar4 = FUN_000241b0();\n      if ((uint)(iVar3 - iVar4) < DAT_00072800) {\n        DAT_000727f8 = DAT_000727f8 * 2;\n        iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);\n        __dest = (void *)(iVar4 + 1);\n        sVar8 = DAT_00072800;\n        DAT_00072808 = iVar4;\n      }\n      else {\n        __dest = (void *)(DAT_00072808 + 1);\n        iVar4 = DAT_00072808;\n        sVar8 = DAT_00072800;\n      }\n    }" ({ "{") (expression_statement "puVar1 = (undefined1 *)(iVar4 + 1 + sVar8);" (assignment_expression "puVar1 = (undefined1 *)(iVar4 + 1 + sVar8)" (identifier "puVar1") (= "=") (cast_expression "(undefined1 *)(iVar4 + 1 + sVar8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 1 + sVar8)" (( "(") (binary_expression "iVar4 + 1 + sVar8" (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1")) (+ "+") (identifier "sVar8")) () ")")))) (; ";")) (expression_statement "*param_1 = (int)__dest;" (assignment_expression "*param_1 = (int)__dest" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(int)__dest" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__dest"))) (; ";")) (expression_statement "puVar5 = (undefined1 *)FUN_00024610(puVar1);" (assignment_expression "puVar5 = (undefined1 *)FUN_00024610(puVar1)" (identifier "puVar5") (= "=") (cast_expression "(undefined1 *)FUN_00024610(puVar1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00024610(puVar1)" (identifier "FUN_00024610") (argument_list "(puVar1)" (( "(") (identifier "puVar1") () ")"))))) (; ";")) (if_statement "if (puVar5 == (undefined1 *)0x0) break;" (if "if") (parenthesized_expression "(puVar5 == (undefined1 *)0x0)" (( "(") (binary_expression "puVar5 == (undefined1 *)0x0" (identifier "puVar5") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "*puVar5 = 0;" (assignment_expression "*puVar5 = 0" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = DAT_000727f8;" (assignment_expression "iVar3 = DAT_000727f8" (identifier "iVar3") (= "=") (identifier "DAT_000727f8")) (; ";")) (if_statement "if (puVar5[-1] == '\n') {\n        DAT_000727fc = 0;\n        iVar4 = 0;\n        goto LAB_00024c64;\n      }" (if "if") (parenthesized_expression "(puVar5[-1] == '\n')" (( "(") (binary_expression "puVar5[-1] == '\n'" (subscript_expression "puVar5[-1]" (identifier "puVar5") ([ "[") (number_literal "-1") (] "]")) (== "==") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) () ")")) (compound_statement "{\n        DAT_000727fc = 0;\n        iVar4 = 0;\n        goto LAB_00024c64;\n      }" ({ "{") (expression_statement "DAT_000727fc = 0;" (assignment_expression "DAT_000727fc = 0" (identifier "DAT_000727fc") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00024c64;" (goto "goto") (statement_identifier "LAB_00024c64") (; ";")) (} "}"))) (expression_statement "puVar6 = puVar5 + -1;" (assignment_expression "puVar6 = puVar5 + -1" (identifier "puVar6") (= "=") (binary_expression "puVar5 + -1" (identifier "puVar5") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (puVar1 <= puVar5 + -1) {\n        do {\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));\n      }" (if "if") (parenthesized_expression "(puVar1 <= puVar5 + -1)" (( "(") (binary_expression "puVar1 <= puVar5 + -1" (identifier "puVar1") (<= "<=") (binary_expression "puVar5 + -1" (identifier "puVar5") (+ "+") (number_literal "-1"))) () ")")) (compound_statement "{\n        do {\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));\n      }" ({ "{") (do_statement "do {\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));" (do "do") (compound_statement "{\n          puVar1 = puVar6 + -1;\n          if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }\n          puVar6 = puVar1;\n        }" ({ "{") (expression_statement "puVar1 = puVar6 + -1;" (assignment_expression "puVar1 = puVar6 + -1" (identifier "puVar1") (= "=") (binary_expression "puVar6 + -1" (identifier "puVar6") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (puVar6[-1] == '\n') {\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }" (if "if") (parenthesized_expression "(puVar6[-1] == '\n')" (( "(") (binary_expression "puVar6[-1] == '\n'" (subscript_expression "puVar6[-1]" (identifier "puVar6") ([ "[") (number_literal "-1") (] "]")) (== "==") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) () ")")) (compound_statement "{\n            DAT_000727fc = *puVar6;\n            iVar4 = (int)puVar5 - (int)puVar6;\n            puVar5 = puVar6;\n            goto LAB_00024c64;\n          }" ({ "{") (expression_statement "DAT_000727fc = *puVar6;" (assignment_expression "DAT_000727fc = *puVar6" (identifier "DAT_000727fc") (= "=") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (; ";")) (expression_statement "iVar4 = (int)puVar5 - (int)puVar6;" (assignment_expression "iVar4 = (int)puVar5 - (int)puVar6" (identifier "iVar4") (= "=") (binary_expression "(int)puVar5 - (int)puVar6" (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5")) (- "-") (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")))) (; ";")) (expression_statement "puVar5 = puVar6;" (assignment_expression "puVar5 = puVar6" (identifier "puVar5") (= "=") (identifier "puVar6")) (; ";")) (goto_statement "goto LAB_00024c64;" (goto "goto") (statement_identifier "LAB_00024c64") (; ";")) (} "}"))) (expression_statement "puVar6 = puVar1;" (assignment_expression "puVar6 = puVar1" (identifier "puVar6") (= "=") (identifier "puVar1")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar1 != (undefined1 *)(iVar4 + sVar8))" (( "(") (binary_expression "puVar1 != (undefined1 *)(iVar4 + sVar8)" (identifier "puVar1") (!= "!=") (cast_expression "(undefined1 *)(iVar4 + sVar8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + sVar8)" (( "(") (binary_expression "iVar4 + sVar8" (identifier "iVar4") (+ "+") (identifier "sVar8")) () ")")))) () ")")) (; ";")) (} "}"))) (expression_statement "DAT_00072800 = (int)puVar5 - (DAT_00072808 + 1);" (assignment_expression "DAT_00072800 = (int)puVar5 - (DAT_00072808 + 1)" (identifier "DAT_00072800") (= "=") (binary_expression "(int)puVar5 - (DAT_00072808 + 1)" (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5")) (- "-") (parenthesized_expression "(DAT_00072808 + 1)" (( "(") (binary_expression "DAT_00072808 + 1" (identifier "DAT_00072808") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar4 = FUN_000241b0();" (assignment_expression "iVar4 = FUN_000241b0()" (identifier "iVar4") (= "=") (call_expression "FUN_000241b0()" (identifier "FUN_000241b0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((uint)(iVar3 - iVar4) < DAT_00072800) {\n        DAT_000727f8 = DAT_000727f8 * 2;\n        iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);\n        __dest = (void *)(iVar4 + 1);\n        sVar8 = DAT_00072800;\n        DAT_00072808 = iVar4;\n      }\n      else {\n        __dest = (void *)(DAT_00072808 + 1);\n        iVar4 = DAT_00072808;\n        sVar8 = DAT_00072800;\n      }" (if "if") (parenthesized_expression "((uint)(iVar3 - iVar4) < DAT_00072800)" (( "(") (binary_expression "(uint)(iVar3 - iVar4) < DAT_00072800" (call_expression "(uint)(iVar3 - iVar4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar3 - iVar4)" (( "(") (binary_expression "iVar3 - iVar4" (identifier "iVar3") (- "-") (identifier "iVar4")) () ")"))) (< "<") (identifier "DAT_00072800")) () ")")) (compound_statement "{\n        DAT_000727f8 = DAT_000727f8 * 2;\n        iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);\n        __dest = (void *)(iVar4 + 1);\n        sVar8 = DAT_00072800;\n        DAT_00072808 = iVar4;\n      }" ({ "{") (expression_statement "DAT_000727f8 = DAT_000727f8 * 2;" (assignment_expression "DAT_000727f8 = DAT_000727f8 * 2" (identifier "DAT_000727f8") (= "=") (binary_expression "DAT_000727f8 * 2" (identifier "DAT_000727f8") (* "*") (number_literal "2"))) (; ";")) (expression_statement "iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);" (assignment_expression "iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3)" (identifier "iVar4") (= "=") (call_expression "xrealloc(DAT_00072808,DAT_000727f8 + 3)" (identifier "xrealloc") (argument_list "(DAT_00072808,DAT_000727f8 + 3)" (( "(") (identifier "DAT_00072808") (, ",") (binary_expression "DAT_000727f8 + 3" (identifier "DAT_000727f8") (+ "+") (number_literal "3")) () ")")))) (; ";")) (expression_statement "__dest = (void *)(iVar4 + 1);" (assignment_expression "__dest = (void *)(iVar4 + 1)" (identifier "__dest") (= "=") (cast_expression "(void *)(iVar4 + 1)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 1)" (( "(") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "sVar8 = DAT_00072800;" (assignment_expression "sVar8 = DAT_00072800" (identifier "sVar8") (= "=") (identifier "DAT_00072800")) (; ";")) (expression_statement "DAT_00072808 = iVar4;" (assignment_expression "DAT_00072808 = iVar4" (identifier "DAT_00072808") (= "=") (identifier "iVar4")) (; ";")) (} "}")) (else_clause "else {\n        __dest = (void *)(DAT_00072808 + 1);\n        iVar4 = DAT_00072808;\n        sVar8 = DAT_00072800;\n      }" (else "else") (compound_statement "{\n        __dest = (void *)(DAT_00072808 + 1);\n        iVar4 = DAT_00072808;\n        sVar8 = DAT_00072800;\n      }" ({ "{") (expression_statement "__dest = (void *)(DAT_00072808 + 1);" (assignment_expression "__dest = (void *)(DAT_00072808 + 1)" (identifier "__dest") (= "=") (cast_expression "(void *)(DAT_00072808 + 1)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00072808 + 1)" (( "(") (binary_expression "DAT_00072808 + 1" (identifier "DAT_00072808") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar4 = DAT_00072808;" (assignment_expression "iVar4 = DAT_00072808" (identifier "iVar4") (= "=") (identifier "DAT_00072808")) (; ";")) (expression_statement "sVar8 = DAT_00072800;" (assignment_expression "sVar8 = DAT_00072800" (identifier "sVar8") (= "=") (identifier "DAT_00072800")) (; ";")) (} "}")))) (} "}"))) (if_statement "if (DAT_00072800 != 0) {\n      uVar7 = dcgettext(0,"end of file not at end of a line; newline inserted",5);\n      FUN_0002a660(uVar7);\n      iVar4 = 0;\n      puVar1 = (undefined1 *)(DAT_00072808 + 1 + DAT_00072800);\n      puVar5 = puVar1 + 1;\n      *puVar1 = 10;\n      DAT_000727fc = puVar1[1];\nLAB_00024c64:\n      *puVar5 = 0;\n      DAT_00072804 = puVar5;\n      DAT_00072800 = iVar4;\n      return puVar5;\n    }" (if "if") (parenthesized_expression "(DAT_00072800 != 0)" (( "(") (binary_expression "DAT_00072800 != 0" (identifier "DAT_00072800") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar7 = dcgettext(0,"end of file not at end of a line; newline inserted",5);\n      FUN_0002a660(uVar7);\n      iVar4 = 0;\n      puVar1 = (undefined1 *)(DAT_00072808 + 1 + DAT_00072800);\n      puVar5 = puVar1 + 1;\n      *puVar1 = 10;\n      DAT_000727fc = puVar1[1];\nLAB_00024c64:\n      *puVar5 = 0;\n      DAT_00072804 = puVar5;\n      DAT_00072800 = iVar4;\n      return puVar5;\n    }" ({ "{") (expression_statement "uVar7 = dcgettext(0,"end of file not at end of a line; newline inserted",5);" (assignment_expression "uVar7 = dcgettext(0,"end of file not at end of a line; newline inserted",5)" (identifier "uVar7") (= "=") (call_expression "dcgettext(0,"end of file not at end of a line; newline inserted",5)" (identifier "dcgettext") (argument_list "(0,"end of file not at end of a line; newline inserted",5)" (( "(") (number_literal "0") (, ",") (string_literal ""end of file not at end of a line; newline inserted"" (" """) (string_content "end of file not at end of a line; newline inserted") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002a660(uVar7);" (call_expression "FUN_0002a660(uVar7)" (identifier "FUN_0002a660") (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")"))) (; ";")) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1 = (undefined1 *)(DAT_00072808 + 1 + DAT_00072800);" (assignment_expression "puVar1 = (undefined1 *)(DAT_00072808 + 1 + DAT_00072800)" (identifier "puVar1") (= "=") (cast_expression "(undefined1 *)(DAT_00072808 + 1 + DAT_00072800)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00072808 + 1 + DAT_00072800)" (( "(") (binary_expression "DAT_00072808 + 1 + DAT_00072800" (binary_expression "DAT_00072808 + 1" (identifier "DAT_00072808") (+ "+") (number_literal "1")) (+ "+") (identifier "DAT_00072800")) () ")")))) (; ";")) (expression_statement "puVar5 = puVar1 + 1;" (assignment_expression "puVar5 = puVar1 + 1" (identifier "puVar5") (= "=") (binary_expression "puVar1 + 1" (identifier "puVar1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar1 = 10;" (assignment_expression "*puVar1 = 10" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (number_literal "10")) (; ";")) (expression_statement "DAT_000727fc = puVar1[1];" (assignment_expression "DAT_000727fc = puVar1[1]" (identifier "DAT_000727fc") (= "=") (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (labeled_statement "LAB_00024c64:\n      *puVar5 = 0;" (statement_identifier "LAB_00024c64") (: ":") (expression_statement "*puVar5 = 0;" (assignment_expression "*puVar5 = 0" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (number_literal "0")) (; ";"))) (expression_statement "DAT_00072804 = puVar5;" (assignment_expression "DAT_00072804 = puVar5" (identifier "DAT_00072804") (= "=") (identifier "puVar5")) (; ";")) (expression_statement "DAT_00072800 = iVar4;" (assignment_expression "DAT_00072800 = iVar4" (identifier "DAT_00072800") (= "=") (identifier "iVar4")) (; ";")) (return_statement "return puVar5;" (return "return") (identifier "puVar5") (; ";")) (} "}"))) (if_statement "if (_DAT_00072d6c != 0) {\n      FUN_00025cc0(0);\n    }" (if "if") (parenthesized_expression "(_DAT_00072d6c != 0)" (( "(") (binary_expression "_DAT_00072d6c != 0" (identifier "_DAT_00072d6c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00025cc0(0);\n    }" ({ "{") (expression_statement "FUN_00025cc0(0);" (call_expression "FUN_00025cc0(0)" (identifier "FUN_00025cc0") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}"))) (expression_statement "DAT_00072804 = (undefined1 *)0x0;" (assignment_expression "DAT_00072804 = (undefined1 *)0x0" (identifier "DAT_00072804") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (DAT_000727d8 != (undefined1 *)0x0) {\nLAB_00024bd7:\n      DAT_00072804 = (undefined1 *)0x0;\n      iVar4 = FUN_00024880();\n      *param_1 = iVar4;\n      return DAT_00072804;\n    }" (if "if") (parenthesized_expression "(DAT_000727d8 != (undefined1 *)0x0)" (( "(") (binary_expression "DAT_000727d8 != (undefined1 *)0x0" (identifier "DAT_000727d8") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00024bd7:\n      DAT_00072804 = (undefined1 *)0x0;\n      iVar4 = FUN_00024880();\n      *param_1 = iVar4;\n      return DAT_00072804;\n    }" ({ "{") (labeled_statement "LAB_00024bd7:\n      DAT_00072804 = (undefined1 *)0x0;" (statement_identifier "LAB_00024bd7") (: ":") (expression_statement "DAT_00072804 = (undefined1 *)0x0;" (assignment_expression "DAT_00072804 = (undefined1 *)0x0" (identifier "DAT_00072804") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "iVar4 = FUN_00024880();" (assignment_expression "iVar4 = FUN_00024880()" (identifier "iVar4") (= "=") (call_expression "FUN_00024880()" (identifier "FUN_00024880") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*param_1 = iVar4;" (assignment_expression "*param_1 = iVar4" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "iVar4")) (; ";")) (return_statement "return DAT_00072804;" (return "return") (identifier "DAT_00072804") (; ";")) (} "}"))) (expression_statement "puVar5 = (undefined1 *)0x0;" (assignment_expression "puVar5 = (undefined1 *)0x0" (identifier "puVar5") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else if (DAT_0006a29c < DAT_000727f0) {\n    DAT_0006a29c = DAT_000727f0;\n    DAT_00072800 = 0;\n    puVar5 = (undefined1 *)(DAT_000727ec + DAT_000727f0);\n    DAT_00072804 = puVar5;\n    *param_1 = uVar2 + DAT_000727ec;\n  }\n  else {\n    FUN_00033520(&DAT_000727ec);\n    if (DAT_0006a298 != 0) {\n      FUN_00019960(DAT_00072e54);\n    }\n    DAT_00072e54 = DAT_00072e54 + -1;\n    DAT_00072804 = (undefined1 *)0x0;\n    DAT_00072800 = 0;\n    puVar5 = DAT_000727d8;\n    if (DAT_000727d8 != (undefined1 *)0x0) goto LAB_00024bd7;\n  }" (else "else") (if_statement "if (DAT_0006a29c < DAT_000727f0) {\n    DAT_0006a29c = DAT_000727f0;\n    DAT_00072800 = 0;\n    puVar5 = (undefined1 *)(DAT_000727ec + DAT_000727f0);\n    DAT_00072804 = puVar5;\n    *param_1 = uVar2 + DAT_000727ec;\n  }\n  else {\n    FUN_00033520(&DAT_000727ec);\n    if (DAT_0006a298 != 0) {\n      FUN_00019960(DAT_00072e54);\n    }\n    DAT_00072e54 = DAT_00072e54 + -1;\n    DAT_00072804 = (undefined1 *)0x0;\n    DAT_00072800 = 0;\n    puVar5 = DAT_000727d8;\n    if (DAT_000727d8 != (undefined1 *)0x0) goto LAB_00024bd7;\n  }" (if "if") (parenthesized_expression "(DAT_0006a29c < DAT_000727f0)" (( "(") (binary_expression "DAT_0006a29c < DAT_000727f0" (identifier "DAT_0006a29c") (< "<") (identifier "DAT_000727f0")) () ")")) (compound_statement "{\n    DAT_0006a29c = DAT_000727f0;\n    DAT_00072800 = 0;\n    puVar5 = (undefined1 *)(DAT_000727ec + DAT_000727f0);\n    DAT_00072804 = puVar5;\n    *param_1 = uVar2 + DAT_000727ec;\n  }" ({ "{") (expression_statement "DAT_0006a29c = DAT_000727f0;" (assignment_expression "DAT_0006a29c = DAT_000727f0" (identifier "DAT_0006a29c") (= "=") (identifier "DAT_000727f0")) (; ";")) (expression_statement "DAT_00072800 = 0;" (assignment_expression "DAT_00072800 = 0" (identifier "DAT_00072800") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5 = (undefined1 *)(DAT_000727ec + DAT_000727f0);" (assignment_expression "puVar5 = (undefined1 *)(DAT_000727ec + DAT_000727f0)" (identifier "puVar5") (= "=") (cast_expression "(undefined1 *)(DAT_000727ec + DAT_000727f0)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_000727ec + DAT_000727f0)" (( "(") (binary_expression "DAT_000727ec + DAT_000727f0" (identifier "DAT_000727ec") (+ "+") (identifier "DAT_000727f0")) () ")")))) (; ";")) (expression_statement "DAT_00072804 = puVar5;" (assignment_expression "DAT_00072804 = puVar5" (identifier "DAT_00072804") (= "=") (identifier "puVar5")) (; ";")) (expression_statement "*param_1 = uVar2 + DAT_000727ec;" (assignment_expression "*param_1 = uVar2 + DAT_000727ec" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (binary_expression "uVar2 + DAT_000727ec" (identifier "uVar2") (+ "+") (identifier "DAT_000727ec"))) (; ";")) (} "}")) (else_clause "else {\n    FUN_00033520(&DAT_000727ec);\n    if (DAT_0006a298 != 0) {\n      FUN_00019960(DAT_00072e54);\n    }\n    DAT_00072e54 = DAT_00072e54 + -1;\n    DAT_00072804 = (undefined1 *)0x0;\n    DAT_00072800 = 0;\n    puVar5 = DAT_000727d8;\n    if (DAT_000727d8 != (undefined1 *)0x0) goto LAB_00024bd7;\n  }" (else "else") (compound_statement "{\n    FUN_00033520(&DAT_000727ec);\n    if (DAT_0006a298 != 0) {\n      FUN_00019960(DAT_00072e54);\n    }\n    DAT_00072e54 = DAT_00072e54 + -1;\n    DAT_00072804 = (undefined1 *)0x0;\n    DAT_00072800 = 0;\n    puVar5 = DAT_000727d8;\n    if (DAT_000727d8 != (undefined1 *)0x0) goto LAB_00024bd7;\n  }" ({ "{") (expression_statement "FUN_00033520(&DAT_000727ec);" (call_expression "FUN_00033520(&DAT_000727ec)" (identifier "FUN_00033520") (argument_list "(&DAT_000727ec)" (( "(") (pointer_expression "&DAT_000727ec" (& "&") (identifier "DAT_000727ec")) () ")"))) (; ";")) (if_statement "if (DAT_0006a298 != 0) {\n      FUN_00019960(DAT_00072e54);\n    }" (if "if") (parenthesized_expression "(DAT_0006a298 != 0)" (( "(") (binary_expression "DAT_0006a298 != 0" (identifier "DAT_0006a298") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00019960(DAT_00072e54);\n    }" ({ "{") (expression_statement "FUN_00019960(DAT_00072e54);" (call_expression "FUN_00019960(DAT_00072e54)" (identifier "FUN_00019960") (argument_list "(DAT_00072e54)" (( "(") (identifier "DAT_00072e54") () ")"))) (; ";")) (} "}"))) (expression_statement "DAT_00072e54 = DAT_00072e54 + -1;" (assignment_expression "DAT_00072e54 = DAT_00072e54 + -1" (identifier "DAT_00072e54") (= "=") (binary_expression "DAT_00072e54 + -1" (identifier "DAT_00072e54") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "DAT_00072804 = (undefined1 *)0x0;" (assignment_expression "DAT_00072804 = (undefined1 *)0x0" (identifier "DAT_00072804") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "DAT_00072800 = 0;" (assignment_expression "DAT_00072800 = 0" (identifier "DAT_00072800") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5 = DAT_000727d8;" (assignment_expression "puVar5 = DAT_000727d8" (identifier "puVar5") (= "=") (identifier "DAT_000727d8")) (; ";")) (if_statement "if (DAT_000727d8 != (undefined1 *)0x0) goto LAB_00024bd7;" (if "if") (parenthesized_expression "(DAT_000727d8 != (undefined1 *)0x0)" (( "(") (binary_expression "DAT_000727d8 != (undefined1 *)0x0" (identifier "DAT_000727d8") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00024bd7;" (goto "goto") (statement_identifier "LAB_00024bd7") (; ";"))) (} "}")))))) (return_statement "return puVar5;" (return "return") (identifier "puVar5") (; ";")) (} "}")))

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

char * function_1(char **bufp)

{
  char *var_10;
  type_1 *piVar2;
  char *var_6;
  char *var_8;
  char *var_9;
  size_t var_7;
  size_t var_12;
  
  var_6 = var_2;
  var_7 = var_3;
  var_12 = var_1;
  if (var_1 == 0xffffffff) {
    var_8 = var_2 + 1;
    if (var_3 != 0) {
      var_4(var_8,partial_where,var_3);
      var_6[1] = save_source[0];
    }
    while( true ) {
      *bufp = var_8;
      var_8 = var_5(var_6 + var_7 + 1);
      if (var_8 == (char *)0x0) break;
      *var_8 = '\0';
      var_12 = var_13;
      if (var_8[-1] == '\n') {
        save_source[0] = '\0';
        var_12 = 0;
        goto LAB_00024c64;
      }
      var_9 = var_8 + -1;
      if (var_6 + var_7 + 1 <= var_8 + -1) {
        do {
          var_10 = var_9 + -1;
          if (var_9[-1] == '\n') {
            save_source[0] = *var_9;
            var_12 = (int)var_8 - (int)var_9;
            var_8 = var_9;
            goto LAB_00024c64;
          }
          var_9 = var_10;
        } while (var_10 != var_6 + var_7);
      }
      var_3 = (int)var_8 - (int)(var_2 + 1);
      var_7 = var_11();
      if (var_12 - var_7 < var_3) {
        var_13 = var_13 * 2;
        var_6 = (char *)var_14(var_2,var_13 + 3);
        var_8 = var_6 + 1;
        var_7 = var_3;
        var_2 = var_6;
      }
      else {
        var_8 = var_2 + 1;
        var_6 = var_2;
        var_7 = var_3;
      }
    }
    if (var_3 != 0) {
      var_6 = (char *)var_15(0,"end of file not at end of a line; newline inserted",5);
      var_16(var_6);
      var_12 = 0;
      var_6 = var_2 + var_3 + 1;
      var_8 = var_6 + 1;
      *var_6 = '\n';
      save_source[0] = var_6[1];
LAB_00024c64:
      *var_8 = '\0';
      partial_where = var_8;
      var_3 = var_12;
      return var_8;
    }
    if (var_17 != 0) {
      var_18((char *)0x0);
    }
    partial_where = (char *)0x0;
    if (var_19 != (type_1 *)0x0) {
LAB_00024bd7:
      partial_where = (char *)0x0;
      var_6 = var_20(var_19);
      *bufp = var_6;
      return partial_where;
    }
    piVar2 = (type_1 *)0x0;
  }
  else if (var_1 < from_sb.len) {
    var_1 = from_sb.len;
    var_3 = 0;
    piVar2 = (type_1 *)(from_sb.ptr + from_sb.len);
    partial_where = (char *)piVar2;
    *bufp = from_sb.ptr + var_12;
  }
  else {
    var_21(&from_sb);
    if (var_22 != 0) {
      var_23(var_24);
    }
    var_24 = var_24 + -1;
    partial_where = (char *)0x0;
    var_3 = 0;
    piVar2 = var_19;
    if (var_19 != (type_1 *)0x0) goto LAB_00024bd7;
  }
  return (char *)piVar2;
}


(translation_unit (function_definition type: (type_identifier) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier)))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) 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: (identifier)) (declaration type: (primitive_type) 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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_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: (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (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: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (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: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (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)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))))))) (return_statement (identifier)))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

undefined1 * MASKED(int *param_1)

{
  undefined1 *puVar1;
  uint uVar2;
  int iVar3;
  int iVar4;
  undefined1 *puVar5;
  undefined1 *puVar6;
  undefined4 uVar7;
  void *__dest;
  size_t sVar8;
  
  iVar4 = DAT_00072808;
  sVar8 = DAT_00072800;
  uVar2 = DAT_0006a29c;
  if (DAT_0006a29c == 0xffffffff) {
    __dest = (void *)(DAT_00072808 + 1);
    if (DAT_00072800 != 0) {
      memmove(__dest,DAT_00072804,DAT_00072800);
      *(undefined1 *)(iVar4 + 1) = DAT_000727fc;
    }
    while( true ) {
      puVar1 = (undefined1 *)(iVar4 + 1 + sVar8);
      *param_1 = (int)__dest;
      puVar5 = (undefined1 *)FUN_00024610(puVar1);
      if (puVar5 == (undefined1 *)0x0) break;
      *puVar5 = 0;
      iVar3 = DAT_000727f8;
      if (puVar5[-1] == '\n') {
        DAT_000727fc = 0;
        iVar4 = 0;
        goto LAB_00024c64;
      }
      puVar6 = puVar5 + -1;
      if (puVar1 <= puVar5 + -1) {
        do {
          puVar1 = puVar6 + -1;
          if (puVar6[-1] == '\n') {
            DAT_000727fc = *puVar6;
            iVar4 = (int)puVar5 - (int)puVar6;
            puVar5 = puVar6;
            goto LAB_00024c64;
          }
          puVar6 = puVar1;
        } while (puVar1 != (undefined1 *)(iVar4 + sVar8));
      }
      DAT_00072800 = (int)puVar5 - (DAT_00072808 + 1);
      iVar4 = FUN_000241b0();
      if ((uint)(iVar3 - iVar4) < DAT_00072800) {
        DAT_000727f8 = DAT_000727f8 * 2;
        iVar4 = xrealloc(DAT_00072808,DAT_000727f8 + 3);
        __dest = (void *)(iVar4 + 1);
        sVar8 = DAT_00072800;
        DAT_00072808 = iVar4;
      }
      else {
        __dest = (void *)(DAT_00072808 + 1);
        iVar4 = DAT_00072808;
        sVar8 = DAT_00072800;
      }
    }
    if (DAT_00072800 != 0) {
      uVar7 = dcgettext(0,"end of file not at end of a line; newline inserted",5);
      FUN_0002a660(uVar7);
      iVar4 = 0;
      puVar1 = (undefined1 *)(DAT_00072808 + 1 + DAT_00072800);
      puVar5 = puVar1 + 1;
      *puVar1 = 10;
      DAT_000727fc = puVar1[1];
LAB_00024c64:
      *puVar5 = 0;
      DAT_00072804 = puVar5;
      DAT_00072800 = iVar4;
      return puVar5;
    }
    if (_DAT_00072d6c != 0) {
      FUN_00025cc0(0);
    }
    DAT_00072804 = (undefined1 *)0x0;
    if (DAT_000727d8 != (undefined1 *)0x0) {
LAB_00024bd7:
      DAT_00072804 = (undefined1 *)0x0;
      iVar4 = FUN_00024880();
      *param_1 = iVar4;
      return DAT_00072804;
    }
    puVar5 = (undefined1 *)0x0;
  }
  else if (DAT_0006a29c < DAT_000727f0) {
    DAT_0006a29c = DAT_000727f0;
    DAT_00072800 = 0;
    puVar5 = (undefined1 *)(DAT_000727ec + DAT_000727f0);
    DAT_00072804 = puVar5;
    *param_1 = uVar2 + DAT_000727ec;
  }
  else {
    FUN_00033520(&DAT_000727ec);
    if (DAT_0006a298 != 0) {
      FUN_00019960(DAT_00072e54);
    }
    DAT_00072e54 = DAT_00072e54 + -1;
    DAT_00072804 = (undefined1 *)0x0;
    DAT_00072800 = 0;
    puVar5 = DAT_000727d8;
    if (DAT_000727d8 != (undefined1 *)0x0) goto LAB_00024bd7;
  }
  return puVar5;
}

