
int main(int argc,char **argv)

{
  long lVar1;
  char *pcVar2;
  FILE *pFVar3;
  long lVar4;
  byte *pbVar5;
  byte *pbVar6;
  long in_FS_OFFSET;
  undefined1 uVar7;
  undefined1 uVar8;
  byte bVar9;
  char line [1024];
  
  bVar9 = 0;
  lVar1 = *(long *)(in_FS_OFFSET + 0x28);
  uVar7 = 0;
  uVar8 = 1;
  parse_args(argc,argv);
  init_tables();
  lVar4 = 2;
  pbVar5 = (byte *)infile;
  pbVar6 = &DAT_00104173;
  do {
    if (lVar4 == 0) break;
    lVar4 = lVar4 + -1;
    uVar7 = *pbVar5 < *pbVar6;
    uVar8 = *pbVar5 == *pbVar6;
    pbVar5 = pbVar5 + (ulong)bVar9 * -2 + 1;
    pbVar6 = pbVar6 + (ulong)bVar9 * -2 + 1;
  } while ((bool)uVar8);
  pFVar3 = stdin;
  if (((!(bool)uVar7 && !(bool)uVar8) == (bool)uVar7) ||
     (pFVar3 = fopen(infile,"r"), pFVar3 != (FILE *)0x0)) {
    errors = 0;
    linenum = 0;
    while (pcVar2 = fgets(line,0x400,pFVar3), pcVar2 != (char *)0x0) {
      linenum = linenum + 1;
      parse_line(line);
    }
  }
  else {
    perror(infile);
    usage();
  }
  if (errors < 1) {
    if ((outfile == (char *)0x0) && (outfile = getenv("LESSKEY"), outfile == (char *)0x0)) {
      outfile = homefile(".less");
    }
    pFVar3 = fopen(outfile,"wb");
    if (pFVar3 == (FILE *)0x0) {
      perror(outfile);
                    /* WARNING: Subroutine does not return */
      exit(1);
    }
    fputbytes((FILE *)pFVar3,fileheader,4);
    fputbytes((FILE *)pFVar3,cmdsection,1);
    fputint((FILE *)pFVar3,(int)cmdtable.pbuffer - 0x106a30);
    fputbytes((FILE *)pFVar3,cmdtable.buffer,(int)cmdtable.pbuffer + -0x106a30);
    fputbytes((FILE *)pFVar3,editsection,1);
    fputint((FILE *)pFVar3,(int)edittable.pbuffer - 0x106630);
    fputbytes((FILE *)pFVar3,edittable.buffer,(int)edittable.pbuffer + -0x106630);
    fputbytes((FILE *)pFVar3,varsection,1);
    fputint((FILE *)pFVar3,(int)vartable.pbuffer - 0x106e30);
    fputbytes((FILE *)pFVar3,vartable.buffer,(int)vartable.pbuffer + -0x106e30);
    fputbytes((FILE *)pFVar3,endsection,1);
    fputbytes((FILE *)pFVar3,filetrailer,3);
    if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
      __stack_chk_fail();
    }
    return 0;
  }
  __fprintf_chk(stderr,1,"%d errors; no output produced\n");
                    /* WARNING: Subroutine does not return */
  exit(1);
}



undefined8 FUN_00102d8f(void)

{
  char *pcVar1;
  FILE *pFVar2;
  long lVar3;
  byte *pbVar4;
  byte *pbVar5;
  long in_FS_OFFSET;
  undefined1 uVar6;
  undefined1 uVar7;
  byte bVar8;
  char acStack_428 [1032];
  long local_20;
  
  bVar8 = 0;
  local_20 = *(long *)(in_FS_OFFSET + 0x28);
  uVar6 = 0;
  uVar7 = 1;
  FUN_001022f5();
  FUN_001024a5();
  lVar3 = 2;
  pbVar4 = DAT_001065f8;
  pbVar5 = &DAT_00104173;
  do {
    if (lVar3 == 0) break;
    lVar3 = lVar3 + -1;
    uVar6 = *pbVar4 < *pbVar5;
    uVar7 = *pbVar4 == *pbVar5;
    pbVar4 = pbVar4 + (ulong)bVar8 * -2 + 1;
    pbVar5 = pbVar5 + (ulong)bVar8 * -2 + 1;
  } while ((bool)uVar7);
  pFVar2 = stdin;
  if (((!(bool)uVar6 && !(bool)uVar7) == (bool)uVar6) ||
     (pFVar2 = fopen((char *)DAT_001065f8,"r"), pFVar2 != (FILE *)0x0)) {
    DAT_00106e1c = 0;
    DAT_00106e18 = 0;
    while (pcVar1 = fgets(acStack_428,0x400,pFVar2), pcVar1 != (char *)0x0) {
      DAT_00106e18 = DAT_00106e18 + 1;
      FUN_00102d40(acStack_428);
    }
  }
  else {
    perror((char *)DAT_001065f8);
    FUN_001021f5();
  }
  if (DAT_00106e1c < 1) {
    if ((DAT_001065f0 == (char *)0x0) &&
       (DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0)) {
      DAT_001065f0 = (char *)FUN_00102296(".less");
    }
    pFVar2 = fopen(DAT_001065f0,"wb");
    if (pFVar2 == (FILE *)0x0) {
      perror(DAT_001065f0);
                    /* WARNING: Subroutine does not return */
      exit(1);
    }
    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 7,4);
    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 3,1);
    FUN_001025cd(pFVar2,DAT_00106a28 + -0x106a30);
    FUN_00102593(pFVar2,&DAT_00106a30,DAT_00106a28 + -0x106a30);
    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 2,1);
    FUN_001025cd(pFVar2,DAT_00106628 + -0x106630);
    FUN_00102593(pFVar2,&DAT_00106630,DAT_00106628 + -0x106630);
    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 1,1);
    FUN_001025cd(pFVar2,DAT_00106e28 + -0x106e30);
    FUN_00102593(pFVar2,&DAT_00106e30,DAT_00106e28 + -0x106e30);
    FUN_00102593(pFVar2,s_xvecEnd_00106017,1);
    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 4,3);
    if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
      __stack_chk_fail();
    }
    return 0;
  }
  __fprintf_chk(stderr,1,"%d errors; no output produced\n");
                    /* WARNING: Subroutine does not return */
  exit(1);
}


PUSH RBP
PUSH RBX
SUB RSP,0x418
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x408],RAX
XOR EAX,EAX
CALL 0x001022f5
MOV EAX,0x0
CALL 0x001024a5
MOV RDX,qword ptr [0x001065f8]
MOV ECX,0x2
LEA RDI,[0x104173]
MOV RSI,RDX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00102e24
MOV RBP,qword ptr [0x001065c0]
MOV dword ptr [0x00106e1c],0x0
MOV dword ptr [0x00106e18],0x0
MOV RBX,RSP
MOV RDX,RBP
MOV ESI,0x400
MOV RDI,RBX
CALL 0x00102060
TEST RAX,RAX
JZ 0x00102e51
ADD dword ptr [0x00106e18],0x1
MOV RDI,RBX
MOV EAX,0x0
CALL 0x00102d40
JMP 0x00102df9
LEA RSI,[0x1042a4]
MOV RDI,RDX
CALL 0x001020a0
MOV RBP,RAX
TEST RAX,RAX
JNZ 0x00102de2
MOV RDI,qword ptr [0x001065f8]
CALL 0x001020b0
MOV EAX,0x0
CALL 0x001021f5
MOV ECX,dword ptr [0x00106e1c]
TEST ECX,ECX
JG 0x00102fec
CMP qword ptr [0x001065f0],0x0
JZ 0x0010300e
LEA RSI,[0x104183]
MOV RDI,qword ptr [0x001065f0]
CALL 0x001020a0
MOV RBX,RAX
TEST RAX,RAX
JZ 0x00103042
MOV EDX,0x4
LEA RSI,[0x10601e]
MOV RDI,RAX
MOV EAX,0x0
CALL 0x00102593
MOV EDX,0x1
LEA RSI,[0x10601a]
MOV RDI,RBX
MOV EAX,0x0
CALL 0x00102593
LEA RBP,[0x106a30]
MOV RSI,qword ptr [0x00106a28]
SUB RSI,RBP
MOV RDI,RBX
MOV EAX,0x0
CALL 0x001025cd
MOV RDX,qword ptr [0x00106a28]
SUB RDX,RBP
MOV RSI,RBP
MOV RDI,RBX
MOV EAX,0x0
CALL 0x00102593
MOV EDX,0x1
LEA RSI,[0x106019]
MOV RDI,RBX
MOV EAX,0x0
CALL 0x00102593
LEA RBP,[0x106630]
MOV RSI,qword ptr [0x00106628]
SUB RSI,RBP
MOV RDI,RBX
MOV EAX,0x0
CALL 0x001025cd
MOV RDX,qword ptr [0x00106628]
SUB RDX,RBP
MOV RSI,RBP
MOV RDI,RBX
MOV EAX,0x0
CALL 0x00102593
MOV EDX,0x1
LEA RSI,[0x106018]
MOV RDI,RBX
MOV EAX,0x0
CALL 0x00102593
LEA RBP,[0x106e30]
MOV RSI,qword ptr [0x00106e28]
SUB RSI,RBP
MOV RDI,RBX
MOV EAX,0x0
CALL 0x001025cd
MOV RDX,qword ptr [0x00106e28]
SUB RDX,RBP
MOV RSI,RBP
MOV RDI,RBX
MOV EAX,0x0
CALL 0x00102593
MOV EDX,0x1
LEA RSI,[0x106017]
MOV RDI,RBX
MOV EAX,0x0
CALL 0x00102593
MOV EDX,0x3
LEA RSI,[0x10601b]
MOV RDI,RBX
MOV EAX,0x0
CALL 0x00102593
MOV EAX,0x0
MOV RCX,qword ptr [RSP + 0x408]
XOR RCX,qword ptr FS:[0x28]
JNZ 0x00103058
ADD RSP,0x418
POP RBX
POP RBP
RET
LEA RDX,[0x104088]
MOV ESI,0x1
MOV RDI,qword ptr [0x001065e0]
CALL 0x001020f0
MOV EDI,0x1
CALL 0x001020d0
LEA RDI,[0x104175]
CALL 0x00102030
MOV qword ptr [0x001065f0],RAX
TEST RAX,RAX
JNZ 0x00102e6d
LEA RDI,[0x10417d]
CALL 0x00102296
MOV qword ptr [0x001065f0],RAX
JMP 0x00102e6d
MOV RDI,qword ptr [0x001065f0]
CALL 0x001020b0
MOV EDI,0x1
CALL 0x001020d0
CALL 0x00102050
(translation_unit "undefined8 FUN_00102d8f(void)\n\n{\n  char *pcVar1;\n  FILE *pFVar2;\n  long lVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  long in_FS_OFFSET;\n  undefined1 uVar6;\n  undefined1 uVar7;\n  byte bVar8;\n  char acStack_428 [1032];\n  long local_20;\n  \n  bVar8 = 0;\n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar6 = 0;\n  uVar7 = 1;\n  FUN_001022f5();\n  FUN_001024a5();\n  lVar3 = 2;\n  pbVar4 = DAT_001065f8;\n  pbVar5 = &DAT_00104173;\n  do {\n    if (lVar3 == 0) break;\n    lVar3 = lVar3 + -1;\n    uVar6 = *pbVar4 < *pbVar5;\n    uVar7 = *pbVar4 == *pbVar5;\n    pbVar4 = pbVar4 + (ulong)bVar8 * -2 + 1;\n    pbVar5 = pbVar5 + (ulong)bVar8 * -2 + 1;\n  } while ((bool)uVar7);\n  pFVar2 = stdin;\n  if (((!(bool)uVar6 && !(bool)uVar7) == (bool)uVar6) ||\n     (pFVar2 = fopen((char *)DAT_001065f8,"r"), pFVar2 != (FILE *)0x0)) {\n    DAT_00106e1c = 0;\n    DAT_00106e18 = 0;\n    while (pcVar1 = fgets(acStack_428,0x400,pFVar2), pcVar1 != (char *)0x0) {\n      DAT_00106e18 = DAT_00106e18 + 1;\n      FUN_00102d40(acStack_428);\n    }\n  }\n  else {\n    perror((char *)DAT_001065f8);\n    FUN_001021f5();\n  }\n  if (DAT_00106e1c < 1) {\n    if ((DAT_001065f0 == (char *)0x0) &&\n       (DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0)) {\n      DAT_001065f0 = (char *)FUN_00102296(".less");\n    }\n    pFVar2 = fopen(DAT_001065f0,"wb");\n    if (pFVar2 == (FILE *)0x0) {\n      perror(DAT_001065f0);\n                    /* WARNING: Subroutine does not return */\n      exit(1);\n    }\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 7,4);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 3,1);\n    FUN_001025cd(pFVar2,DAT_00106a28 + -0x106a30);\n    FUN_00102593(pFVar2,&DAT_00106a30,DAT_00106a28 + -0x106a30);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 2,1);\n    FUN_001025cd(pFVar2,DAT_00106628 + -0x106630);\n    FUN_00102593(pFVar2,&DAT_00106630,DAT_00106628 + -0x106630);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 1,1);\n    FUN_001025cd(pFVar2,DAT_00106e28 + -0x106e30);\n    FUN_00102593(pFVar2,&DAT_00106e30,DAT_00106e28 + -0x106e30);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017,1);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 4,3);\n    if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail();\n    }\n    return 0;\n  }\n  __fprintf_chk(stderr,1,"%d errors; no output produced\n");\n                    /* WARNING: Subroutine does not return */\n  exit(1);\n}\n\n" (function_definition "undefined8 FUN_00102d8f(void)\n\n{\n  char *pcVar1;\n  FILE *pFVar2;\n  long lVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  long in_FS_OFFSET;\n  undefined1 uVar6;\n  undefined1 uVar7;\n  byte bVar8;\n  char acStack_428 [1032];\n  long local_20;\n  \n  bVar8 = 0;\n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar6 = 0;\n  uVar7 = 1;\n  FUN_001022f5();\n  FUN_001024a5();\n  lVar3 = 2;\n  pbVar4 = DAT_001065f8;\n  pbVar5 = &DAT_00104173;\n  do {\n    if (lVar3 == 0) break;\n    lVar3 = lVar3 + -1;\n    uVar6 = *pbVar4 < *pbVar5;\n    uVar7 = *pbVar4 == *pbVar5;\n    pbVar4 = pbVar4 + (ulong)bVar8 * -2 + 1;\n    pbVar5 = pbVar5 + (ulong)bVar8 * -2 + 1;\n  } while ((bool)uVar7);\n  pFVar2 = stdin;\n  if (((!(bool)uVar6 && !(bool)uVar7) == (bool)uVar6) ||\n     (pFVar2 = fopen((char *)DAT_001065f8,"r"), pFVar2 != (FILE *)0x0)) {\n    DAT_00106e1c = 0;\n    DAT_00106e18 = 0;\n    while (pcVar1 = fgets(acStack_428,0x400,pFVar2), pcVar1 != (char *)0x0) {\n      DAT_00106e18 = DAT_00106e18 + 1;\n      FUN_00102d40(acStack_428);\n    }\n  }\n  else {\n    perror((char *)DAT_001065f8);\n    FUN_001021f5();\n  }\n  if (DAT_00106e1c < 1) {\n    if ((DAT_001065f0 == (char *)0x0) &&\n       (DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0)) {\n      DAT_001065f0 = (char *)FUN_00102296(".less");\n    }\n    pFVar2 = fopen(DAT_001065f0,"wb");\n    if (pFVar2 == (FILE *)0x0) {\n      perror(DAT_001065f0);\n                    /* WARNING: Subroutine does not return */\n      exit(1);\n    }\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 7,4);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 3,1);\n    FUN_001025cd(pFVar2,DAT_00106a28 + -0x106a30);\n    FUN_00102593(pFVar2,&DAT_00106a30,DAT_00106a28 + -0x106a30);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 2,1);\n    FUN_001025cd(pFVar2,DAT_00106628 + -0x106630);\n    FUN_00102593(pFVar2,&DAT_00106630,DAT_00106628 + -0x106630);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 1,1);\n    FUN_001025cd(pFVar2,DAT_00106e28 + -0x106e30);\n    FUN_00102593(pFVar2,&DAT_00106e30,DAT_00106e28 + -0x106e30);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017,1);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 4,3);\n    if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail();\n    }\n    return 0;\n  }\n  __fprintf_chk(stderr,1,"%d errors; no output produced\n");\n                    /* WARNING: Subroutine does not return */\n  exit(1);\n}" type_identifier (function_declarator "FUN_00102d8f(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  char *pcVar1;\n  FILE *pFVar2;\n  long lVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  long in_FS_OFFSET;\n  undefined1 uVar6;\n  undefined1 uVar7;\n  byte bVar8;\n  char acStack_428 [1032];\n  long local_20;\n  \n  bVar8 = 0;\n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar6 = 0;\n  uVar7 = 1;\n  FUN_001022f5();\n  FUN_001024a5();\n  lVar3 = 2;\n  pbVar4 = DAT_001065f8;\n  pbVar5 = &DAT_00104173;\n  do {\n    if (lVar3 == 0) break;\n    lVar3 = lVar3 + -1;\n    uVar6 = *pbVar4 < *pbVar5;\n    uVar7 = *pbVar4 == *pbVar5;\n    pbVar4 = pbVar4 + (ulong)bVar8 * -2 + 1;\n    pbVar5 = pbVar5 + (ulong)bVar8 * -2 + 1;\n  } while ((bool)uVar7);\n  pFVar2 = stdin;\n  if (((!(bool)uVar6 && !(bool)uVar7) == (bool)uVar6) ||\n     (pFVar2 = fopen((char *)DAT_001065f8,"r"), pFVar2 != (FILE *)0x0)) {\n    DAT_00106e1c = 0;\n    DAT_00106e18 = 0;\n    while (pcVar1 = fgets(acStack_428,0x400,pFVar2), pcVar1 != (char *)0x0) {\n      DAT_00106e18 = DAT_00106e18 + 1;\n      FUN_00102d40(acStack_428);\n    }\n  }\n  else {\n    perror((char *)DAT_001065f8);\n    FUN_001021f5();\n  }\n  if (DAT_00106e1c < 1) {\n    if ((DAT_001065f0 == (char *)0x0) &&\n       (DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0)) {\n      DAT_001065f0 = (char *)FUN_00102296(".less");\n    }\n    pFVar2 = fopen(DAT_001065f0,"wb");\n    if (pFVar2 == (FILE *)0x0) {\n      perror(DAT_001065f0);\n                    /* WARNING: Subroutine does not return */\n      exit(1);\n    }\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 7,4);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 3,1);\n    FUN_001025cd(pFVar2,DAT_00106a28 + -0x106a30);\n    FUN_00102593(pFVar2,&DAT_00106a30,DAT_00106a28 + -0x106a30);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 2,1);\n    FUN_001025cd(pFVar2,DAT_00106628 + -0x106630);\n    FUN_00102593(pFVar2,&DAT_00106630,DAT_00106628 + -0x106630);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 1,1);\n    FUN_001025cd(pFVar2,DAT_00106e28 + -0x106e30);\n    FUN_00102593(pFVar2,&DAT_00106e30,DAT_00106e28 + -0x106e30);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017,1);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 4,3);\n    if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail();\n    }\n    return 0;\n  }\n  __fprintf_chk(stderr,1,"%d errors; no output produced\n");\n                    /* WARNING: Subroutine does not return */\n  exit(1);\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "FILE *pFVar2;" type_identifier (pointer_declarator "*pFVar2" * identifier) ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 uVar6;" type_identifier identifier ;) (declaration "undefined1 uVar7;" type_identifier identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "char acStack_428 [1032];" primitive_type (array_declarator "acStack_428 [1032]" identifier [ number_literal ]) ;) (declaration "long local_20;" (sized_type_specifier "long" long) identifier ;) (expression_statement "bVar8 = 0;" (assignment_expression "bVar8 = 0" identifier = number_literal) ;) (expression_statement "local_20 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_20 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "FUN_001022f5();" (call_expression "FUN_001022f5()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_001024a5();" (call_expression "FUN_001024a5()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar3 = 2;" (assignment_expression "lVar3 = 2" identifier = number_literal) ;) (expression_statement "pbVar4 = DAT_001065f8;" (assignment_expression "pbVar4 = DAT_001065f8" identifier = identifier) ;) (expression_statement "pbVar5 = &DAT_00104173;" (assignment_expression "pbVar5 = &DAT_00104173" identifier = (pointer_expression "&DAT_00104173" & identifier)) ;) (do_statement "do {\n    if (lVar3 == 0) break;\n    lVar3 = lVar3 + -1;\n    uVar6 = *pbVar4 < *pbVar5;\n    uVar7 = *pbVar4 == *pbVar5;\n    pbVar4 = pbVar4 + (ulong)bVar8 * -2 + 1;\n    pbVar5 = pbVar5 + (ulong)bVar8 * -2 + 1;\n  } while ((bool)uVar7);" do (compound_statement "{\n    if (lVar3 == 0) break;\n    lVar3 = lVar3 + -1;\n    uVar6 = *pbVar4 < *pbVar5;\n    uVar7 = *pbVar4 == *pbVar5;\n    pbVar4 = pbVar4 + (ulong)bVar8 * -2 + 1;\n    pbVar5 = pbVar5 + (ulong)bVar8 * -2 + 1;\n  }" { (if_statement "if (lVar3 == 0) break;" if (parenthesized_expression "(lVar3 == 0)" ( (binary_expression "lVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar3 = lVar3 + -1;" (assignment_expression "lVar3 = lVar3 + -1" identifier = (binary_expression "lVar3 + -1" identifier + number_literal)) ;) (expression_statement "uVar6 = *pbVar4 < *pbVar5;" (assignment_expression "uVar6 = *pbVar4 < *pbVar5" identifier = (binary_expression "*pbVar4 < *pbVar5" (pointer_expression "*pbVar4" * identifier) < (pointer_expression "*pbVar5" * identifier))) ;) (expression_statement "uVar7 = *pbVar4 == *pbVar5;" (assignment_expression "uVar7 = *pbVar4 == *pbVar5" identifier = (binary_expression "*pbVar4 == *pbVar5" (pointer_expression "*pbVar4" * identifier) == (pointer_expression "*pbVar5" * identifier))) ;) (expression_statement "pbVar4 = pbVar4 + (ulong)bVar8 * -2 + 1;" (assignment_expression "pbVar4 = pbVar4 + (ulong)bVar8 * -2 + 1" identifier = (binary_expression "pbVar4 + (ulong)bVar8 * -2 + 1" (binary_expression "pbVar4 + (ulong)bVar8 * -2" identifier + (binary_expression "(ulong)bVar8 * -2" (cast_expression "(ulong)bVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar5 = pbVar5 + (ulong)bVar8 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (ulong)bVar8 * -2 + 1" identifier = (binary_expression "pbVar5 + (ulong)bVar8 * -2 + 1" (binary_expression "pbVar5 + (ulong)bVar8 * -2" identifier + (binary_expression "(ulong)bVar8 * -2" (cast_expression "(ulong)bVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar7)" ( (cast_expression "(bool)uVar7" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "pFVar2 = stdin;" (assignment_expression "pFVar2 = stdin" identifier = identifier) ;) (if_statement "if (((!(bool)uVar6 && !(bool)uVar7) == (bool)uVar6) ||\n     (pFVar2 = fopen((char *)DAT_001065f8,"r"), pFVar2 != (FILE *)0x0)) {\n    DAT_00106e1c = 0;\n    DAT_00106e18 = 0;\n    while (pcVar1 = fgets(acStack_428,0x400,pFVar2), pcVar1 != (char *)0x0) {\n      DAT_00106e18 = DAT_00106e18 + 1;\n      FUN_00102d40(acStack_428);\n    }\n  }\n  else {\n    perror((char *)DAT_001065f8);\n    FUN_001021f5();\n  }" if (parenthesized_expression "(((!(bool)uVar6 && !(bool)uVar7) == (bool)uVar6) ||\n     (pFVar2 = fopen((char *)DAT_001065f8,"r"), pFVar2 != (FILE *)0x0))" ( (binary_expression "((!(bool)uVar6 && !(bool)uVar7) == (bool)uVar6) ||\n     (pFVar2 = fopen((char *)DAT_001065f8,"r"), pFVar2 != (FILE *)0x0)" (parenthesized_expression "((!(bool)uVar6 && !(bool)uVar7) == (bool)uVar6)" ( (binary_expression "(!(bool)uVar6 && !(bool)uVar7) == (bool)uVar6" (parenthesized_expression "(!(bool)uVar6 && !(bool)uVar7)" ( (binary_expression "!(bool)uVar6 && !(bool)uVar7" (unary_expression "!(bool)uVar6" ! (cast_expression "(bool)uVar6" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar7" ! (cast_expression "(bool)uVar7" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar6" ( (type_descriptor "bool" primitive_type) ) identifier)) )) || (parenthesized_expression "(pFVar2 = fopen((char *)DAT_001065f8,"r"), pFVar2 != (FILE *)0x0)" ( (comma_expression "pFVar2 = fopen((char *)DAT_001065f8,"r"), pFVar2 != (FILE *)0x0" (assignment_expression "pFVar2 = fopen((char *)DAT_001065f8,"r")" identifier = (call_expression "fopen((char *)DAT_001065f8,"r")" identifier (argument_list "((char *)DAT_001065f8,"r")" ( (cast_expression "(char *)DAT_001065f8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""r"" " string_content ") )))) , (binary_expression "pFVar2 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    DAT_00106e1c = 0;\n    DAT_00106e18 = 0;\n    while (pcVar1 = fgets(acStack_428,0x400,pFVar2), pcVar1 != (char *)0x0) {\n      DAT_00106e18 = DAT_00106e18 + 1;\n      FUN_00102d40(acStack_428);\n    }\n  }" { (expression_statement "DAT_00106e1c = 0;" (assignment_expression "DAT_00106e1c = 0" identifier = number_literal) ;) (expression_statement "DAT_00106e18 = 0;" (assignment_expression "DAT_00106e18 = 0" identifier = number_literal) ;) (while_statement "while (pcVar1 = fgets(acStack_428,0x400,pFVar2), pcVar1 != (char *)0x0) {\n      DAT_00106e18 = DAT_00106e18 + 1;\n      FUN_00102d40(acStack_428);\n    }" while (parenthesized_expression "(pcVar1 = fgets(acStack_428,0x400,pFVar2), pcVar1 != (char *)0x0)" ( (comma_expression "pcVar1 = fgets(acStack_428,0x400,pFVar2), pcVar1 != (char *)0x0" (assignment_expression "pcVar1 = fgets(acStack_428,0x400,pFVar2)" identifier = (call_expression "fgets(acStack_428,0x400,pFVar2)" identifier (argument_list "(acStack_428,0x400,pFVar2)" ( identifier , number_literal , identifier )))) , (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n      DAT_00106e18 = DAT_00106e18 + 1;\n      FUN_00102d40(acStack_428);\n    }" { (expression_statement "DAT_00106e18 = DAT_00106e18 + 1;" (assignment_expression "DAT_00106e18 = DAT_00106e18 + 1" identifier = (binary_expression "DAT_00106e18 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00102d40(acStack_428);" (call_expression "FUN_00102d40(acStack_428)" identifier (argument_list "(acStack_428)" ( identifier ))) ;) })) }) (else_clause "else {\n    perror((char *)DAT_001065f8);\n    FUN_001021f5();\n  }" else (compound_statement "{\n    perror((char *)DAT_001065f8);\n    FUN_001021f5();\n  }" { (expression_statement "perror((char *)DAT_001065f8);" (call_expression "perror((char *)DAT_001065f8)" identifier (argument_list "((char *)DAT_001065f8)" ( (cast_expression "(char *)DAT_001065f8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "FUN_001021f5();" (call_expression "FUN_001021f5()" identifier (argument_list "()" ( ))) ;) }))) (if_statement "if (DAT_00106e1c < 1) {\n    if ((DAT_001065f0 == (char *)0x0) &&\n       (DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0)) {\n      DAT_001065f0 = (char *)FUN_00102296(".less");\n    }\n    pFVar2 = fopen(DAT_001065f0,"wb");\n    if (pFVar2 == (FILE *)0x0) {\n      perror(DAT_001065f0);\n                    /* WARNING: Subroutine does not return */\n      exit(1);\n    }\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 7,4);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 3,1);\n    FUN_001025cd(pFVar2,DAT_00106a28 + -0x106a30);\n    FUN_00102593(pFVar2,&DAT_00106a30,DAT_00106a28 + -0x106a30);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 2,1);\n    FUN_001025cd(pFVar2,DAT_00106628 + -0x106630);\n    FUN_00102593(pFVar2,&DAT_00106630,DAT_00106628 + -0x106630);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 1,1);\n    FUN_001025cd(pFVar2,DAT_00106e28 + -0x106e30);\n    FUN_00102593(pFVar2,&DAT_00106e30,DAT_00106e28 + -0x106e30);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017,1);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 4,3);\n    if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail();\n    }\n    return 0;\n  }" if (parenthesized_expression "(DAT_00106e1c < 1)" ( (binary_expression "DAT_00106e1c < 1" identifier < number_literal) )) (compound_statement "{\n    if ((DAT_001065f0 == (char *)0x0) &&\n       (DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0)) {\n      DAT_001065f0 = (char *)FUN_00102296(".less");\n    }\n    pFVar2 = fopen(DAT_001065f0,"wb");\n    if (pFVar2 == (FILE *)0x0) {\n      perror(DAT_001065f0);\n                    /* WARNING: Subroutine does not return */\n      exit(1);\n    }\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 7,4);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 3,1);\n    FUN_001025cd(pFVar2,DAT_00106a28 + -0x106a30);\n    FUN_00102593(pFVar2,&DAT_00106a30,DAT_00106a28 + -0x106a30);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 2,1);\n    FUN_001025cd(pFVar2,DAT_00106628 + -0x106630);\n    FUN_00102593(pFVar2,&DAT_00106630,DAT_00106628 + -0x106630);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 1,1);\n    FUN_001025cd(pFVar2,DAT_00106e28 + -0x106e30);\n    FUN_00102593(pFVar2,&DAT_00106e30,DAT_00106e28 + -0x106e30);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017,1);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 4,3);\n    if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail();\n    }\n    return 0;\n  }" { (if_statement "if ((DAT_001065f0 == (char *)0x0) &&\n       (DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0)) {\n      DAT_001065f0 = (char *)FUN_00102296(".less");\n    }" if (parenthesized_expression "((DAT_001065f0 == (char *)0x0) &&\n       (DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0))" ( (binary_expression "(DAT_001065f0 == (char *)0x0) &&\n       (DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0)" (parenthesized_expression "(DAT_001065f0 == (char *)0x0)" ( (binary_expression "DAT_001065f0 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0)" ( (comma_expression "DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0" (assignment_expression "DAT_001065f0 = getenv("LESSKEY")" identifier = (call_expression "getenv("LESSKEY")" identifier (argument_list "("LESSKEY")" ( (string_literal ""LESSKEY"" " string_content ") )))) , (binary_expression "DAT_001065f0 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      DAT_001065f0 = (char *)FUN_00102296(".less");\n    }" { (expression_statement "DAT_001065f0 = (char *)FUN_00102296(".less");" (assignment_expression "DAT_001065f0 = (char *)FUN_00102296(".less")" identifier = (cast_expression "(char *)FUN_00102296(".less")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00102296(".less")" identifier (argument_list "(".less")" ( (string_literal "".less"" " string_content ") ))))) ;) })) (expression_statement "pFVar2 = fopen(DAT_001065f0,"wb");" (assignment_expression "pFVar2 = fopen(DAT_001065f0,"wb")" identifier = (call_expression "fopen(DAT_001065f0,"wb")" identifier (argument_list "(DAT_001065f0,"wb")" ( identifier , (string_literal ""wb"" " string_content ") )))) ;) (if_statement "if (pFVar2 == (FILE *)0x0) {\n      perror(DAT_001065f0);\n                    /* WARNING: Subroutine does not return */\n      exit(1);\n    }" if (parenthesized_expression "(pFVar2 == (FILE *)0x0)" ( (binary_expression "pFVar2 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      perror(DAT_001065f0);\n                    /* WARNING: Subroutine does not return */\n      exit(1);\n    }" { (expression_statement "perror(DAT_001065f0);" (call_expression "perror(DAT_001065f0)" identifier (argument_list "(DAT_001065f0)" ( identifier ))) ;) comment (expression_statement "exit(1);" (call_expression "exit(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (expression_statement "FUN_00102593(pFVar2,s_xvecEnd_00106017 + 7,4);" (call_expression "FUN_00102593(pFVar2,s_xvecEnd_00106017 + 7,4)" identifier (argument_list "(pFVar2,s_xvecEnd_00106017 + 7,4)" ( identifier , (binary_expression "s_xvecEnd_00106017 + 7" identifier + number_literal) , number_literal ))) ;) (expression_statement "FUN_00102593(pFVar2,s_xvecEnd_00106017 + 3,1);" (call_expression "FUN_00102593(pFVar2,s_xvecEnd_00106017 + 3,1)" identifier (argument_list "(pFVar2,s_xvecEnd_00106017 + 3,1)" ( identifier , (binary_expression "s_xvecEnd_00106017 + 3" identifier + number_literal) , number_literal ))) ;) (expression_statement "FUN_001025cd(pFVar2,DAT_00106a28 + -0x106a30);" (call_expression "FUN_001025cd(pFVar2,DAT_00106a28 + -0x106a30)" identifier (argument_list "(pFVar2,DAT_00106a28 + -0x106a30)" ( identifier , (binary_expression "DAT_00106a28 + -0x106a30" identifier + number_literal) ))) ;) (expression_statement "FUN_00102593(pFVar2,&DAT_00106a30,DAT_00106a28 + -0x106a30);" (call_expression "FUN_00102593(pFVar2,&DAT_00106a30,DAT_00106a28 + -0x106a30)" identifier (argument_list "(pFVar2,&DAT_00106a30,DAT_00106a28 + -0x106a30)" ( identifier , (pointer_expression "&DAT_00106a30" & identifier) , (binary_expression "DAT_00106a28 + -0x106a30" identifier + number_literal) ))) ;) (expression_statement "FUN_00102593(pFVar2,s_xvecEnd_00106017 + 2,1);" (call_expression "FUN_00102593(pFVar2,s_xvecEnd_00106017 + 2,1)" identifier (argument_list "(pFVar2,s_xvecEnd_00106017 + 2,1)" ( identifier , (binary_expression "s_xvecEnd_00106017 + 2" identifier + number_literal) , number_literal ))) ;) (expression_statement "FUN_001025cd(pFVar2,DAT_00106628 + -0x106630);" (call_expression "FUN_001025cd(pFVar2,DAT_00106628 + -0x106630)" identifier (argument_list "(pFVar2,DAT_00106628 + -0x106630)" ( identifier , (binary_expression "DAT_00106628 + -0x106630" identifier + number_literal) ))) ;) (expression_statement "FUN_00102593(pFVar2,&DAT_00106630,DAT_00106628 + -0x106630);" (call_expression "FUN_00102593(pFVar2,&DAT_00106630,DAT_00106628 + -0x106630)" identifier (argument_list "(pFVar2,&DAT_00106630,DAT_00106628 + -0x106630)" ( identifier , (pointer_expression "&DAT_00106630" & identifier) , (binary_expression "DAT_00106628 + -0x106630" identifier + number_literal) ))) ;) (expression_statement "FUN_00102593(pFVar2,s_xvecEnd_00106017 + 1,1);" (call_expression "FUN_00102593(pFVar2,s_xvecEnd_00106017 + 1,1)" identifier (argument_list "(pFVar2,s_xvecEnd_00106017 + 1,1)" ( identifier , (binary_expression "s_xvecEnd_00106017 + 1" identifier + number_literal) , number_literal ))) ;) (expression_statement "FUN_001025cd(pFVar2,DAT_00106e28 + -0x106e30);" (call_expression "FUN_001025cd(pFVar2,DAT_00106e28 + -0x106e30)" identifier (argument_list "(pFVar2,DAT_00106e28 + -0x106e30)" ( identifier , (binary_expression "DAT_00106e28 + -0x106e30" identifier + number_literal) ))) ;) (expression_statement "FUN_00102593(pFVar2,&DAT_00106e30,DAT_00106e28 + -0x106e30);" (call_expression "FUN_00102593(pFVar2,&DAT_00106e30,DAT_00106e28 + -0x106e30)" identifier (argument_list "(pFVar2,&DAT_00106e30,DAT_00106e28 + -0x106e30)" ( identifier , (pointer_expression "&DAT_00106e30" & identifier) , (binary_expression "DAT_00106e28 + -0x106e30" identifier + number_literal) ))) ;) (expression_statement "FUN_00102593(pFVar2,s_xvecEnd_00106017,1);" (call_expression "FUN_00102593(pFVar2,s_xvecEnd_00106017,1)" identifier (argument_list "(pFVar2,s_xvecEnd_00106017,1)" ( identifier , identifier , number_literal ))) ;) (expression_statement "FUN_00102593(pFVar2,s_xvecEnd_00106017 + 4,3);" (call_expression "FUN_00102593(pFVar2,s_xvecEnd_00106017 + 4,3)" identifier (argument_list "(pFVar2,s_xvecEnd_00106017 + 4,3)" ( identifier , (binary_expression "s_xvecEnd_00106017 + 4" identifier + number_literal) , number_literal ))) ;) (if_statement "if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail();\n    }" if (parenthesized_expression "(local_20 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_20 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail();\n    }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return 0;" return number_literal ;) })) (expression_statement "__fprintf_chk(stderr,1,"%d errors; no output produced\n");" (call_expression "__fprintf_chk(stderr,1,"%d errors; no output produced\n")" identifier (argument_list "(stderr,1,"%d errors; no output produced\n")" ( identifier , number_literal , (string_literal ""%d errors; no output produced\n"" " string_content escape_sequence ") ))) ;) comment (expression_statement "exit(1);" (call_expression "exit(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })))
(translation_unit "int main(int argc,char **argv)\n\n{\n  long lVar1;\n  char *pcVar2;\n  FILE *pFVar3;\n  long lVar4;\n  byte *pbVar5;\n  byte *pbVar6;\n  long in_FS_OFFSET;\n  undefined1 uVar7;\n  undefined1 uVar8;\n  byte bVar9;\n  char line [1024];\n  \n  bVar9 = 0;\n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar7 = 0;\n  uVar8 = 1;\n  parse_args(argc,argv);\n  init_tables();\n  lVar4 = 2;\n  pbVar5 = (byte *)infile;\n  pbVar6 = &DAT_00104173;\n  do {\n    if (lVar4 == 0) break;\n    lVar4 = lVar4 + -1;\n    uVar7 = *pbVar5 < *pbVar6;\n    uVar8 = *pbVar5 == *pbVar6;\n    pbVar5 = pbVar5 + (ulong)bVar9 * -2 + 1;\n    pbVar6 = pbVar6 + (ulong)bVar9 * -2 + 1;\n  } while ((bool)uVar8);\n  pFVar3 = stdin;\n  if (((!(bool)uVar7 && !(bool)uVar8) == (bool)uVar7) ||\n     (pFVar3 = fopen(infile,"r"), pFVar3 != (FILE *)0x0)) {\n    errors = 0;\n    linenum = 0;\n    while (pcVar2 = fgets(line,0x400,pFVar3), pcVar2 != (char *)0x0) {\n      linenum = linenum + 1;\n      parse_line(line);\n    }\n  }\n  else {\n    perror(infile);\n    usage();\n  }\n  if (errors < 1) {\n    if ((outfile == (char *)0x0) && (outfile = getenv("LESSKEY"), outfile == (char *)0x0)) {\n      outfile = homefile(".less");\n    }\n    pFVar3 = fopen(outfile,"wb");\n    if (pFVar3 == (FILE *)0x0) {\n      perror(outfile);\n                    /* WARNING: Subroutine does not return */\n      exit(1);\n    }\n    fputbytes((FILE *)pFVar3,fileheader,4);\n    fputbytes((FILE *)pFVar3,cmdsection,1);\n    fputint((FILE *)pFVar3,(int)cmdtable.pbuffer - 0x106a30);\n    fputbytes((FILE *)pFVar3,cmdtable.buffer,(int)cmdtable.pbuffer + -0x106a30);\n    fputbytes((FILE *)pFVar3,editsection,1);\n    fputint((FILE *)pFVar3,(int)edittable.pbuffer - 0x106630);\n    fputbytes((FILE *)pFVar3,edittable.buffer,(int)edittable.pbuffer + -0x106630);\n    fputbytes((FILE *)pFVar3,varsection,1);\n    fputint((FILE *)pFVar3,(int)vartable.pbuffer - 0x106e30);\n    fputbytes((FILE *)pFVar3,vartable.buffer,(int)vartable.pbuffer + -0x106e30);\n    fputbytes((FILE *)pFVar3,endsection,1);\n    fputbytes((FILE *)pFVar3,filetrailer,3);\n    if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail();\n    }\n    return 0;\n  }\n  __fprintf_chk(stderr,1,"%d errors; no output produced\n");\n                    /* WARNING: Subroutine does not return */\n  exit(1);\n}\n\n" (function_definition "int main(int argc,char **argv)\n\n{\n  long lVar1;\n  char *pcVar2;\n  FILE *pFVar3;\n  long lVar4;\n  byte *pbVar5;\n  byte *pbVar6;\n  long in_FS_OFFSET;\n  undefined1 uVar7;\n  undefined1 uVar8;\n  byte bVar9;\n  char line [1024];\n  \n  bVar9 = 0;\n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar7 = 0;\n  uVar8 = 1;\n  parse_args(argc,argv);\n  init_tables();\n  lVar4 = 2;\n  pbVar5 = (byte *)infile;\n  pbVar6 = &DAT_00104173;\n  do {\n    if (lVar4 == 0) break;\n    lVar4 = lVar4 + -1;\n    uVar7 = *pbVar5 < *pbVar6;\n    uVar8 = *pbVar5 == *pbVar6;\n    pbVar5 = pbVar5 + (ulong)bVar9 * -2 + 1;\n    pbVar6 = pbVar6 + (ulong)bVar9 * -2 + 1;\n  } while ((bool)uVar8);\n  pFVar3 = stdin;\n  if (((!(bool)uVar7 && !(bool)uVar8) == (bool)uVar7) ||\n     (pFVar3 = fopen(infile,"r"), pFVar3 != (FILE *)0x0)) {\n    errors = 0;\n    linenum = 0;\n    while (pcVar2 = fgets(line,0x400,pFVar3), pcVar2 != (char *)0x0) {\n      linenum = linenum + 1;\n      parse_line(line);\n    }\n  }\n  else {\n    perror(infile);\n    usage();\n  }\n  if (errors < 1) {\n    if ((outfile == (char *)0x0) && (outfile = getenv("LESSKEY"), outfile == (char *)0x0)) {\n      outfile = homefile(".less");\n    }\n    pFVar3 = fopen(outfile,"wb");\n    if (pFVar3 == (FILE *)0x0) {\n      perror(outfile);\n                    /* WARNING: Subroutine does not return */\n      exit(1);\n    }\n    fputbytes((FILE *)pFVar3,fileheader,4);\n    fputbytes((FILE *)pFVar3,cmdsection,1);\n    fputint((FILE *)pFVar3,(int)cmdtable.pbuffer - 0x106a30);\n    fputbytes((FILE *)pFVar3,cmdtable.buffer,(int)cmdtable.pbuffer + -0x106a30);\n    fputbytes((FILE *)pFVar3,editsection,1);\n    fputint((FILE *)pFVar3,(int)edittable.pbuffer - 0x106630);\n    fputbytes((FILE *)pFVar3,edittable.buffer,(int)edittable.pbuffer + -0x106630);\n    fputbytes((FILE *)pFVar3,varsection,1);\n    fputint((FILE *)pFVar3,(int)vartable.pbuffer - 0x106e30);\n    fputbytes((FILE *)pFVar3,vartable.buffer,(int)vartable.pbuffer + -0x106e30);\n    fputbytes((FILE *)pFVar3,endsection,1);\n    fputbytes((FILE *)pFVar3,filetrailer,3);\n    if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail();\n    }\n    return 0;\n  }\n  __fprintf_chk(stderr,1,"%d errors; no output produced\n");\n                    /* WARNING: Subroutine does not return */\n  exit(1);\n}" primitive_type (function_declarator "main(int argc,char **argv)" identifier (parameter_list "(int argc,char **argv)" ( (parameter_declaration "int argc" primitive_type identifier) , (parameter_declaration "char **argv" primitive_type (pointer_declarator "**argv" * (pointer_declarator "*argv" * identifier))) ))) (compound_statement "{\n  long lVar1;\n  char *pcVar2;\n  FILE *pFVar3;\n  long lVar4;\n  byte *pbVar5;\n  byte *pbVar6;\n  long in_FS_OFFSET;\n  undefined1 uVar7;\n  undefined1 uVar8;\n  byte bVar9;\n  char line [1024];\n  \n  bVar9 = 0;\n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar7 = 0;\n  uVar8 = 1;\n  parse_args(argc,argv);\n  init_tables();\n  lVar4 = 2;\n  pbVar5 = (byte *)infile;\n  pbVar6 = &DAT_00104173;\n  do {\n    if (lVar4 == 0) break;\n    lVar4 = lVar4 + -1;\n    uVar7 = *pbVar5 < *pbVar6;\n    uVar8 = *pbVar5 == *pbVar6;\n    pbVar5 = pbVar5 + (ulong)bVar9 * -2 + 1;\n    pbVar6 = pbVar6 + (ulong)bVar9 * -2 + 1;\n  } while ((bool)uVar8);\n  pFVar3 = stdin;\n  if (((!(bool)uVar7 && !(bool)uVar8) == (bool)uVar7) ||\n     (pFVar3 = fopen(infile,"r"), pFVar3 != (FILE *)0x0)) {\n    errors = 0;\n    linenum = 0;\n    while (pcVar2 = fgets(line,0x400,pFVar3), pcVar2 != (char *)0x0) {\n      linenum = linenum + 1;\n      parse_line(line);\n    }\n  }\n  else {\n    perror(infile);\n    usage();\n  }\n  if (errors < 1) {\n    if ((outfile == (char *)0x0) && (outfile = getenv("LESSKEY"), outfile == (char *)0x0)) {\n      outfile = homefile(".less");\n    }\n    pFVar3 = fopen(outfile,"wb");\n    if (pFVar3 == (FILE *)0x0) {\n      perror(outfile);\n                    /* WARNING: Subroutine does not return */\n      exit(1);\n    }\n    fputbytes((FILE *)pFVar3,fileheader,4);\n    fputbytes((FILE *)pFVar3,cmdsection,1);\n    fputint((FILE *)pFVar3,(int)cmdtable.pbuffer - 0x106a30);\n    fputbytes((FILE *)pFVar3,cmdtable.buffer,(int)cmdtable.pbuffer + -0x106a30);\n    fputbytes((FILE *)pFVar3,editsection,1);\n    fputint((FILE *)pFVar3,(int)edittable.pbuffer - 0x106630);\n    fputbytes((FILE *)pFVar3,edittable.buffer,(int)edittable.pbuffer + -0x106630);\n    fputbytes((FILE *)pFVar3,varsection,1);\n    fputint((FILE *)pFVar3,(int)vartable.pbuffer - 0x106e30);\n    fputbytes((FILE *)pFVar3,vartable.buffer,(int)vartable.pbuffer + -0x106e30);\n    fputbytes((FILE *)pFVar3,endsection,1);\n    fputbytes((FILE *)pFVar3,filetrailer,3);\n    if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail();\n    }\n    return 0;\n  }\n  __fprintf_chk(stderr,1,"%d errors; no output produced\n");\n                    /* WARNING: Subroutine does not return */\n  exit(1);\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "FILE *pFVar3;" type_identifier (pointer_declarator "*pFVar3" * identifier) ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 uVar7;" type_identifier identifier ;) (declaration "undefined1 uVar8;" type_identifier identifier ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "char line [1024];" primitive_type (array_declarator "line [1024]" identifier [ number_literal ]) ;) (expression_statement "bVar9 = 0;" (assignment_expression "bVar9 = 0" identifier = number_literal) ;) (expression_statement "lVar1 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar1 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (expression_statement "parse_args(argc,argv);" (call_expression "parse_args(argc,argv)" identifier (argument_list "(argc,argv)" ( identifier , identifier ))) ;) (expression_statement "init_tables();" (call_expression "init_tables()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar4 = 2;" (assignment_expression "lVar4 = 2" identifier = number_literal) ;) (expression_statement "pbVar5 = (byte *)infile;" (assignment_expression "pbVar5 = (byte *)infile" identifier = (cast_expression "(byte *)infile" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar6 = &DAT_00104173;" (assignment_expression "pbVar6 = &DAT_00104173" identifier = (pointer_expression "&DAT_00104173" & identifier)) ;) (do_statement "do {\n    if (lVar4 == 0) break;\n    lVar4 = lVar4 + -1;\n    uVar7 = *pbVar5 < *pbVar6;\n    uVar8 = *pbVar5 == *pbVar6;\n    pbVar5 = pbVar5 + (ulong)bVar9 * -2 + 1;\n    pbVar6 = pbVar6 + (ulong)bVar9 * -2 + 1;\n  } while ((bool)uVar8);" do (compound_statement "{\n    if (lVar4 == 0) break;\n    lVar4 = lVar4 + -1;\n    uVar7 = *pbVar5 < *pbVar6;\n    uVar8 = *pbVar5 == *pbVar6;\n    pbVar5 = pbVar5 + (ulong)bVar9 * -2 + 1;\n    pbVar6 = pbVar6 + (ulong)bVar9 * -2 + 1;\n  }" { (if_statement "if (lVar4 == 0) break;" if (parenthesized_expression "(lVar4 == 0)" ( (binary_expression "lVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar4 = lVar4 + -1;" (assignment_expression "lVar4 = lVar4 + -1" identifier = (binary_expression "lVar4 + -1" identifier + number_literal)) ;) (expression_statement "uVar7 = *pbVar5 < *pbVar6;" (assignment_expression "uVar7 = *pbVar5 < *pbVar6" identifier = (binary_expression "*pbVar5 < *pbVar6" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar6" * identifier))) ;) (expression_statement "uVar8 = *pbVar5 == *pbVar6;" (assignment_expression "uVar8 = *pbVar5 == *pbVar6" identifier = (binary_expression "*pbVar5 == *pbVar6" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar6" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (ulong)bVar9 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (ulong)bVar9 * -2 + 1" identifier = (binary_expression "pbVar5 + (ulong)bVar9 * -2 + 1" (binary_expression "pbVar5 + (ulong)bVar9 * -2" identifier + (binary_expression "(ulong)bVar9 * -2" (cast_expression "(ulong)bVar9" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar6 = pbVar6 + (ulong)bVar9 * -2 + 1;" (assignment_expression "pbVar6 = pbVar6 + (ulong)bVar9 * -2 + 1" identifier = (binary_expression "pbVar6 + (ulong)bVar9 * -2 + 1" (binary_expression "pbVar6 + (ulong)bVar9 * -2" identifier + (binary_expression "(ulong)bVar9 * -2" (cast_expression "(ulong)bVar9" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar8)" ( (cast_expression "(bool)uVar8" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "pFVar3 = stdin;" (assignment_expression "pFVar3 = stdin" identifier = identifier) ;) (if_statement "if (((!(bool)uVar7 && !(bool)uVar8) == (bool)uVar7) ||\n     (pFVar3 = fopen(infile,"r"), pFVar3 != (FILE *)0x0)) {\n    errors = 0;\n    linenum = 0;\n    while (pcVar2 = fgets(line,0x400,pFVar3), pcVar2 != (char *)0x0) {\n      linenum = linenum + 1;\n      parse_line(line);\n    }\n  }\n  else {\n    perror(infile);\n    usage();\n  }" if (parenthesized_expression "(((!(bool)uVar7 && !(bool)uVar8) == (bool)uVar7) ||\n     (pFVar3 = fopen(infile,"r"), pFVar3 != (FILE *)0x0))" ( (binary_expression "((!(bool)uVar7 && !(bool)uVar8) == (bool)uVar7) ||\n     (pFVar3 = fopen(infile,"r"), pFVar3 != (FILE *)0x0)" (parenthesized_expression "((!(bool)uVar7 && !(bool)uVar8) == (bool)uVar7)" ( (binary_expression "(!(bool)uVar7 && !(bool)uVar8) == (bool)uVar7" (parenthesized_expression "(!(bool)uVar7 && !(bool)uVar8)" ( (binary_expression "!(bool)uVar7 && !(bool)uVar8" (unary_expression "!(bool)uVar7" ! (cast_expression "(bool)uVar7" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar8" ! (cast_expression "(bool)uVar8" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar7" ( (type_descriptor "bool" primitive_type) ) identifier)) )) || (parenthesized_expression "(pFVar3 = fopen(infile,"r"), pFVar3 != (FILE *)0x0)" ( (comma_expression "pFVar3 = fopen(infile,"r"), pFVar3 != (FILE *)0x0" (assignment_expression "pFVar3 = fopen(infile,"r")" identifier = (call_expression "fopen(infile,"r")" identifier (argument_list "(infile,"r")" ( identifier , (string_literal ""r"" " string_content ") )))) , (binary_expression "pFVar3 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    errors = 0;\n    linenum = 0;\n    while (pcVar2 = fgets(line,0x400,pFVar3), pcVar2 != (char *)0x0) {\n      linenum = linenum + 1;\n      parse_line(line);\n    }\n  }" { (expression_statement "errors = 0;" (assignment_expression "errors = 0" identifier = number_literal) ;) (expression_statement "linenum = 0;" (assignment_expression "linenum = 0" identifier = number_literal) ;) (while_statement "while (pcVar2 = fgets(line,0x400,pFVar3), pcVar2 != (char *)0x0) {\n      linenum = linenum + 1;\n      parse_line(line);\n    }" while (parenthesized_expression "(pcVar2 = fgets(line,0x400,pFVar3), pcVar2 != (char *)0x0)" ( (comma_expression "pcVar2 = fgets(line,0x400,pFVar3), pcVar2 != (char *)0x0" (assignment_expression "pcVar2 = fgets(line,0x400,pFVar3)" identifier = (call_expression "fgets(line,0x400,pFVar3)" identifier (argument_list "(line,0x400,pFVar3)" ( identifier , number_literal , identifier )))) , (binary_expression "pcVar2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n      linenum = linenum + 1;\n      parse_line(line);\n    }" { (expression_statement "linenum = linenum + 1;" (assignment_expression "linenum = linenum + 1" identifier = (binary_expression "linenum + 1" identifier + number_literal)) ;) (expression_statement "parse_line(line);" (call_expression "parse_line(line)" identifier (argument_list "(line)" ( identifier ))) ;) })) }) (else_clause "else {\n    perror(infile);\n    usage();\n  }" else (compound_statement "{\n    perror(infile);\n    usage();\n  }" { (expression_statement "perror(infile);" (call_expression "perror(infile)" identifier (argument_list "(infile)" ( identifier ))) ;) (expression_statement "usage();" (call_expression "usage()" identifier (argument_list "()" ( ))) ;) }))) (if_statement "if (errors < 1) {\n    if ((outfile == (char *)0x0) && (outfile = getenv("LESSKEY"), outfile == (char *)0x0)) {\n      outfile = homefile(".less");\n    }\n    pFVar3 = fopen(outfile,"wb");\n    if (pFVar3 == (FILE *)0x0) {\n      perror(outfile);\n                    /* WARNING: Subroutine does not return */\n      exit(1);\n    }\n    fputbytes((FILE *)pFVar3,fileheader,4);\n    fputbytes((FILE *)pFVar3,cmdsection,1);\n    fputint((FILE *)pFVar3,(int)cmdtable.pbuffer - 0x106a30);\n    fputbytes((FILE *)pFVar3,cmdtable.buffer,(int)cmdtable.pbuffer + -0x106a30);\n    fputbytes((FILE *)pFVar3,editsection,1);\n    fputint((FILE *)pFVar3,(int)edittable.pbuffer - 0x106630);\n    fputbytes((FILE *)pFVar3,edittable.buffer,(int)edittable.pbuffer + -0x106630);\n    fputbytes((FILE *)pFVar3,varsection,1);\n    fputint((FILE *)pFVar3,(int)vartable.pbuffer - 0x106e30);\n    fputbytes((FILE *)pFVar3,vartable.buffer,(int)vartable.pbuffer + -0x106e30);\n    fputbytes((FILE *)pFVar3,endsection,1);\n    fputbytes((FILE *)pFVar3,filetrailer,3);\n    if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail();\n    }\n    return 0;\n  }" if (parenthesized_expression "(errors < 1)" ( (binary_expression "errors < 1" identifier < number_literal) )) (compound_statement "{\n    if ((outfile == (char *)0x0) && (outfile = getenv("LESSKEY"), outfile == (char *)0x0)) {\n      outfile = homefile(".less");\n    }\n    pFVar3 = fopen(outfile,"wb");\n    if (pFVar3 == (FILE *)0x0) {\n      perror(outfile);\n                    /* WARNING: Subroutine does not return */\n      exit(1);\n    }\n    fputbytes((FILE *)pFVar3,fileheader,4);\n    fputbytes((FILE *)pFVar3,cmdsection,1);\n    fputint((FILE *)pFVar3,(int)cmdtable.pbuffer - 0x106a30);\n    fputbytes((FILE *)pFVar3,cmdtable.buffer,(int)cmdtable.pbuffer + -0x106a30);\n    fputbytes((FILE *)pFVar3,editsection,1);\n    fputint((FILE *)pFVar3,(int)edittable.pbuffer - 0x106630);\n    fputbytes((FILE *)pFVar3,edittable.buffer,(int)edittable.pbuffer + -0x106630);\n    fputbytes((FILE *)pFVar3,varsection,1);\n    fputint((FILE *)pFVar3,(int)vartable.pbuffer - 0x106e30);\n    fputbytes((FILE *)pFVar3,vartable.buffer,(int)vartable.pbuffer + -0x106e30);\n    fputbytes((FILE *)pFVar3,endsection,1);\n    fputbytes((FILE *)pFVar3,filetrailer,3);\n    if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail();\n    }\n    return 0;\n  }" { (if_statement "if ((outfile == (char *)0x0) && (outfile = getenv("LESSKEY"), outfile == (char *)0x0)) {\n      outfile = homefile(".less");\n    }" if (parenthesized_expression "((outfile == (char *)0x0) && (outfile = getenv("LESSKEY"), outfile == (char *)0x0))" ( (binary_expression "(outfile == (char *)0x0) && (outfile = getenv("LESSKEY"), outfile == (char *)0x0)" (parenthesized_expression "(outfile == (char *)0x0)" ( (binary_expression "outfile == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(outfile = getenv("LESSKEY"), outfile == (char *)0x0)" ( (comma_expression "outfile = getenv("LESSKEY"), outfile == (char *)0x0" (assignment_expression "outfile = getenv("LESSKEY")" identifier = (call_expression "getenv("LESSKEY")" identifier (argument_list "("LESSKEY")" ( (string_literal ""LESSKEY"" " string_content ") )))) , (binary_expression "outfile == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      outfile = homefile(".less");\n    }" { (expression_statement "outfile = homefile(".less");" (assignment_expression "outfile = homefile(".less")" identifier = (call_expression "homefile(".less")" identifier (argument_list "(".less")" ( (string_literal "".less"" " string_content ") )))) ;) })) (expression_statement "pFVar3 = fopen(outfile,"wb");" (assignment_expression "pFVar3 = fopen(outfile,"wb")" identifier = (call_expression "fopen(outfile,"wb")" identifier (argument_list "(outfile,"wb")" ( identifier , (string_literal ""wb"" " string_content ") )))) ;) (if_statement "if (pFVar3 == (FILE *)0x0) {\n      perror(outfile);\n                    /* WARNING: Subroutine does not return */\n      exit(1);\n    }" if (parenthesized_expression "(pFVar3 == (FILE *)0x0)" ( (binary_expression "pFVar3 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      perror(outfile);\n                    /* WARNING: Subroutine does not return */\n      exit(1);\n    }" { (expression_statement "perror(outfile);" (call_expression "perror(outfile)" identifier (argument_list "(outfile)" ( identifier ))) ;) comment (expression_statement "exit(1);" (call_expression "exit(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (expression_statement "fputbytes((FILE *)pFVar3,fileheader,4);" (call_expression "fputbytes((FILE *)pFVar3,fileheader,4)" identifier (argument_list "((FILE *)pFVar3,fileheader,4)" ( (cast_expression "(FILE *)pFVar3" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , number_literal ))) ;) (expression_statement "fputbytes((FILE *)pFVar3,cmdsection,1);" (call_expression "fputbytes((FILE *)pFVar3,cmdsection,1)" identifier (argument_list "((FILE *)pFVar3,cmdsection,1)" ( (cast_expression "(FILE *)pFVar3" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , number_literal ))) ;) (expression_statement "fputint((FILE *)pFVar3,(int)cmdtable.pbuffer - 0x106a30);" (call_expression "fputint((FILE *)pFVar3,(int)cmdtable.pbuffer - 0x106a30)" identifier (argument_list "((FILE *)pFVar3,(int)cmdtable.pbuffer - 0x106a30)" ( (cast_expression "(FILE *)pFVar3" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "(int)cmdtable.pbuffer - 0x106a30" (cast_expression "(int)cmdtable.pbuffer" ( (type_descriptor "int" primitive_type) ) (field_expression "cmdtable.pbuffer" identifier . field_identifier)) - number_literal) ))) ;) (expression_statement "fputbytes((FILE *)pFVar3,cmdtable.buffer,(int)cmdtable.pbuffer + -0x106a30);" (call_expression "fputbytes((FILE *)pFVar3,cmdtable.buffer,(int)cmdtable.pbuffer + -0x106a30)" identifier (argument_list "((FILE *)pFVar3,cmdtable.buffer,(int)cmdtable.pbuffer + -0x106a30)" ( (cast_expression "(FILE *)pFVar3" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (field_expression "cmdtable.buffer" identifier . field_identifier) , (binary_expression "(int)cmdtable.pbuffer + -0x106a30" (cast_expression "(int)cmdtable.pbuffer" ( (type_descriptor "int" primitive_type) ) (field_expression "cmdtable.pbuffer" identifier . field_identifier)) + number_literal) ))) ;) (expression_statement "fputbytes((FILE *)pFVar3,editsection,1);" (call_expression "fputbytes((FILE *)pFVar3,editsection,1)" identifier (argument_list "((FILE *)pFVar3,editsection,1)" ( (cast_expression "(FILE *)pFVar3" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , number_literal ))) ;) (expression_statement "fputint((FILE *)pFVar3,(int)edittable.pbuffer - 0x106630);" (call_expression "fputint((FILE *)pFVar3,(int)edittable.pbuffer - 0x106630)" identifier (argument_list "((FILE *)pFVar3,(int)edittable.pbuffer - 0x106630)" ( (cast_expression "(FILE *)pFVar3" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "(int)edittable.pbuffer - 0x106630" (cast_expression "(int)edittable.pbuffer" ( (type_descriptor "int" primitive_type) ) (field_expression "edittable.pbuffer" identifier . field_identifier)) - number_literal) ))) ;) (expression_statement "fputbytes((FILE *)pFVar3,edittable.buffer,(int)edittable.pbuffer + -0x106630);" (call_expression "fputbytes((FILE *)pFVar3,edittable.buffer,(int)edittable.pbuffer + -0x106630)" identifier (argument_list "((FILE *)pFVar3,edittable.buffer,(int)edittable.pbuffer + -0x106630)" ( (cast_expression "(FILE *)pFVar3" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (field_expression "edittable.buffer" identifier . field_identifier) , (binary_expression "(int)edittable.pbuffer + -0x106630" (cast_expression "(int)edittable.pbuffer" ( (type_descriptor "int" primitive_type) ) (field_expression "edittable.pbuffer" identifier . field_identifier)) + number_literal) ))) ;) (expression_statement "fputbytes((FILE *)pFVar3,varsection,1);" (call_expression "fputbytes((FILE *)pFVar3,varsection,1)" identifier (argument_list "((FILE *)pFVar3,varsection,1)" ( (cast_expression "(FILE *)pFVar3" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , number_literal ))) ;) (expression_statement "fputint((FILE *)pFVar3,(int)vartable.pbuffer - 0x106e30);" (call_expression "fputint((FILE *)pFVar3,(int)vartable.pbuffer - 0x106e30)" identifier (argument_list "((FILE *)pFVar3,(int)vartable.pbuffer - 0x106e30)" ( (cast_expression "(FILE *)pFVar3" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "(int)vartable.pbuffer - 0x106e30" (cast_expression "(int)vartable.pbuffer" ( (type_descriptor "int" primitive_type) ) (field_expression "vartable.pbuffer" identifier . field_identifier)) - number_literal) ))) ;) (expression_statement "fputbytes((FILE *)pFVar3,vartable.buffer,(int)vartable.pbuffer + -0x106e30);" (call_expression "fputbytes((FILE *)pFVar3,vartable.buffer,(int)vartable.pbuffer + -0x106e30)" identifier (argument_list "((FILE *)pFVar3,vartable.buffer,(int)vartable.pbuffer + -0x106e30)" ( (cast_expression "(FILE *)pFVar3" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (field_expression "vartable.buffer" identifier . field_identifier) , (binary_expression "(int)vartable.pbuffer + -0x106e30" (cast_expression "(int)vartable.pbuffer" ( (type_descriptor "int" primitive_type) ) (field_expression "vartable.pbuffer" identifier . field_identifier)) + number_literal) ))) ;) (expression_statement "fputbytes((FILE *)pFVar3,endsection,1);" (call_expression "fputbytes((FILE *)pFVar3,endsection,1)" identifier (argument_list "((FILE *)pFVar3,endsection,1)" ( (cast_expression "(FILE *)pFVar3" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , number_literal ))) ;) (expression_statement "fputbytes((FILE *)pFVar3,filetrailer,3);" (call_expression "fputbytes((FILE *)pFVar3,filetrailer,3)" identifier (argument_list "((FILE *)pFVar3,filetrailer,3)" ( (cast_expression "(FILE *)pFVar3" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , number_literal ))) ;) (if_statement "if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail();\n    }" if (parenthesized_expression "(lVar1 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar1 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail();\n    }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return 0;" return number_literal ;) })) (expression_statement "__fprintf_chk(stderr,1,"%d errors; no output produced\n");" (call_expression "__fprintf_chk(stderr,1,"%d errors; no output produced\n")" identifier (argument_list "(stderr,1,"%d errors; no output produced\n")" ( identifier , number_literal , (string_literal ""%d errors; no output produced\n"" " string_content escape_sequence ") ))) ;) comment (expression_statement "exit(1);" (call_expression "exit(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })))
(translation_unit "undefined8 FUN_00102d8f(void)\n\n{\n  char *pcVar1;\n  FILE *pFVar2;\n  long lVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  long in_FS_OFFSET;\n  undefined1 uVar6;\n  undefined1 uVar7;\n  byte bVar8;\n  char acStack_428 [1032];\n  long local_20;\n  \n  bVar8 = 0;\n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar6 = 0;\n  uVar7 = 1;\n  FUN_001022f5();\n  FUN_001024a5();\n  lVar3 = 2;\n  pbVar4 = DAT_001065f8;\n  pbVar5 = &DAT_00104173;\n  do {\n    if (lVar3 == 0) break;\n    lVar3 = lVar3 + -1;\n    uVar6 = *pbVar4 < *pbVar5;\n    uVar7 = *pbVar4 == *pbVar5;\n    pbVar4 = pbVar4 + (ulong)bVar8 * -2 + 1;\n    pbVar5 = pbVar5 + (ulong)bVar8 * -2 + 1;\n  } while ((bool)uVar7);\n  pFVar2 = stdin;\n  if (((!(bool)uVar6 && !(bool)uVar7) == (bool)uVar6) ||\n     (pFVar2 = fopen((char *)DAT_001065f8,"r"), pFVar2 != (FILE *)0x0)) {\n    DAT_00106e1c = 0;\n    DAT_00106e18 = 0;\n    while (pcVar1 = fgets(acStack_428,0x400,pFVar2), pcVar1 != (char *)0x0) {\n      DAT_00106e18 = DAT_00106e18 + 1;\n      FUN_00102d40(acStack_428);\n    }\n  }\n  else {\n    perror((char *)DAT_001065f8);\n    FUN_001021f5();\n  }\n  if (DAT_00106e1c < 1) {\n    if ((DAT_001065f0 == (char *)0x0) &&\n       (DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0)) {\n      DAT_001065f0 = (char *)FUN_00102296(".less");\n    }\n    pFVar2 = fopen(DAT_001065f0,"wb");\n    if (pFVar2 == (FILE *)0x0) {\n      perror(DAT_001065f0);\n                    \n      exit(1);\n    }\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 7,4);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 3,1);\n    FUN_001025cd(pFVar2,DAT_00106a28 + -0x106a30);\n    FUN_00102593(pFVar2,&DAT_00106a30,DAT_00106a28 + -0x106a30);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 2,1);\n    FUN_001025cd(pFVar2,DAT_00106628 + -0x106630);\n    FUN_00102593(pFVar2,&DAT_00106630,DAT_00106628 + -0x106630);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 1,1);\n    FUN_001025cd(pFVar2,DAT_00106e28 + -0x106e30);\n    FUN_00102593(pFVar2,&DAT_00106e30,DAT_00106e28 + -0x106e30);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017,1);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 4,3);\n    if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n      __stack_chk_fail();\n    }\n    return 0;\n  }\n  __fprintf_chk(stderr,1,"%d errors; no output produced\n");\n                    \n  exit(1);\n}\n\n" (function_definition "undefined8 FUN_00102d8f(void)\n\n{\n  char *pcVar1;\n  FILE *pFVar2;\n  long lVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  long in_FS_OFFSET;\n  undefined1 uVar6;\n  undefined1 uVar7;\n  byte bVar8;\n  char acStack_428 [1032];\n  long local_20;\n  \n  bVar8 = 0;\n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar6 = 0;\n  uVar7 = 1;\n  FUN_001022f5();\n  FUN_001024a5();\n  lVar3 = 2;\n  pbVar4 = DAT_001065f8;\n  pbVar5 = &DAT_00104173;\n  do {\n    if (lVar3 == 0) break;\n    lVar3 = lVar3 + -1;\n    uVar6 = *pbVar4 < *pbVar5;\n    uVar7 = *pbVar4 == *pbVar5;\n    pbVar4 = pbVar4 + (ulong)bVar8 * -2 + 1;\n    pbVar5 = pbVar5 + (ulong)bVar8 * -2 + 1;\n  } while ((bool)uVar7);\n  pFVar2 = stdin;\n  if (((!(bool)uVar6 && !(bool)uVar7) == (bool)uVar6) ||\n     (pFVar2 = fopen((char *)DAT_001065f8,"r"), pFVar2 != (FILE *)0x0)) {\n    DAT_00106e1c = 0;\n    DAT_00106e18 = 0;\n    while (pcVar1 = fgets(acStack_428,0x400,pFVar2), pcVar1 != (char *)0x0) {\n      DAT_00106e18 = DAT_00106e18 + 1;\n      FUN_00102d40(acStack_428);\n    }\n  }\n  else {\n    perror((char *)DAT_001065f8);\n    FUN_001021f5();\n  }\n  if (DAT_00106e1c < 1) {\n    if ((DAT_001065f0 == (char *)0x0) &&\n       (DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0)) {\n      DAT_001065f0 = (char *)FUN_00102296(".less");\n    }\n    pFVar2 = fopen(DAT_001065f0,"wb");\n    if (pFVar2 == (FILE *)0x0) {\n      perror(DAT_001065f0);\n                    \n      exit(1);\n    }\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 7,4);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 3,1);\n    FUN_001025cd(pFVar2,DAT_00106a28 + -0x106a30);\n    FUN_00102593(pFVar2,&DAT_00106a30,DAT_00106a28 + -0x106a30);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 2,1);\n    FUN_001025cd(pFVar2,DAT_00106628 + -0x106630);\n    FUN_00102593(pFVar2,&DAT_00106630,DAT_00106628 + -0x106630);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 1,1);\n    FUN_001025cd(pFVar2,DAT_00106e28 + -0x106e30);\n    FUN_00102593(pFVar2,&DAT_00106e30,DAT_00106e28 + -0x106e30);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017,1);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 4,3);\n    if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n      __stack_chk_fail();\n    }\n    return 0;\n  }\n  __fprintf_chk(stderr,1,"%d errors; no output produced\n");\n                    \n  exit(1);\n}" type_identifier (function_declarator "FUN_00102d8f(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  char *pcVar1;\n  FILE *pFVar2;\n  long lVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  long in_FS_OFFSET;\n  undefined1 uVar6;\n  undefined1 uVar7;\n  byte bVar8;\n  char acStack_428 [1032];\n  long local_20;\n  \n  bVar8 = 0;\n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar6 = 0;\n  uVar7 = 1;\n  FUN_001022f5();\n  FUN_001024a5();\n  lVar3 = 2;\n  pbVar4 = DAT_001065f8;\n  pbVar5 = &DAT_00104173;\n  do {\n    if (lVar3 == 0) break;\n    lVar3 = lVar3 + -1;\n    uVar6 = *pbVar4 < *pbVar5;\n    uVar7 = *pbVar4 == *pbVar5;\n    pbVar4 = pbVar4 + (ulong)bVar8 * -2 + 1;\n    pbVar5 = pbVar5 + (ulong)bVar8 * -2 + 1;\n  } while ((bool)uVar7);\n  pFVar2 = stdin;\n  if (((!(bool)uVar6 && !(bool)uVar7) == (bool)uVar6) ||\n     (pFVar2 = fopen((char *)DAT_001065f8,"r"), pFVar2 != (FILE *)0x0)) {\n    DAT_00106e1c = 0;\n    DAT_00106e18 = 0;\n    while (pcVar1 = fgets(acStack_428,0x400,pFVar2), pcVar1 != (char *)0x0) {\n      DAT_00106e18 = DAT_00106e18 + 1;\n      FUN_00102d40(acStack_428);\n    }\n  }\n  else {\n    perror((char *)DAT_001065f8);\n    FUN_001021f5();\n  }\n  if (DAT_00106e1c < 1) {\n    if ((DAT_001065f0 == (char *)0x0) &&\n       (DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0)) {\n      DAT_001065f0 = (char *)FUN_00102296(".less");\n    }\n    pFVar2 = fopen(DAT_001065f0,"wb");\n    if (pFVar2 == (FILE *)0x0) {\n      perror(DAT_001065f0);\n                    \n      exit(1);\n    }\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 7,4);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 3,1);\n    FUN_001025cd(pFVar2,DAT_00106a28 + -0x106a30);\n    FUN_00102593(pFVar2,&DAT_00106a30,DAT_00106a28 + -0x106a30);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 2,1);\n    FUN_001025cd(pFVar2,DAT_00106628 + -0x106630);\n    FUN_00102593(pFVar2,&DAT_00106630,DAT_00106628 + -0x106630);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 1,1);\n    FUN_001025cd(pFVar2,DAT_00106e28 + -0x106e30);\n    FUN_00102593(pFVar2,&DAT_00106e30,DAT_00106e28 + -0x106e30);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017,1);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 4,3);\n    if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n      __stack_chk_fail();\n    }\n    return 0;\n  }\n  __fprintf_chk(stderr,1,"%d errors; no output produced\n");\n                    \n  exit(1);\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "FILE *pFVar2;" type_identifier (pointer_declarator "*pFVar2" * identifier) ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 uVar6;" type_identifier identifier ;) (declaration "undefined1 uVar7;" type_identifier identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "char acStack_428 [1032];" primitive_type (array_declarator "acStack_428 [1032]" identifier [ number_literal ]) ;) (declaration "long local_20;" (sized_type_specifier "long" long) identifier ;) (expression_statement "bVar8 = 0;" (assignment_expression "bVar8 = 0" identifier = number_literal) ;) (expression_statement "local_20 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_20 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "FUN_001022f5();" (call_expression "FUN_001022f5()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_001024a5();" (call_expression "FUN_001024a5()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar3 = 2;" (assignment_expression "lVar3 = 2" identifier = number_literal) ;) (expression_statement "pbVar4 = DAT_001065f8;" (assignment_expression "pbVar4 = DAT_001065f8" identifier = identifier) ;) (expression_statement "pbVar5 = &DAT_00104173;" (assignment_expression "pbVar5 = &DAT_00104173" identifier = (pointer_expression "&DAT_00104173" & identifier)) ;) (do_statement "do {\n    if (lVar3 == 0) break;\n    lVar3 = lVar3 + -1;\n    uVar6 = *pbVar4 < *pbVar5;\n    uVar7 = *pbVar4 == *pbVar5;\n    pbVar4 = pbVar4 + (ulong)bVar8 * -2 + 1;\n    pbVar5 = pbVar5 + (ulong)bVar8 * -2 + 1;\n  } while ((bool)uVar7);" do (compound_statement "{\n    if (lVar3 == 0) break;\n    lVar3 = lVar3 + -1;\n    uVar6 = *pbVar4 < *pbVar5;\n    uVar7 = *pbVar4 == *pbVar5;\n    pbVar4 = pbVar4 + (ulong)bVar8 * -2 + 1;\n    pbVar5 = pbVar5 + (ulong)bVar8 * -2 + 1;\n  }" { (if_statement "if (lVar3 == 0) break;" if (parenthesized_expression "(lVar3 == 0)" ( (binary_expression "lVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar3 = lVar3 + -1;" (assignment_expression "lVar3 = lVar3 + -1" identifier = (binary_expression "lVar3 + -1" identifier + number_literal)) ;) (expression_statement "uVar6 = *pbVar4 < *pbVar5;" (assignment_expression "uVar6 = *pbVar4 < *pbVar5" identifier = (binary_expression "*pbVar4 < *pbVar5" (pointer_expression "*pbVar4" * identifier) < (pointer_expression "*pbVar5" * identifier))) ;) (expression_statement "uVar7 = *pbVar4 == *pbVar5;" (assignment_expression "uVar7 = *pbVar4 == *pbVar5" identifier = (binary_expression "*pbVar4 == *pbVar5" (pointer_expression "*pbVar4" * identifier) == (pointer_expression "*pbVar5" * identifier))) ;) (expression_statement "pbVar4 = pbVar4 + (ulong)bVar8 * -2 + 1;" (assignment_expression "pbVar4 = pbVar4 + (ulong)bVar8 * -2 + 1" identifier = (binary_expression "pbVar4 + (ulong)bVar8 * -2 + 1" (binary_expression "pbVar4 + (ulong)bVar8 * -2" identifier + (binary_expression "(ulong)bVar8 * -2" (cast_expression "(ulong)bVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar5 = pbVar5 + (ulong)bVar8 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (ulong)bVar8 * -2 + 1" identifier = (binary_expression "pbVar5 + (ulong)bVar8 * -2 + 1" (binary_expression "pbVar5 + (ulong)bVar8 * -2" identifier + (binary_expression "(ulong)bVar8 * -2" (cast_expression "(ulong)bVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar7)" ( (cast_expression "(bool)uVar7" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "pFVar2 = stdin;" (assignment_expression "pFVar2 = stdin" identifier = identifier) ;) (if_statement "if (((!(bool)uVar6 && !(bool)uVar7) == (bool)uVar6) ||\n     (pFVar2 = fopen((char *)DAT_001065f8,"r"), pFVar2 != (FILE *)0x0)) {\n    DAT_00106e1c = 0;\n    DAT_00106e18 = 0;\n    while (pcVar1 = fgets(acStack_428,0x400,pFVar2), pcVar1 != (char *)0x0) {\n      DAT_00106e18 = DAT_00106e18 + 1;\n      FUN_00102d40(acStack_428);\n    }\n  }\n  else {\n    perror((char *)DAT_001065f8);\n    FUN_001021f5();\n  }" if (parenthesized_expression "(((!(bool)uVar6 && !(bool)uVar7) == (bool)uVar6) ||\n     (pFVar2 = fopen((char *)DAT_001065f8,"r"), pFVar2 != (FILE *)0x0))" ( (binary_expression "((!(bool)uVar6 && !(bool)uVar7) == (bool)uVar6) ||\n     (pFVar2 = fopen((char *)DAT_001065f8,"r"), pFVar2 != (FILE *)0x0)" (parenthesized_expression "((!(bool)uVar6 && !(bool)uVar7) == (bool)uVar6)" ( (binary_expression "(!(bool)uVar6 && !(bool)uVar7) == (bool)uVar6" (parenthesized_expression "(!(bool)uVar6 && !(bool)uVar7)" ( (binary_expression "!(bool)uVar6 && !(bool)uVar7" (unary_expression "!(bool)uVar6" ! (cast_expression "(bool)uVar6" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar7" ! (cast_expression "(bool)uVar7" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar6" ( (type_descriptor "bool" primitive_type) ) identifier)) )) || (parenthesized_expression "(pFVar2 = fopen((char *)DAT_001065f8,"r"), pFVar2 != (FILE *)0x0)" ( (comma_expression "pFVar2 = fopen((char *)DAT_001065f8,"r"), pFVar2 != (FILE *)0x0" (assignment_expression "pFVar2 = fopen((char *)DAT_001065f8,"r")" identifier = (call_expression "fopen((char *)DAT_001065f8,"r")" identifier (argument_list "((char *)DAT_001065f8,"r")" ( (cast_expression "(char *)DAT_001065f8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""r"" " string_content ") )))) , (binary_expression "pFVar2 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    DAT_00106e1c = 0;\n    DAT_00106e18 = 0;\n    while (pcVar1 = fgets(acStack_428,0x400,pFVar2), pcVar1 != (char *)0x0) {\n      DAT_00106e18 = DAT_00106e18 + 1;\n      FUN_00102d40(acStack_428);\n    }\n  }" { (expression_statement "DAT_00106e1c = 0;" (assignment_expression "DAT_00106e1c = 0" identifier = number_literal) ;) (expression_statement "DAT_00106e18 = 0;" (assignment_expression "DAT_00106e18 = 0" identifier = number_literal) ;) (while_statement "while (pcVar1 = fgets(acStack_428,0x400,pFVar2), pcVar1 != (char *)0x0) {\n      DAT_00106e18 = DAT_00106e18 + 1;\n      FUN_00102d40(acStack_428);\n    }" while (parenthesized_expression "(pcVar1 = fgets(acStack_428,0x400,pFVar2), pcVar1 != (char *)0x0)" ( (comma_expression "pcVar1 = fgets(acStack_428,0x400,pFVar2), pcVar1 != (char *)0x0" (assignment_expression "pcVar1 = fgets(acStack_428,0x400,pFVar2)" identifier = (call_expression "fgets(acStack_428,0x400,pFVar2)" identifier (argument_list "(acStack_428,0x400,pFVar2)" ( identifier , number_literal , identifier )))) , (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n      DAT_00106e18 = DAT_00106e18 + 1;\n      FUN_00102d40(acStack_428);\n    }" { (expression_statement "DAT_00106e18 = DAT_00106e18 + 1;" (assignment_expression "DAT_00106e18 = DAT_00106e18 + 1" identifier = (binary_expression "DAT_00106e18 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00102d40(acStack_428);" (call_expression "FUN_00102d40(acStack_428)" identifier (argument_list "(acStack_428)" ( identifier ))) ;) })) }) (else_clause "else {\n    perror((char *)DAT_001065f8);\n    FUN_001021f5();\n  }" else (compound_statement "{\n    perror((char *)DAT_001065f8);\n    FUN_001021f5();\n  }" { (expression_statement "perror((char *)DAT_001065f8);" (call_expression "perror((char *)DAT_001065f8)" identifier (argument_list "((char *)DAT_001065f8)" ( (cast_expression "(char *)DAT_001065f8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "FUN_001021f5();" (call_expression "FUN_001021f5()" identifier (argument_list "()" ( ))) ;) }))) (if_statement "if (DAT_00106e1c < 1) {\n    if ((DAT_001065f0 == (char *)0x0) &&\n       (DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0)) {\n      DAT_001065f0 = (char *)FUN_00102296(".less");\n    }\n    pFVar2 = fopen(DAT_001065f0,"wb");\n    if (pFVar2 == (FILE *)0x0) {\n      perror(DAT_001065f0);\n                    \n      exit(1);\n    }\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 7,4);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 3,1);\n    FUN_001025cd(pFVar2,DAT_00106a28 + -0x106a30);\n    FUN_00102593(pFVar2,&DAT_00106a30,DAT_00106a28 + -0x106a30);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 2,1);\n    FUN_001025cd(pFVar2,DAT_00106628 + -0x106630);\n    FUN_00102593(pFVar2,&DAT_00106630,DAT_00106628 + -0x106630);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 1,1);\n    FUN_001025cd(pFVar2,DAT_00106e28 + -0x106e30);\n    FUN_00102593(pFVar2,&DAT_00106e30,DAT_00106e28 + -0x106e30);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017,1);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 4,3);\n    if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n      __stack_chk_fail();\n    }\n    return 0;\n  }" if (parenthesized_expression "(DAT_00106e1c < 1)" ( (binary_expression "DAT_00106e1c < 1" identifier < number_literal) )) (compound_statement "{\n    if ((DAT_001065f0 == (char *)0x0) &&\n       (DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0)) {\n      DAT_001065f0 = (char *)FUN_00102296(".less");\n    }\n    pFVar2 = fopen(DAT_001065f0,"wb");\n    if (pFVar2 == (FILE *)0x0) {\n      perror(DAT_001065f0);\n                    \n      exit(1);\n    }\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 7,4);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 3,1);\n    FUN_001025cd(pFVar2,DAT_00106a28 + -0x106a30);\n    FUN_00102593(pFVar2,&DAT_00106a30,DAT_00106a28 + -0x106a30);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 2,1);\n    FUN_001025cd(pFVar2,DAT_00106628 + -0x106630);\n    FUN_00102593(pFVar2,&DAT_00106630,DAT_00106628 + -0x106630);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 1,1);\n    FUN_001025cd(pFVar2,DAT_00106e28 + -0x106e30);\n    FUN_00102593(pFVar2,&DAT_00106e30,DAT_00106e28 + -0x106e30);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017,1);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 4,3);\n    if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n      __stack_chk_fail();\n    }\n    return 0;\n  }" { (if_statement "if ((DAT_001065f0 == (char *)0x0) &&\n       (DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0)) {\n      DAT_001065f0 = (char *)FUN_00102296(".less");\n    }" if (parenthesized_expression "((DAT_001065f0 == (char *)0x0) &&\n       (DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0))" ( (binary_expression "(DAT_001065f0 == (char *)0x0) &&\n       (DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0)" (parenthesized_expression "(DAT_001065f0 == (char *)0x0)" ( (binary_expression "DAT_001065f0 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0)" ( (comma_expression "DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0" (assignment_expression "DAT_001065f0 = getenv("LESSKEY")" identifier = (call_expression "getenv("LESSKEY")" identifier (argument_list "("LESSKEY")" ( (string_literal ""LESSKEY"" " string_content ") )))) , (binary_expression "DAT_001065f0 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      DAT_001065f0 = (char *)FUN_00102296(".less");\n    }" { (expression_statement "DAT_001065f0 = (char *)FUN_00102296(".less");" (assignment_expression "DAT_001065f0 = (char *)FUN_00102296(".less")" identifier = (cast_expression "(char *)FUN_00102296(".less")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00102296(".less")" identifier (argument_list "(".less")" ( (string_literal "".less"" " string_content ") ))))) ;) })) (expression_statement "pFVar2 = fopen(DAT_001065f0,"wb");" (assignment_expression "pFVar2 = fopen(DAT_001065f0,"wb")" identifier = (call_expression "fopen(DAT_001065f0,"wb")" identifier (argument_list "(DAT_001065f0,"wb")" ( identifier , (string_literal ""wb"" " string_content ") )))) ;) (if_statement "if (pFVar2 == (FILE *)0x0) {\n      perror(DAT_001065f0);\n                    \n      exit(1);\n    }" if (parenthesized_expression "(pFVar2 == (FILE *)0x0)" ( (binary_expression "pFVar2 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      perror(DAT_001065f0);\n                    \n      exit(1);\n    }" { (expression_statement "perror(DAT_001065f0);" (call_expression "perror(DAT_001065f0)" identifier (argument_list "(DAT_001065f0)" ( identifier ))) ;) (expression_statement "exit(1);" (call_expression "exit(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (expression_statement "FUN_00102593(pFVar2,s_xvecEnd_00106017 + 7,4);" (call_expression "FUN_00102593(pFVar2,s_xvecEnd_00106017 + 7,4)" identifier (argument_list "(pFVar2,s_xvecEnd_00106017 + 7,4)" ( identifier , (binary_expression "s_xvecEnd_00106017 + 7" identifier + number_literal) , number_literal ))) ;) (expression_statement "FUN_00102593(pFVar2,s_xvecEnd_00106017 + 3,1);" (call_expression "FUN_00102593(pFVar2,s_xvecEnd_00106017 + 3,1)" identifier (argument_list "(pFVar2,s_xvecEnd_00106017 + 3,1)" ( identifier , (binary_expression "s_xvecEnd_00106017 + 3" identifier + number_literal) , number_literal ))) ;) (expression_statement "FUN_001025cd(pFVar2,DAT_00106a28 + -0x106a30);" (call_expression "FUN_001025cd(pFVar2,DAT_00106a28 + -0x106a30)" identifier (argument_list "(pFVar2,DAT_00106a28 + -0x106a30)" ( identifier , (binary_expression "DAT_00106a28 + -0x106a30" identifier + number_literal) ))) ;) (expression_statement "FUN_00102593(pFVar2,&DAT_00106a30,DAT_00106a28 + -0x106a30);" (call_expression "FUN_00102593(pFVar2,&DAT_00106a30,DAT_00106a28 + -0x106a30)" identifier (argument_list "(pFVar2,&DAT_00106a30,DAT_00106a28 + -0x106a30)" ( identifier , (pointer_expression "&DAT_00106a30" & identifier) , (binary_expression "DAT_00106a28 + -0x106a30" identifier + number_literal) ))) ;) (expression_statement "FUN_00102593(pFVar2,s_xvecEnd_00106017 + 2,1);" (call_expression "FUN_00102593(pFVar2,s_xvecEnd_00106017 + 2,1)" identifier (argument_list "(pFVar2,s_xvecEnd_00106017 + 2,1)" ( identifier , (binary_expression "s_xvecEnd_00106017 + 2" identifier + number_literal) , number_literal ))) ;) (expression_statement "FUN_001025cd(pFVar2,DAT_00106628 + -0x106630);" (call_expression "FUN_001025cd(pFVar2,DAT_00106628 + -0x106630)" identifier (argument_list "(pFVar2,DAT_00106628 + -0x106630)" ( identifier , (binary_expression "DAT_00106628 + -0x106630" identifier + number_literal) ))) ;) (expression_statement "FUN_00102593(pFVar2,&DAT_00106630,DAT_00106628 + -0x106630);" (call_expression "FUN_00102593(pFVar2,&DAT_00106630,DAT_00106628 + -0x106630)" identifier (argument_list "(pFVar2,&DAT_00106630,DAT_00106628 + -0x106630)" ( identifier , (pointer_expression "&DAT_00106630" & identifier) , (binary_expression "DAT_00106628 + -0x106630" identifier + number_literal) ))) ;) (expression_statement "FUN_00102593(pFVar2,s_xvecEnd_00106017 + 1,1);" (call_expression "FUN_00102593(pFVar2,s_xvecEnd_00106017 + 1,1)" identifier (argument_list "(pFVar2,s_xvecEnd_00106017 + 1,1)" ( identifier , (binary_expression "s_xvecEnd_00106017 + 1" identifier + number_literal) , number_literal ))) ;) (expression_statement "FUN_001025cd(pFVar2,DAT_00106e28 + -0x106e30);" (call_expression "FUN_001025cd(pFVar2,DAT_00106e28 + -0x106e30)" identifier (argument_list "(pFVar2,DAT_00106e28 + -0x106e30)" ( identifier , (binary_expression "DAT_00106e28 + -0x106e30" identifier + number_literal) ))) ;) (expression_statement "FUN_00102593(pFVar2,&DAT_00106e30,DAT_00106e28 + -0x106e30);" (call_expression "FUN_00102593(pFVar2,&DAT_00106e30,DAT_00106e28 + -0x106e30)" identifier (argument_list "(pFVar2,&DAT_00106e30,DAT_00106e28 + -0x106e30)" ( identifier , (pointer_expression "&DAT_00106e30" & identifier) , (binary_expression "DAT_00106e28 + -0x106e30" identifier + number_literal) ))) ;) (expression_statement "FUN_00102593(pFVar2,s_xvecEnd_00106017,1);" (call_expression "FUN_00102593(pFVar2,s_xvecEnd_00106017,1)" identifier (argument_list "(pFVar2,s_xvecEnd_00106017,1)" ( identifier , identifier , number_literal ))) ;) (expression_statement "FUN_00102593(pFVar2,s_xvecEnd_00106017 + 4,3);" (call_expression "FUN_00102593(pFVar2,s_xvecEnd_00106017 + 4,3)" identifier (argument_list "(pFVar2,s_xvecEnd_00106017 + 4,3)" ( identifier , (binary_expression "s_xvecEnd_00106017 + 4" identifier + number_literal) , number_literal ))) ;) (if_statement "if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n      __stack_chk_fail();\n    }" if (parenthesized_expression "(local_20 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_20 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n      __stack_chk_fail();\n    }" { (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return 0;" return number_literal ;) })) (expression_statement "__fprintf_chk(stderr,1,"%d errors; no output produced\n");" (call_expression "__fprintf_chk(stderr,1,"%d errors; no output produced\n")" identifier (argument_list "(stderr,1,"%d errors; no output produced\n")" ( identifier , number_literal , (string_literal ""%d errors; no output produced\n"" " string_content escape_sequence ") ))) ;) (expression_statement "exit(1);" (call_expression "exit(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) && (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) == (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") ))))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return LIT ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content escape_sequence ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })))
(function_definition "undefined8 FUN_00102d8f(void)\n\n{\n  char *pcVar1;\n  FILE *pFVar2;\n  long lVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  long in_FS_OFFSET;\n  undefined1 uVar6;\n  undefined1 uVar7;\n  byte bVar8;\n  char acStack_428 [1032];\n  long local_20;\n  \n  bVar8 = 0;\n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar6 = 0;\n  uVar7 = 1;\n  FUN_001022f5();\n  FUN_001024a5();\n  lVar3 = 2;\n  pbVar4 = DAT_001065f8;\n  pbVar5 = &DAT_00104173;\n  do {\n    if (lVar3 == 0) break;\n    lVar3 = lVar3 + -1;\n    uVar6 = *pbVar4 < *pbVar5;\n    uVar7 = *pbVar4 == *pbVar5;\n    pbVar4 = pbVar4 + (ulong)bVar8 * -2 + 1;\n    pbVar5 = pbVar5 + (ulong)bVar8 * -2 + 1;\n  } while ((bool)uVar7);\n  pFVar2 = stdin;\n  if (((!(bool)uVar6 && !(bool)uVar7) == (bool)uVar6) ||\n     (pFVar2 = fopen((char *)DAT_001065f8,"r"), pFVar2 != (FILE *)0x0)) {\n    DAT_00106e1c = 0;\n    DAT_00106e18 = 0;\n    while (pcVar1 = fgets(acStack_428,0x400,pFVar2), pcVar1 != (char *)0x0) {\n      DAT_00106e18 = DAT_00106e18 + 1;\n      FUN_00102d40(acStack_428);\n    }\n  }\n  else {\n    perror((char *)DAT_001065f8);\n    FUN_001021f5();\n  }\n  if (DAT_00106e1c < 1) {\n    if ((DAT_001065f0 == (char *)0x0) &&\n       (DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0)) {\n      DAT_001065f0 = (char *)FUN_00102296(".less");\n    }\n    pFVar2 = fopen(DAT_001065f0,"wb");\n    if (pFVar2 == (FILE *)0x0) {\n      perror(DAT_001065f0);\n                    \n      exit(1);\n    }\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 7,4);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 3,1);\n    FUN_001025cd(pFVar2,DAT_00106a28 + -0x106a30);\n    FUN_00102593(pFVar2,&DAT_00106a30,DAT_00106a28 + -0x106a30);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 2,1);\n    FUN_001025cd(pFVar2,DAT_00106628 + -0x106630);\n    FUN_00102593(pFVar2,&DAT_00106630,DAT_00106628 + -0x106630);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 1,1);\n    FUN_001025cd(pFVar2,DAT_00106e28 + -0x106e30);\n    FUN_00102593(pFVar2,&DAT_00106e30,DAT_00106e28 + -0x106e30);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017,1);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 4,3);\n    if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n      __stack_chk_fail();\n    }\n    return 0;\n  }\n  __fprintf_chk(stderr,1,"%d errors; no output produced\n");\n                    \n  exit(1);\n}" (type_identifier "undefined8") (function_declarator "FUN_00102d8f(void)" (identifier "FUN_00102d8f") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  char *pcVar1;\n  FILE *pFVar2;\n  long lVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  long in_FS_OFFSET;\n  undefined1 uVar6;\n  undefined1 uVar7;\n  byte bVar8;\n  char acStack_428 [1032];\n  long local_20;\n  \n  bVar8 = 0;\n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar6 = 0;\n  uVar7 = 1;\n  FUN_001022f5();\n  FUN_001024a5();\n  lVar3 = 2;\n  pbVar4 = DAT_001065f8;\n  pbVar5 = &DAT_00104173;\n  do {\n    if (lVar3 == 0) break;\n    lVar3 = lVar3 + -1;\n    uVar6 = *pbVar4 < *pbVar5;\n    uVar7 = *pbVar4 == *pbVar5;\n    pbVar4 = pbVar4 + (ulong)bVar8 * -2 + 1;\n    pbVar5 = pbVar5 + (ulong)bVar8 * -2 + 1;\n  } while ((bool)uVar7);\n  pFVar2 = stdin;\n  if (((!(bool)uVar6 && !(bool)uVar7) == (bool)uVar6) ||\n     (pFVar2 = fopen((char *)DAT_001065f8,"r"), pFVar2 != (FILE *)0x0)) {\n    DAT_00106e1c = 0;\n    DAT_00106e18 = 0;\n    while (pcVar1 = fgets(acStack_428,0x400,pFVar2), pcVar1 != (char *)0x0) {\n      DAT_00106e18 = DAT_00106e18 + 1;\n      FUN_00102d40(acStack_428);\n    }\n  }\n  else {\n    perror((char *)DAT_001065f8);\n    FUN_001021f5();\n  }\n  if (DAT_00106e1c < 1) {\n    if ((DAT_001065f0 == (char *)0x0) &&\n       (DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0)) {\n      DAT_001065f0 = (char *)FUN_00102296(".less");\n    }\n    pFVar2 = fopen(DAT_001065f0,"wb");\n    if (pFVar2 == (FILE *)0x0) {\n      perror(DAT_001065f0);\n                    \n      exit(1);\n    }\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 7,4);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 3,1);\n    FUN_001025cd(pFVar2,DAT_00106a28 + -0x106a30);\n    FUN_00102593(pFVar2,&DAT_00106a30,DAT_00106a28 + -0x106a30);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 2,1);\n    FUN_001025cd(pFVar2,DAT_00106628 + -0x106630);\n    FUN_00102593(pFVar2,&DAT_00106630,DAT_00106628 + -0x106630);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 1,1);\n    FUN_001025cd(pFVar2,DAT_00106e28 + -0x106e30);\n    FUN_00102593(pFVar2,&DAT_00106e30,DAT_00106e28 + -0x106e30);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017,1);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 4,3);\n    if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n      __stack_chk_fail();\n    }\n    return 0;\n  }\n  __fprintf_chk(stderr,1,"%d errors; no output produced\n");\n                    \n  exit(1);\n}" ({ "{") (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "FILE *pFVar2;" (type_identifier "FILE") (pointer_declarator "*pFVar2" (* "*") (identifier "pFVar2")) (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "byte *pbVar4;" (type_identifier "byte") (pointer_declarator "*pbVar4" (* "*") (identifier "pbVar4")) (; ";")) (declaration "byte *pbVar5;" (type_identifier "byte") (pointer_declarator "*pbVar5" (* "*") (identifier "pbVar5")) (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "undefined1 uVar6;" (type_identifier "undefined1") (identifier "uVar6") (; ";")) (declaration "undefined1 uVar7;" (type_identifier "undefined1") (identifier "uVar7") (; ";")) (declaration "byte bVar8;" (type_identifier "byte") (identifier "bVar8") (; ";")) (declaration "char acStack_428 [1032];" (primitive_type "char") (array_declarator "acStack_428 [1032]" (identifier "acStack_428") ([ "[") (number_literal "1032") (] "]")) (; ";")) (declaration "long local_20;" (sized_type_specifier "long" (long "long")) (identifier "local_20") (; ";")) (expression_statement "bVar8 = 0;" (assignment_expression "bVar8 = 0" (identifier "bVar8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_20 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_20 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_20") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_001022f5();" (call_expression "FUN_001022f5()" (identifier "FUN_001022f5") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_001024a5();" (call_expression "FUN_001024a5()" (identifier "FUN_001024a5") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "lVar3 = 2;" (assignment_expression "lVar3 = 2" (identifier "lVar3") (= "=") (number_literal "2")) (; ";")) (expression_statement "pbVar4 = DAT_001065f8;" (assignment_expression "pbVar4 = DAT_001065f8" (identifier "pbVar4") (= "=") (identifier "DAT_001065f8")) (; ";")) (expression_statement "pbVar5 = &DAT_00104173;" (assignment_expression "pbVar5 = &DAT_00104173" (identifier "pbVar5") (= "=") (pointer_expression "&DAT_00104173" (& "&") (identifier "DAT_00104173"))) (; ";")) (do_statement "do {\n    if (lVar3 == 0) break;\n    lVar3 = lVar3 + -1;\n    uVar6 = *pbVar4 < *pbVar5;\n    uVar7 = *pbVar4 == *pbVar5;\n    pbVar4 = pbVar4 + (ulong)bVar8 * -2 + 1;\n    pbVar5 = pbVar5 + (ulong)bVar8 * -2 + 1;\n  } while ((bool)uVar7);" (do "do") (compound_statement "{\n    if (lVar3 == 0) break;\n    lVar3 = lVar3 + -1;\n    uVar6 = *pbVar4 < *pbVar5;\n    uVar7 = *pbVar4 == *pbVar5;\n    pbVar4 = pbVar4 + (ulong)bVar8 * -2 + 1;\n    pbVar5 = pbVar5 + (ulong)bVar8 * -2 + 1;\n  }" ({ "{") (if_statement "if (lVar3 == 0) break;" (if "if") (parenthesized_expression "(lVar3 == 0)" (( "(") (binary_expression "lVar3 == 0" (identifier "lVar3") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar3 = lVar3 + -1;" (assignment_expression "lVar3 = lVar3 + -1" (identifier "lVar3") (= "=") (binary_expression "lVar3 + -1" (identifier "lVar3") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar6 = *pbVar4 < *pbVar5;" (assignment_expression "uVar6 = *pbVar4 < *pbVar5" (identifier "uVar6") (= "=") (binary_expression "*pbVar4 < *pbVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (< "<") (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")))) (; ";")) (expression_statement "uVar7 = *pbVar4 == *pbVar5;" (assignment_expression "uVar7 = *pbVar4 == *pbVar5" (identifier "uVar7") (= "=") (binary_expression "*pbVar4 == *pbVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (== "==") (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")))) (; ";")) (expression_statement "pbVar4 = pbVar4 + (ulong)bVar8 * -2 + 1;" (assignment_expression "pbVar4 = pbVar4 + (ulong)bVar8 * -2 + 1" (identifier "pbVar4") (= "=") (binary_expression "pbVar4 + (ulong)bVar8 * -2 + 1" (binary_expression "pbVar4 + (ulong)bVar8 * -2" (identifier "pbVar4") (+ "+") (binary_expression "(ulong)bVar8 * -2" (cast_expression "(ulong)bVar8" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar8")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar5 = pbVar5 + (ulong)bVar8 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (ulong)bVar8 * -2 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + (ulong)bVar8 * -2 + 1" (binary_expression "pbVar5 + (ulong)bVar8 * -2" (identifier "pbVar5") (+ "+") (binary_expression "(ulong)bVar8 * -2" (cast_expression "(ulong)bVar8" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar8")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar7)" (( "(") (cast_expression "(bool)uVar7" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar7")) () ")")) (; ";")) (expression_statement "pFVar2 = stdin;" (assignment_expression "pFVar2 = stdin" (identifier "pFVar2") (= "=") (identifier "stdin")) (; ";")) (if_statement "if (((!(bool)uVar6 && !(bool)uVar7) == (bool)uVar6) ||\n     (pFVar2 = fopen((char *)DAT_001065f8,"r"), pFVar2 != (FILE *)0x0)) {\n    DAT_00106e1c = 0;\n    DAT_00106e18 = 0;\n    while (pcVar1 = fgets(acStack_428,0x400,pFVar2), pcVar1 != (char *)0x0) {\n      DAT_00106e18 = DAT_00106e18 + 1;\n      FUN_00102d40(acStack_428);\n    }\n  }\n  else {\n    perror((char *)DAT_001065f8);\n    FUN_001021f5();\n  }" (if "if") (parenthesized_expression "(((!(bool)uVar6 && !(bool)uVar7) == (bool)uVar6) ||\n     (pFVar2 = fopen((char *)DAT_001065f8,"r"), pFVar2 != (FILE *)0x0))" (( "(") (binary_expression "((!(bool)uVar6 && !(bool)uVar7) == (bool)uVar6) ||\n     (pFVar2 = fopen((char *)DAT_001065f8,"r"), pFVar2 != (FILE *)0x0)" (parenthesized_expression "((!(bool)uVar6 && !(bool)uVar7) == (bool)uVar6)" (( "(") (binary_expression "(!(bool)uVar6 && !(bool)uVar7) == (bool)uVar6" (parenthesized_expression "(!(bool)uVar6 && !(bool)uVar7)" (( "(") (binary_expression "!(bool)uVar6 && !(bool)uVar7" (unary_expression "!(bool)uVar6" (! "!") (cast_expression "(bool)uVar6" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar6"))) (&& "&&") (unary_expression "!(bool)uVar7" (! "!") (cast_expression "(bool)uVar7" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar7")))) () ")")) (== "==") (cast_expression "(bool)uVar6" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar6"))) () ")")) (|| "||") (parenthesized_expression "(pFVar2 = fopen((char *)DAT_001065f8,"r"), pFVar2 != (FILE *)0x0)" (( "(") (comma_expression "pFVar2 = fopen((char *)DAT_001065f8,"r"), pFVar2 != (FILE *)0x0" (assignment_expression "pFVar2 = fopen((char *)DAT_001065f8,"r")" (identifier "pFVar2") (= "=") (call_expression "fopen((char *)DAT_001065f8,"r")" (identifier "fopen") (argument_list "((char *)DAT_001065f8,"r")" (( "(") (cast_expression "(char *)DAT_001065f8" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "DAT_001065f8")) (, ",") (string_literal ""r"" (" """) (string_content "r") (" """)) () ")")))) (, ",") (binary_expression "pFVar2 != (FILE *)0x0" (identifier "pFVar2") (!= "!=") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n    DAT_00106e1c = 0;\n    DAT_00106e18 = 0;\n    while (pcVar1 = fgets(acStack_428,0x400,pFVar2), pcVar1 != (char *)0x0) {\n      DAT_00106e18 = DAT_00106e18 + 1;\n      FUN_00102d40(acStack_428);\n    }\n  }" ({ "{") (expression_statement "DAT_00106e1c = 0;" (assignment_expression "DAT_00106e1c = 0" (identifier "DAT_00106e1c") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00106e18 = 0;" (assignment_expression "DAT_00106e18 = 0" (identifier "DAT_00106e18") (= "=") (number_literal "0")) (; ";")) (while_statement "while (pcVar1 = fgets(acStack_428,0x400,pFVar2), pcVar1 != (char *)0x0) {\n      DAT_00106e18 = DAT_00106e18 + 1;\n      FUN_00102d40(acStack_428);\n    }" (while "while") (parenthesized_expression "(pcVar1 = fgets(acStack_428,0x400,pFVar2), pcVar1 != (char *)0x0)" (( "(") (comma_expression "pcVar1 = fgets(acStack_428,0x400,pFVar2), pcVar1 != (char *)0x0" (assignment_expression "pcVar1 = fgets(acStack_428,0x400,pFVar2)" (identifier "pcVar1") (= "=") (call_expression "fgets(acStack_428,0x400,pFVar2)" (identifier "fgets") (argument_list "(acStack_428,0x400,pFVar2)" (( "(") (identifier "acStack_428") (, ",") (number_literal "0x400") (, ",") (identifier "pFVar2") () ")")))) (, ",") (binary_expression "pcVar1 != (char *)0x0" (identifier "pcVar1") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n      DAT_00106e18 = DAT_00106e18 + 1;\n      FUN_00102d40(acStack_428);\n    }" ({ "{") (expression_statement "DAT_00106e18 = DAT_00106e18 + 1;" (assignment_expression "DAT_00106e18 = DAT_00106e18 + 1" (identifier "DAT_00106e18") (= "=") (binary_expression "DAT_00106e18 + 1" (identifier "DAT_00106e18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_00102d40(acStack_428);" (call_expression "FUN_00102d40(acStack_428)" (identifier "FUN_00102d40") (argument_list "(acStack_428)" (( "(") (identifier "acStack_428") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    perror((char *)DAT_001065f8);\n    FUN_001021f5();\n  }" (else "else") (compound_statement "{\n    perror((char *)DAT_001065f8);\n    FUN_001021f5();\n  }" ({ "{") (expression_statement "perror((char *)DAT_001065f8);" (call_expression "perror((char *)DAT_001065f8)" (identifier "perror") (argument_list "((char *)DAT_001065f8)" (( "(") (cast_expression "(char *)DAT_001065f8" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "DAT_001065f8")) () ")"))) (; ";")) (expression_statement "FUN_001021f5();" (call_expression "FUN_001021f5()" (identifier "FUN_001021f5") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (if_statement "if (DAT_00106e1c < 1) {\n    if ((DAT_001065f0 == (char *)0x0) &&\n       (DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0)) {\n      DAT_001065f0 = (char *)FUN_00102296(".less");\n    }\n    pFVar2 = fopen(DAT_001065f0,"wb");\n    if (pFVar2 == (FILE *)0x0) {\n      perror(DAT_001065f0);\n                    \n      exit(1);\n    }\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 7,4);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 3,1);\n    FUN_001025cd(pFVar2,DAT_00106a28 + -0x106a30);\n    FUN_00102593(pFVar2,&DAT_00106a30,DAT_00106a28 + -0x106a30);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 2,1);\n    FUN_001025cd(pFVar2,DAT_00106628 + -0x106630);\n    FUN_00102593(pFVar2,&DAT_00106630,DAT_00106628 + -0x106630);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 1,1);\n    FUN_001025cd(pFVar2,DAT_00106e28 + -0x106e30);\n    FUN_00102593(pFVar2,&DAT_00106e30,DAT_00106e28 + -0x106e30);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017,1);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 4,3);\n    if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n      __stack_chk_fail();\n    }\n    return 0;\n  }" (if "if") (parenthesized_expression "(DAT_00106e1c < 1)" (( "(") (binary_expression "DAT_00106e1c < 1" (identifier "DAT_00106e1c") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n    if ((DAT_001065f0 == (char *)0x0) &&\n       (DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0)) {\n      DAT_001065f0 = (char *)FUN_00102296(".less");\n    }\n    pFVar2 = fopen(DAT_001065f0,"wb");\n    if (pFVar2 == (FILE *)0x0) {\n      perror(DAT_001065f0);\n                    \n      exit(1);\n    }\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 7,4);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 3,1);\n    FUN_001025cd(pFVar2,DAT_00106a28 + -0x106a30);\n    FUN_00102593(pFVar2,&DAT_00106a30,DAT_00106a28 + -0x106a30);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 2,1);\n    FUN_001025cd(pFVar2,DAT_00106628 + -0x106630);\n    FUN_00102593(pFVar2,&DAT_00106630,DAT_00106628 + -0x106630);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 1,1);\n    FUN_001025cd(pFVar2,DAT_00106e28 + -0x106e30);\n    FUN_00102593(pFVar2,&DAT_00106e30,DAT_00106e28 + -0x106e30);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017,1);\n    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 4,3);\n    if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n      __stack_chk_fail();\n    }\n    return 0;\n  }" ({ "{") (if_statement "if ((DAT_001065f0 == (char *)0x0) &&\n       (DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0)) {\n      DAT_001065f0 = (char *)FUN_00102296(".less");\n    }" (if "if") (parenthesized_expression "((DAT_001065f0 == (char *)0x0) &&\n       (DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0))" (( "(") (binary_expression "(DAT_001065f0 == (char *)0x0) &&\n       (DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0)" (parenthesized_expression "(DAT_001065f0 == (char *)0x0)" (( "(") (binary_expression "DAT_001065f0 == (char *)0x0" (identifier "DAT_001065f0") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0)" (( "(") (comma_expression "DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0" (assignment_expression "DAT_001065f0 = getenv("LESSKEY")" (identifier "DAT_001065f0") (= "=") (call_expression "getenv("LESSKEY")" (identifier "getenv") (argument_list "("LESSKEY")" (( "(") (string_literal ""LESSKEY"" (" """) (string_content "LESSKEY") (" """)) () ")")))) (, ",") (binary_expression "DAT_001065f0 == (char *)0x0" (identifier "DAT_001065f0") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n      DAT_001065f0 = (char *)FUN_00102296(".less");\n    }" ({ "{") (expression_statement "DAT_001065f0 = (char *)FUN_00102296(".less");" (assignment_expression "DAT_001065f0 = (char *)FUN_00102296(".less")" (identifier "DAT_001065f0") (= "=") (cast_expression "(char *)FUN_00102296(".less")" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00102296(".less")" (identifier "FUN_00102296") (argument_list "(".less")" (( "(") (string_literal "".less"" (" """) (string_content ".less") (" """)) () ")"))))) (; ";")) (} "}"))) (expression_statement "pFVar2 = fopen(DAT_001065f0,"wb");" (assignment_expression "pFVar2 = fopen(DAT_001065f0,"wb")" (identifier "pFVar2") (= "=") (call_expression "fopen(DAT_001065f0,"wb")" (identifier "fopen") (argument_list "(DAT_001065f0,"wb")" (( "(") (identifier "DAT_001065f0") (, ",") (string_literal ""wb"" (" """) (string_content "wb") (" """)) () ")")))) (; ";")) (if_statement "if (pFVar2 == (FILE *)0x0) {\n      perror(DAT_001065f0);\n                    \n      exit(1);\n    }" (if "if") (parenthesized_expression "(pFVar2 == (FILE *)0x0)" (( "(") (binary_expression "pFVar2 == (FILE *)0x0" (identifier "pFVar2") (== "==") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      perror(DAT_001065f0);\n                    \n      exit(1);\n    }" ({ "{") (expression_statement "perror(DAT_001065f0);" (call_expression "perror(DAT_001065f0)" (identifier "perror") (argument_list "(DAT_001065f0)" (( "(") (identifier "DAT_001065f0") () ")"))) (; ";")) (expression_statement "exit(1);" (call_expression "exit(1)" (identifier "exit") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00102593(pFVar2,s_xvecEnd_00106017 + 7,4);" (call_expression "FUN_00102593(pFVar2,s_xvecEnd_00106017 + 7,4)" (identifier "FUN_00102593") (argument_list "(pFVar2,s_xvecEnd_00106017 + 7,4)" (( "(") (identifier "pFVar2") (, ",") (binary_expression "s_xvecEnd_00106017 + 7" (identifier "s_xvecEnd_00106017") (+ "+") (number_literal "7")) (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "FUN_00102593(pFVar2,s_xvecEnd_00106017 + 3,1);" (call_expression "FUN_00102593(pFVar2,s_xvecEnd_00106017 + 3,1)" (identifier "FUN_00102593") (argument_list "(pFVar2,s_xvecEnd_00106017 + 3,1)" (( "(") (identifier "pFVar2") (, ",") (binary_expression "s_xvecEnd_00106017 + 3" (identifier "s_xvecEnd_00106017") (+ "+") (number_literal "3")) (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "FUN_001025cd(pFVar2,DAT_00106a28 + -0x106a30);" (call_expression "FUN_001025cd(pFVar2,DAT_00106a28 + -0x106a30)" (identifier "FUN_001025cd") (argument_list "(pFVar2,DAT_00106a28 + -0x106a30)" (( "(") (identifier "pFVar2") (, ",") (binary_expression "DAT_00106a28 + -0x106a30" (identifier "DAT_00106a28") (+ "+") (number_literal "-0x106a30")) () ")"))) (; ";")) (expression_statement "FUN_00102593(pFVar2,&DAT_00106a30,DAT_00106a28 + -0x106a30);" (call_expression "FUN_00102593(pFVar2,&DAT_00106a30,DAT_00106a28 + -0x106a30)" (identifier "FUN_00102593") (argument_list "(pFVar2,&DAT_00106a30,DAT_00106a28 + -0x106a30)" (( "(") (identifier "pFVar2") (, ",") (pointer_expression "&DAT_00106a30" (& "&") (identifier "DAT_00106a30")) (, ",") (binary_expression "DAT_00106a28 + -0x106a30" (identifier "DAT_00106a28") (+ "+") (number_literal "-0x106a30")) () ")"))) (; ";")) (expression_statement "FUN_00102593(pFVar2,s_xvecEnd_00106017 + 2,1);" (call_expression "FUN_00102593(pFVar2,s_xvecEnd_00106017 + 2,1)" (identifier "FUN_00102593") (argument_list "(pFVar2,s_xvecEnd_00106017 + 2,1)" (( "(") (identifier "pFVar2") (, ",") (binary_expression "s_xvecEnd_00106017 + 2" (identifier "s_xvecEnd_00106017") (+ "+") (number_literal "2")) (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "FUN_001025cd(pFVar2,DAT_00106628 + -0x106630);" (call_expression "FUN_001025cd(pFVar2,DAT_00106628 + -0x106630)" (identifier "FUN_001025cd") (argument_list "(pFVar2,DAT_00106628 + -0x106630)" (( "(") (identifier "pFVar2") (, ",") (binary_expression "DAT_00106628 + -0x106630" (identifier "DAT_00106628") (+ "+") (number_literal "-0x106630")) () ")"))) (; ";")) (expression_statement "FUN_00102593(pFVar2,&DAT_00106630,DAT_00106628 + -0x106630);" (call_expression "FUN_00102593(pFVar2,&DAT_00106630,DAT_00106628 + -0x106630)" (identifier "FUN_00102593") (argument_list "(pFVar2,&DAT_00106630,DAT_00106628 + -0x106630)" (( "(") (identifier "pFVar2") (, ",") (pointer_expression "&DAT_00106630" (& "&") (identifier "DAT_00106630")) (, ",") (binary_expression "DAT_00106628 + -0x106630" (identifier "DAT_00106628") (+ "+") (number_literal "-0x106630")) () ")"))) (; ";")) (expression_statement "FUN_00102593(pFVar2,s_xvecEnd_00106017 + 1,1);" (call_expression "FUN_00102593(pFVar2,s_xvecEnd_00106017 + 1,1)" (identifier "FUN_00102593") (argument_list "(pFVar2,s_xvecEnd_00106017 + 1,1)" (( "(") (identifier "pFVar2") (, ",") (binary_expression "s_xvecEnd_00106017 + 1" (identifier "s_xvecEnd_00106017") (+ "+") (number_literal "1")) (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "FUN_001025cd(pFVar2,DAT_00106e28 + -0x106e30);" (call_expression "FUN_001025cd(pFVar2,DAT_00106e28 + -0x106e30)" (identifier "FUN_001025cd") (argument_list "(pFVar2,DAT_00106e28 + -0x106e30)" (( "(") (identifier "pFVar2") (, ",") (binary_expression "DAT_00106e28 + -0x106e30" (identifier "DAT_00106e28") (+ "+") (number_literal "-0x106e30")) () ")"))) (; ";")) (expression_statement "FUN_00102593(pFVar2,&DAT_00106e30,DAT_00106e28 + -0x106e30);" (call_expression "FUN_00102593(pFVar2,&DAT_00106e30,DAT_00106e28 + -0x106e30)" (identifier "FUN_00102593") (argument_list "(pFVar2,&DAT_00106e30,DAT_00106e28 + -0x106e30)" (( "(") (identifier "pFVar2") (, ",") (pointer_expression "&DAT_00106e30" (& "&") (identifier "DAT_00106e30")) (, ",") (binary_expression "DAT_00106e28 + -0x106e30" (identifier "DAT_00106e28") (+ "+") (number_literal "-0x106e30")) () ")"))) (; ";")) (expression_statement "FUN_00102593(pFVar2,s_xvecEnd_00106017,1);" (call_expression "FUN_00102593(pFVar2,s_xvecEnd_00106017,1)" (identifier "FUN_00102593") (argument_list "(pFVar2,s_xvecEnd_00106017,1)" (( "(") (identifier "pFVar2") (, ",") (identifier "s_xvecEnd_00106017") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "FUN_00102593(pFVar2,s_xvecEnd_00106017 + 4,3);" (call_expression "FUN_00102593(pFVar2,s_xvecEnd_00106017 + 4,3)" (identifier "FUN_00102593") (argument_list "(pFVar2,s_xvecEnd_00106017 + 4,3)" (( "(") (identifier "pFVar2") (, ",") (binary_expression "s_xvecEnd_00106017 + 4" (identifier "s_xvecEnd_00106017") (+ "+") (number_literal "4")) (, ",") (number_literal "3") () ")"))) (; ";")) (if_statement "if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n      __stack_chk_fail();\n    }" (if "if") (parenthesized_expression "(local_20 != *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_20 != *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_20") (!= "!=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n                    \n      __stack_chk_fail();\n    }" ({ "{") (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "__fprintf_chk(stderr,1,"%d errors; no output produced\n");" (call_expression "__fprintf_chk(stderr,1,"%d errors; no output produced\n")" (identifier "__fprintf_chk") (argument_list "(stderr,1,"%d errors; no output produced\n")" (( "(") (identifier "stderr") (, ",") (number_literal "1") (, ",") (string_literal ""%d errors; no output produced\n"" (" """) (string_content "%d errors; no output produced") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "exit(1);" (call_expression "exit(1)" (identifier "exit") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (} "}")))

int function_1(int argc,char **argv)

{
  long var_22;
  char *var_10;
  type_1 *var_8;
  long var_4;
  type_2 *var_5;
  type_2 *var_6;
  long var_1;
  type_3 uVar7;
  type_3 uVar8;
  type_2 bVar9;
  char line [1024];
  
  bVar9 = 0;
  var_22 = *(long *)(var_1 + 0x28);
  uVar7 = 0;
  uVar8 = 1;
  var_2(argc,argv);
  var_3();
  var_4 = 2;
  var_5 = (type_2 *)infile;
  var_6 = &DAT_00104173;
  do {
    if (var_4 == 0) break;
    var_4 = var_4 + -1;
    uVar7 = *var_5 < *var_6;
    uVar8 = *var_5 == *var_6;
    var_5 = var_5 + (type_4)bVar9 * -2 + 1;
    var_6 = var_6 + (type_4)bVar9 * -2 + 1;
  } while ((bool)uVar8);
  var_8 = stdin;
  if (((!(bool)uVar7 && !(bool)uVar8) == (bool)uVar7) ||
     (var_8 = var_7(infile,"r"), var_8 != (type_1 *)0x0)) {
    var_15 = 0;
    var_11 = 0;
    while (var_10 = var_9(line,0x400,var_8), var_10 != (char *)0x0) {
      var_11 = var_11 + 1;
      var_12(line);
    }
  }
  else {
    var_13(infile);
    var_14();
  }
  if (var_15 < 1) {
    if ((var_16 == (char *)0x0) && (var_16 = var_17("LESSKEY"), var_16 == (char *)0x0)) {
      var_16 = var_18(".less");
    }
    var_8 = var_7(var_16,"wb");
    if (var_8 == (type_1 *)0x0) {
      var_13(var_16);
                    /* WARNING: Subroutine does not return */
      var_19(1);
    }
    var_20((type_1 *)var_8,fileheader,4);
    var_20((type_1 *)var_8,cmdsection,1);
    var_21((type_1 *)var_8,(int)cmdtable.pbuffer - 0x106a30);
    var_20((type_1 *)var_8,cmdtable.buffer,(int)cmdtable.pbuffer + -0x106a30);
    var_20((type_1 *)var_8,editsection,1);
    var_21((type_1 *)var_8,(int)edittable.pbuffer - 0x106630);
    var_20((type_1 *)var_8,edittable.buffer,(int)edittable.pbuffer + -0x106630);
    var_20((type_1 *)var_8,varsection,1);
    var_21((type_1 *)var_8,(int)vartable.pbuffer - 0x106e30);
    var_20((type_1 *)var_8,vartable.buffer,(int)vartable.pbuffer + -0x106e30);
    var_20((type_1 *)var_8,endsection,1);
    var_20((type_1 *)var_8,filetrailer,3);
    if (var_22 != *(long *)(var_1 + 0x28)) {
                    /* WARNING: Subroutine does not return */
      var_23();
    }
    return 0;
  }
  var_24(stderr,1,"%d errors; no output produced\n");
                    /* WARNING: Subroutine does not return */
  var_19(1);
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type)))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier)))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (return_statement (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (string_literal (string_content) (escape_sequence))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))))

undefined8 MASKED(void)

{
  char *pcVar1;
  FILE *pFVar2;
  long lVar3;
  byte *pbVar4;
  byte *pbVar5;
  long in_FS_OFFSET;
  undefined1 uVar6;
  undefined1 uVar7;
  byte bVar8;
  char acStack_428 [1032];
  long local_20;
  
  bVar8 = 0;
  local_20 = *(long *)(in_FS_OFFSET + 0x28);
  uVar6 = 0;
  uVar7 = 1;
  FUN_001022f5();
  FUN_001024a5();
  lVar3 = 2;
  pbVar4 = DAT_001065f8;
  pbVar5 = &DAT_00104173;
  do {
    if (lVar3 == 0) break;
    lVar3 = lVar3 + -1;
    uVar6 = *pbVar4 < *pbVar5;
    uVar7 = *pbVar4 == *pbVar5;
    pbVar4 = pbVar4 + (ulong)bVar8 * -2 + 1;
    pbVar5 = pbVar5 + (ulong)bVar8 * -2 + 1;
  } while ((bool)uVar7);
  pFVar2 = stdin;
  if (((!(bool)uVar6 && !(bool)uVar7) == (bool)uVar6) ||
     (pFVar2 = fopen((char *)DAT_001065f8,"r"), pFVar2 != (FILE *)0x0)) {
    DAT_00106e1c = 0;
    DAT_00106e18 = 0;
    while (pcVar1 = fgets(acStack_428,0x400,pFVar2), pcVar1 != (char *)0x0) {
      DAT_00106e18 = DAT_00106e18 + 1;
      FUN_00102d40(acStack_428);
    }
  }
  else {
    perror((char *)DAT_001065f8);
    FUN_001021f5();
  }
  if (DAT_00106e1c < 1) {
    if ((DAT_001065f0 == (char *)0x0) &&
       (DAT_001065f0 = getenv("LESSKEY"), DAT_001065f0 == (char *)0x0)) {
      DAT_001065f0 = (char *)FUN_00102296(".less");
    }
    pFVar2 = fopen(DAT_001065f0,"wb");
    if (pFVar2 == (FILE *)0x0) {
      perror(DAT_001065f0);
                    /* WARNING: Subroutine does not return */
      exit(1);
    }
    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 7,4);
    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 3,1);
    FUN_001025cd(pFVar2,DAT_00106a28 + -0x106a30);
    FUN_00102593(pFVar2,&DAT_00106a30,DAT_00106a28 + -0x106a30);
    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 2,1);
    FUN_001025cd(pFVar2,DAT_00106628 + -0x106630);
    FUN_00102593(pFVar2,&DAT_00106630,DAT_00106628 + -0x106630);
    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 1,1);
    FUN_001025cd(pFVar2,DAT_00106e28 + -0x106e30);
    FUN_00102593(pFVar2,&DAT_00106e30,DAT_00106e28 + -0x106e30);
    FUN_00102593(pFVar2,s_xvecEnd_00106017,1);
    FUN_00102593(pFVar2,s_xvecEnd_00106017 + 4,3);
    if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
      __stack_chk_fail();
    }
    return 0;
  }
  __fprintf_chk(stderr,1,"%d errors; no output produced\n");
                    /* WARNING: Subroutine does not return */
  exit(1);
}

