
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

_Bool __regparm3 getseq(FILE *fp,seq *seq,int whichfile)

{
  char *pcVar1;
  line *plVar2;
  char *pcVar3;
  int iVar4;
  linebuffer *plVar5;
  int iVar6;
  undefined4 uVar7;
  line *line;
  line **pplVar8;
  uint uVar9;
  int *piVar10;
  size_t sVar11;
  undefined4 extraout_EDX;
  size_t sVar12;
  uint uVar13;
  _Bool _Var14;
  bool bVar15;
  
  uVar13 = seq->count;
  uVar9 = seq->alloc;
  pplVar8 = seq->lines;
  if (uVar13 == uVar9) {
    if (pplVar8 == (line **)0x0) {
      if (uVar9 == 0) {
        sVar11 = 0x40;
        uVar9 = 0x10;
      }
      else {
        sVar11 = uVar9 << 2;
        if (((int)sVar11 < 0) || (uVar9 >> 0x1e != 0)) goto LAB_000137ec;
      }
    }
    else {
      if (0x15555554 < uVar9) {
LAB_000137ec:
                    /* WARNING: Subroutine does not return */
        xalloc_die();
      }
      uVar9 = uVar9 + 1 + (uVar9 >> 1);
      sVar11 = uVar9 * 4;
    }
    seq->alloc = uVar9;
    pplVar8 = (line **)xrealloc(pplVar8,sVar11);
    uVar13 = seq->count;
    seq->lines = pplVar8;
    if (uVar13 < seq->alloc) {
      memset(pplVar8 + uVar13,0,(seq->alloc - uVar13) * 4);
    }
  }
  plVar2 = spareline[1];
  pplVar8 = pplVar8 + uVar13;
  line = *pplVar8;
  if (line == prevline[1]) {
    *pplVar8 = spareline[1];
    spareline[1] = line;
    line = plVar2;
  }
  if (line == (line *)0x0) {
    line = (line *)xcalloc(1,0x18);
    *pplVar8 = line;
  }
  else {
    line->nfields = 0;
  }
  plVar5 = readlinebuffer_delim(&line->buf,fp,eolchar);
  if (plVar5 == (linebuffer *)0x0) {
    if ((fp->_flags & 0x20) != 0) {
      uVar7 = dcgettext(0,"read error",5,extraout_EDX);
      piVar10 = __errno_location();
                    /* WARNING: Subroutine does not return */
      error(1,*piVar10,uVar7);
    }
    _Var14 = false;
    if (line != (line *)0x0) {
      free(line->fields);
      line->fields = (field *)0x0;
      free((line->buf).buffer);
      (line->buf).buffer = (char *)0x0;
      return false;
    }
  }
  else {
    bVar15 = 0xfffffffe < (uint)line_no[1];
    line_no[1]._0_4_ = (uint)line_no[1] + 1;
    line_no[1]._4_4_ = line_no[1]._4_4_ + (uint)bVar15;
    xfields(line);
    if ((((prevline[1] != (line *)0x0) && (check_input_order != CHECK_ORDER_DISABLED)) &&
        ((check_input_order == CHECK_ORDER_ENABLED || (seen_unpairable != false)))) &&
       ((issued_disorder_warning[1] == false &&
        (iVar6 = keycmp((line *)prevline[1]->nfields,(line *)&prevline[1]->fields,line->nfields,
                        (size_t)&line->fields,(line *)join_field_2,(line *)join_field_2),
        iVar4 = line_no[1]._4_4_, uVar9 = (uint)line_no[1], pcVar3 = g_names[1], 0 < iVar6)))) {
      sVar11 = (line->buf).length;
      pcVar1 = (line->buf).buffer;
      sVar12 = 0;
      if (sVar11 != 0) {
        if (pcVar1[sVar11 - 1] == '\n') {
          sVar11 = sVar11 - 1;
        }
        sVar12 = 0x7fffffff;
        if (-1 < (int)sVar11) {
          sVar12 = sVar11;
        }
      }
      uVar7 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);
                    /* WARNING: Subroutine does not return */
      error(check_input_order == CHECK_ORDER_ENABLED,0,uVar7,pcVar3,uVar9,iVar4,sVar12,pcVar1);
    }
    prevline[1] = line;
    seq->count = seq->count + 1;
    _Var14 = true;
  }
  return _Var14;
}



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

undefined4 __regparm3 FUN_00013570(byte *param_1,uint *param_2)

{
  int iVar1;
  int iVar2;
  undefined4 uVar3;
  int iVar4;
  uint uVar5;
  uint uVar6;
  int *piVar7;
  int iVar8;
  uint uVar9;
  undefined4 uVar10;
  bool bVar11;
  undefined8 uVar12;
  
  uVar9 = *param_2;
  uVar6 = param_2[1];
  uVar5 = param_2[2];
  if (uVar9 == uVar6) {
    if (uVar5 == 0) {
      if (uVar6 == 0) {
        iVar4 = 0x40;
        uVar6 = 0x10;
      }
      else {
        iVar4 = uVar6 << 2;
        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;
      }
    }
    else {
      if (0x15555554 < uVar6) {
LAB_000137ec:
                    /* WARNING: Subroutine does not return */
        FUN_00017250();
      }
      uVar6 = uVar6 + 1 + (uVar6 >> 1);
      iVar4 = uVar6 * 4;
    }
    param_2[1] = uVar6;
    uVar5 = FUN_00016fe0(uVar5,iVar4);
    uVar9 = *param_2;
    param_2[2] = uVar5;
    if (uVar9 < param_2[1]) {
      memset((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4);
    }
  }
  iVar1 = DAT_000201f0;
  piVar7 = (int *)(uVar5 + uVar9 * 4);
  iVar4 = *piVar7;
  if (iVar4 == DAT_00020214) {
    *piVar7 = DAT_000201f0;
    DAT_000201f0 = iVar4;
    iVar4 = iVar1;
  }
  if (iVar4 == 0) {
    iVar4 = FUN_000171a0(1,0x18);
    *piVar7 = iVar4;
  }
  else {
    *(undefined4 *)(iVar4 + 0xc) = 0;
  }
  uVar12 = FUN_00014410(iVar4,param_1,(int)DAT_00020108);
  if ((int)uVar12 == 0) {
    if ((*param_1 & 0x20) != 0) {
      uVar10 = dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20));
      piVar7 = __errno_location();
                    /* WARNING: Subroutine does not return */
      error(1,*piVar7,uVar10);
    }
    uVar10 = 0;
    if (iVar4 != 0) {
      free(*(void **)(iVar4 + 0x14));
      *(undefined4 *)(iVar4 + 0x14) = 0;
      free(*(void **)(iVar4 + 8));
      *(undefined4 *)(iVar4 + 8) = 0;
      return 0;
    }
  }
  else {
    bVar11 = 0xfffffffe < DAT_00020208;
    DAT_00020208 = DAT_00020208 + 1;
    DAT_0002020c = DAT_0002020c + (uint)bVar11;
    FUN_00012f70();
    if ((((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&
        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))) &&
       ((DAT_000201e5 == '\0' &&
        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,
        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)))) {
      iVar2 = *(int *)(iVar4 + 4);
      iVar4 = *(int *)(iVar4 + 8);
      iVar8 = 0;
      if (iVar2 != 0) {
        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {
          iVar2 = iVar2 + -1;
        }
        iVar8 = 0x7fffffff;
        if (-1 < iVar2) {
          iVar8 = iVar2;
        }
      }
      uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);
                    /* WARNING: Subroutine does not return */
      error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4);
    }
    DAT_00020214 = iVar4;
    *param_2 = *param_2 + 1;
    uVar10 = 1;
  }
  return uVar10;
}


PUSH EBP
MOV EBP,EAX
PUSH EDI
MOV EDI,EDX
PUSH ESI
PUSH EBX
CALL 0x00012690
ADD EBX,0xca83
SUB ESP,0x1c
MOV ESI,dword ptr [EDX]
MOV EAX,dword ptr [EDX + 0x4]
MOV EDX,dword ptr [EDX + 0x8]
CMP ESI,EAX
JZ 0x00013770
LEA EDX,[EDX + ESI*0x4]
MOV ESI,dword ptr [EDX]
CMP ESI,dword ptr [EBX + 0x214]
JZ 0x00013730
TEST ESI,ESI
JZ 0x00013748
MOV dword ptr [ESI + 0xc],0x0
MOVSX EAX,byte ptr [EBX + 0x108]
SUB ESP,0x4
PUSH EAX
PUSH EBP
PUSH ESI
CALL 0x00014410
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000136f0
MOV EAX,ESI
ADD dword ptr [EBX + 0x208],0x1
ADC dword ptr [EBX + 0x20c],0x0
CALL 0x00012f70
MOV EAX,dword ptr [EBX + 0x214]
TEST EAX,EAX
JZ 0x000136d8
MOV EDX,dword ptr [EBX + 0x1c4]
CMP EDX,0x2
JZ 0x000136d8
CMP EDX,0x1
JZ 0x00013617
CMP byte ptr [EBX + 0x1e6],0x0
JZ 0x000136d8
CMP byte ptr [EBX + 0x1e5],0x0
JNZ 0x000136d8
MOV EBP,dword ptr [EBX + 0x110]
SUB ESP,0x4
MOV ECX,dword ptr [ESI + 0xc]
LEA EDX,[EAX + 0x14]
MOV EAX,dword ptr [EAX + 0xc]
PUSH EBP
PUSH EBP
LEA EBP,[ESI + 0x14]
PUSH EBP
CALL 0x000128e0
ADD ESP,0x10
TEST EAX,EAX
JLE 0x000136d8
MOV EAX,dword ptr [ESI + 0x4]
MOV EDX,dword ptr [ESI + 0x8]
XOR EBP,EBP
TEST EAX,EAX
JZ 0x0001366d
CMP byte ptr [EDX + EAX*0x1 + -0x1],0xa
LEA ECX,[EAX + -0x1]
MOV EBP,0x7fffffff
CMOVZ EAX,ECX
TEST EAX,EAX
CMOVNS EBP,EAX
MOV dword ptr [ESP + 0xc],EDX
MOV EAX,dword ptr [EBX + 0x208]
SUB ESP,0x4
MOV EDX,dword ptr [EBX + 0x20c]
MOV ECX,dword ptr [EBX + 0x1f8]
MOV dword ptr [ESP + 0x4],EAX
LEA EAX,[EBX + 0xffffaa64]
MOV dword ptr [ESP + 0x8],EDX
MOV dword ptr [ESP + 0xc],ECX
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000110e0
MOV EDX,dword ptr [ESP + 0x1c]
PUSH EDX
PUSH EBP
PUSH dword ptr [ESP + 0x1c]
PUSH dword ptr [ESP + 0x1c]
MOV ECX,dword ptr [ESP + 0x28]
PUSH ECX
PUSH EAX
XOR EAX,EAX
CMP dword ptr [EBX + 0x1c4],0x1
SETZ AL
PUSH 0x0
PUSH EAX
CALL 0x00011180
MOV dword ptr [EBX + 0x214],ESI
ADD dword ptr [EDI],0x1
MOV EDI,0x1
ADD ESP,0x1c
MOV EAX,EDI
POP EBX
POP ESI
POP EDI
POP EBP
RET
TEST byte ptr [EBP],0x20
JNZ 0x00013804
XOR EDI,EDI
TEST ESI,ESI
JZ 0x000136e6
SUB ESP,0xc
PUSH dword ptr [ESI + 0x14]
CALL 0x00011080
MOV dword ptr [ESI + 0x14],0x0
POP EAX
PUSH dword ptr [ESI + 0x8]
CALL 0x00011080
ADD ESP,0x10
MOV dword ptr [ESI + 0x8],0x0
MOV EAX,EDI
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EBX + 0x1f0]
MOV dword ptr [EBX + 0x1f0],ESI
MOV ESI,EAX
MOV dword ptr [EDX],EAX
TEST ESI,ESI
JNZ 0x000135af
MOV dword ptr [ESP],EDX
SUB ESP,0x8
PUSH 0x18
PUSH 0x1
CALL 0x000171a0
MOV EDX,dword ptr [ESP + 0x10]
ADD ESP,0x10
MOV ESI,EAX
MOV dword ptr [EDX],EAX
JMP 0x000135b6
TEST EDX,EDX
JZ 0x000137d0
CMP EAX,0x15555554
JA 0x000137ec
MOV ECX,EAX
SHR ECX,0x1
LEA EAX,[EAX + ECX*0x1 + 0x1]
LEA ECX,[EAX*0x4 + 0x0]
SUB ESP,0x8
MOV dword ptr [EDI + 0x4],EAX
PUSH ECX
PUSH EDX
CALL 0x00016fe0
MOV ESI,dword ptr [EDI]
ADD ESP,0x10
MOV EDX,EAX
MOV dword ptr [EDI + 0x8],EAX
MOV EAX,dword ptr [EDI + 0x4]
CMP ESI,EAX
JNC 0x00013596
SUB EAX,ESI
MOV dword ptr [ESP],EDX
LEA ECX,[EDX + ESI*0x4]
SUB ESP,0x4
SHL EAX,0x2
PUSH EAX
PUSH 0x0
PUSH ECX
CALL 0x00011250
ADD ESP,0x10
MOV EDX,dword ptr [ESP]
JMP 0x00013596
TEST EAX,EAX
JZ 0x000137f8
MOV ECX,EAX
SHR ECX,0x1e
SETNZ CL
MOVZX ECX,CL
MOV ESI,ECX
MOV ECX,EAX
SHL ECX,0x2
JS 0x000137ec
TEST ESI,ESI
JZ 0x0001378a
CALL 0x00017250
MOV ECX,0x40
MOV EAX,0x10
JMP 0x0001378a
LEA EAX,[EBX + 0xffffaa59]
PUSH EDX
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000110e0
MOV ESI,EAX
CALL 0x00011270
ADD ESP,0xc
PUSH ESI
PUSH dword ptr [EAX]
PUSH 0x1
CALL 0x00011180
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 __regparm3 FUN_00013570(byte *param_1,uint *param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  int *piVar7;\n  int iVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  bool bVar11;\n  undefined8 uVar12;\n  \n  uVar9 = *param_2;\n  uVar6 = param_2[1];\n  uVar5 = param_2[2];\n  if (uVar9 == uVar6) {\n    if (uVar5 == 0) {\n      if (uVar6 == 0) {\n        iVar4 = 0x40;\n        uVar6 = 0x10;\n      }\n      else {\n        iVar4 = uVar6 << 2;\n        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;\n      }\n    }\n    else {\n      if (0x15555554 < uVar6) {\nLAB_000137ec:\n                    /* WARNING: Subroutine does not return */\n        FUN_00017250();\n      }\n      uVar6 = uVar6 + 1 + (uVar6 >> 1);\n      iVar4 = uVar6 * 4;\n    }\n    param_2[1] = uVar6;\n    uVar5 = FUN_00016fe0(uVar5,iVar4);\n    uVar9 = *param_2;\n    param_2[2] = uVar5;\n    if (uVar9 < param_2[1]) {\n      memset((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4);\n    }\n  }\n  iVar1 = DAT_000201f0;\n  piVar7 = (int *)(uVar5 + uVar9 * 4);\n  iVar4 = *piVar7;\n  if (iVar4 == DAT_00020214) {\n    *piVar7 = DAT_000201f0;\n    DAT_000201f0 = iVar4;\n    iVar4 = iVar1;\n  }\n  if (iVar4 == 0) {\n    iVar4 = FUN_000171a0(1,0x18);\n    *piVar7 = iVar4;\n  }\n  else {\n    *(undefined4 *)(iVar4 + 0xc) = 0;\n  }\n  uVar12 = FUN_00014410(iVar4,param_1,(int)DAT_00020108);\n  if ((int)uVar12 == 0) {\n    if ((*param_1 & 0x20) != 0) {\n      uVar10 = dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20));\n      piVar7 = __errno_location();\n                    /* WARNING: Subroutine does not return */\n      error(1,*piVar7,uVar10);\n    }\n    uVar10 = 0;\n    if (iVar4 != 0) {\n      free(*(void **)(iVar4 + 0x14));\n      *(undefined4 *)(iVar4 + 0x14) = 0;\n      free(*(void **)(iVar4 + 8));\n      *(undefined4 *)(iVar4 + 8) = 0;\n      return 0;\n    }\n  }\n  else {\n    bVar11 = 0xfffffffe < DAT_00020208;\n    DAT_00020208 = DAT_00020208 + 1;\n    DAT_0002020c = DAT_0002020c + (uint)bVar11;\n    FUN_00012f70();\n    if ((((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))) &&\n       ((DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)))) {\n      iVar2 = *(int *)(iVar4 + 4);\n      iVar4 = *(int *)(iVar4 + 8);\n      iVar8 = 0;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }\n        iVar8 = 0x7fffffff;\n        if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }\n      }\n      uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    /* WARNING: Subroutine does not return */\n      error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4);\n    }\n    DAT_00020214 = iVar4;\n    *param_2 = *param_2 + 1;\n    uVar10 = 1;\n  }\n  return uVar10;\n}\n\n" comment (function_definition "undefined4 __regparm3 FUN_00013570(byte *param_1,uint *param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  int *piVar7;\n  int iVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  bool bVar11;\n  undefined8 uVar12;\n  \n  uVar9 = *param_2;\n  uVar6 = param_2[1];\n  uVar5 = param_2[2];\n  if (uVar9 == uVar6) {\n    if (uVar5 == 0) {\n      if (uVar6 == 0) {\n        iVar4 = 0x40;\n        uVar6 = 0x10;\n      }\n      else {\n        iVar4 = uVar6 << 2;\n        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;\n      }\n    }\n    else {\n      if (0x15555554 < uVar6) {\nLAB_000137ec:\n                    /* WARNING: Subroutine does not return */\n        FUN_00017250();\n      }\n      uVar6 = uVar6 + 1 + (uVar6 >> 1);\n      iVar4 = uVar6 * 4;\n    }\n    param_2[1] = uVar6;\n    uVar5 = FUN_00016fe0(uVar5,iVar4);\n    uVar9 = *param_2;\n    param_2[2] = uVar5;\n    if (uVar9 < param_2[1]) {\n      memset((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4);\n    }\n  }\n  iVar1 = DAT_000201f0;\n  piVar7 = (int *)(uVar5 + uVar9 * 4);\n  iVar4 = *piVar7;\n  if (iVar4 == DAT_00020214) {\n    *piVar7 = DAT_000201f0;\n    DAT_000201f0 = iVar4;\n    iVar4 = iVar1;\n  }\n  if (iVar4 == 0) {\n    iVar4 = FUN_000171a0(1,0x18);\n    *piVar7 = iVar4;\n  }\n  else {\n    *(undefined4 *)(iVar4 + 0xc) = 0;\n  }\n  uVar12 = FUN_00014410(iVar4,param_1,(int)DAT_00020108);\n  if ((int)uVar12 == 0) {\n    if ((*param_1 & 0x20) != 0) {\n      uVar10 = dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20));\n      piVar7 = __errno_location();\n                    /* WARNING: Subroutine does not return */\n      error(1,*piVar7,uVar10);\n    }\n    uVar10 = 0;\n    if (iVar4 != 0) {\n      free(*(void **)(iVar4 + 0x14));\n      *(undefined4 *)(iVar4 + 0x14) = 0;\n      free(*(void **)(iVar4 + 8));\n      *(undefined4 *)(iVar4 + 8) = 0;\n      return 0;\n    }\n  }\n  else {\n    bVar11 = 0xfffffffe < DAT_00020208;\n    DAT_00020208 = DAT_00020208 + 1;\n    DAT_0002020c = DAT_0002020c + (uint)bVar11;\n    FUN_00012f70();\n    if ((((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))) &&\n       ((DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)))) {\n      iVar2 = *(int *)(iVar4 + 4);\n      iVar4 = *(int *)(iVar4 + 8);\n      iVar8 = 0;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }\n        iVar8 = 0x7fffffff;\n        if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }\n      }\n      uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    /* WARNING: Subroutine does not return */\n      error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4);\n    }\n    DAT_00020214 = iVar4;\n    *param_2 = *param_2 + 1;\n    uVar10 = 1;\n  }\n  return uVar10;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00013570(byte *param_1,uint *param_2)" identifier (parameter_list "(byte *param_1,uint *param_2)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  int *piVar7;\n  int iVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  bool bVar11;\n  undefined8 uVar12;\n  \n  uVar9 = *param_2;\n  uVar6 = param_2[1];\n  uVar5 = param_2[2];\n  if (uVar9 == uVar6) {\n    if (uVar5 == 0) {\n      if (uVar6 == 0) {\n        iVar4 = 0x40;\n        uVar6 = 0x10;\n      }\n      else {\n        iVar4 = uVar6 << 2;\n        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;\n      }\n    }\n    else {\n      if (0x15555554 < uVar6) {\nLAB_000137ec:\n                    /* WARNING: Subroutine does not return */\n        FUN_00017250();\n      }\n      uVar6 = uVar6 + 1 + (uVar6 >> 1);\n      iVar4 = uVar6 * 4;\n    }\n    param_2[1] = uVar6;\n    uVar5 = FUN_00016fe0(uVar5,iVar4);\n    uVar9 = *param_2;\n    param_2[2] = uVar5;\n    if (uVar9 < param_2[1]) {\n      memset((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4);\n    }\n  }\n  iVar1 = DAT_000201f0;\n  piVar7 = (int *)(uVar5 + uVar9 * 4);\n  iVar4 = *piVar7;\n  if (iVar4 == DAT_00020214) {\n    *piVar7 = DAT_000201f0;\n    DAT_000201f0 = iVar4;\n    iVar4 = iVar1;\n  }\n  if (iVar4 == 0) {\n    iVar4 = FUN_000171a0(1,0x18);\n    *piVar7 = iVar4;\n  }\n  else {\n    *(undefined4 *)(iVar4 + 0xc) = 0;\n  }\n  uVar12 = FUN_00014410(iVar4,param_1,(int)DAT_00020108);\n  if ((int)uVar12 == 0) {\n    if ((*param_1 & 0x20) != 0) {\n      uVar10 = dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20));\n      piVar7 = __errno_location();\n                    /* WARNING: Subroutine does not return */\n      error(1,*piVar7,uVar10);\n    }\n    uVar10 = 0;\n    if (iVar4 != 0) {\n      free(*(void **)(iVar4 + 0x14));\n      *(undefined4 *)(iVar4 + 0x14) = 0;\n      free(*(void **)(iVar4 + 8));\n      *(undefined4 *)(iVar4 + 8) = 0;\n      return 0;\n    }\n  }\n  else {\n    bVar11 = 0xfffffffe < DAT_00020208;\n    DAT_00020208 = DAT_00020208 + 1;\n    DAT_0002020c = DAT_0002020c + (uint)bVar11;\n    FUN_00012f70();\n    if ((((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))) &&\n       ((DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)))) {\n      iVar2 = *(int *)(iVar4 + 4);\n      iVar4 = *(int *)(iVar4 + 8);\n      iVar8 = 0;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }\n        iVar8 = 0x7fffffff;\n        if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }\n      }\n      uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    /* WARNING: Subroutine does not return */\n      error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4);\n    }\n    DAT_00020214 = iVar4;\n    *param_2 = *param_2 + 1;\n    uVar10 = 1;\n  }\n  return uVar10;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (expression_statement "uVar9 = *param_2;" (assignment_expression "uVar9 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar6 = param_2[1];" (assignment_expression "uVar6 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = param_2[2];" (assignment_expression "uVar5 = param_2[2]" identifier = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (if_statement "if (uVar9 == uVar6) {\n    if (uVar5 == 0) {\n      if (uVar6 == 0) {\n        iVar4 = 0x40;\n        uVar6 = 0x10;\n      }\n      else {\n        iVar4 = uVar6 << 2;\n        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;\n      }\n    }\n    else {\n      if (0x15555554 < uVar6) {\nLAB_000137ec:\n                    /* WARNING: Subroutine does not return */\n        FUN_00017250();\n      }\n      uVar6 = uVar6 + 1 + (uVar6 >> 1);\n      iVar4 = uVar6 * 4;\n    }\n    param_2[1] = uVar6;\n    uVar5 = FUN_00016fe0(uVar5,iVar4);\n    uVar9 = *param_2;\n    param_2[2] = uVar5;\n    if (uVar9 < param_2[1]) {\n      memset((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4);\n    }\n  }" if (parenthesized_expression "(uVar9 == uVar6)" ( (binary_expression "uVar9 == uVar6" identifier == identifier) )) (compound_statement "{\n    if (uVar5 == 0) {\n      if (uVar6 == 0) {\n        iVar4 = 0x40;\n        uVar6 = 0x10;\n      }\n      else {\n        iVar4 = uVar6 << 2;\n        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;\n      }\n    }\n    else {\n      if (0x15555554 < uVar6) {\nLAB_000137ec:\n                    /* WARNING: Subroutine does not return */\n        FUN_00017250();\n      }\n      uVar6 = uVar6 + 1 + (uVar6 >> 1);\n      iVar4 = uVar6 * 4;\n    }\n    param_2[1] = uVar6;\n    uVar5 = FUN_00016fe0(uVar5,iVar4);\n    uVar9 = *param_2;\n    param_2[2] = uVar5;\n    if (uVar9 < param_2[1]) {\n      memset((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4);\n    }\n  }" { (if_statement "if (uVar5 == 0) {\n      if (uVar6 == 0) {\n        iVar4 = 0x40;\n        uVar6 = 0x10;\n      }\n      else {\n        iVar4 = uVar6 << 2;\n        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;\n      }\n    }\n    else {\n      if (0x15555554 < uVar6) {\nLAB_000137ec:\n                    /* WARNING: Subroutine does not return */\n        FUN_00017250();\n      }\n      uVar6 = uVar6 + 1 + (uVar6 >> 1);\n      iVar4 = uVar6 * 4;\n    }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      if (uVar6 == 0) {\n        iVar4 = 0x40;\n        uVar6 = 0x10;\n      }\n      else {\n        iVar4 = uVar6 << 2;\n        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;\n      }\n    }" { (if_statement "if (uVar6 == 0) {\n        iVar4 = 0x40;\n        uVar6 = 0x10;\n      }\n      else {\n        iVar4 = uVar6 << 2;\n        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;\n      }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar4 = 0x40;\n        uVar6 = 0x10;\n      }" { (expression_statement "iVar4 = 0x40;" (assignment_expression "iVar4 = 0x40" identifier = number_literal) ;) (expression_statement "uVar6 = 0x10;" (assignment_expression "uVar6 = 0x10" identifier = number_literal) ;) }) (else_clause "else {\n        iVar4 = uVar6 << 2;\n        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;\n      }" else (compound_statement "{\n        iVar4 = uVar6 << 2;\n        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;\n      }" { (expression_statement "iVar4 = uVar6 << 2;" (assignment_expression "iVar4 = uVar6 << 2" identifier = (binary_expression "uVar6 << 2" identifier << number_literal)) ;) (if_statement "if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;" if (parenthesized_expression "((iVar4 < 0) || (uVar6 >> 0x1e != 0))" ( (binary_expression "(iVar4 < 0) || (uVar6 >> 0x1e != 0)" (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) || (parenthesized_expression "(uVar6 >> 0x1e != 0)" ( (binary_expression "uVar6 >> 0x1e != 0" (binary_expression "uVar6 >> 0x1e" identifier >> number_literal) != number_literal) ))) )) (goto_statement "goto LAB_000137ec;" goto statement_identifier ;)) }))) }) (else_clause "else {\n      if (0x15555554 < uVar6) {\nLAB_000137ec:\n                    /* WARNING: Subroutine does not return */\n        FUN_00017250();\n      }\n      uVar6 = uVar6 + 1 + (uVar6 >> 1);\n      iVar4 = uVar6 * 4;\n    }" else (compound_statement "{\n      if (0x15555554 < uVar6) {\nLAB_000137ec:\n                    /* WARNING: Subroutine does not return */\n        FUN_00017250();\n      }\n      uVar6 = uVar6 + 1 + (uVar6 >> 1);\n      iVar4 = uVar6 * 4;\n    }" { (if_statement "if (0x15555554 < uVar6) {\nLAB_000137ec:\n                    /* WARNING: Subroutine does not return */\n        FUN_00017250();\n      }" if (parenthesized_expression "(0x15555554 < uVar6)" ( (binary_expression "0x15555554 < uVar6" number_literal < identifier) )) (compound_statement "{\nLAB_000137ec:\n                    /* WARNING: Subroutine does not return */\n        FUN_00017250();\n      }" { (labeled_statement "LAB_000137ec:\n                    /* WARNING: Subroutine does not return */\n        FUN_00017250();" statement_identifier : comment (expression_statement "FUN_00017250();" (call_expression "FUN_00017250()" identifier (argument_list "()" ( ))) ;)) })) (expression_statement "uVar6 = uVar6 + 1 + (uVar6 >> 1);" (assignment_expression "uVar6 = uVar6 + 1 + (uVar6 >> 1)" identifier = (binary_expression "uVar6 + 1 + (uVar6 >> 1)" (binary_expression "uVar6 + 1" identifier + number_literal) + (parenthesized_expression "(uVar6 >> 1)" ( (binary_expression "uVar6 >> 1" identifier >> number_literal) )))) ;) (expression_statement "iVar4 = uVar6 * 4;" (assignment_expression "iVar4 = uVar6 * 4" identifier = (binary_expression "uVar6 * 4" identifier * number_literal)) ;) }))) (expression_statement "param_2[1] = uVar6;" (assignment_expression "param_2[1] = uVar6" (subscript_expression "param_2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar5 = FUN_00016fe0(uVar5,iVar4);" (assignment_expression "uVar5 = FUN_00016fe0(uVar5,iVar4)" identifier = (call_expression "FUN_00016fe0(uVar5,iVar4)" identifier (argument_list "(uVar5,iVar4)" ( identifier , identifier )))) ;) (expression_statement "uVar9 = *param_2;" (assignment_expression "uVar9 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "param_2[2] = uVar5;" (assignment_expression "param_2[2] = uVar5" (subscript_expression "param_2[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar9 < param_2[1]) {\n      memset((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4);\n    }" if (parenthesized_expression "(uVar9 < param_2[1])" ( (binary_expression "uVar9 < param_2[1]" identifier < (subscript_expression "param_2[1]" identifier [ number_literal ])) )) (compound_statement "{\n      memset((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4);\n    }" { (expression_statement "memset((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4);" (call_expression "memset((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4)" identifier (argument_list "((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4)" ( (cast_expression "(void *)(uVar5 + uVar9 * 4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar5 + uVar9 * 4)" ( (binary_expression "uVar5 + uVar9 * 4" identifier + (binary_expression "uVar9 * 4" identifier * number_literal)) ))) , number_literal , (binary_expression "(param_2[1] - uVar9) * 4" (parenthesized_expression "(param_2[1] - uVar9)" ( (binary_expression "param_2[1] - uVar9" (subscript_expression "param_2[1]" identifier [ number_literal ]) - identifier) )) * number_literal) ))) ;) })) })) (expression_statement "iVar1 = DAT_000201f0;" (assignment_expression "iVar1 = DAT_000201f0" identifier = identifier) ;) (expression_statement "piVar7 = (int *)(uVar5 + uVar9 * 4);" (assignment_expression "piVar7 = (int *)(uVar5 + uVar9 * 4)" identifier = (cast_expression "(int *)(uVar5 + uVar9 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar5 + uVar9 * 4)" ( (binary_expression "uVar5 + uVar9 * 4" identifier + (binary_expression "uVar9 * 4" identifier * number_literal)) )))) ;) (expression_statement "iVar4 = *piVar7;" (assignment_expression "iVar4 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (if_statement "if (iVar4 == DAT_00020214) {\n    *piVar7 = DAT_000201f0;\n    DAT_000201f0 = iVar4;\n    iVar4 = iVar1;\n  }" if (parenthesized_expression "(iVar4 == DAT_00020214)" ( (binary_expression "iVar4 == DAT_00020214" identifier == identifier) )) (compound_statement "{\n    *piVar7 = DAT_000201f0;\n    DAT_000201f0 = iVar4;\n    iVar4 = iVar1;\n  }" { (expression_statement "*piVar7 = DAT_000201f0;" (assignment_expression "*piVar7 = DAT_000201f0" (pointer_expression "*piVar7" * identifier) = identifier) ;) (expression_statement "DAT_000201f0 = iVar4;" (assignment_expression "DAT_000201f0 = iVar4" identifier = identifier) ;) (expression_statement "iVar4 = iVar1;" (assignment_expression "iVar4 = iVar1" identifier = identifier) ;) })) (if_statement "if (iVar4 == 0) {\n    iVar4 = FUN_000171a0(1,0x18);\n    *piVar7 = iVar4;\n  }\n  else {\n    *(undefined4 *)(iVar4 + 0xc) = 0;\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar4 = FUN_000171a0(1,0x18);\n    *piVar7 = iVar4;\n  }" { (expression_statement "iVar4 = FUN_000171a0(1,0x18);" (assignment_expression "iVar4 = FUN_000171a0(1,0x18)" identifier = (call_expression "FUN_000171a0(1,0x18)" identifier (argument_list "(1,0x18)" ( number_literal , number_literal )))) ;) (expression_statement "*piVar7 = iVar4;" (assignment_expression "*piVar7 = iVar4" (pointer_expression "*piVar7" * identifier) = identifier) ;) }) (else_clause "else {\n    *(undefined4 *)(iVar4 + 0xc) = 0;\n  }" else (compound_statement "{\n    *(undefined4 *)(iVar4 + 0xc) = 0;\n  }" { (expression_statement "*(undefined4 *)(iVar4 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" * (cast_expression "(undefined4 *)(iVar4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) = number_literal) ;) }))) (expression_statement "uVar12 = FUN_00014410(iVar4,param_1,(int)DAT_00020108);" (assignment_expression "uVar12 = FUN_00014410(iVar4,param_1,(int)DAT_00020108)" identifier = (call_expression "FUN_00014410(iVar4,param_1,(int)DAT_00020108)" identifier (argument_list "(iVar4,param_1,(int)DAT_00020108)" ( identifier , identifier , (cast_expression "(int)DAT_00020108" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (if_statement "if ((int)uVar12 == 0) {\n    if ((*param_1 & 0x20) != 0) {\n      uVar10 = dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20));\n      piVar7 = __errno_location();\n                    /* WARNING: Subroutine does not return */\n      error(1,*piVar7,uVar10);\n    }\n    uVar10 = 0;\n    if (iVar4 != 0) {\n      free(*(void **)(iVar4 + 0x14));\n      *(undefined4 *)(iVar4 + 0x14) = 0;\n      free(*(void **)(iVar4 + 8));\n      *(undefined4 *)(iVar4 + 8) = 0;\n      return 0;\n    }\n  }\n  else {\n    bVar11 = 0xfffffffe < DAT_00020208;\n    DAT_00020208 = DAT_00020208 + 1;\n    DAT_0002020c = DAT_0002020c + (uint)bVar11;\n    FUN_00012f70();\n    if ((((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))) &&\n       ((DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)))) {\n      iVar2 = *(int *)(iVar4 + 4);\n      iVar4 = *(int *)(iVar4 + 8);\n      iVar8 = 0;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }\n        iVar8 = 0x7fffffff;\n        if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }\n      }\n      uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    /* WARNING: Subroutine does not return */\n      error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4);\n    }\n    DAT_00020214 = iVar4;\n    *param_2 = *param_2 + 1;\n    uVar10 = 1;\n  }" if (parenthesized_expression "((int)uVar12 == 0)" ( (binary_expression "(int)uVar12 == 0" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n    if ((*param_1 & 0x20) != 0) {\n      uVar10 = dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20));\n      piVar7 = __errno_location();\n                    /* WARNING: Subroutine does not return */\n      error(1,*piVar7,uVar10);\n    }\n    uVar10 = 0;\n    if (iVar4 != 0) {\n      free(*(void **)(iVar4 + 0x14));\n      *(undefined4 *)(iVar4 + 0x14) = 0;\n      free(*(void **)(iVar4 + 8));\n      *(undefined4 *)(iVar4 + 8) = 0;\n      return 0;\n    }\n  }" { (if_statement "if ((*param_1 & 0x20) != 0) {\n      uVar10 = dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20));\n      piVar7 = __errno_location();\n                    /* WARNING: Subroutine does not return */\n      error(1,*piVar7,uVar10);\n    }" if (parenthesized_expression "((*param_1 & 0x20) != 0)" ( (binary_expression "(*param_1 & 0x20) != 0" (parenthesized_expression "(*param_1 & 0x20)" ( (binary_expression "*param_1 & 0x20" (pointer_expression "*param_1" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar10 = dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20));\n      piVar7 = __errno_location();\n                    /* WARNING: Subroutine does not return */\n      error(1,*piVar7,uVar10);\n    }" { (expression_statement "uVar10 = dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20));" (assignment_expression "uVar10 = dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20))" identifier = (call_expression "dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20))" identifier (argument_list "(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20))" ( number_literal , (string_literal ""read error"" " string_content ") , number_literal , (cast_expression "(int)((ulonglong)uVar12 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar12 >> 0x20)" ( (binary_expression "(ulonglong)uVar12 >> 0x20" (cast_expression "(ulonglong)uVar12" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) )))) ;) (expression_statement "piVar7 = __errno_location();" (assignment_expression "piVar7 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) comment (expression_statement "error(1,*piVar7,uVar10);" (call_expression "error(1,*piVar7,uVar10)" identifier (argument_list "(1,*piVar7,uVar10)" ( number_literal , (pointer_expression "*piVar7" * identifier) , identifier ))) ;) })) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (if_statement "if (iVar4 != 0) {\n      free(*(void **)(iVar4 + 0x14));\n      *(undefined4 *)(iVar4 + 0x14) = 0;\n      free(*(void **)(iVar4 + 8));\n      *(undefined4 *)(iVar4 + 8) = 0;\n      return 0;\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      free(*(void **)(iVar4 + 0x14));\n      *(undefined4 *)(iVar4 + 0x14) = 0;\n      free(*(void **)(iVar4 + 8));\n      *(undefined4 *)(iVar4 + 8) = 0;\n      return 0;\n    }" { (expression_statement "free(*(void **)(iVar4 + 0x14));" (call_expression "free(*(void **)(iVar4 + 0x14))" identifier (argument_list "(*(void **)(iVar4 + 0x14))" ( (pointer_expression "*(void **)(iVar4 + 0x14)" * (cast_expression "(void **)(iVar4 + 0x14)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(iVar4 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0x14)" * (cast_expression "(undefined4 *)(iVar4 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "free(*(void **)(iVar4 + 8));" (call_expression "free(*(void **)(iVar4 + 8))" identifier (argument_list "(*(void **)(iVar4 + 8))" ( (pointer_expression "*(void **)(iVar4 + 8)" * (cast_expression "(void **)(iVar4 + 8)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(iVar4 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n    bVar11 = 0xfffffffe < DAT_00020208;\n    DAT_00020208 = DAT_00020208 + 1;\n    DAT_0002020c = DAT_0002020c + (uint)bVar11;\n    FUN_00012f70();\n    if ((((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))) &&\n       ((DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)))) {\n      iVar2 = *(int *)(iVar4 + 4);\n      iVar4 = *(int *)(iVar4 + 8);\n      iVar8 = 0;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }\n        iVar8 = 0x7fffffff;\n        if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }\n      }\n      uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    /* WARNING: Subroutine does not return */\n      error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4);\n    }\n    DAT_00020214 = iVar4;\n    *param_2 = *param_2 + 1;\n    uVar10 = 1;\n  }" else (compound_statement "{\n    bVar11 = 0xfffffffe < DAT_00020208;\n    DAT_00020208 = DAT_00020208 + 1;\n    DAT_0002020c = DAT_0002020c + (uint)bVar11;\n    FUN_00012f70();\n    if ((((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))) &&\n       ((DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)))) {\n      iVar2 = *(int *)(iVar4 + 4);\n      iVar4 = *(int *)(iVar4 + 8);\n      iVar8 = 0;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }\n        iVar8 = 0x7fffffff;\n        if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }\n      }\n      uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    /* WARNING: Subroutine does not return */\n      error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4);\n    }\n    DAT_00020214 = iVar4;\n    *param_2 = *param_2 + 1;\n    uVar10 = 1;\n  }" { (expression_statement "bVar11 = 0xfffffffe < DAT_00020208;" (assignment_expression "bVar11 = 0xfffffffe < DAT_00020208" identifier = (binary_expression "0xfffffffe < DAT_00020208" number_literal < identifier)) ;) (expression_statement "DAT_00020208 = DAT_00020208 + 1;" (assignment_expression "DAT_00020208 = DAT_00020208 + 1" identifier = (binary_expression "DAT_00020208 + 1" identifier + number_literal)) ;) (expression_statement "DAT_0002020c = DAT_0002020c + (uint)bVar11;" (assignment_expression "DAT_0002020c = DAT_0002020c + (uint)bVar11" identifier = (binary_expression "DAT_0002020c + (uint)bVar11" identifier + (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "FUN_00012f70();" (call_expression "FUN_00012f70()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))) &&\n       ((DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)))) {\n      iVar2 = *(int *)(iVar4 + 4);\n      iVar4 = *(int *)(iVar4 + 8);\n      iVar8 = 0;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }\n        iVar8 = 0x7fffffff;\n        if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }\n      }\n      uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    /* WARNING: Subroutine does not return */\n      error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4);\n    }" if (parenthesized_expression "((((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))) &&\n       ((DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2))))" ( (binary_expression "(((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))) &&\n       ((DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)))" (parenthesized_expression "(((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0'))))" ( (binary_expression "((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))" (parenthesized_expression "((DAT_00020214 != 0) && (DAT_000201c4 != 2))" ( (binary_expression "(DAT_00020214 != 0) && (DAT_000201c4 != 2)" (parenthesized_expression "(DAT_00020214 != 0)" ( (binary_expression "DAT_00020214 != 0" identifier != number_literal) )) && (parenthesized_expression "(DAT_000201c4 != 2)" ( (binary_expression "DAT_000201c4 != 2" identifier != number_literal) ))) )) && (parenthesized_expression "((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))" ( (parenthesized_expression "(DAT_000201c4 == 1 || (DAT_000201e6 != '\0'))" ( (binary_expression "DAT_000201c4 == 1 || (DAT_000201e6 != '\0')" (binary_expression "DAT_000201c4 == 1" identifier == number_literal) || (parenthesized_expression "(DAT_000201e6 != '\0')" ( (binary_expression "DAT_000201e6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) && (parenthesized_expression "((DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)))" ( (parenthesized_expression "(DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2))" ( (binary_expression "DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)" (binary_expression "DAT_000201e5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "(iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)" ( (comma_expression "iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2" (assignment_expression "iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110)" identifier = (call_expression "FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110)" identifier (argument_list "(iVar4 + 0x14,DAT_00020110,DAT_00020110)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) , identifier , identifier )))) , (comma_expression "iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2" (assignment_expression "iVar1 = DAT_0002020c" identifier = identifier) , (comma_expression "uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2" (assignment_expression "uVar6 = DAT_00020208" identifier = identifier) , (comma_expression "uVar10 = DAT_000201f8, 0 < iVar2" (assignment_expression "uVar10 = DAT_000201f8" identifier = identifier) , (binary_expression "0 < iVar2" number_literal < identifier))))) ))) )) ))) )) (compound_statement "{\n      iVar2 = *(int *)(iVar4 + 4);\n      iVar4 = *(int *)(iVar4 + 8);\n      iVar8 = 0;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }\n        iVar8 = 0x7fffffff;\n        if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }\n      }\n      uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    /* WARNING: Subroutine does not return */\n      error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4);\n    }" { (expression_statement "iVar2 = *(int *)(iVar4 + 4);" (assignment_expression "iVar2 = *(int *)(iVar4 + 4)" identifier = (pointer_expression "*(int *)(iVar4 + 4)" * (cast_expression "(int *)(iVar4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(iVar4 + 8);" (assignment_expression "iVar4 = *(int *)(iVar4 + 8)" identifier = (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (if_statement "if (iVar2 != 0) {\n        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }\n        iVar8 = 0x7fffffff;\n        if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }\n        iVar8 = 0x7fffffff;\n        if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }\n      }" { (if_statement "if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }" if (parenthesized_expression "(*(char *)(iVar4 + -1 + iVar2) == '\n')" ( (binary_expression "*(char *)(iVar4 + -1 + iVar2) == '\n'" (pointer_expression "*(char *)(iVar4 + -1 + iVar2)" * (cast_expression "(char *)(iVar4 + -1 + iVar2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + -1 + iVar2)" ( (binary_expression "iVar4 + -1 + iVar2" (binary_expression "iVar4 + -1" identifier + number_literal) + identifier) )))) == (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n          iVar2 = iVar2 + -1;\n        }" { (expression_statement "iVar2 = iVar2 + -1;" (assignment_expression "iVar2 = iVar2 + -1" identifier = (binary_expression "iVar2 + -1" identifier + number_literal)) ;) })) (expression_statement "iVar8 = 0x7fffffff;" (assignment_expression "iVar8 = 0x7fffffff" identifier = number_literal) ;) (if_statement "if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }" if (parenthesized_expression "(-1 < iVar2)" ( (binary_expression "-1 < iVar2" number_literal < identifier) )) (compound_statement "{\n          iVar8 = iVar2;\n        }" { (expression_statement "iVar8 = iVar2;" (assignment_expression "iVar8 = iVar2" identifier = identifier) ;) })) })) (expression_statement "uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);" (assignment_expression "uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5)" identifier = (call_expression "dcgettext(0,"%s:%llu: is not sorted: %.*s",5)" identifier (argument_list "(0,"%s:%llu: is not sorted: %.*s",5)" ( number_literal , (string_literal ""%s:%llu: is not sorted: %.*s"" " string_content ") , number_literal )))) ;) comment (expression_statement "error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4);" (call_expression "error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4)" identifier (argument_list "(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4)" ( (binary_expression "DAT_000201c4 == 1" identifier == number_literal) , number_literal , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "DAT_00020214 = iVar4;" (assignment_expression "DAT_00020214 = iVar4" identifier = identifier) ;) (expression_statement "*param_2 = *param_2 + 1;" (assignment_expression "*param_2 = *param_2 + 1" (pointer_expression "*param_2" * identifier) = (binary_expression "*param_2 + 1" (pointer_expression "*param_2" * identifier) + number_literal)) ;) (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) }))) (return_statement "return uVar10;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\n_Bool __regparm3 getseq(FILE *fp,seq *seq,int whichfile)\n\n{\n  char *pcVar1;\n  line *plVar2;\n  char *pcVar3;\n  int iVar4;\n  linebuffer *plVar5;\n  int iVar6;\n  undefined4 uVar7;\n  line *line;\n  line **pplVar8;\n  uint uVar9;\n  int *piVar10;\n  size_t sVar11;\n  undefined4 extraout_EDX;\n  size_t sVar12;\n  uint uVar13;\n  _Bool _Var14;\n  bool bVar15;\n  \n  uVar13 = seq->count;\n  uVar9 = seq->alloc;\n  pplVar8 = seq->lines;\n  if (uVar13 == uVar9) {\n    if (pplVar8 == (line **)0x0) {\n      if (uVar9 == 0) {\n        sVar11 = 0x40;\n        uVar9 = 0x10;\n      }\n      else {\n        sVar11 = uVar9 << 2;\n        if (((int)sVar11 < 0) || (uVar9 >> 0x1e != 0)) goto LAB_000137ec;\n      }\n    }\n    else {\n      if (0x15555554 < uVar9) {\nLAB_000137ec:\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();\n      }\n      uVar9 = uVar9 + 1 + (uVar9 >> 1);\n      sVar11 = uVar9 * 4;\n    }\n    seq->alloc = uVar9;\n    pplVar8 = (line **)xrealloc(pplVar8,sVar11);\n    uVar13 = seq->count;\n    seq->lines = pplVar8;\n    if (uVar13 < seq->alloc) {\n      memset(pplVar8 + uVar13,0,(seq->alloc - uVar13) * 4);\n    }\n  }\n  plVar2 = spareline[1];\n  pplVar8 = pplVar8 + uVar13;\n  line = *pplVar8;\n  if (line == prevline[1]) {\n    *pplVar8 = spareline[1];\n    spareline[1] = line;\n    line = plVar2;\n  }\n  if (line == (line *)0x0) {\n    line = (line *)xcalloc(1,0x18);\n    *pplVar8 = line;\n  }\n  else {\n    line->nfields = 0;\n  }\n  plVar5 = readlinebuffer_delim(&line->buf,fp,eolchar);\n  if (plVar5 == (linebuffer *)0x0) {\n    if ((fp->_flags & 0x20) != 0) {\n      uVar7 = dcgettext(0,"read error",5,extraout_EDX);\n      piVar10 = __errno_location();\n                    /* WARNING: Subroutine does not return */\n      error(1,*piVar10,uVar7);\n    }\n    _Var14 = false;\n    if (line != (line *)0x0) {\n      free(line->fields);\n      line->fields = (field *)0x0;\n      free((line->buf).buffer);\n      (line->buf).buffer = (char *)0x0;\n      return false;\n    }\n  }\n  else {\n    bVar15 = 0xfffffffe < (uint)line_no[1];\n    line_no[1]._0_4_ = (uint)line_no[1] + 1;\n    line_no[1]._4_4_ = line_no[1]._4_4_ + (uint)bVar15;\n    xfields(line);\n    if ((((prevline[1] != (line *)0x0) && (check_input_order != CHECK_ORDER_DISABLED)) &&\n        ((check_input_order == CHECK_ORDER_ENABLED || (seen_unpairable != false)))) &&\n       ((issued_disorder_warning[1] == false &&\n        (iVar6 = keycmp((line *)prevline[1]->nfields,(line *)&prevline[1]->fields,line->nfields,\n                        (size_t)&line->fields,(line *)join_field_2,(line *)join_field_2),\n        iVar4 = line_no[1]._4_4_, uVar9 = (uint)line_no[1], pcVar3 = g_names[1], 0 < iVar6)))) {\n      sVar11 = (line->buf).length;\n      pcVar1 = (line->buf).buffer;\n      sVar12 = 0;\n      if (sVar11 != 0) {\n        if (pcVar1[sVar11 - 1] == '\n') {\n          sVar11 = sVar11 - 1;\n        }\n        sVar12 = 0x7fffffff;\n        if (-1 < (int)sVar11) {\n          sVar12 = sVar11;\n        }\n      }\n      uVar7 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    /* WARNING: Subroutine does not return */\n      error(check_input_order == CHECK_ORDER_ENABLED,0,uVar7,pcVar3,uVar9,iVar4,sVar12,pcVar1);\n    }\n    prevline[1] = line;\n    seq->count = seq->count + 1;\n    _Var14 = true;\n  }\n  return _Var14;\n}\n\n" comment comment (function_definition "_Bool __regparm3 getseq(FILE *fp,seq *seq,int whichfile)\n\n{\n  char *pcVar1;\n  line *plVar2;\n  char *pcVar3;\n  int iVar4;\n  linebuffer *plVar5;\n  int iVar6;\n  undefined4 uVar7;\n  line *line;\n  line **pplVar8;\n  uint uVar9;\n  int *piVar10;\n  size_t sVar11;\n  undefined4 extraout_EDX;\n  size_t sVar12;\n  uint uVar13;\n  _Bool _Var14;\n  bool bVar15;\n  \n  uVar13 = seq->count;\n  uVar9 = seq->alloc;\n  pplVar8 = seq->lines;\n  if (uVar13 == uVar9) {\n    if (pplVar8 == (line **)0x0) {\n      if (uVar9 == 0) {\n        sVar11 = 0x40;\n        uVar9 = 0x10;\n      }\n      else {\n        sVar11 = uVar9 << 2;\n        if (((int)sVar11 < 0) || (uVar9 >> 0x1e != 0)) goto LAB_000137ec;\n      }\n    }\n    else {\n      if (0x15555554 < uVar9) {\nLAB_000137ec:\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();\n      }\n      uVar9 = uVar9 + 1 + (uVar9 >> 1);\n      sVar11 = uVar9 * 4;\n    }\n    seq->alloc = uVar9;\n    pplVar8 = (line **)xrealloc(pplVar8,sVar11);\n    uVar13 = seq->count;\n    seq->lines = pplVar8;\n    if (uVar13 < seq->alloc) {\n      memset(pplVar8 + uVar13,0,(seq->alloc - uVar13) * 4);\n    }\n  }\n  plVar2 = spareline[1];\n  pplVar8 = pplVar8 + uVar13;\n  line = *pplVar8;\n  if (line == prevline[1]) {\n    *pplVar8 = spareline[1];\n    spareline[1] = line;\n    line = plVar2;\n  }\n  if (line == (line *)0x0) {\n    line = (line *)xcalloc(1,0x18);\n    *pplVar8 = line;\n  }\n  else {\n    line->nfields = 0;\n  }\n  plVar5 = readlinebuffer_delim(&line->buf,fp,eolchar);\n  if (plVar5 == (linebuffer *)0x0) {\n    if ((fp->_flags & 0x20) != 0) {\n      uVar7 = dcgettext(0,"read error",5,extraout_EDX);\n      piVar10 = __errno_location();\n                    /* WARNING: Subroutine does not return */\n      error(1,*piVar10,uVar7);\n    }\n    _Var14 = false;\n    if (line != (line *)0x0) {\n      free(line->fields);\n      line->fields = (field *)0x0;\n      free((line->buf).buffer);\n      (line->buf).buffer = (char *)0x0;\n      return false;\n    }\n  }\n  else {\n    bVar15 = 0xfffffffe < (uint)line_no[1];\n    line_no[1]._0_4_ = (uint)line_no[1] + 1;\n    line_no[1]._4_4_ = line_no[1]._4_4_ + (uint)bVar15;\n    xfields(line);\n    if ((((prevline[1] != (line *)0x0) && (check_input_order != CHECK_ORDER_DISABLED)) &&\n        ((check_input_order == CHECK_ORDER_ENABLED || (seen_unpairable != false)))) &&\n       ((issued_disorder_warning[1] == false &&\n        (iVar6 = keycmp((line *)prevline[1]->nfields,(line *)&prevline[1]->fields,line->nfields,\n                        (size_t)&line->fields,(line *)join_field_2,(line *)join_field_2),\n        iVar4 = line_no[1]._4_4_, uVar9 = (uint)line_no[1], pcVar3 = g_names[1], 0 < iVar6)))) {\n      sVar11 = (line->buf).length;\n      pcVar1 = (line->buf).buffer;\n      sVar12 = 0;\n      if (sVar11 != 0) {\n        if (pcVar1[sVar11 - 1] == '\n') {\n          sVar11 = sVar11 - 1;\n        }\n        sVar12 = 0x7fffffff;\n        if (-1 < (int)sVar11) {\n          sVar12 = sVar11;\n        }\n      }\n      uVar7 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    /* WARNING: Subroutine does not return */\n      error(check_input_order == CHECK_ORDER_ENABLED,0,uVar7,pcVar3,uVar9,iVar4,sVar12,pcVar1);\n    }\n    prevline[1] = line;\n    seq->count = seq->count + 1;\n    _Var14 = true;\n  }\n  return _Var14;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "getseq(FILE *fp,seq *seq,int whichfile)" identifier (parameter_list "(FILE *fp,seq *seq,int whichfile)" ( (parameter_declaration "FILE *fp" type_identifier (pointer_declarator "*fp" * identifier)) , (parameter_declaration "seq *seq" type_identifier (pointer_declarator "*seq" * identifier)) , (parameter_declaration "int whichfile" primitive_type identifier) ))) (compound_statement "{\n  char *pcVar1;\n  line *plVar2;\n  char *pcVar3;\n  int iVar4;\n  linebuffer *plVar5;\n  int iVar6;\n  undefined4 uVar7;\n  line *line;\n  line **pplVar8;\n  uint uVar9;\n  int *piVar10;\n  size_t sVar11;\n  undefined4 extraout_EDX;\n  size_t sVar12;\n  uint uVar13;\n  _Bool _Var14;\n  bool bVar15;\n  \n  uVar13 = seq->count;\n  uVar9 = seq->alloc;\n  pplVar8 = seq->lines;\n  if (uVar13 == uVar9) {\n    if (pplVar8 == (line **)0x0) {\n      if (uVar9 == 0) {\n        sVar11 = 0x40;\n        uVar9 = 0x10;\n      }\n      else {\n        sVar11 = uVar9 << 2;\n        if (((int)sVar11 < 0) || (uVar9 >> 0x1e != 0)) goto LAB_000137ec;\n      }\n    }\n    else {\n      if (0x15555554 < uVar9) {\nLAB_000137ec:\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();\n      }\n      uVar9 = uVar9 + 1 + (uVar9 >> 1);\n      sVar11 = uVar9 * 4;\n    }\n    seq->alloc = uVar9;\n    pplVar8 = (line **)xrealloc(pplVar8,sVar11);\n    uVar13 = seq->count;\n    seq->lines = pplVar8;\n    if (uVar13 < seq->alloc) {\n      memset(pplVar8 + uVar13,0,(seq->alloc - uVar13) * 4);\n    }\n  }\n  plVar2 = spareline[1];\n  pplVar8 = pplVar8 + uVar13;\n  line = *pplVar8;\n  if (line == prevline[1]) {\n    *pplVar8 = spareline[1];\n    spareline[1] = line;\n    line = plVar2;\n  }\n  if (line == (line *)0x0) {\n    line = (line *)xcalloc(1,0x18);\n    *pplVar8 = line;\n  }\n  else {\n    line->nfields = 0;\n  }\n  plVar5 = readlinebuffer_delim(&line->buf,fp,eolchar);\n  if (plVar5 == (linebuffer *)0x0) {\n    if ((fp->_flags & 0x20) != 0) {\n      uVar7 = dcgettext(0,"read error",5,extraout_EDX);\n      piVar10 = __errno_location();\n                    /* WARNING: Subroutine does not return */\n      error(1,*piVar10,uVar7);\n    }\n    _Var14 = false;\n    if (line != (line *)0x0) {\n      free(line->fields);\n      line->fields = (field *)0x0;\n      free((line->buf).buffer);\n      (line->buf).buffer = (char *)0x0;\n      return false;\n    }\n  }\n  else {\n    bVar15 = 0xfffffffe < (uint)line_no[1];\n    line_no[1]._0_4_ = (uint)line_no[1] + 1;\n    line_no[1]._4_4_ = line_no[1]._4_4_ + (uint)bVar15;\n    xfields(line);\n    if ((((prevline[1] != (line *)0x0) && (check_input_order != CHECK_ORDER_DISABLED)) &&\n        ((check_input_order == CHECK_ORDER_ENABLED || (seen_unpairable != false)))) &&\n       ((issued_disorder_warning[1] == false &&\n        (iVar6 = keycmp((line *)prevline[1]->nfields,(line *)&prevline[1]->fields,line->nfields,\n                        (size_t)&line->fields,(line *)join_field_2,(line *)join_field_2),\n        iVar4 = line_no[1]._4_4_, uVar9 = (uint)line_no[1], pcVar3 = g_names[1], 0 < iVar6)))) {\n      sVar11 = (line->buf).length;\n      pcVar1 = (line->buf).buffer;\n      sVar12 = 0;\n      if (sVar11 != 0) {\n        if (pcVar1[sVar11 - 1] == '\n') {\n          sVar11 = sVar11 - 1;\n        }\n        sVar12 = 0x7fffffff;\n        if (-1 < (int)sVar11) {\n          sVar12 = sVar11;\n        }\n      }\n      uVar7 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    /* WARNING: Subroutine does not return */\n      error(check_input_order == CHECK_ORDER_ENABLED,0,uVar7,pcVar3,uVar9,iVar4,sVar12,pcVar1);\n    }\n    prevline[1] = line;\n    seq->count = seq->count + 1;\n    _Var14 = true;\n  }\n  return _Var14;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "line *plVar2;" type_identifier (pointer_declarator "*plVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "linebuffer *plVar5;" type_identifier (pointer_declarator "*plVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "line *line;" type_identifier (pointer_declarator "*line" * identifier) ;) (declaration "line **pplVar8;" type_identifier (pointer_declarator "**pplVar8" * (pointer_declarator "*pplVar8" * identifier)) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "size_t sVar11;" primitive_type identifier ;) (declaration "undefined4 extraout_EDX;" type_identifier identifier ;) (declaration "size_t sVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "_Bool _Var14;" type_identifier identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (expression_statement "uVar13 = seq->count;" (assignment_expression "uVar13 = seq->count" identifier = (field_expression "seq->count" identifier -> field_identifier)) ;) (expression_statement "uVar9 = seq->alloc;" (assignment_expression "uVar9 = seq->alloc" identifier = (field_expression "seq->alloc" identifier -> field_identifier)) ;) (expression_statement "pplVar8 = seq->lines;" (assignment_expression "pplVar8 = seq->lines" identifier = (field_expression "seq->lines" identifier -> field_identifier)) ;) (if_statement "if (uVar13 == uVar9) {\n    if (pplVar8 == (line **)0x0) {\n      if (uVar9 == 0) {\n        sVar11 = 0x40;\n        uVar9 = 0x10;\n      }\n      else {\n        sVar11 = uVar9 << 2;\n        if (((int)sVar11 < 0) || (uVar9 >> 0x1e != 0)) goto LAB_000137ec;\n      }\n    }\n    else {\n      if (0x15555554 < uVar9) {\nLAB_000137ec:\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();\n      }\n      uVar9 = uVar9 + 1 + (uVar9 >> 1);\n      sVar11 = uVar9 * 4;\n    }\n    seq->alloc = uVar9;\n    pplVar8 = (line **)xrealloc(pplVar8,sVar11);\n    uVar13 = seq->count;\n    seq->lines = pplVar8;\n    if (uVar13 < seq->alloc) {\n      memset(pplVar8 + uVar13,0,(seq->alloc - uVar13) * 4);\n    }\n  }" if (parenthesized_expression "(uVar13 == uVar9)" ( (binary_expression "uVar13 == uVar9" identifier == identifier) )) (compound_statement "{\n    if (pplVar8 == (line **)0x0) {\n      if (uVar9 == 0) {\n        sVar11 = 0x40;\n        uVar9 = 0x10;\n      }\n      else {\n        sVar11 = uVar9 << 2;\n        if (((int)sVar11 < 0) || (uVar9 >> 0x1e != 0)) goto LAB_000137ec;\n      }\n    }\n    else {\n      if (0x15555554 < uVar9) {\nLAB_000137ec:\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();\n      }\n      uVar9 = uVar9 + 1 + (uVar9 >> 1);\n      sVar11 = uVar9 * 4;\n    }\n    seq->alloc = uVar9;\n    pplVar8 = (line **)xrealloc(pplVar8,sVar11);\n    uVar13 = seq->count;\n    seq->lines = pplVar8;\n    if (uVar13 < seq->alloc) {\n      memset(pplVar8 + uVar13,0,(seq->alloc - uVar13) * 4);\n    }\n  }" { (if_statement "if (pplVar8 == (line **)0x0) {\n      if (uVar9 == 0) {\n        sVar11 = 0x40;\n        uVar9 = 0x10;\n      }\n      else {\n        sVar11 = uVar9 << 2;\n        if (((int)sVar11 < 0) || (uVar9 >> 0x1e != 0)) goto LAB_000137ec;\n      }\n    }\n    else {\n      if (0x15555554 < uVar9) {\nLAB_000137ec:\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();\n      }\n      uVar9 = uVar9 + 1 + (uVar9 >> 1);\n      sVar11 = uVar9 * 4;\n    }" if (parenthesized_expression "(pplVar8 == (line **)0x0)" ( (binary_expression "pplVar8 == (line **)0x0" identifier == (cast_expression "(line **)0x0" ( (type_descriptor "line **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n      if (uVar9 == 0) {\n        sVar11 = 0x40;\n        uVar9 = 0x10;\n      }\n      else {\n        sVar11 = uVar9 << 2;\n        if (((int)sVar11 < 0) || (uVar9 >> 0x1e != 0)) goto LAB_000137ec;\n      }\n    }" { (if_statement "if (uVar9 == 0) {\n        sVar11 = 0x40;\n        uVar9 = 0x10;\n      }\n      else {\n        sVar11 = uVar9 << 2;\n        if (((int)sVar11 < 0) || (uVar9 >> 0x1e != 0)) goto LAB_000137ec;\n      }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        sVar11 = 0x40;\n        uVar9 = 0x10;\n      }" { (expression_statement "sVar11 = 0x40;" (assignment_expression "sVar11 = 0x40" identifier = number_literal) ;) (expression_statement "uVar9 = 0x10;" (assignment_expression "uVar9 = 0x10" identifier = number_literal) ;) }) (else_clause "else {\n        sVar11 = uVar9 << 2;\n        if (((int)sVar11 < 0) || (uVar9 >> 0x1e != 0)) goto LAB_000137ec;\n      }" else (compound_statement "{\n        sVar11 = uVar9 << 2;\n        if (((int)sVar11 < 0) || (uVar9 >> 0x1e != 0)) goto LAB_000137ec;\n      }" { (expression_statement "sVar11 = uVar9 << 2;" (assignment_expression "sVar11 = uVar9 << 2" identifier = (binary_expression "uVar9 << 2" identifier << number_literal)) ;) (if_statement "if (((int)sVar11 < 0) || (uVar9 >> 0x1e != 0)) goto LAB_000137ec;" if (parenthesized_expression "(((int)sVar11 < 0) || (uVar9 >> 0x1e != 0))" ( (binary_expression "((int)sVar11 < 0) || (uVar9 >> 0x1e != 0)" (parenthesized_expression "((int)sVar11 < 0)" ( (binary_expression "(int)sVar11 < 0" (cast_expression "(int)sVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "(uVar9 >> 0x1e != 0)" ( (binary_expression "uVar9 >> 0x1e != 0" (binary_expression "uVar9 >> 0x1e" identifier >> number_literal) != number_literal) ))) )) (goto_statement "goto LAB_000137ec;" goto statement_identifier ;)) }))) }) (else_clause "else {\n      if (0x15555554 < uVar9) {\nLAB_000137ec:\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();\n      }\n      uVar9 = uVar9 + 1 + (uVar9 >> 1);\n      sVar11 = uVar9 * 4;\n    }" else (compound_statement "{\n      if (0x15555554 < uVar9) {\nLAB_000137ec:\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();\n      }\n      uVar9 = uVar9 + 1 + (uVar9 >> 1);\n      sVar11 = uVar9 * 4;\n    }" { (if_statement "if (0x15555554 < uVar9) {\nLAB_000137ec:\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();\n      }" if (parenthesized_expression "(0x15555554 < uVar9)" ( (binary_expression "0x15555554 < uVar9" number_literal < identifier) )) (compound_statement "{\nLAB_000137ec:\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();\n      }" { (labeled_statement "LAB_000137ec:\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();" statement_identifier : comment (expression_statement "xalloc_die();" (call_expression "xalloc_die()" identifier (argument_list "()" ( ))) ;)) })) (expression_statement "uVar9 = uVar9 + 1 + (uVar9 >> 1);" (assignment_expression "uVar9 = uVar9 + 1 + (uVar9 >> 1)" identifier = (binary_expression "uVar9 + 1 + (uVar9 >> 1)" (binary_expression "uVar9 + 1" identifier + number_literal) + (parenthesized_expression "(uVar9 >> 1)" ( (binary_expression "uVar9 >> 1" identifier >> number_literal) )))) ;) (expression_statement "sVar11 = uVar9 * 4;" (assignment_expression "sVar11 = uVar9 * 4" identifier = (binary_expression "uVar9 * 4" identifier * number_literal)) ;) }))) (expression_statement "seq->alloc = uVar9;" (assignment_expression "seq->alloc = uVar9" (field_expression "seq->alloc" identifier -> field_identifier) = identifier) ;) (expression_statement "pplVar8 = (line **)xrealloc(pplVar8,sVar11);" (assignment_expression "pplVar8 = (line **)xrealloc(pplVar8,sVar11)" identifier = (cast_expression "(line **)xrealloc(pplVar8,sVar11)" ( (type_descriptor "line **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "xrealloc(pplVar8,sVar11)" identifier (argument_list "(pplVar8,sVar11)" ( identifier , identifier ))))) ;) (expression_statement "uVar13 = seq->count;" (assignment_expression "uVar13 = seq->count" identifier = (field_expression "seq->count" identifier -> field_identifier)) ;) (expression_statement "seq->lines = pplVar8;" (assignment_expression "seq->lines = pplVar8" (field_expression "seq->lines" identifier -> field_identifier) = identifier) ;) (if_statement "if (uVar13 < seq->alloc) {\n      memset(pplVar8 + uVar13,0,(seq->alloc - uVar13) * 4);\n    }" if (parenthesized_expression "(uVar13 < seq->alloc)" ( (binary_expression "uVar13 < seq->alloc" identifier < (field_expression "seq->alloc" identifier -> field_identifier)) )) (compound_statement "{\n      memset(pplVar8 + uVar13,0,(seq->alloc - uVar13) * 4);\n    }" { (expression_statement "memset(pplVar8 + uVar13,0,(seq->alloc - uVar13) * 4);" (call_expression "memset(pplVar8 + uVar13,0,(seq->alloc - uVar13) * 4)" identifier (argument_list "(pplVar8 + uVar13,0,(seq->alloc - uVar13) * 4)" ( (binary_expression "pplVar8 + uVar13" identifier + identifier) , number_literal , (binary_expression "(seq->alloc - uVar13) * 4" (parenthesized_expression "(seq->alloc - uVar13)" ( (binary_expression "seq->alloc - uVar13" (field_expression "seq->alloc" identifier -> field_identifier) - identifier) )) * number_literal) ))) ;) })) })) (expression_statement "plVar2 = spareline[1];" (assignment_expression "plVar2 = spareline[1]" identifier = (subscript_expression "spareline[1]" identifier [ number_literal ])) ;) (expression_statement "pplVar8 = pplVar8 + uVar13;" (assignment_expression "pplVar8 = pplVar8 + uVar13" identifier = (binary_expression "pplVar8 + uVar13" identifier + identifier)) ;) (expression_statement "line = *pplVar8;" (assignment_expression "line = *pplVar8" identifier = (pointer_expression "*pplVar8" * identifier)) ;) (if_statement "if (line == prevline[1]) {\n    *pplVar8 = spareline[1];\n    spareline[1] = line;\n    line = plVar2;\n  }" if (parenthesized_expression "(line == prevline[1])" ( (binary_expression "line == prevline[1]" identifier == (subscript_expression "prevline[1]" identifier [ number_literal ])) )) (compound_statement "{\n    *pplVar8 = spareline[1];\n    spareline[1] = line;\n    line = plVar2;\n  }" { (expression_statement "*pplVar8 = spareline[1];" (assignment_expression "*pplVar8 = spareline[1]" (pointer_expression "*pplVar8" * identifier) = (subscript_expression "spareline[1]" identifier [ number_literal ])) ;) (expression_statement "spareline[1] = line;" (assignment_expression "spareline[1] = line" (subscript_expression "spareline[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "line = plVar2;" (assignment_expression "line = plVar2" identifier = identifier) ;) })) (if_statement "if (line == (line *)0x0) {\n    line = (line *)xcalloc(1,0x18);\n    *pplVar8 = line;\n  }\n  else {\n    line->nfields = 0;\n  }" if (parenthesized_expression "(line == (line *)0x0)" ( (binary_expression "line == (line *)0x0" identifier == (cast_expression "(line *)0x0" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    line = (line *)xcalloc(1,0x18);\n    *pplVar8 = line;\n  }" { (expression_statement "line = (line *)xcalloc(1,0x18);" (assignment_expression "line = (line *)xcalloc(1,0x18)" identifier = (cast_expression "(line *)xcalloc(1,0x18)" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xcalloc(1,0x18)" identifier (argument_list "(1,0x18)" ( number_literal , number_literal ))))) ;) (expression_statement "*pplVar8 = line;" (assignment_expression "*pplVar8 = line" (pointer_expression "*pplVar8" * identifier) = identifier) ;) }) (else_clause "else {\n    line->nfields = 0;\n  }" else (compound_statement "{\n    line->nfields = 0;\n  }" { (expression_statement "line->nfields = 0;" (assignment_expression "line->nfields = 0" (field_expression "line->nfields" identifier -> field_identifier) = number_literal) ;) }))) (expression_statement "plVar5 = readlinebuffer_delim(&line->buf,fp,eolchar);" (assignment_expression "plVar5 = readlinebuffer_delim(&line->buf,fp,eolchar)" identifier = (call_expression "readlinebuffer_delim(&line->buf,fp,eolchar)" identifier (argument_list "(&line->buf,fp,eolchar)" ( (pointer_expression "&line->buf" & (field_expression "line->buf" identifier -> field_identifier)) , identifier , identifier )))) ;) (if_statement "if (plVar5 == (linebuffer *)0x0) {\n    if ((fp->_flags & 0x20) != 0) {\n      uVar7 = dcgettext(0,"read error",5,extraout_EDX);\n      piVar10 = __errno_location();\n                    /* WARNING: Subroutine does not return */\n      error(1,*piVar10,uVar7);\n    }\n    _Var14 = false;\n    if (line != (line *)0x0) {\n      free(line->fields);\n      line->fields = (field *)0x0;\n      free((line->buf).buffer);\n      (line->buf).buffer = (char *)0x0;\n      return false;\n    }\n  }\n  else {\n    bVar15 = 0xfffffffe < (uint)line_no[1];\n    line_no[1]._0_4_ = (uint)line_no[1] + 1;\n    line_no[1]._4_4_ = line_no[1]._4_4_ + (uint)bVar15;\n    xfields(line);\n    if ((((prevline[1] != (line *)0x0) && (check_input_order != CHECK_ORDER_DISABLED)) &&\n        ((check_input_order == CHECK_ORDER_ENABLED || (seen_unpairable != false)))) &&\n       ((issued_disorder_warning[1] == false &&\n        (iVar6 = keycmp((line *)prevline[1]->nfields,(line *)&prevline[1]->fields,line->nfields,\n                        (size_t)&line->fields,(line *)join_field_2,(line *)join_field_2),\n        iVar4 = line_no[1]._4_4_, uVar9 = (uint)line_no[1], pcVar3 = g_names[1], 0 < iVar6)))) {\n      sVar11 = (line->buf).length;\n      pcVar1 = (line->buf).buffer;\n      sVar12 = 0;\n      if (sVar11 != 0) {\n        if (pcVar1[sVar11 - 1] == '\n') {\n          sVar11 = sVar11 - 1;\n        }\n        sVar12 = 0x7fffffff;\n        if (-1 < (int)sVar11) {\n          sVar12 = sVar11;\n        }\n      }\n      uVar7 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    /* WARNING: Subroutine does not return */\n      error(check_input_order == CHECK_ORDER_ENABLED,0,uVar7,pcVar3,uVar9,iVar4,sVar12,pcVar1);\n    }\n    prevline[1] = line;\n    seq->count = seq->count + 1;\n    _Var14 = true;\n  }" if (parenthesized_expression "(plVar5 == (linebuffer *)0x0)" ( (binary_expression "plVar5 == (linebuffer *)0x0" identifier == (cast_expression "(linebuffer *)0x0" ( (type_descriptor "linebuffer *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if ((fp->_flags & 0x20) != 0) {\n      uVar7 = dcgettext(0,"read error",5,extraout_EDX);\n      piVar10 = __errno_location();\n                    /* WARNING: Subroutine does not return */\n      error(1,*piVar10,uVar7);\n    }\n    _Var14 = false;\n    if (line != (line *)0x0) {\n      free(line->fields);\n      line->fields = (field *)0x0;\n      free((line->buf).buffer);\n      (line->buf).buffer = (char *)0x0;\n      return false;\n    }\n  }" { (if_statement "if ((fp->_flags & 0x20) != 0) {\n      uVar7 = dcgettext(0,"read error",5,extraout_EDX);\n      piVar10 = __errno_location();\n                    /* WARNING: Subroutine does not return */\n      error(1,*piVar10,uVar7);\n    }" if (parenthesized_expression "((fp->_flags & 0x20) != 0)" ( (binary_expression "(fp->_flags & 0x20) != 0" (parenthesized_expression "(fp->_flags & 0x20)" ( (binary_expression "fp->_flags & 0x20" (field_expression "fp->_flags" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar7 = dcgettext(0,"read error",5,extraout_EDX);\n      piVar10 = __errno_location();\n                    /* WARNING: Subroutine does not return */\n      error(1,*piVar10,uVar7);\n    }" { (expression_statement "uVar7 = dcgettext(0,"read error",5,extraout_EDX);" (assignment_expression "uVar7 = dcgettext(0,"read error",5,extraout_EDX)" identifier = (call_expression "dcgettext(0,"read error",5,extraout_EDX)" identifier (argument_list "(0,"read error",5,extraout_EDX)" ( number_literal , (string_literal ""read error"" " string_content ") , number_literal , identifier )))) ;) (expression_statement "piVar10 = __errno_location();" (assignment_expression "piVar10 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) comment (expression_statement "error(1,*piVar10,uVar7);" (call_expression "error(1,*piVar10,uVar7)" identifier (argument_list "(1,*piVar10,uVar7)" ( number_literal , (pointer_expression "*piVar10" * identifier) , identifier ))) ;) })) (expression_statement "_Var14 = false;" (assignment_expression "_Var14 = false" identifier = false) ;) (if_statement "if (line != (line *)0x0) {\n      free(line->fields);\n      line->fields = (field *)0x0;\n      free((line->buf).buffer);\n      (line->buf).buffer = (char *)0x0;\n      return false;\n    }" if (parenthesized_expression "(line != (line *)0x0)" ( (binary_expression "line != (line *)0x0" identifier != (cast_expression "(line *)0x0" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(line->fields);\n      line->fields = (field *)0x0;\n      free((line->buf).buffer);\n      (line->buf).buffer = (char *)0x0;\n      return false;\n    }" { (expression_statement "free(line->fields);" (call_expression "free(line->fields)" identifier (argument_list "(line->fields)" ( (field_expression "line->fields" identifier -> field_identifier) ))) ;) (expression_statement "line->fields = (field *)0x0;" (assignment_expression "line->fields = (field *)0x0" (field_expression "line->fields" identifier -> field_identifier) = (cast_expression "(field *)0x0" ( (type_descriptor "field *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "free((line->buf).buffer);" (call_expression "free((line->buf).buffer)" identifier (argument_list "((line->buf).buffer)" ( (field_expression "(line->buf).buffer" (parenthesized_expression "(line->buf)" ( (field_expression "line->buf" identifier -> field_identifier) )) . field_identifier) ))) ;) (expression_statement "(line->buf).buffer = (char *)0x0;" (assignment_expression "(line->buf).buffer = (char *)0x0" (field_expression "(line->buf).buffer" (parenthesized_expression "(line->buf)" ( (field_expression "line->buf" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (return_statement "return false;" return false ;) })) }) (else_clause "else {\n    bVar15 = 0xfffffffe < (uint)line_no[1];\n    line_no[1]._0_4_ = (uint)line_no[1] + 1;\n    line_no[1]._4_4_ = line_no[1]._4_4_ + (uint)bVar15;\n    xfields(line);\n    if ((((prevline[1] != (line *)0x0) && (check_input_order != CHECK_ORDER_DISABLED)) &&\n        ((check_input_order == CHECK_ORDER_ENABLED || (seen_unpairable != false)))) &&\n       ((issued_disorder_warning[1] == false &&\n        (iVar6 = keycmp((line *)prevline[1]->nfields,(line *)&prevline[1]->fields,line->nfields,\n                        (size_t)&line->fields,(line *)join_field_2,(line *)join_field_2),\n        iVar4 = line_no[1]._4_4_, uVar9 = (uint)line_no[1], pcVar3 = g_names[1], 0 < iVar6)))) {\n      sVar11 = (line->buf).length;\n      pcVar1 = (line->buf).buffer;\n      sVar12 = 0;\n      if (sVar11 != 0) {\n        if (pcVar1[sVar11 - 1] == '\n') {\n          sVar11 = sVar11 - 1;\n        }\n        sVar12 = 0x7fffffff;\n        if (-1 < (int)sVar11) {\n          sVar12 = sVar11;\n        }\n      }\n      uVar7 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    /* WARNING: Subroutine does not return */\n      error(check_input_order == CHECK_ORDER_ENABLED,0,uVar7,pcVar3,uVar9,iVar4,sVar12,pcVar1);\n    }\n    prevline[1] = line;\n    seq->count = seq->count + 1;\n    _Var14 = true;\n  }" else (compound_statement "{\n    bVar15 = 0xfffffffe < (uint)line_no[1];\n    line_no[1]._0_4_ = (uint)line_no[1] + 1;\n    line_no[1]._4_4_ = line_no[1]._4_4_ + (uint)bVar15;\n    xfields(line);\n    if ((((prevline[1] != (line *)0x0) && (check_input_order != CHECK_ORDER_DISABLED)) &&\n        ((check_input_order == CHECK_ORDER_ENABLED || (seen_unpairable != false)))) &&\n       ((issued_disorder_warning[1] == false &&\n        (iVar6 = keycmp((line *)prevline[1]->nfields,(line *)&prevline[1]->fields,line->nfields,\n                        (size_t)&line->fields,(line *)join_field_2,(line *)join_field_2),\n        iVar4 = line_no[1]._4_4_, uVar9 = (uint)line_no[1], pcVar3 = g_names[1], 0 < iVar6)))) {\n      sVar11 = (line->buf).length;\n      pcVar1 = (line->buf).buffer;\n      sVar12 = 0;\n      if (sVar11 != 0) {\n        if (pcVar1[sVar11 - 1] == '\n') {\n          sVar11 = sVar11 - 1;\n        }\n        sVar12 = 0x7fffffff;\n        if (-1 < (int)sVar11) {\n          sVar12 = sVar11;\n        }\n      }\n      uVar7 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    /* WARNING: Subroutine does not return */\n      error(check_input_order == CHECK_ORDER_ENABLED,0,uVar7,pcVar3,uVar9,iVar4,sVar12,pcVar1);\n    }\n    prevline[1] = line;\n    seq->count = seq->count + 1;\n    _Var14 = true;\n  }" { (expression_statement "bVar15 = 0xfffffffe < (uint)line_no[1];" (assignment_expression "bVar15 = 0xfffffffe < (uint)line_no[1]" identifier = (binary_expression "0xfffffffe < (uint)line_no[1]" number_literal < (cast_expression "(uint)line_no[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "line_no[1]" identifier [ number_literal ])))) ;) (expression_statement "line_no[1]._0_4_ = (uint)line_no[1] + 1;" (assignment_expression "line_no[1]._0_4_ = (uint)line_no[1] + 1" (field_expression "line_no[1]._0_4_" (subscript_expression "line_no[1]" identifier [ number_literal ]) . field_identifier) = (binary_expression "(uint)line_no[1] + 1" (cast_expression "(uint)line_no[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "line_no[1]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "line_no[1]._4_4_ = line_no[1]._4_4_ + (uint)bVar15;" (assignment_expression "line_no[1]._4_4_ = line_no[1]._4_4_ + (uint)bVar15" (field_expression "line_no[1]._4_4_" (subscript_expression "line_no[1]" identifier [ number_literal ]) . field_identifier) = (binary_expression "line_no[1]._4_4_ + (uint)bVar15" (field_expression "line_no[1]._4_4_" (subscript_expression "line_no[1]" identifier [ number_literal ]) . field_identifier) + (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "xfields(line);" (call_expression "xfields(line)" identifier (argument_list "(line)" ( identifier ))) ;) (if_statement "if ((((prevline[1] != (line *)0x0) && (check_input_order != CHECK_ORDER_DISABLED)) &&\n        ((check_input_order == CHECK_ORDER_ENABLED || (seen_unpairable != false)))) &&\n       ((issued_disorder_warning[1] == false &&\n        (iVar6 = keycmp((line *)prevline[1]->nfields,(line *)&prevline[1]->fields,line->nfields,\n                        (size_t)&line->fields,(line *)join_field_2,(line *)join_field_2),\n        iVar4 = line_no[1]._4_4_, uVar9 = (uint)line_no[1], pcVar3 = g_names[1], 0 < iVar6)))) {\n      sVar11 = (line->buf).length;\n      pcVar1 = (line->buf).buffer;\n      sVar12 = 0;\n      if (sVar11 != 0) {\n        if (pcVar1[sVar11 - 1] == '\n') {\n          sVar11 = sVar11 - 1;\n        }\n        sVar12 = 0x7fffffff;\n        if (-1 < (int)sVar11) {\n          sVar12 = sVar11;\n        }\n      }\n      uVar7 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    /* WARNING: Subroutine does not return */\n      error(check_input_order == CHECK_ORDER_ENABLED,0,uVar7,pcVar3,uVar9,iVar4,sVar12,pcVar1);\n    }" if (parenthesized_expression "((((prevline[1] != (line *)0x0) && (check_input_order != CHECK_ORDER_DISABLED)) &&\n        ((check_input_order == CHECK_ORDER_ENABLED || (seen_unpairable != false)))) &&\n       ((issued_disorder_warning[1] == false &&\n        (iVar6 = keycmp((line *)prevline[1]->nfields,(line *)&prevline[1]->fields,line->nfields,\n                        (size_t)&line->fields,(line *)join_field_2,(line *)join_field_2),\n        iVar4 = line_no[1]._4_4_, uVar9 = (uint)line_no[1], pcVar3 = g_names[1], 0 < iVar6))))" ( (binary_expression "(((prevline[1] != (line *)0x0) && (check_input_order != CHECK_ORDER_DISABLED)) &&\n        ((check_input_order == CHECK_ORDER_ENABLED || (seen_unpairable != false)))) &&\n       ((issued_disorder_warning[1] == false &&\n        (iVar6 = keycmp((line *)prevline[1]->nfields,(line *)&prevline[1]->fields,line->nfields,\n                        (size_t)&line->fields,(line *)join_field_2,(line *)join_field_2),\n        iVar4 = line_no[1]._4_4_, uVar9 = (uint)line_no[1], pcVar3 = g_names[1], 0 < iVar6)))" (parenthesized_expression "(((prevline[1] != (line *)0x0) && (check_input_order != CHECK_ORDER_DISABLED)) &&\n        ((check_input_order == CHECK_ORDER_ENABLED || (seen_unpairable != false))))" ( (binary_expression "((prevline[1] != (line *)0x0) && (check_input_order != CHECK_ORDER_DISABLED)) &&\n        ((check_input_order == CHECK_ORDER_ENABLED || (seen_unpairable != false)))" (parenthesized_expression "((prevline[1] != (line *)0x0) && (check_input_order != CHECK_ORDER_DISABLED))" ( (binary_expression "(prevline[1] != (line *)0x0) && (check_input_order != CHECK_ORDER_DISABLED)" (parenthesized_expression "(prevline[1] != (line *)0x0)" ( (binary_expression "prevline[1] != (line *)0x0" (subscript_expression "prevline[1]" identifier [ number_literal ]) != (cast_expression "(line *)0x0" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(check_input_order != CHECK_ORDER_DISABLED)" ( (binary_expression "check_input_order != CHECK_ORDER_DISABLED" identifier != identifier) ))) )) && (parenthesized_expression "((check_input_order == CHECK_ORDER_ENABLED || (seen_unpairable != false)))" ( (parenthesized_expression "(check_input_order == CHECK_ORDER_ENABLED || (seen_unpairable != false))" ( (binary_expression "check_input_order == CHECK_ORDER_ENABLED || (seen_unpairable != false)" (binary_expression "check_input_order == CHECK_ORDER_ENABLED" identifier == identifier) || (parenthesized_expression "(seen_unpairable != false)" ( (binary_expression "seen_unpairable != false" identifier != false) ))) )) ))) )) && (parenthesized_expression "((issued_disorder_warning[1] == false &&\n        (iVar6 = keycmp((line *)prevline[1]->nfields,(line *)&prevline[1]->fields,line->nfields,\n                        (size_t)&line->fields,(line *)join_field_2,(line *)join_field_2),\n        iVar4 = line_no[1]._4_4_, uVar9 = (uint)line_no[1], pcVar3 = g_names[1], 0 < iVar6)))" ( (parenthesized_expression "(issued_disorder_warning[1] == false &&\n        (iVar6 = keycmp((line *)prevline[1]->nfields,(line *)&prevline[1]->fields,line->nfields,\n                        (size_t)&line->fields,(line *)join_field_2,(line *)join_field_2),\n        iVar4 = line_no[1]._4_4_, uVar9 = (uint)line_no[1], pcVar3 = g_names[1], 0 < iVar6))" ( (binary_expression "issued_disorder_warning[1] == false &&\n        (iVar6 = keycmp((line *)prevline[1]->nfields,(line *)&prevline[1]->fields,line->nfields,\n                        (size_t)&line->fields,(line *)join_field_2,(line *)join_field_2),\n        iVar4 = line_no[1]._4_4_, uVar9 = (uint)line_no[1], pcVar3 = g_names[1], 0 < iVar6)" (binary_expression "issued_disorder_warning[1] == false" (subscript_expression "issued_disorder_warning[1]" identifier [ number_literal ]) == false) && (parenthesized_expression "(iVar6 = keycmp((line *)prevline[1]->nfields,(line *)&prevline[1]->fields,line->nfields,\n                        (size_t)&line->fields,(line *)join_field_2,(line *)join_field_2),\n        iVar4 = line_no[1]._4_4_, uVar9 = (uint)line_no[1], pcVar3 = g_names[1], 0 < iVar6)" ( (comma_expression "iVar6 = keycmp((line *)prevline[1]->nfields,(line *)&prevline[1]->fields,line->nfields,\n                        (size_t)&line->fields,(line *)join_field_2,(line *)join_field_2),\n        iVar4 = line_no[1]._4_4_, uVar9 = (uint)line_no[1], pcVar3 = g_names[1], 0 < iVar6" (assignment_expression "iVar6 = keycmp((line *)prevline[1]->nfields,(line *)&prevline[1]->fields,line->nfields,\n                        (size_t)&line->fields,(line *)join_field_2,(line *)join_field_2)" identifier = (call_expression "keycmp((line *)prevline[1]->nfields,(line *)&prevline[1]->fields,line->nfields,\n                        (size_t)&line->fields,(line *)join_field_2,(line *)join_field_2)" identifier (argument_list "((line *)prevline[1]->nfields,(line *)&prevline[1]->fields,line->nfields,\n                        (size_t)&line->fields,(line *)join_field_2,(line *)join_field_2)" ( (cast_expression "(line *)prevline[1]->nfields" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "prevline[1]->nfields" (subscript_expression "prevline[1]" identifier [ number_literal ]) -> field_identifier)) , (cast_expression "(line *)&prevline[1]->fields" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prevline[1]->fields" & (field_expression "prevline[1]->fields" (subscript_expression "prevline[1]" identifier [ number_literal ]) -> field_identifier))) , (field_expression "line->nfields" identifier -> field_identifier) , (cast_expression "(size_t)&line->fields" ( (type_descriptor "size_t" primitive_type) ) (pointer_expression "&line->fields" & (field_expression "line->fields" identifier -> field_identifier))) , (cast_expression "(line *)join_field_2" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(line *)join_field_2" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (comma_expression "iVar4 = line_no[1]._4_4_, uVar9 = (uint)line_no[1], pcVar3 = g_names[1], 0 < iVar6" (assignment_expression "iVar4 = line_no[1]._4_4_" identifier = (field_expression "line_no[1]._4_4_" (subscript_expression "line_no[1]" identifier [ number_literal ]) . field_identifier)) , (comma_expression "uVar9 = (uint)line_no[1], pcVar3 = g_names[1], 0 < iVar6" (assignment_expression "uVar9 = (uint)line_no[1]" identifier = (cast_expression "(uint)line_no[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "line_no[1]" identifier [ number_literal ]))) , (comma_expression "pcVar3 = g_names[1], 0 < iVar6" (assignment_expression "pcVar3 = g_names[1]" identifier = (subscript_expression "g_names[1]" identifier [ number_literal ])) , (binary_expression "0 < iVar6" number_literal < identifier))))) ))) )) ))) )) (compound_statement "{\n      sVar11 = (line->buf).length;\n      pcVar1 = (line->buf).buffer;\n      sVar12 = 0;\n      if (sVar11 != 0) {\n        if (pcVar1[sVar11 - 1] == '\n') {\n          sVar11 = sVar11 - 1;\n        }\n        sVar12 = 0x7fffffff;\n        if (-1 < (int)sVar11) {\n          sVar12 = sVar11;\n        }\n      }\n      uVar7 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    /* WARNING: Subroutine does not return */\n      error(check_input_order == CHECK_ORDER_ENABLED,0,uVar7,pcVar3,uVar9,iVar4,sVar12,pcVar1);\n    }" { (expression_statement "sVar11 = (line->buf).length;" (assignment_expression "sVar11 = (line->buf).length" identifier = (field_expression "(line->buf).length" (parenthesized_expression "(line->buf)" ( (field_expression "line->buf" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pcVar1 = (line->buf).buffer;" (assignment_expression "pcVar1 = (line->buf).buffer" identifier = (field_expression "(line->buf).buffer" (parenthesized_expression "(line->buf)" ( (field_expression "line->buf" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "sVar12 = 0;" (assignment_expression "sVar12 = 0" identifier = number_literal) ;) (if_statement "if (sVar11 != 0) {\n        if (pcVar1[sVar11 - 1] == '\n') {\n          sVar11 = sVar11 - 1;\n        }\n        sVar12 = 0x7fffffff;\n        if (-1 < (int)sVar11) {\n          sVar12 = sVar11;\n        }\n      }" if (parenthesized_expression "(sVar11 != 0)" ( (binary_expression "sVar11 != 0" identifier != number_literal) )) (compound_statement "{\n        if (pcVar1[sVar11 - 1] == '\n') {\n          sVar11 = sVar11 - 1;\n        }\n        sVar12 = 0x7fffffff;\n        if (-1 < (int)sVar11) {\n          sVar12 = sVar11;\n        }\n      }" { (if_statement "if (pcVar1[sVar11 - 1] == '\n') {\n          sVar11 = sVar11 - 1;\n        }" if (parenthesized_expression "(pcVar1[sVar11 - 1] == '\n')" ( (binary_expression "pcVar1[sVar11 - 1] == '\n'" (subscript_expression "pcVar1[sVar11 - 1]" identifier [ (binary_expression "sVar11 - 1" identifier - number_literal) ]) == (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n          sVar11 = sVar11 - 1;\n        }" { (expression_statement "sVar11 = sVar11 - 1;" (assignment_expression "sVar11 = sVar11 - 1" identifier = (binary_expression "sVar11 - 1" identifier - number_literal)) ;) })) (expression_statement "sVar12 = 0x7fffffff;" (assignment_expression "sVar12 = 0x7fffffff" identifier = number_literal) ;) (if_statement "if (-1 < (int)sVar11) {\n          sVar12 = sVar11;\n        }" if (parenthesized_expression "(-1 < (int)sVar11)" ( (binary_expression "-1 < (int)sVar11" number_literal < (cast_expression "(int)sVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          sVar12 = sVar11;\n        }" { (expression_statement "sVar12 = sVar11;" (assignment_expression "sVar12 = sVar11" identifier = identifier) ;) })) })) (expression_statement "uVar7 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);" (assignment_expression "uVar7 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5)" identifier = (call_expression "dcgettext(0,"%s:%llu: is not sorted: %.*s",5)" identifier (argument_list "(0,"%s:%llu: is not sorted: %.*s",5)" ( number_literal , (string_literal ""%s:%llu: is not sorted: %.*s"" " string_content ") , number_literal )))) ;) comment (expression_statement "error(check_input_order == CHECK_ORDER_ENABLED,0,uVar7,pcVar3,uVar9,iVar4,sVar12,pcVar1);" (call_expression "error(check_input_order == CHECK_ORDER_ENABLED,0,uVar7,pcVar3,uVar9,iVar4,sVar12,pcVar1)" identifier (argument_list "(check_input_order == CHECK_ORDER_ENABLED,0,uVar7,pcVar3,uVar9,iVar4,sVar12,pcVar1)" ( (binary_expression "check_input_order == CHECK_ORDER_ENABLED" identifier == identifier) , number_literal , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "prevline[1] = line;" (assignment_expression "prevline[1] = line" (subscript_expression "prevline[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "seq->count = seq->count + 1;" (assignment_expression "seq->count = seq->count + 1" (field_expression "seq->count" identifier -> field_identifier) = (binary_expression "seq->count + 1" (field_expression "seq->count" identifier -> field_identifier) + number_literal)) ;) (expression_statement "_Var14 = true;" (assignment_expression "_Var14 = true" identifier = true) ;) }))) (return_statement "return _Var14;" return identifier ;) })))
(translation_unit "undefined4 __regparm3 FUN_00013570(byte *param_1,uint *param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  int *piVar7;\n  int iVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  bool bVar11;\n  undefined8 uVar12;\n  \n  uVar9 = *param_2;\n  uVar6 = param_2[1];\n  uVar5 = param_2[2];\n  if (uVar9 == uVar6) {\n    if (uVar5 == 0) {\n      if (uVar6 == 0) {\n        iVar4 = 0x40;\n        uVar6 = 0x10;\n      }\n      else {\n        iVar4 = uVar6 << 2;\n        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;\n      }\n    }\n    else {\n      if (0x15555554 < uVar6) {\nLAB_000137ec:\n                    \n        FUN_00017250();\n      }\n      uVar6 = uVar6 + 1 + (uVar6 >> 1);\n      iVar4 = uVar6 * 4;\n    }\n    param_2[1] = uVar6;\n    uVar5 = FUN_00016fe0(uVar5,iVar4);\n    uVar9 = *param_2;\n    param_2[2] = uVar5;\n    if (uVar9 < param_2[1]) {\n      memset((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4);\n    }\n  }\n  iVar1 = DAT_000201f0;\n  piVar7 = (int *)(uVar5 + uVar9 * 4);\n  iVar4 = *piVar7;\n  if (iVar4 == DAT_00020214) {\n    *piVar7 = DAT_000201f0;\n    DAT_000201f0 = iVar4;\n    iVar4 = iVar1;\n  }\n  if (iVar4 == 0) {\n    iVar4 = FUN_000171a0(1,0x18);\n    *piVar7 = iVar4;\n  }\n  else {\n    *(undefined4 *)(iVar4 + 0xc) = 0;\n  }\n  uVar12 = FUN_00014410(iVar4,param_1,(int)DAT_00020108);\n  if ((int)uVar12 == 0) {\n    if ((*param_1 & 0x20) != 0) {\n      uVar10 = dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20));\n      piVar7 = __errno_location();\n                    \n      error(1,*piVar7,uVar10);\n    }\n    uVar10 = 0;\n    if (iVar4 != 0) {\n      free(*(void **)(iVar4 + 0x14));\n      *(undefined4 *)(iVar4 + 0x14) = 0;\n      free(*(void **)(iVar4 + 8));\n      *(undefined4 *)(iVar4 + 8) = 0;\n      return 0;\n    }\n  }\n  else {\n    bVar11 = 0xfffffffe < DAT_00020208;\n    DAT_00020208 = DAT_00020208 + 1;\n    DAT_0002020c = DAT_0002020c + (uint)bVar11;\n    FUN_00012f70();\n    if ((((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))) &&\n       ((DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)))) {\n      iVar2 = *(int *)(iVar4 + 4);\n      iVar4 = *(int *)(iVar4 + 8);\n      iVar8 = 0;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }\n        iVar8 = 0x7fffffff;\n        if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }\n      }\n      uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    \n      error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4);\n    }\n    DAT_00020214 = iVar4;\n    *param_2 = *param_2 + 1;\n    uVar10 = 1;\n  }\n  return uVar10;\n}\n\n" (function_definition "undefined4 __regparm3 FUN_00013570(byte *param_1,uint *param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  int *piVar7;\n  int iVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  bool bVar11;\n  undefined8 uVar12;\n  \n  uVar9 = *param_2;\n  uVar6 = param_2[1];\n  uVar5 = param_2[2];\n  if (uVar9 == uVar6) {\n    if (uVar5 == 0) {\n      if (uVar6 == 0) {\n        iVar4 = 0x40;\n        uVar6 = 0x10;\n      }\n      else {\n        iVar4 = uVar6 << 2;\n        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;\n      }\n    }\n    else {\n      if (0x15555554 < uVar6) {\nLAB_000137ec:\n                    \n        FUN_00017250();\n      }\n      uVar6 = uVar6 + 1 + (uVar6 >> 1);\n      iVar4 = uVar6 * 4;\n    }\n    param_2[1] = uVar6;\n    uVar5 = FUN_00016fe0(uVar5,iVar4);\n    uVar9 = *param_2;\n    param_2[2] = uVar5;\n    if (uVar9 < param_2[1]) {\n      memset((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4);\n    }\n  }\n  iVar1 = DAT_000201f0;\n  piVar7 = (int *)(uVar5 + uVar9 * 4);\n  iVar4 = *piVar7;\n  if (iVar4 == DAT_00020214) {\n    *piVar7 = DAT_000201f0;\n    DAT_000201f0 = iVar4;\n    iVar4 = iVar1;\n  }\n  if (iVar4 == 0) {\n    iVar4 = FUN_000171a0(1,0x18);\n    *piVar7 = iVar4;\n  }\n  else {\n    *(undefined4 *)(iVar4 + 0xc) = 0;\n  }\n  uVar12 = FUN_00014410(iVar4,param_1,(int)DAT_00020108);\n  if ((int)uVar12 == 0) {\n    if ((*param_1 & 0x20) != 0) {\n      uVar10 = dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20));\n      piVar7 = __errno_location();\n                    \n      error(1,*piVar7,uVar10);\n    }\n    uVar10 = 0;\n    if (iVar4 != 0) {\n      free(*(void **)(iVar4 + 0x14));\n      *(undefined4 *)(iVar4 + 0x14) = 0;\n      free(*(void **)(iVar4 + 8));\n      *(undefined4 *)(iVar4 + 8) = 0;\n      return 0;\n    }\n  }\n  else {\n    bVar11 = 0xfffffffe < DAT_00020208;\n    DAT_00020208 = DAT_00020208 + 1;\n    DAT_0002020c = DAT_0002020c + (uint)bVar11;\n    FUN_00012f70();\n    if ((((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))) &&\n       ((DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)))) {\n      iVar2 = *(int *)(iVar4 + 4);\n      iVar4 = *(int *)(iVar4 + 8);\n      iVar8 = 0;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }\n        iVar8 = 0x7fffffff;\n        if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }\n      }\n      uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    \n      error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4);\n    }\n    DAT_00020214 = iVar4;\n    *param_2 = *param_2 + 1;\n    uVar10 = 1;\n  }\n  return uVar10;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00013570(byte *param_1,uint *param_2)" identifier (parameter_list "(byte *param_1,uint *param_2)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  int *piVar7;\n  int iVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  bool bVar11;\n  undefined8 uVar12;\n  \n  uVar9 = *param_2;\n  uVar6 = param_2[1];\n  uVar5 = param_2[2];\n  if (uVar9 == uVar6) {\n    if (uVar5 == 0) {\n      if (uVar6 == 0) {\n        iVar4 = 0x40;\n        uVar6 = 0x10;\n      }\n      else {\n        iVar4 = uVar6 << 2;\n        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;\n      }\n    }\n    else {\n      if (0x15555554 < uVar6) {\nLAB_000137ec:\n                    \n        FUN_00017250();\n      }\n      uVar6 = uVar6 + 1 + (uVar6 >> 1);\n      iVar4 = uVar6 * 4;\n    }\n    param_2[1] = uVar6;\n    uVar5 = FUN_00016fe0(uVar5,iVar4);\n    uVar9 = *param_2;\n    param_2[2] = uVar5;\n    if (uVar9 < param_2[1]) {\n      memset((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4);\n    }\n  }\n  iVar1 = DAT_000201f0;\n  piVar7 = (int *)(uVar5 + uVar9 * 4);\n  iVar4 = *piVar7;\n  if (iVar4 == DAT_00020214) {\n    *piVar7 = DAT_000201f0;\n    DAT_000201f0 = iVar4;\n    iVar4 = iVar1;\n  }\n  if (iVar4 == 0) {\n    iVar4 = FUN_000171a0(1,0x18);\n    *piVar7 = iVar4;\n  }\n  else {\n    *(undefined4 *)(iVar4 + 0xc) = 0;\n  }\n  uVar12 = FUN_00014410(iVar4,param_1,(int)DAT_00020108);\n  if ((int)uVar12 == 0) {\n    if ((*param_1 & 0x20) != 0) {\n      uVar10 = dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20));\n      piVar7 = __errno_location();\n                    \n      error(1,*piVar7,uVar10);\n    }\n    uVar10 = 0;\n    if (iVar4 != 0) {\n      free(*(void **)(iVar4 + 0x14));\n      *(undefined4 *)(iVar4 + 0x14) = 0;\n      free(*(void **)(iVar4 + 8));\n      *(undefined4 *)(iVar4 + 8) = 0;\n      return 0;\n    }\n  }\n  else {\n    bVar11 = 0xfffffffe < DAT_00020208;\n    DAT_00020208 = DAT_00020208 + 1;\n    DAT_0002020c = DAT_0002020c + (uint)bVar11;\n    FUN_00012f70();\n    if ((((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))) &&\n       ((DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)))) {\n      iVar2 = *(int *)(iVar4 + 4);\n      iVar4 = *(int *)(iVar4 + 8);\n      iVar8 = 0;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }\n        iVar8 = 0x7fffffff;\n        if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }\n      }\n      uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    \n      error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4);\n    }\n    DAT_00020214 = iVar4;\n    *param_2 = *param_2 + 1;\n    uVar10 = 1;\n  }\n  return uVar10;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (expression_statement "uVar9 = *param_2;" (assignment_expression "uVar9 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar6 = param_2[1];" (assignment_expression "uVar6 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = param_2[2];" (assignment_expression "uVar5 = param_2[2]" identifier = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (if_statement "if (uVar9 == uVar6) {\n    if (uVar5 == 0) {\n      if (uVar6 == 0) {\n        iVar4 = 0x40;\n        uVar6 = 0x10;\n      }\n      else {\n        iVar4 = uVar6 << 2;\n        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;\n      }\n    }\n    else {\n      if (0x15555554 < uVar6) {\nLAB_000137ec:\n                    \n        FUN_00017250();\n      }\n      uVar6 = uVar6 + 1 + (uVar6 >> 1);\n      iVar4 = uVar6 * 4;\n    }\n    param_2[1] = uVar6;\n    uVar5 = FUN_00016fe0(uVar5,iVar4);\n    uVar9 = *param_2;\n    param_2[2] = uVar5;\n    if (uVar9 < param_2[1]) {\n      memset((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4);\n    }\n  }" if (parenthesized_expression "(uVar9 == uVar6)" ( (binary_expression "uVar9 == uVar6" identifier == identifier) )) (compound_statement "{\n    if (uVar5 == 0) {\n      if (uVar6 == 0) {\n        iVar4 = 0x40;\n        uVar6 = 0x10;\n      }\n      else {\n        iVar4 = uVar6 << 2;\n        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;\n      }\n    }\n    else {\n      if (0x15555554 < uVar6) {\nLAB_000137ec:\n                    \n        FUN_00017250();\n      }\n      uVar6 = uVar6 + 1 + (uVar6 >> 1);\n      iVar4 = uVar6 * 4;\n    }\n    param_2[1] = uVar6;\n    uVar5 = FUN_00016fe0(uVar5,iVar4);\n    uVar9 = *param_2;\n    param_2[2] = uVar5;\n    if (uVar9 < param_2[1]) {\n      memset((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4);\n    }\n  }" { (if_statement "if (uVar5 == 0) {\n      if (uVar6 == 0) {\n        iVar4 = 0x40;\n        uVar6 = 0x10;\n      }\n      else {\n        iVar4 = uVar6 << 2;\n        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;\n      }\n    }\n    else {\n      if (0x15555554 < uVar6) {\nLAB_000137ec:\n                    \n        FUN_00017250();\n      }\n      uVar6 = uVar6 + 1 + (uVar6 >> 1);\n      iVar4 = uVar6 * 4;\n    }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      if (uVar6 == 0) {\n        iVar4 = 0x40;\n        uVar6 = 0x10;\n      }\n      else {\n        iVar4 = uVar6 << 2;\n        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;\n      }\n    }" { (if_statement "if (uVar6 == 0) {\n        iVar4 = 0x40;\n        uVar6 = 0x10;\n      }\n      else {\n        iVar4 = uVar6 << 2;\n        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;\n      }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar4 = 0x40;\n        uVar6 = 0x10;\n      }" { (expression_statement "iVar4 = 0x40;" (assignment_expression "iVar4 = 0x40" identifier = number_literal) ;) (expression_statement "uVar6 = 0x10;" (assignment_expression "uVar6 = 0x10" identifier = number_literal) ;) }) (else_clause "else {\n        iVar4 = uVar6 << 2;\n        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;\n      }" else (compound_statement "{\n        iVar4 = uVar6 << 2;\n        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;\n      }" { (expression_statement "iVar4 = uVar6 << 2;" (assignment_expression "iVar4 = uVar6 << 2" identifier = (binary_expression "uVar6 << 2" identifier << number_literal)) ;) (if_statement "if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;" if (parenthesized_expression "((iVar4 < 0) || (uVar6 >> 0x1e != 0))" ( (binary_expression "(iVar4 < 0) || (uVar6 >> 0x1e != 0)" (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) || (parenthesized_expression "(uVar6 >> 0x1e != 0)" ( (binary_expression "uVar6 >> 0x1e != 0" (binary_expression "uVar6 >> 0x1e" identifier >> number_literal) != number_literal) ))) )) (goto_statement "goto LAB_000137ec;" goto statement_identifier ;)) }))) }) (else_clause "else {\n      if (0x15555554 < uVar6) {\nLAB_000137ec:\n                    \n        FUN_00017250();\n      }\n      uVar6 = uVar6 + 1 + (uVar6 >> 1);\n      iVar4 = uVar6 * 4;\n    }" else (compound_statement "{\n      if (0x15555554 < uVar6) {\nLAB_000137ec:\n                    \n        FUN_00017250();\n      }\n      uVar6 = uVar6 + 1 + (uVar6 >> 1);\n      iVar4 = uVar6 * 4;\n    }" { (if_statement "if (0x15555554 < uVar6) {\nLAB_000137ec:\n                    \n        FUN_00017250();\n      }" if (parenthesized_expression "(0x15555554 < uVar6)" ( (binary_expression "0x15555554 < uVar6" number_literal < identifier) )) (compound_statement "{\nLAB_000137ec:\n                    \n        FUN_00017250();\n      }" { (labeled_statement "LAB_000137ec:\n                    \n        FUN_00017250();" statement_identifier : (expression_statement "FUN_00017250();" (call_expression "FUN_00017250()" identifier (argument_list "()" ( ))) ;)) })) (expression_statement "uVar6 = uVar6 + 1 + (uVar6 >> 1);" (assignment_expression "uVar6 = uVar6 + 1 + (uVar6 >> 1)" identifier = (binary_expression "uVar6 + 1 + (uVar6 >> 1)" (binary_expression "uVar6 + 1" identifier + number_literal) + (parenthesized_expression "(uVar6 >> 1)" ( (binary_expression "uVar6 >> 1" identifier >> number_literal) )))) ;) (expression_statement "iVar4 = uVar6 * 4;" (assignment_expression "iVar4 = uVar6 * 4" identifier = (binary_expression "uVar6 * 4" identifier * number_literal)) ;) }))) (expression_statement "param_2[1] = uVar6;" (assignment_expression "param_2[1] = uVar6" (subscript_expression "param_2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar5 = FUN_00016fe0(uVar5,iVar4);" (assignment_expression "uVar5 = FUN_00016fe0(uVar5,iVar4)" identifier = (call_expression "FUN_00016fe0(uVar5,iVar4)" identifier (argument_list "(uVar5,iVar4)" ( identifier , identifier )))) ;) (expression_statement "uVar9 = *param_2;" (assignment_expression "uVar9 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "param_2[2] = uVar5;" (assignment_expression "param_2[2] = uVar5" (subscript_expression "param_2[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar9 < param_2[1]) {\n      memset((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4);\n    }" if (parenthesized_expression "(uVar9 < param_2[1])" ( (binary_expression "uVar9 < param_2[1]" identifier < (subscript_expression "param_2[1]" identifier [ number_literal ])) )) (compound_statement "{\n      memset((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4);\n    }" { (expression_statement "memset((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4);" (call_expression "memset((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4)" identifier (argument_list "((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4)" ( (cast_expression "(void *)(uVar5 + uVar9 * 4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar5 + uVar9 * 4)" ( (binary_expression "uVar5 + uVar9 * 4" identifier + (binary_expression "uVar9 * 4" identifier * number_literal)) ))) , number_literal , (binary_expression "(param_2[1] - uVar9) * 4" (parenthesized_expression "(param_2[1] - uVar9)" ( (binary_expression "param_2[1] - uVar9" (subscript_expression "param_2[1]" identifier [ number_literal ]) - identifier) )) * number_literal) ))) ;) })) })) (expression_statement "iVar1 = DAT_000201f0;" (assignment_expression "iVar1 = DAT_000201f0" identifier = identifier) ;) (expression_statement "piVar7 = (int *)(uVar5 + uVar9 * 4);" (assignment_expression "piVar7 = (int *)(uVar5 + uVar9 * 4)" identifier = (cast_expression "(int *)(uVar5 + uVar9 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar5 + uVar9 * 4)" ( (binary_expression "uVar5 + uVar9 * 4" identifier + (binary_expression "uVar9 * 4" identifier * number_literal)) )))) ;) (expression_statement "iVar4 = *piVar7;" (assignment_expression "iVar4 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (if_statement "if (iVar4 == DAT_00020214) {\n    *piVar7 = DAT_000201f0;\n    DAT_000201f0 = iVar4;\n    iVar4 = iVar1;\n  }" if (parenthesized_expression "(iVar4 == DAT_00020214)" ( (binary_expression "iVar4 == DAT_00020214" identifier == identifier) )) (compound_statement "{\n    *piVar7 = DAT_000201f0;\n    DAT_000201f0 = iVar4;\n    iVar4 = iVar1;\n  }" { (expression_statement "*piVar7 = DAT_000201f0;" (assignment_expression "*piVar7 = DAT_000201f0" (pointer_expression "*piVar7" * identifier) = identifier) ;) (expression_statement "DAT_000201f0 = iVar4;" (assignment_expression "DAT_000201f0 = iVar4" identifier = identifier) ;) (expression_statement "iVar4 = iVar1;" (assignment_expression "iVar4 = iVar1" identifier = identifier) ;) })) (if_statement "if (iVar4 == 0) {\n    iVar4 = FUN_000171a0(1,0x18);\n    *piVar7 = iVar4;\n  }\n  else {\n    *(undefined4 *)(iVar4 + 0xc) = 0;\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar4 = FUN_000171a0(1,0x18);\n    *piVar7 = iVar4;\n  }" { (expression_statement "iVar4 = FUN_000171a0(1,0x18);" (assignment_expression "iVar4 = FUN_000171a0(1,0x18)" identifier = (call_expression "FUN_000171a0(1,0x18)" identifier (argument_list "(1,0x18)" ( number_literal , number_literal )))) ;) (expression_statement "*piVar7 = iVar4;" (assignment_expression "*piVar7 = iVar4" (pointer_expression "*piVar7" * identifier) = identifier) ;) }) (else_clause "else {\n    *(undefined4 *)(iVar4 + 0xc) = 0;\n  }" else (compound_statement "{\n    *(undefined4 *)(iVar4 + 0xc) = 0;\n  }" { (expression_statement "*(undefined4 *)(iVar4 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" * (cast_expression "(undefined4 *)(iVar4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) = number_literal) ;) }))) (expression_statement "uVar12 = FUN_00014410(iVar4,param_1,(int)DAT_00020108);" (assignment_expression "uVar12 = FUN_00014410(iVar4,param_1,(int)DAT_00020108)" identifier = (call_expression "FUN_00014410(iVar4,param_1,(int)DAT_00020108)" identifier (argument_list "(iVar4,param_1,(int)DAT_00020108)" ( identifier , identifier , (cast_expression "(int)DAT_00020108" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (if_statement "if ((int)uVar12 == 0) {\n    if ((*param_1 & 0x20) != 0) {\n      uVar10 = dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20));\n      piVar7 = __errno_location();\n                    \n      error(1,*piVar7,uVar10);\n    }\n    uVar10 = 0;\n    if (iVar4 != 0) {\n      free(*(void **)(iVar4 + 0x14));\n      *(undefined4 *)(iVar4 + 0x14) = 0;\n      free(*(void **)(iVar4 + 8));\n      *(undefined4 *)(iVar4 + 8) = 0;\n      return 0;\n    }\n  }\n  else {\n    bVar11 = 0xfffffffe < DAT_00020208;\n    DAT_00020208 = DAT_00020208 + 1;\n    DAT_0002020c = DAT_0002020c + (uint)bVar11;\n    FUN_00012f70();\n    if ((((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))) &&\n       ((DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)))) {\n      iVar2 = *(int *)(iVar4 + 4);\n      iVar4 = *(int *)(iVar4 + 8);\n      iVar8 = 0;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }\n        iVar8 = 0x7fffffff;\n        if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }\n      }\n      uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    \n      error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4);\n    }\n    DAT_00020214 = iVar4;\n    *param_2 = *param_2 + 1;\n    uVar10 = 1;\n  }" if (parenthesized_expression "((int)uVar12 == 0)" ( (binary_expression "(int)uVar12 == 0" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n    if ((*param_1 & 0x20) != 0) {\n      uVar10 = dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20));\n      piVar7 = __errno_location();\n                    \n      error(1,*piVar7,uVar10);\n    }\n    uVar10 = 0;\n    if (iVar4 != 0) {\n      free(*(void **)(iVar4 + 0x14));\n      *(undefined4 *)(iVar4 + 0x14) = 0;\n      free(*(void **)(iVar4 + 8));\n      *(undefined4 *)(iVar4 + 8) = 0;\n      return 0;\n    }\n  }" { (if_statement "if ((*param_1 & 0x20) != 0) {\n      uVar10 = dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20));\n      piVar7 = __errno_location();\n                    \n      error(1,*piVar7,uVar10);\n    }" if (parenthesized_expression "((*param_1 & 0x20) != 0)" ( (binary_expression "(*param_1 & 0x20) != 0" (parenthesized_expression "(*param_1 & 0x20)" ( (binary_expression "*param_1 & 0x20" (pointer_expression "*param_1" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar10 = dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20));\n      piVar7 = __errno_location();\n                    \n      error(1,*piVar7,uVar10);\n    }" { (expression_statement "uVar10 = dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20));" (assignment_expression "uVar10 = dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20))" identifier = (call_expression "dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20))" identifier (argument_list "(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20))" ( number_literal , (string_literal ""read error"" " string_content ") , number_literal , (cast_expression "(int)((ulonglong)uVar12 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar12 >> 0x20)" ( (binary_expression "(ulonglong)uVar12 >> 0x20" (cast_expression "(ulonglong)uVar12" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) )))) ;) (expression_statement "piVar7 = __errno_location();" (assignment_expression "piVar7 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "error(1,*piVar7,uVar10);" (call_expression "error(1,*piVar7,uVar10)" identifier (argument_list "(1,*piVar7,uVar10)" ( number_literal , (pointer_expression "*piVar7" * identifier) , identifier ))) ;) })) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (if_statement "if (iVar4 != 0) {\n      free(*(void **)(iVar4 + 0x14));\n      *(undefined4 *)(iVar4 + 0x14) = 0;\n      free(*(void **)(iVar4 + 8));\n      *(undefined4 *)(iVar4 + 8) = 0;\n      return 0;\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      free(*(void **)(iVar4 + 0x14));\n      *(undefined4 *)(iVar4 + 0x14) = 0;\n      free(*(void **)(iVar4 + 8));\n      *(undefined4 *)(iVar4 + 8) = 0;\n      return 0;\n    }" { (expression_statement "free(*(void **)(iVar4 + 0x14));" (call_expression "free(*(void **)(iVar4 + 0x14))" identifier (argument_list "(*(void **)(iVar4 + 0x14))" ( (pointer_expression "*(void **)(iVar4 + 0x14)" * (cast_expression "(void **)(iVar4 + 0x14)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(iVar4 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0x14)" * (cast_expression "(undefined4 *)(iVar4 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "free(*(void **)(iVar4 + 8));" (call_expression "free(*(void **)(iVar4 + 8))" identifier (argument_list "(*(void **)(iVar4 + 8))" ( (pointer_expression "*(void **)(iVar4 + 8)" * (cast_expression "(void **)(iVar4 + 8)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(iVar4 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n    bVar11 = 0xfffffffe < DAT_00020208;\n    DAT_00020208 = DAT_00020208 + 1;\n    DAT_0002020c = DAT_0002020c + (uint)bVar11;\n    FUN_00012f70();\n    if ((((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))) &&\n       ((DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)))) {\n      iVar2 = *(int *)(iVar4 + 4);\n      iVar4 = *(int *)(iVar4 + 8);\n      iVar8 = 0;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }\n        iVar8 = 0x7fffffff;\n        if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }\n      }\n      uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    \n      error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4);\n    }\n    DAT_00020214 = iVar4;\n    *param_2 = *param_2 + 1;\n    uVar10 = 1;\n  }" else (compound_statement "{\n    bVar11 = 0xfffffffe < DAT_00020208;\n    DAT_00020208 = DAT_00020208 + 1;\n    DAT_0002020c = DAT_0002020c + (uint)bVar11;\n    FUN_00012f70();\n    if ((((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))) &&\n       ((DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)))) {\n      iVar2 = *(int *)(iVar4 + 4);\n      iVar4 = *(int *)(iVar4 + 8);\n      iVar8 = 0;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }\n        iVar8 = 0x7fffffff;\n        if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }\n      }\n      uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    \n      error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4);\n    }\n    DAT_00020214 = iVar4;\n    *param_2 = *param_2 + 1;\n    uVar10 = 1;\n  }" { (expression_statement "bVar11 = 0xfffffffe < DAT_00020208;" (assignment_expression "bVar11 = 0xfffffffe < DAT_00020208" identifier = (binary_expression "0xfffffffe < DAT_00020208" number_literal < identifier)) ;) (expression_statement "DAT_00020208 = DAT_00020208 + 1;" (assignment_expression "DAT_00020208 = DAT_00020208 + 1" identifier = (binary_expression "DAT_00020208 + 1" identifier + number_literal)) ;) (expression_statement "DAT_0002020c = DAT_0002020c + (uint)bVar11;" (assignment_expression "DAT_0002020c = DAT_0002020c + (uint)bVar11" identifier = (binary_expression "DAT_0002020c + (uint)bVar11" identifier + (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "FUN_00012f70();" (call_expression "FUN_00012f70()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))) &&\n       ((DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)))) {\n      iVar2 = *(int *)(iVar4 + 4);\n      iVar4 = *(int *)(iVar4 + 8);\n      iVar8 = 0;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }\n        iVar8 = 0x7fffffff;\n        if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }\n      }\n      uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    \n      error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4);\n    }" if (parenthesized_expression "((((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))) &&\n       ((DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2))))" ( (binary_expression "(((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))) &&\n       ((DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)))" (parenthesized_expression "(((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0'))))" ( (binary_expression "((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))" (parenthesized_expression "((DAT_00020214 != 0) && (DAT_000201c4 != 2))" ( (binary_expression "(DAT_00020214 != 0) && (DAT_000201c4 != 2)" (parenthesized_expression "(DAT_00020214 != 0)" ( (binary_expression "DAT_00020214 != 0" identifier != number_literal) )) && (parenthesized_expression "(DAT_000201c4 != 2)" ( (binary_expression "DAT_000201c4 != 2" identifier != number_literal) ))) )) && (parenthesized_expression "((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))" ( (parenthesized_expression "(DAT_000201c4 == 1 || (DAT_000201e6 != '\0'))" ( (binary_expression "DAT_000201c4 == 1 || (DAT_000201e6 != '\0')" (binary_expression "DAT_000201c4 == 1" identifier == number_literal) || (parenthesized_expression "(DAT_000201e6 != '\0')" ( (binary_expression "DAT_000201e6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) && (parenthesized_expression "((DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)))" ( (parenthesized_expression "(DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2))" ( (binary_expression "DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)" (binary_expression "DAT_000201e5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "(iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)" ( (comma_expression "iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2" (assignment_expression "iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110)" identifier = (call_expression "FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110)" identifier (argument_list "(iVar4 + 0x14,DAT_00020110,DAT_00020110)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) , identifier , identifier )))) , (comma_expression "iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2" (assignment_expression "iVar1 = DAT_0002020c" identifier = identifier) , (comma_expression "uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2" (assignment_expression "uVar6 = DAT_00020208" identifier = identifier) , (comma_expression "uVar10 = DAT_000201f8, 0 < iVar2" (assignment_expression "uVar10 = DAT_000201f8" identifier = identifier) , (binary_expression "0 < iVar2" number_literal < identifier))))) ))) )) ))) )) (compound_statement "{\n      iVar2 = *(int *)(iVar4 + 4);\n      iVar4 = *(int *)(iVar4 + 8);\n      iVar8 = 0;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }\n        iVar8 = 0x7fffffff;\n        if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }\n      }\n      uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    \n      error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4);\n    }" { (expression_statement "iVar2 = *(int *)(iVar4 + 4);" (assignment_expression "iVar2 = *(int *)(iVar4 + 4)" identifier = (pointer_expression "*(int *)(iVar4 + 4)" * (cast_expression "(int *)(iVar4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(iVar4 + 8);" (assignment_expression "iVar4 = *(int *)(iVar4 + 8)" identifier = (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (if_statement "if (iVar2 != 0) {\n        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }\n        iVar8 = 0x7fffffff;\n        if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }\n        iVar8 = 0x7fffffff;\n        if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }\n      }" { (if_statement "if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }" if (parenthesized_expression "(*(char *)(iVar4 + -1 + iVar2) == '\n')" ( (binary_expression "*(char *)(iVar4 + -1 + iVar2) == '\n'" (pointer_expression "*(char *)(iVar4 + -1 + iVar2)" * (cast_expression "(char *)(iVar4 + -1 + iVar2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + -1 + iVar2)" ( (binary_expression "iVar4 + -1 + iVar2" (binary_expression "iVar4 + -1" identifier + number_literal) + identifier) )))) == (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n          iVar2 = iVar2 + -1;\n        }" { (expression_statement "iVar2 = iVar2 + -1;" (assignment_expression "iVar2 = iVar2 + -1" identifier = (binary_expression "iVar2 + -1" identifier + number_literal)) ;) })) (expression_statement "iVar8 = 0x7fffffff;" (assignment_expression "iVar8 = 0x7fffffff" identifier = number_literal) ;) (if_statement "if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }" if (parenthesized_expression "(-1 < iVar2)" ( (binary_expression "-1 < iVar2" number_literal < identifier) )) (compound_statement "{\n          iVar8 = iVar2;\n        }" { (expression_statement "iVar8 = iVar2;" (assignment_expression "iVar8 = iVar2" identifier = identifier) ;) })) })) (expression_statement "uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);" (assignment_expression "uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5)" identifier = (call_expression "dcgettext(0,"%s:%llu: is not sorted: %.*s",5)" identifier (argument_list "(0,"%s:%llu: is not sorted: %.*s",5)" ( number_literal , (string_literal ""%s:%llu: is not sorted: %.*s"" " string_content ") , number_literal )))) ;) (expression_statement "error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4);" (call_expression "error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4)" identifier (argument_list "(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4)" ( (binary_expression "DAT_000201c4 == 1" identifier == number_literal) , number_literal , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "DAT_00020214 = iVar4;" (assignment_expression "DAT_00020214 = iVar4" identifier = identifier) ;) (expression_statement "*param_2 = *param_2 + 1;" (assignment_expression "*param_2 = *param_2 + 1" (pointer_expression "*param_2" * identifier) = (binary_expression "*param_2 + 1" (pointer_expression "*param_2" * identifier) + number_literal)) ;) (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) }))) (return_statement "return uVar10;" return identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) || (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) != LIT) ))) )) (goto_statement goto statement_identifier ;)) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))) , LIT , (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT) )) * LIT) ))) ;) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_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 = (call_expression IDENT (argument_list ( LIT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression * IDENT) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (return_statement return LIT ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression LIT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) || (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == (char_literal ' escape_sequence ')) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , IDENT )))) , (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression LIT < IDENT))))) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT == LIT) , LIT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (return_statement return IDENT ;) })))
(function_definition "undefined4 __regparm3 FUN_00013570(byte *param_1,uint *param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  int *piVar7;\n  int iVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  bool bVar11;\n  undefined8 uVar12;\n  \n  uVar9 = *param_2;\n  uVar6 = param_2[1];\n  uVar5 = param_2[2];\n  if (uVar9 == uVar6) {\n    if (uVar5 == 0) {\n      if (uVar6 == 0) {\n        iVar4 = 0x40;\n        uVar6 = 0x10;\n      }\n      else {\n        iVar4 = uVar6 << 2;\n        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;\n      }\n    }\n    else {\n      if (0x15555554 < uVar6) {\nLAB_000137ec:\n                    \n        FUN_00017250();\n      }\n      uVar6 = uVar6 + 1 + (uVar6 >> 1);\n      iVar4 = uVar6 * 4;\n    }\n    param_2[1] = uVar6;\n    uVar5 = FUN_00016fe0(uVar5,iVar4);\n    uVar9 = *param_2;\n    param_2[2] = uVar5;\n    if (uVar9 < param_2[1]) {\n      memset((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4);\n    }\n  }\n  iVar1 = DAT_000201f0;\n  piVar7 = (int *)(uVar5 + uVar9 * 4);\n  iVar4 = *piVar7;\n  if (iVar4 == DAT_00020214) {\n    *piVar7 = DAT_000201f0;\n    DAT_000201f0 = iVar4;\n    iVar4 = iVar1;\n  }\n  if (iVar4 == 0) {\n    iVar4 = FUN_000171a0(1,0x18);\n    *piVar7 = iVar4;\n  }\n  else {\n    *(undefined4 *)(iVar4 + 0xc) = 0;\n  }\n  uVar12 = FUN_00014410(iVar4,param_1,(int)DAT_00020108);\n  if ((int)uVar12 == 0) {\n    if ((*param_1 & 0x20) != 0) {\n      uVar10 = dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20));\n      piVar7 = __errno_location();\n                    \n      error(1,*piVar7,uVar10);\n    }\n    uVar10 = 0;\n    if (iVar4 != 0) {\n      free(*(void **)(iVar4 + 0x14));\n      *(undefined4 *)(iVar4 + 0x14) = 0;\n      free(*(void **)(iVar4 + 8));\n      *(undefined4 *)(iVar4 + 8) = 0;\n      return 0;\n    }\n  }\n  else {\n    bVar11 = 0xfffffffe < DAT_00020208;\n    DAT_00020208 = DAT_00020208 + 1;\n    DAT_0002020c = DAT_0002020c + (uint)bVar11;\n    FUN_00012f70();\n    if ((((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))) &&\n       ((DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)))) {\n      iVar2 = *(int *)(iVar4 + 4);\n      iVar4 = *(int *)(iVar4 + 8);\n      iVar8 = 0;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }\n        iVar8 = 0x7fffffff;\n        if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }\n      }\n      uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    \n      error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4);\n    }\n    DAT_00020214 = iVar4;\n    *param_2 = *param_2 + 1;\n    uVar10 = 1;\n  }\n  return uVar10;\n}" (type_identifier "undefined4") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00013570(byte *param_1,uint *param_2)" (identifier "FUN_00013570") (parameter_list "(byte *param_1,uint *param_2)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint *param_2" (type_identifier "uint") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  int *piVar7;\n  int iVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  bool bVar11;\n  undefined8 uVar12;\n  \n  uVar9 = *param_2;\n  uVar6 = param_2[1];\n  uVar5 = param_2[2];\n  if (uVar9 == uVar6) {\n    if (uVar5 == 0) {\n      if (uVar6 == 0) {\n        iVar4 = 0x40;\n        uVar6 = 0x10;\n      }\n      else {\n        iVar4 = uVar6 << 2;\n        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;\n      }\n    }\n    else {\n      if (0x15555554 < uVar6) {\nLAB_000137ec:\n                    \n        FUN_00017250();\n      }\n      uVar6 = uVar6 + 1 + (uVar6 >> 1);\n      iVar4 = uVar6 * 4;\n    }\n    param_2[1] = uVar6;\n    uVar5 = FUN_00016fe0(uVar5,iVar4);\n    uVar9 = *param_2;\n    param_2[2] = uVar5;\n    if (uVar9 < param_2[1]) {\n      memset((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4);\n    }\n  }\n  iVar1 = DAT_000201f0;\n  piVar7 = (int *)(uVar5 + uVar9 * 4);\n  iVar4 = *piVar7;\n  if (iVar4 == DAT_00020214) {\n    *piVar7 = DAT_000201f0;\n    DAT_000201f0 = iVar4;\n    iVar4 = iVar1;\n  }\n  if (iVar4 == 0) {\n    iVar4 = FUN_000171a0(1,0x18);\n    *piVar7 = iVar4;\n  }\n  else {\n    *(undefined4 *)(iVar4 + 0xc) = 0;\n  }\n  uVar12 = FUN_00014410(iVar4,param_1,(int)DAT_00020108);\n  if ((int)uVar12 == 0) {\n    if ((*param_1 & 0x20) != 0) {\n      uVar10 = dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20));\n      piVar7 = __errno_location();\n                    \n      error(1,*piVar7,uVar10);\n    }\n    uVar10 = 0;\n    if (iVar4 != 0) {\n      free(*(void **)(iVar4 + 0x14));\n      *(undefined4 *)(iVar4 + 0x14) = 0;\n      free(*(void **)(iVar4 + 8));\n      *(undefined4 *)(iVar4 + 8) = 0;\n      return 0;\n    }\n  }\n  else {\n    bVar11 = 0xfffffffe < DAT_00020208;\n    DAT_00020208 = DAT_00020208 + 1;\n    DAT_0002020c = DAT_0002020c + (uint)bVar11;\n    FUN_00012f70();\n    if ((((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))) &&\n       ((DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)))) {\n      iVar2 = *(int *)(iVar4 + 4);\n      iVar4 = *(int *)(iVar4 + 8);\n      iVar8 = 0;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }\n        iVar8 = 0x7fffffff;\n        if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }\n      }\n      uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    \n      error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4);\n    }\n    DAT_00020214 = iVar4;\n    *param_2 = *param_2 + 1;\n    uVar10 = 1;\n  }\n  return uVar10;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "bool bVar11;" (primitive_type "bool") (identifier "bVar11") (; ";")) (declaration "undefined8 uVar12;" (type_identifier "undefined8") (identifier "uVar12") (; ";")) (expression_statement "uVar9 = *param_2;" (assignment_expression "uVar9 = *param_2" (identifier "uVar9") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "uVar6 = param_2[1];" (assignment_expression "uVar6 = param_2[1]" (identifier "uVar6") (= "=") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar5 = param_2[2];" (assignment_expression "uVar5 = param_2[2]" (identifier "uVar5") (= "=") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if (uVar9 == uVar6) {\n    if (uVar5 == 0) {\n      if (uVar6 == 0) {\n        iVar4 = 0x40;\n        uVar6 = 0x10;\n      }\n      else {\n        iVar4 = uVar6 << 2;\n        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;\n      }\n    }\n    else {\n      if (0x15555554 < uVar6) {\nLAB_000137ec:\n                    \n        FUN_00017250();\n      }\n      uVar6 = uVar6 + 1 + (uVar6 >> 1);\n      iVar4 = uVar6 * 4;\n    }\n    param_2[1] = uVar6;\n    uVar5 = FUN_00016fe0(uVar5,iVar4);\n    uVar9 = *param_2;\n    param_2[2] = uVar5;\n    if (uVar9 < param_2[1]) {\n      memset((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4);\n    }\n  }" (if "if") (parenthesized_expression "(uVar9 == uVar6)" (( "(") (binary_expression "uVar9 == uVar6" (identifier "uVar9") (== "==") (identifier "uVar6")) () ")")) (compound_statement "{\n    if (uVar5 == 0) {\n      if (uVar6 == 0) {\n        iVar4 = 0x40;\n        uVar6 = 0x10;\n      }\n      else {\n        iVar4 = uVar6 << 2;\n        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;\n      }\n    }\n    else {\n      if (0x15555554 < uVar6) {\nLAB_000137ec:\n                    \n        FUN_00017250();\n      }\n      uVar6 = uVar6 + 1 + (uVar6 >> 1);\n      iVar4 = uVar6 * 4;\n    }\n    param_2[1] = uVar6;\n    uVar5 = FUN_00016fe0(uVar5,iVar4);\n    uVar9 = *param_2;\n    param_2[2] = uVar5;\n    if (uVar9 < param_2[1]) {\n      memset((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4);\n    }\n  }" ({ "{") (if_statement "if (uVar5 == 0) {\n      if (uVar6 == 0) {\n        iVar4 = 0x40;\n        uVar6 = 0x10;\n      }\n      else {\n        iVar4 = uVar6 << 2;\n        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;\n      }\n    }\n    else {\n      if (0x15555554 < uVar6) {\nLAB_000137ec:\n                    \n        FUN_00017250();\n      }\n      uVar6 = uVar6 + 1 + (uVar6 >> 1);\n      iVar4 = uVar6 * 4;\n    }" (if "if") (parenthesized_expression "(uVar5 == 0)" (( "(") (binary_expression "uVar5 == 0" (identifier "uVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (uVar6 == 0) {\n        iVar4 = 0x40;\n        uVar6 = 0x10;\n      }\n      else {\n        iVar4 = uVar6 << 2;\n        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;\n      }\n    }" ({ "{") (if_statement "if (uVar6 == 0) {\n        iVar4 = 0x40;\n        uVar6 = 0x10;\n      }\n      else {\n        iVar4 = uVar6 << 2;\n        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;\n      }" (if "if") (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar4 = 0x40;\n        uVar6 = 0x10;\n      }" ({ "{") (expression_statement "iVar4 = 0x40;" (assignment_expression "iVar4 = 0x40" (identifier "iVar4") (= "=") (number_literal "0x40")) (; ";")) (expression_statement "uVar6 = 0x10;" (assignment_expression "uVar6 = 0x10" (identifier "uVar6") (= "=") (number_literal "0x10")) (; ";")) (} "}")) (else_clause "else {\n        iVar4 = uVar6 << 2;\n        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;\n      }" (else "else") (compound_statement "{\n        iVar4 = uVar6 << 2;\n        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;\n      }" ({ "{") (expression_statement "iVar4 = uVar6 << 2;" (assignment_expression "iVar4 = uVar6 << 2" (identifier "iVar4") (= "=") (binary_expression "uVar6 << 2" (identifier "uVar6") (<< "<<") (number_literal "2"))) (; ";")) (if_statement "if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;" (if "if") (parenthesized_expression "((iVar4 < 0) || (uVar6 >> 0x1e != 0))" (( "(") (binary_expression "(iVar4 < 0) || (uVar6 >> 0x1e != 0)" (parenthesized_expression "(iVar4 < 0)" (( "(") (binary_expression "iVar4 < 0" (identifier "iVar4") (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar6 >> 0x1e != 0)" (( "(") (binary_expression "uVar6 >> 0x1e != 0" (binary_expression "uVar6 >> 0x1e" (identifier "uVar6") (>> ">>") (number_literal "0x1e")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_000137ec;" (goto "goto") (statement_identifier "LAB_000137ec") (; ";"))) (} "}")))) (} "}")) (else_clause "else {\n      if (0x15555554 < uVar6) {\nLAB_000137ec:\n                    \n        FUN_00017250();\n      }\n      uVar6 = uVar6 + 1 + (uVar6 >> 1);\n      iVar4 = uVar6 * 4;\n    }" (else "else") (compound_statement "{\n      if (0x15555554 < uVar6) {\nLAB_000137ec:\n                    \n        FUN_00017250();\n      }\n      uVar6 = uVar6 + 1 + (uVar6 >> 1);\n      iVar4 = uVar6 * 4;\n    }" ({ "{") (if_statement "if (0x15555554 < uVar6) {\nLAB_000137ec:\n                    \n        FUN_00017250();\n      }" (if "if") (parenthesized_expression "(0x15555554 < uVar6)" (( "(") (binary_expression "0x15555554 < uVar6" (number_literal "0x15555554") (< "<") (identifier "uVar6")) () ")")) (compound_statement "{\nLAB_000137ec:\n                    \n        FUN_00017250();\n      }" ({ "{") (labeled_statement "LAB_000137ec:\n                    \n        FUN_00017250();" (statement_identifier "LAB_000137ec") (: ":") (expression_statement "FUN_00017250();" (call_expression "FUN_00017250()" (identifier "FUN_00017250") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}"))) (expression_statement "uVar6 = uVar6 + 1 + (uVar6 >> 1);" (assignment_expression "uVar6 = uVar6 + 1 + (uVar6 >> 1)" (identifier "uVar6") (= "=") (binary_expression "uVar6 + 1 + (uVar6 >> 1)" (binary_expression "uVar6 + 1" (identifier "uVar6") (+ "+") (number_literal "1")) (+ "+") (parenthesized_expression "(uVar6 >> 1)" (( "(") (binary_expression "uVar6 >> 1" (identifier "uVar6") (>> ">>") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar4 = uVar6 * 4;" (assignment_expression "iVar4 = uVar6 * 4" (identifier "iVar4") (= "=") (binary_expression "uVar6 * 4" (identifier "uVar6") (* "*") (number_literal "4"))) (; ";")) (} "}")))) (expression_statement "param_2[1] = uVar6;" (assignment_expression "param_2[1] = uVar6" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "uVar5 = FUN_00016fe0(uVar5,iVar4);" (assignment_expression "uVar5 = FUN_00016fe0(uVar5,iVar4)" (identifier "uVar5") (= "=") (call_expression "FUN_00016fe0(uVar5,iVar4)" (identifier "FUN_00016fe0") (argument_list "(uVar5,iVar4)" (( "(") (identifier "uVar5") (, ",") (identifier "iVar4") () ")")))) (; ";")) (expression_statement "uVar9 = *param_2;" (assignment_expression "uVar9 = *param_2" (identifier "uVar9") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "param_2[2] = uVar5;" (assignment_expression "param_2[2] = uVar5" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (if_statement "if (uVar9 < param_2[1]) {\n      memset((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4);\n    }" (if "if") (parenthesized_expression "(uVar9 < param_2[1])" (( "(") (binary_expression "uVar9 < param_2[1]" (identifier "uVar9") (< "<") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\n      memset((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4);\n    }" ({ "{") (expression_statement "memset((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4);" (call_expression "memset((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4)" (identifier "memset") (argument_list "((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4)" (( "(") (cast_expression "(void *)(uVar5 + uVar9 * 4)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar5 + uVar9 * 4)" (( "(") (binary_expression "uVar5 + uVar9 * 4" (identifier "uVar5") (+ "+") (binary_expression "uVar9 * 4" (identifier "uVar9") (* "*") (number_literal "4"))) () ")"))) (, ",") (number_literal "0") (, ",") (binary_expression "(param_2[1] - uVar9) * 4" (parenthesized_expression "(param_2[1] - uVar9)" (( "(") (binary_expression "param_2[1] - uVar9" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (- "-") (identifier "uVar9")) () ")")) (* "*") (number_literal "4")) () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar1 = DAT_000201f0;" (assignment_expression "iVar1 = DAT_000201f0" (identifier "iVar1") (= "=") (identifier "DAT_000201f0")) (; ";")) (expression_statement "piVar7 = (int *)(uVar5 + uVar9 * 4);" (assignment_expression "piVar7 = (int *)(uVar5 + uVar9 * 4)" (identifier "piVar7") (= "=") (cast_expression "(int *)(uVar5 + uVar9 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar5 + uVar9 * 4)" (( "(") (binary_expression "uVar5 + uVar9 * 4" (identifier "uVar5") (+ "+") (binary_expression "uVar9 * 4" (identifier "uVar9") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "iVar4 = *piVar7;" (assignment_expression "iVar4 = *piVar7" (identifier "iVar4") (= "=") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) (; ";")) (if_statement "if (iVar4 == DAT_00020214) {\n    *piVar7 = DAT_000201f0;\n    DAT_000201f0 = iVar4;\n    iVar4 = iVar1;\n  }" (if "if") (parenthesized_expression "(iVar4 == DAT_00020214)" (( "(") (binary_expression "iVar4 == DAT_00020214" (identifier "iVar4") (== "==") (identifier "DAT_00020214")) () ")")) (compound_statement "{\n    *piVar7 = DAT_000201f0;\n    DAT_000201f0 = iVar4;\n    iVar4 = iVar1;\n  }" ({ "{") (expression_statement "*piVar7 = DAT_000201f0;" (assignment_expression "*piVar7 = DAT_000201f0" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (= "=") (identifier "DAT_000201f0")) (; ";")) (expression_statement "DAT_000201f0 = iVar4;" (assignment_expression "DAT_000201f0 = iVar4" (identifier "DAT_000201f0") (= "=") (identifier "iVar4")) (; ";")) (expression_statement "iVar4 = iVar1;" (assignment_expression "iVar4 = iVar1" (identifier "iVar4") (= "=") (identifier "iVar1")) (; ";")) (} "}"))) (if_statement "if (iVar4 == 0) {\n    iVar4 = FUN_000171a0(1,0x18);\n    *piVar7 = iVar4;\n  }\n  else {\n    *(undefined4 *)(iVar4 + 0xc) = 0;\n  }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar4 = FUN_000171a0(1,0x18);\n    *piVar7 = iVar4;\n  }" ({ "{") (expression_statement "iVar4 = FUN_000171a0(1,0x18);" (assignment_expression "iVar4 = FUN_000171a0(1,0x18)" (identifier "iVar4") (= "=") (call_expression "FUN_000171a0(1,0x18)" (identifier "FUN_000171a0") (argument_list "(1,0x18)" (( "(") (number_literal "1") (, ",") (number_literal "0x18") () ")")))) (; ";")) (expression_statement "*piVar7 = iVar4;" (assignment_expression "*piVar7 = iVar4" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (= "=") (identifier "iVar4")) (; ";")) (} "}")) (else_clause "else {\n    *(undefined4 *)(iVar4 + 0xc) = 0;\n  }" (else "else") (compound_statement "{\n    *(undefined4 *)(iVar4 + 0xc) = 0;\n  }" ({ "{") (expression_statement "*(undefined4 *)(iVar4 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "uVar12 = FUN_00014410(iVar4,param_1,(int)DAT_00020108);" (assignment_expression "uVar12 = FUN_00014410(iVar4,param_1,(int)DAT_00020108)" (identifier "uVar12") (= "=") (call_expression "FUN_00014410(iVar4,param_1,(int)DAT_00020108)" (identifier "FUN_00014410") (argument_list "(iVar4,param_1,(int)DAT_00020108)" (( "(") (identifier "iVar4") (, ",") (identifier "param_1") (, ",") (cast_expression "(int)DAT_00020108" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_00020108")) () ")")))) (; ";")) (if_statement "if ((int)uVar12 == 0) {\n    if ((*param_1 & 0x20) != 0) {\n      uVar10 = dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20));\n      piVar7 = __errno_location();\n                    \n      error(1,*piVar7,uVar10);\n    }\n    uVar10 = 0;\n    if (iVar4 != 0) {\n      free(*(void **)(iVar4 + 0x14));\n      *(undefined4 *)(iVar4 + 0x14) = 0;\n      free(*(void **)(iVar4 + 8));\n      *(undefined4 *)(iVar4 + 8) = 0;\n      return 0;\n    }\n  }\n  else {\n    bVar11 = 0xfffffffe < DAT_00020208;\n    DAT_00020208 = DAT_00020208 + 1;\n    DAT_0002020c = DAT_0002020c + (uint)bVar11;\n    FUN_00012f70();\n    if ((((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))) &&\n       ((DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)))) {\n      iVar2 = *(int *)(iVar4 + 4);\n      iVar4 = *(int *)(iVar4 + 8);\n      iVar8 = 0;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }\n        iVar8 = 0x7fffffff;\n        if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }\n      }\n      uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    \n      error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4);\n    }\n    DAT_00020214 = iVar4;\n    *param_2 = *param_2 + 1;\n    uVar10 = 1;\n  }" (if "if") (parenthesized_expression "((int)uVar12 == 0)" (( "(") (binary_expression "(int)uVar12 == 0" (cast_expression "(int)uVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar12")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if ((*param_1 & 0x20) != 0) {\n      uVar10 = dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20));\n      piVar7 = __errno_location();\n                    \n      error(1,*piVar7,uVar10);\n    }\n    uVar10 = 0;\n    if (iVar4 != 0) {\n      free(*(void **)(iVar4 + 0x14));\n      *(undefined4 *)(iVar4 + 0x14) = 0;\n      free(*(void **)(iVar4 + 8));\n      *(undefined4 *)(iVar4 + 8) = 0;\n      return 0;\n    }\n  }" ({ "{") (if_statement "if ((*param_1 & 0x20) != 0) {\n      uVar10 = dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20));\n      piVar7 = __errno_location();\n                    \n      error(1,*piVar7,uVar10);\n    }" (if "if") (parenthesized_expression "((*param_1 & 0x20) != 0)" (( "(") (binary_expression "(*param_1 & 0x20) != 0" (parenthesized_expression "(*param_1 & 0x20)" (( "(") (binary_expression "*param_1 & 0x20" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar10 = dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20));\n      piVar7 = __errno_location();\n                    \n      error(1,*piVar7,uVar10);\n    }" ({ "{") (expression_statement "uVar10 = dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20));" (assignment_expression "uVar10 = dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20))" (identifier "uVar10") (= "=") (call_expression "dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20))" (identifier "dcgettext") (argument_list "(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20))" (( "(") (number_literal "0") (, ",") (string_literal ""read error"" (" """) (string_content "read error") (" """)) (, ",") (number_literal "5") (, ",") (cast_expression "(int)((ulonglong)uVar12 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar12 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar12 >> 0x20" (cast_expression "(ulonglong)uVar12" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar12")) (>> ">>") (number_literal "0x20")) () ")"))) () ")")))) (; ";")) (expression_statement "piVar7 = __errno_location();" (assignment_expression "piVar7 = __errno_location()" (identifier "piVar7") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "error(1,*piVar7,uVar10);" (call_expression "error(1,*piVar7,uVar10)" (identifier "error") (argument_list "(1,*piVar7,uVar10)" (( "(") (number_literal "1") (, ",") (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (, ",") (identifier "uVar10") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar4 != 0) {\n      free(*(void **)(iVar4 + 0x14));\n      *(undefined4 *)(iVar4 + 0x14) = 0;\n      free(*(void **)(iVar4 + 8));\n      *(undefined4 *)(iVar4 + 8) = 0;\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      free(*(void **)(iVar4 + 0x14));\n      *(undefined4 *)(iVar4 + 0x14) = 0;\n      free(*(void **)(iVar4 + 8));\n      *(undefined4 *)(iVar4 + 8) = 0;\n      return 0;\n    }" ({ "{") (expression_statement "free(*(void **)(iVar4 + 0x14));" (call_expression "free(*(void **)(iVar4 + 0x14))" (identifier "free") (argument_list "(*(void **)(iVar4 + 0x14))" (( "(") (pointer_expression "*(void **)(iVar4 + 0x14)" (* "*") (cast_expression "(void **)(iVar4 + 0x14)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")")))) () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar4 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "free(*(void **)(iVar4 + 8));" (call_expression "free(*(void **)(iVar4 + 8))" (identifier "free") (argument_list "(*(void **)(iVar4 + 8))" (( "(") (pointer_expression "*(void **)(iVar4 + 8)" (* "*") (cast_expression "(void **)(iVar4 + 8)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar4 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    bVar11 = 0xfffffffe < DAT_00020208;\n    DAT_00020208 = DAT_00020208 + 1;\n    DAT_0002020c = DAT_0002020c + (uint)bVar11;\n    FUN_00012f70();\n    if ((((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))) &&\n       ((DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)))) {\n      iVar2 = *(int *)(iVar4 + 4);\n      iVar4 = *(int *)(iVar4 + 8);\n      iVar8 = 0;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }\n        iVar8 = 0x7fffffff;\n        if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }\n      }\n      uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    \n      error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4);\n    }\n    DAT_00020214 = iVar4;\n    *param_2 = *param_2 + 1;\n    uVar10 = 1;\n  }" (else "else") (compound_statement "{\n    bVar11 = 0xfffffffe < DAT_00020208;\n    DAT_00020208 = DAT_00020208 + 1;\n    DAT_0002020c = DAT_0002020c + (uint)bVar11;\n    FUN_00012f70();\n    if ((((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))) &&\n       ((DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)))) {\n      iVar2 = *(int *)(iVar4 + 4);\n      iVar4 = *(int *)(iVar4 + 8);\n      iVar8 = 0;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }\n        iVar8 = 0x7fffffff;\n        if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }\n      }\n      uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    \n      error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4);\n    }\n    DAT_00020214 = iVar4;\n    *param_2 = *param_2 + 1;\n    uVar10 = 1;\n  }" ({ "{") (expression_statement "bVar11 = 0xfffffffe < DAT_00020208;" (assignment_expression "bVar11 = 0xfffffffe < DAT_00020208" (identifier "bVar11") (= "=") (binary_expression "0xfffffffe < DAT_00020208" (number_literal "0xfffffffe") (< "<") (identifier "DAT_00020208"))) (; ";")) (expression_statement "DAT_00020208 = DAT_00020208 + 1;" (assignment_expression "DAT_00020208 = DAT_00020208 + 1" (identifier "DAT_00020208") (= "=") (binary_expression "DAT_00020208 + 1" (identifier "DAT_00020208") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "DAT_0002020c = DAT_0002020c + (uint)bVar11;" (assignment_expression "DAT_0002020c = DAT_0002020c + (uint)bVar11" (identifier "DAT_0002020c") (= "=") (binary_expression "DAT_0002020c + (uint)bVar11" (identifier "DAT_0002020c") (+ "+") (cast_expression "(uint)bVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar11")))) (; ";")) (expression_statement "FUN_00012f70();" (call_expression "FUN_00012f70()" (identifier "FUN_00012f70") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if ((((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))) &&\n       ((DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)))) {\n      iVar2 = *(int *)(iVar4 + 4);\n      iVar4 = *(int *)(iVar4 + 8);\n      iVar8 = 0;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }\n        iVar8 = 0x7fffffff;\n        if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }\n      }\n      uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    \n      error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4);\n    }" (if "if") (parenthesized_expression "((((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))) &&\n       ((DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2))))" (( "(") (binary_expression "(((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))) &&\n       ((DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)))" (parenthesized_expression "(((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0'))))" (( "(") (binary_expression "((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&\n        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))" (parenthesized_expression "((DAT_00020214 != 0) && (DAT_000201c4 != 2))" (( "(") (binary_expression "(DAT_00020214 != 0) && (DAT_000201c4 != 2)" (parenthesized_expression "(DAT_00020214 != 0)" (( "(") (binary_expression "DAT_00020214 != 0" (identifier "DAT_00020214") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(DAT_000201c4 != 2)" (( "(") (binary_expression "DAT_000201c4 != 2" (identifier "DAT_000201c4") (!= "!=") (number_literal "2")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))" (( "(") (parenthesized_expression "(DAT_000201c4 == 1 || (DAT_000201e6 != '\0'))" (( "(") (binary_expression "DAT_000201c4 == 1 || (DAT_000201e6 != '\0')" (binary_expression "DAT_000201c4 == 1" (identifier "DAT_000201c4") (== "==") (number_literal "1")) (|| "||") (parenthesized_expression "(DAT_000201e6 != '\0')" (( "(") (binary_expression "DAT_000201e6 != '\0'" (identifier "DAT_000201e6") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)))" (( "(") (parenthesized_expression "(DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2))" (( "(") (binary_expression "DAT_000201e5 == '\0' &&\n        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)" (binary_expression "DAT_000201e5 == '\0'" (identifier "DAT_000201e5") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (&& "&&") (parenthesized_expression "(iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)" (( "(") (comma_expression "iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2" (assignment_expression "iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110)" (identifier "iVar2") (= "=") (call_expression "FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110)" (identifier "FUN_000128e0") (argument_list "(iVar4 + 0x14,DAT_00020110,DAT_00020110)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) (, ",") (identifier "DAT_00020110") (, ",") (identifier "DAT_00020110") () ")")))) (, ",") (comma_expression "iVar1 = DAT_0002020c,\n        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2" (assignment_expression "iVar1 = DAT_0002020c" (identifier "iVar1") (= "=") (identifier "DAT_0002020c")) (, ",") (comma_expression "uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2" (assignment_expression "uVar6 = DAT_00020208" (identifier "uVar6") (= "=") (identifier "DAT_00020208")) (, ",") (comma_expression "uVar10 = DAT_000201f8, 0 < iVar2" (assignment_expression "uVar10 = DAT_000201f8" (identifier "uVar10") (= "=") (identifier "DAT_000201f8")) (, ",") (binary_expression "0 < iVar2" (number_literal "0") (< "<") (identifier "iVar2")))))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      iVar2 = *(int *)(iVar4 + 4);\n      iVar4 = *(int *)(iVar4 + 8);\n      iVar8 = 0;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }\n        iVar8 = 0x7fffffff;\n        if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }\n      }\n      uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);\n                    \n      error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4);\n    }" ({ "{") (expression_statement "iVar2 = *(int *)(iVar4 + 4);" (assignment_expression "iVar2 = *(int *)(iVar4 + 4)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(iVar4 + 4)" (* "*") (cast_expression "(int *)(iVar4 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 4)" (( "(") (binary_expression "iVar4 + 4" (identifier "iVar4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar4 = *(int *)(iVar4 + 8);" (assignment_expression "iVar4 = *(int *)(iVar4 + 8)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar4 + 8)" (* "*") (cast_expression "(int *)(iVar4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar2 != 0) {\n        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }\n        iVar8 = 0x7fffffff;\n        if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }\n      }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }\n        iVar8 = 0x7fffffff;\n        if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }\n      }" ({ "{") (if_statement "if (*(char *)(iVar4 + -1 + iVar2) == '\n') {\n          iVar2 = iVar2 + -1;\n        }" (if "if") (parenthesized_expression "(*(char *)(iVar4 + -1 + iVar2) == '\n')" (( "(") (binary_expression "*(char *)(iVar4 + -1 + iVar2) == '\n'" (pointer_expression "*(char *)(iVar4 + -1 + iVar2)" (* "*") (cast_expression "(char *)(iVar4 + -1 + iVar2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + -1 + iVar2)" (( "(") (binary_expression "iVar4 + -1 + iVar2" (binary_expression "iVar4 + -1" (identifier "iVar4") (+ "+") (number_literal "-1")) (+ "+") (identifier "iVar2")) () ")")))) (== "==") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) () ")")) (compound_statement "{\n          iVar2 = iVar2 + -1;\n        }" ({ "{") (expression_statement "iVar2 = iVar2 + -1;" (assignment_expression "iVar2 = iVar2 + -1" (identifier "iVar2") (= "=") (binary_expression "iVar2 + -1" (identifier "iVar2") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "iVar8 = 0x7fffffff;" (assignment_expression "iVar8 = 0x7fffffff" (identifier "iVar8") (= "=") (number_literal "0x7fffffff")) (; ";")) (if_statement "if (-1 < iVar2) {\n          iVar8 = iVar2;\n        }" (if "if") (parenthesized_expression "(-1 < iVar2)" (( "(") (binary_expression "-1 < iVar2" (number_literal "-1") (< "<") (identifier "iVar2")) () ")")) (compound_statement "{\n          iVar8 = iVar2;\n        }" ({ "{") (expression_statement "iVar8 = iVar2;" (assignment_expression "iVar8 = iVar2" (identifier "iVar8") (= "=") (identifier "iVar2")) (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);" (assignment_expression "uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,"%s:%llu: is not sorted: %.*s",5)" (identifier "dcgettext") (argument_list "(0,"%s:%llu: is not sorted: %.*s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%s:%llu: is not sorted: %.*s"" (" """) (string_content "%s:%llu: is not sorted: %.*s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4);" (call_expression "error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4)" (identifier "error") (argument_list "(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4)" (( "(") (binary_expression "DAT_000201c4 == 1" (identifier "DAT_000201c4") (== "==") (number_literal "1")) (, ",") (number_literal "0") (, ",") (identifier "uVar3") (, ",") (identifier "uVar10") (, ",") (identifier "uVar6") (, ",") (identifier "iVar1") (, ",") (identifier "iVar8") (, ",") (identifier "iVar4") () ")"))) (; ";")) (} "}"))) (expression_statement "DAT_00020214 = iVar4;" (assignment_expression "DAT_00020214 = iVar4" (identifier "DAT_00020214") (= "=") (identifier "iVar4")) (; ";")) (expression_statement "*param_2 = *param_2 + 1;" (assignment_expression "*param_2 = *param_2 + 1" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (binary_expression "*param_2 + 1" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" (identifier "uVar10") (= "=") (number_literal "1")) (; ";")) (} "}")))) (return_statement "return uVar10;" (return "return") (identifier "uVar10") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

type_1 __regparm3 function_1(type_2 *fp,type_3 *type_3,int whichfile)

{
  char *pcVar1;
  type_4 *plVar2;
  char *pcVar3;
  int iVar4;
  type_5 *var_9;
  int var_20;
  type_6 uVar7;
  type_4 *type_4;
  type_4 **var_3;
  type_7 var_2;
  int *piVar10;
  size_t var_21;
  type_6 extraout_EDX;
  size_t sVar12;
  type_7 var_1;
  type_1 _Var14;
  bool bVar15;
  
  var_1 = type_3->count;
  var_2 = type_3->alloc;
  var_3 = type_3->lines;
  if (var_1 == var_2) {
    if (var_3 == (type_4 **)0x0) {
      if (var_2 == 0) {
        var_21 = 0x40;
        var_2 = 0x10;
      }
      else {
        var_21 = var_2 << 2;
        if (((int)var_21 < 0) || (var_2 >> 0x1e != 0)) goto LAB_000137ec;
      }
    }
    else {
      if (0x15555554 < var_2) {
LAB_000137ec:
                    /* WARNING: Subroutine does not return */
        var_4();
      }
      var_2 = var_2 + 1 + (var_2 >> 1);
      var_21 = var_2 * 4;
    }
    type_3->alloc = var_2;
    var_3 = (type_4 **)var_5(var_3,var_21);
    var_1 = type_3->count;
    type_3->lines = var_3;
    if (var_1 < type_3->alloc) {
      var_6(var_3 + var_1,0,(type_3->alloc - var_1) * 4);
    }
  }
  plVar2 = spareline[1];
  var_3 = var_3 + var_1;
  type_4 = *var_3;
  if (type_4 == prevline[1]) {
    *var_3 = spareline[1];
    spareline[1] = type_4;
    type_4 = plVar2;
  }
  if (type_4 == (type_4 *)0x0) {
    type_4 = (type_4 *)var_7(1,0x18);
    *var_3 = type_4;
  }
  else {
    type_4->nfields = 0;
  }
  var_9 = var_8(&type_4->buf,fp,eolchar);
  if (var_9 == (type_5 *)0x0) {
    if ((fp->_flags & 0x20) != 0) {
      uVar7 = var_10(0,"read error",5,extraout_EDX);
      piVar10 = var_11();
                    /* WARNING: Subroutine does not return */
      var_12(1,*piVar10,uVar7);
    }
    _Var14 = false;
    if (type_4 != (type_4 *)0x0) {
      var_13(type_4->fields);
      type_4->fields = (type_8 *)0x0;
      var_13((type_4->buf).buffer);
      (type_4->buf).buffer = (char *)0x0;
      return false;
    }
  }
  else {
    bVar15 = 0xfffffffe < (type_7)line_no[1];
    line_no[1]._0_4_ = (type_7)line_no[1] + 1;
    line_no[1]._4_4_ = line_no[1]._4_4_ + (type_7)bVar15;
    var_14(type_4);
    if ((((prevline[1] != (type_4 *)0x0) && (var_15 != var_16)) &&
        ((var_15 == var_17 || (var_18 != false)))) &&
       ((issued_disorder_warning[1] == false &&
        (var_20 = var_19((type_4 *)prevline[1]->nfields,(type_4 *)&prevline[1]->fields,type_4->nfields,
                        (size_t)&type_4->fields,(type_4 *)join_field_2,(type_4 *)join_field_2),
        iVar4 = line_no[1]._4_4_, var_2 = (type_7)line_no[1], pcVar3 = g_names[1], 0 < var_20)))) {
      var_21 = (type_4->buf).length;
      pcVar1 = (type_4->buf).buffer;
      sVar12 = 0;
      if (var_21 != 0) {
        if (pcVar1[var_21 - 1] == '\n') {
          var_21 = var_21 - 1;
        }
        sVar12 = 0x7fffffff;
        if (-1 < (int)var_21) {
          sVar12 = var_21;
        }
      }
      uVar7 = var_10(0,"%s:%llu: is not sorted: %.*s",5);
                    /* WARNING: Subroutine does not return */
      var_12(var_15 == var_17,0,uVar7,pcVar3,var_2,iVar4,sVar12,pcVar1);
    }
    prevline[1] = type_4;
    type_3->count = type_3->count + 1;
    _Var14 = true;
  }
  return _Var14;
}


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

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

undefined4 __regparm3 MASKED(byte *param_1,uint *param_2)

{
  int iVar1;
  int iVar2;
  undefined4 uVar3;
  int iVar4;
  uint uVar5;
  uint uVar6;
  int *piVar7;
  int iVar8;
  uint uVar9;
  undefined4 uVar10;
  bool bVar11;
  undefined8 uVar12;
  
  uVar9 = *param_2;
  uVar6 = param_2[1];
  uVar5 = param_2[2];
  if (uVar9 == uVar6) {
    if (uVar5 == 0) {
      if (uVar6 == 0) {
        iVar4 = 0x40;
        uVar6 = 0x10;
      }
      else {
        iVar4 = uVar6 << 2;
        if ((iVar4 < 0) || (uVar6 >> 0x1e != 0)) goto LAB_000137ec;
      }
    }
    else {
      if (0x15555554 < uVar6) {
LAB_000137ec:
                    /* WARNING: Subroutine does not return */
        FUN_00017250();
      }
      uVar6 = uVar6 + 1 + (uVar6 >> 1);
      iVar4 = uVar6 * 4;
    }
    param_2[1] = uVar6;
    uVar5 = FUN_00016fe0(uVar5,iVar4);
    uVar9 = *param_2;
    param_2[2] = uVar5;
    if (uVar9 < param_2[1]) {
      memset((void *)(uVar5 + uVar9 * 4),0,(param_2[1] - uVar9) * 4);
    }
  }
  iVar1 = DAT_000201f0;
  piVar7 = (int *)(uVar5 + uVar9 * 4);
  iVar4 = *piVar7;
  if (iVar4 == DAT_00020214) {
    *piVar7 = DAT_000201f0;
    DAT_000201f0 = iVar4;
    iVar4 = iVar1;
  }
  if (iVar4 == 0) {
    iVar4 = FUN_000171a0(1,0x18);
    *piVar7 = iVar4;
  }
  else {
    *(undefined4 *)(iVar4 + 0xc) = 0;
  }
  uVar12 = FUN_00014410(iVar4,param_1,(int)DAT_00020108);
  if ((int)uVar12 == 0) {
    if ((*param_1 & 0x20) != 0) {
      uVar10 = dcgettext(0,"read error",5,(int)((ulonglong)uVar12 >> 0x20));
      piVar7 = __errno_location();
                    /* WARNING: Subroutine does not return */
      error(1,*piVar7,uVar10);
    }
    uVar10 = 0;
    if (iVar4 != 0) {
      free(*(void **)(iVar4 + 0x14));
      *(undefined4 *)(iVar4 + 0x14) = 0;
      free(*(void **)(iVar4 + 8));
      *(undefined4 *)(iVar4 + 8) = 0;
      return 0;
    }
  }
  else {
    bVar11 = 0xfffffffe < DAT_00020208;
    DAT_00020208 = DAT_00020208 + 1;
    DAT_0002020c = DAT_0002020c + (uint)bVar11;
    FUN_00012f70();
    if ((((DAT_00020214 != 0) && (DAT_000201c4 != 2)) &&
        ((DAT_000201c4 == 1 || (DAT_000201e6 != '\0')))) &&
       ((DAT_000201e5 == '\0' &&
        (iVar2 = FUN_000128e0(iVar4 + 0x14,DAT_00020110,DAT_00020110), iVar1 = DAT_0002020c,
        uVar6 = DAT_00020208, uVar10 = DAT_000201f8, 0 < iVar2)))) {
      iVar2 = *(int *)(iVar4 + 4);
      iVar4 = *(int *)(iVar4 + 8);
      iVar8 = 0;
      if (iVar2 != 0) {
        if (*(char *)(iVar4 + -1 + iVar2) == '\n') {
          iVar2 = iVar2 + -1;
        }
        iVar8 = 0x7fffffff;
        if (-1 < iVar2) {
          iVar8 = iVar2;
        }
      }
      uVar3 = dcgettext(0,"%s:%llu: is not sorted: %.*s",5);
                    /* WARNING: Subroutine does not return */
      error(DAT_000201c4 == 1,0,uVar3,uVar10,uVar6,iVar1,iVar8,iVar4);
    }
    DAT_00020214 = iVar4;
    *param_2 = *param_2 + 1;
    uVar10 = 1;
  }
  return uVar10;
}

