/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* WARNING: Restarted to delay deadcode elimination for space: ram */

undefined4 yylex(void)

{
  byte bVar1;
  FILE *__stream;
  undefined4 uVar2;
  char *pcVar3;
  void *pvVar4;
  void *pvVar5;
  int *piVar6;
  byte *pbVar7;
  undefined4 *puVar8;
  uint uVar9;
  int iVar10;
  int iVar11;
  byte *pbVar12;
  int iVar13;
  int iVar14;
  byte *pbVar15;
  byte *pbVar16;
  byte *local_6c;
  byte *local_68;
  byte *local_64;
  int local_5c;
  byte *local_54;
  
  if (DAT_004388fc != 0) {
    DAT_0043ce1c = 3;
    DAT_004388fc = 0;
  }
  if (DAT_0043ce28 == 0) {
    DAT_0043ce28 = 1;
    if (DAT_0043ce1c == 0) {
      DAT_0043ce1c = 1;
    }
    if (DAT_0043ce00 == (FILE *)0x0) {
      DAT_0043ce00 = _stdin;
    }
    if (DAT_0043ce04 == (FILE *)0x0) {
      DAT_0043ce04 = _stdout;
    }
    if ((DAT_0043ce14 == 0) || (*(int *)(DAT_0043ce14 + DAT_0043ce18 * 4) == 0)) {
      FUN_0041dc64();
      puVar8 = (undefined4 *)(DAT_0043ce14 + DAT_0043ce18 * 4);
      uVar2 = FUN_0041e2e4(DAT_0043ce00,0x4000);
      *puVar8 = uVar2;
    }
    puVar8 = *(undefined4 **)(DAT_0043ce14 + DAT_0043ce18 * 4);
    DAT_0043ce24 = (byte *)puVar8[2];
    DAT_0043ce00 = (FILE *)*puVar8;
    DAT_0043ce30 = (byte *)puVar8[4];
    DAT_0043ce2c = *DAT_0043ce24;
  }
switchD_0041e8e4_caseD_4d:
  local_54 = DAT_0043ce24;
  *DAT_0043ce24 = DAT_0043ce2c;
  iVar13 = DAT_0043ce1c;
LAB_0041e77c:
  iVar14 = iVar13 * 2;
  iVar10 = (int)*(short *)(&DAT_00427520 + iVar14);
  while( true ) {
    if (*(short *)(&DAT_00426b3c + iVar14) != 0) {
      DAT_0043ce38 = iVar13;
      DAT_0043ce3c = DAT_0043ce24;
    }
    uVar9 = *(uint *)(&DAT_0042673c + (uint)DAT_0043ce2c * 4) & 0xff;
    while( true ) {
      iVar10 = (uVar9 + iVar10) * 2;
      if (*(short *)(&DAT_004279c4 + iVar10) == iVar13) break;
      iVar13 = (int)*(short *)(&DAT_00426fbc + iVar14);
      iVar14 = iVar13 * 2;
      if (0x23f < iVar13) {
        uVar9 = (uint)(byte)(&DAT_00427460)[uVar9 * 4];
      }
      iVar10 = (int)*(short *)(&DAT_00427520 + iVar14);
    }
    iVar13 = (int)*(short *)(&DAT_004280e4 + iVar10);
    iVar14 = iVar13 * 2;
    iVar10 = (int)*(short *)(&DAT_00427520 + iVar14);
    DAT_0043ce24 = DAT_0043ce24 + 1;
    if (iVar10 == 0x360) break;
    DAT_0043ce2c = *DAT_0043ce24;
  }
  iVar10 = (int)*(short *)(&DAT_00426b3c + iVar14);
LAB_0041e844:
  pbVar12 = DAT_0043ce24;
  if (iVar10 == 0) {
    iVar10 = (int)*(short *)(&DAT_00426b3c + DAT_0043ce38 * 2);
    pbVar12 = DAT_0043ce3c;
  }
  yyleng = (int)pbVar12 - (int)local_54;
  yytext = local_54;
  DAT_0043ce2c = *pbVar12;
  *pbVar12 = 0;
  DAT_0043ce24 = pbVar12;
LAB_0041e898:
  pbVar15 = yytext;
  switch(iVar10) {
  case 0:
    goto switchD_0041e8e4_caseD_0;
  case 1:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
    }
    DAT_0043ce1c = 5;
    uVar2 = 0x102;
    break;
  case 2:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
    }
    pcVar3 = strdup((char *)yytext)   //possible issue identified - semgrep
    uVar2 = 0x103;
    _yylval = CONCAT44(DAT_00438d6c,pcVar3);
    DAT_0043ce1c = 3;
    break;
  case 3:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
    }
    DAT_0043ce1c = 9;
    uVar2 = 0x111;
    break;
  case 4:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
    }
    pcVar3 = strdup((char *)yytext)   //possible issue identified - semgrep
    uVar2 = 0x112;
    _yylval = CONCAT44(DAT_00438d6c,pcVar3);
    DAT_0043ce1c = 3;
    break;
  case 5:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
    }
    DAT_0043ce1c = 0xb;
    uVar2 = 0x114;
    break;
  case 6:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
    }
    pcVar3 = strdup((char *)yytext)   //possible issue identified - semgrep
    _yylval = CONCAT44(DAT_00438d6c,pcVar3);
    DAT_0043ce1c = 3;
    uVar2 = 0x115;
    break;
  case 7:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
    }
    DAT_0043ce1c = 0x17;
    uVar2 = 0x139;
    break;
  case 8:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
    }
    pcVar3 = strdup((char *)yytext)   //possible issue identified - semgrep
    uVar2 = 0x13a;
    _yylval = CONCAT44(DAT_00438d6c,pcVar3);
    DAT_0043ce1c = 3;
    break;
  case 9:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
    }
    DAT_0043ce1c = 0xd;
    uVar2 = 0x113;
    break;
  case 10:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
    }
    pcVar3 = strdup((char *)yytext)   //possible issue identified - semgrep
    uVar2 = 0x107;
    _yylval = CONCAT44(DAT_00438d6c,pcVar3);
    DAT_0043ce1c = 3;
    break;
  case 0xb:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x10c;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x10c;
    }
    break;
  case 0xc:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x148;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x148;
    }
    break;
  case 0xd:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x110;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x110;
    }
    break;
  case 0xe:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x140;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x140;
    }
    break;
  case 0xf:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x127;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x127;
    }
    break;
  case 0x10:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x128;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x128;
    }
    break;
  case 0x11:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x10d;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x10d;
    }
    break;
  case 0x12:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x10e;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x10e;
    }
    break;
  case 0x13:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x13b;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x13b;
    }
    break;
  case 0x14:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x13c;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x13c;
    }
    break;
  case 0x15:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x13e;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x13e;
    }
    break;
  case 0x16:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x13d;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x13d;
    }
    break;
  case 0x17:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x116;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x116;
    }
    break;
  case 0x18:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x117;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x117;
    }
    break;
  case 0x19:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
      return 0x109;
    }
    goto LAB_0041ed48;
  case 0x1a:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
      return 0x10b;
    }
    goto LAB_0041ec8c;
  case 0x1b:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x118;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x118;
    }
    break;
  case 0x1c:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x119;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x119;
    }
    break;
  case 0x1d:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x11c;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x11c;
    }
    break;
  case 0x1e:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x11d;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x11d;
    }
    break;
  case 0x1f:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x11e;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x11e;
    }
    break;
  case 0x20:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x11f;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x11f;
    }
    break;
  case 0x21:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x11a;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x11a;
    }
    break;
  case 0x22:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x120;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x120;
    }
    break;
  case 0x23:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
      return 0x121;
    }
    goto LAB_0041ec2c;
  case 0x24:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x122;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x122;
    }
    break;
  case 0x25:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
      return 0x123;
    }
    goto LAB_0041ec70;
  case 0x26:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x124;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x124;
    }
    break;
  case 0x27:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x125;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x125;
    }
    break;
  case 0x28:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x11b;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x11b;
    }
    break;
  case 0x29:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
      return 0x121;
    }
LAB_0041ec2c:
    uVar2 = 0x121;
    break;
  case 0x2a:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
      return 0x123;
    }
LAB_0041ec70:
    uVar2 = 0x123;
    break;
  case 0x2b:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x126;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x126;
    }
    break;
  case 0x2c:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x10f;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x10f;
    }
    break;
  case 0x2d:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
    }
    DAT_0043ce1c = 0xf;
    uVar2 = 0x108;
    break;
  case 0x2e:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
      return 0x109;
    }
LAB_0041ed48:
    uVar2 = 0x109;
    break;
  case 0x2f:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
      return 0x10b;
    }
LAB_0041ec8c:
    uVar2 = 0x10b;
    break;
  case 0x30:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
    }
    pcVar3 = strdup((char *)yytext)   //possible issue identified - semgrep
    uVar2 = 0x10a;
    _yylval = CONCAT44(DAT_00438d6c,pcVar3);
    break;
  case 0x31:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8("begin of closure",yytext,yyleng);
    }
    DAT_0043ce1c = 3;
    uVar2 = 0x144;
    break;
  case 0x32:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
    }
    DAT_0043ce1c = 5;
    uVar2 = 0x104;
    break;
  case 0x33:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x105;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x105;
    }
    break;
  case 0x34:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x106;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x106;
    }
    break;
  case 0x35:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x149;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x149;
    }
    break;
  case 0x36:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
    }
    DAT_0043ce1c = 0x11;
    uVar2 = 0x129;
    break;
  case 0x37:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
    }
    pcVar3 = strdup((char *)yytext)   //possible issue identified - semgrep
    uVar2 = 0x130;
    _yylval = CONCAT44(DAT_00438d6c,pcVar3);
    DAT_0043ce1c = 3;
    break;
  case 0x38:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x12a;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x12a;
    }
    break;
  case 0x39:
    if (DAT_004388f8 == 0) {
      uVar2 = 299;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 299;
    }
    break;
  case 0x3a:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x131;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x131;
    }
    break;
  case 0x3b:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x132;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x132;
    }
    break;
  case 0x3c:
    if (DAT_004388f8 == 0) {
      uVar2 = 300;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 300;
    }
    break;
  case 0x3d:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x12d;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x12d;
    }
    break;
  case 0x3e:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
      return 0x12e;
    }
    goto LAB_0041ee74;
  case 0x3f:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
      return 0x12e;
    }
    goto LAB_0041ee74;
  case 0x40:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
      return 0x12e;
    }
    goto LAB_0041ee74;
  case 0x41:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
      return 0x12e;
    }
LAB_0041ee74:
    uVar2 = 0x12e;
    break;
  case 0x42:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x12f;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x12f;
    }
    break;
  case 0x43:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
    }
    DAT_0043ce1c = 0x13;
    uVar2 = 0x133;
    break;
  case 0x44:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
    }
    pcVar3 = strdup((char *)yytext)   //possible issue identified - semgrep
    uVar2 = 0x137;
    _yylval = CONCAT44(DAT_00438d6c,pcVar3);
    DAT_0043ce1c = 3;
    break;
  case 0x45:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x134;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x134;
    }
    break;
  case 0x46:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x135;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x135;
    }
    break;
  case 0x47:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
    }
    DAT_0043ce1c = 0x15;
    uVar2 = 0x136;
    break;
  case 0x48:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,&DAT_00426464,yyleng);
    }
    pcVar3 = strdup((char *)yytext)   //possible issue identified - semgrep
    uVar2 = 0x147;
    _yylval = CONCAT44(DAT_00438d6c,pcVar3);
    DAT_0043ce1c = 3;
    break;
  case 0x49:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x138;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x138;
    }
    break;
  case 0x4a:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
    }
    DAT_0043ce1c = 0x19;
    uVar2 = 0x13f;
    break;
  case 0x4b:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
    }
    pcVar3 = strdup((char *)yytext)   //possible issue identified - semgrep
    _yylval = CONCAT44(DAT_00438d6c,pcVar3);
    DAT_0043ce1c = 3;
    uVar2 = 0x147;
    break;
  case 0x4c:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
    }
    pcVar3 = strdup((char *)yytext)   //possible issue identified - semgrep
    uVar2 = 0x147;
    _yylval = CONCAT44(DAT_00438d6c,pcVar3);
    break;
  case 0x4d:
    goto switchD_0041e8e4_caseD_4d;
  case 0x4e:
    lineno = lineno + 1;
    goto switchD_0041e8e4_caseD_4d;
  case 0x4f:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8("comment",yytext,yyleng);
    }
    goto switchD_0041e8e4_caseD_4d;
  case 0x50:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
    }
    _yylval = strtoll((char *)yytext,(char **)0x0,10);
    uVar2 = 0x141;
    break;
  case 0x51:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x142;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x142;
    }
    break;
  case 0x52:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x14a;
    }
    else {
      FUN_0041d5a8(0,yytext,yyleng);
      uVar2 = 0x14a;
    }
    break;
  case 0x53:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x143;
    }
    else {
      FUN_0041d5a8("end of sentence",yytext,yyleng);
      uVar2 = 0x143;
    }
    break;
  case 0x54:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x144;
    }
    else {
      FUN_0041d5a8("begin of closure",yytext,yyleng);
      uVar2 = 0x144;
    }
    break;
  case 0x55:
    if (DAT_004388f8 == 0) {
      uVar2 = 0x145;
    }
    else {
      FUN_0041d5a8("end of closure",yytext,yyleng);
      uVar2 = 0x145;
    }
    break;
  case 0x56:
    if (DAT_004388f8 != 0) {
      FUN_0041d5a8(0,yytext,yyleng);
    }
    pcVar3 = strdup((char *)yytext)   //possible issue identified - semgrep
    uVar2 = 0x146;
    _yylval = CONCAT44(DAT_00438d6c,pcVar3);
    break;
  case 0x57:
    fwrite(yytext,yyleng,1,DAT_0043ce04);
    goto switchD_0041e8e4_caseD_4d;
  case 0x58:
    goto switchD_0041e8e4_caseD_58;
  case 0x59:
  case 0x5a:
  case 0x5b:
  case 0x5c:
  case 0x5d:
  case 0x5e:
  case 0x5f:
  case 0x60:
  case 0x61:
  case 0x62:
  case 99:
  case 100:
  case 0x65:
    DAT_0043ce0c = DAT_0043ce0c + -1;
    if (-1 < DAT_0043ce0c) {
      iVar13 = DAT_0043ce14;
      if (DAT_0043ce14 != 0) {
        iVar13 = *(int *)(DAT_0043ce14 + DAT_0043ce18 * 4);
      }
      FUN_0041d920(iVar13);
      free(*(void **)(&DAT_0043ce40 + (DAT_0043ce0c + 1) * 0xc));
      iVar13 = DAT_0043ce0c * 0xc;
      configfilename = *(undefined4 *)(&DAT_0043ce40 + iVar13);
      lineno = *(int *)(&DAT_0043ce48 + iVar13);
      FUN_0041de98(*(undefined4 *)(&DAT_0043ce44 + iVar13));
      goto switchD_0041e8e4_caseD_4d;
    }
    uVar2 = 0;
    break;
  default:
    FUN_0041dc1c("fatal flex scanner internal error--no action found");
    goto switchD_0041e8e4_caseD_4d;
  }
  return uVar2;
switchD_0041e8e4_caseD_58:
  *pbVar12 = DAT_0043ce2c;
  puVar8 = *(undefined4 **)(DAT_0043ce14 + DAT_0043ce18 * 4);
  if (puVar8[0xb] == 0) {
    DAT_0043ce30 = (byte *)puVar8[4];
    *puVar8 = DAT_0043ce00;
    puVar8[0xb] = 1;
  }
  pbVar16 = *(byte **)(*(int *)(DAT_0043ce14 + DAT_0043ce18 * 4) + 4);
  if (pbVar16 + (int)DAT_0043ce30 < DAT_0043ce24) goto code_r0x0041f54c;
  DAT_0043ce24 = yytext + (int)(pbVar12 + ~(uint)pbVar15);
  iVar13 = DAT_0043ce1c;
  iVar14 = DAT_0043ce38;
  pbVar12 = DAT_0043ce3c;
  for (pbVar15 = yytext; pbVar15 < DAT_0043ce24; pbVar15 = pbVar15 + 1) {
    if (*pbVar15 == 0) {
      uVar9 = 1;
    }
    else {
      uVar9 = (uint)(byte)(&DAT_0042673c)[(uint)*pbVar15 * 4];
    }
    iVar10 = iVar13 * 2;
    DAT_0043ce38 = iVar13;
    DAT_0043ce3c = pbVar15;
    if (*(short *)(&DAT_00426b3c + iVar10) == 0) goto LAB_00420324;
    while( true ) {
      iVar14 = DAT_0043ce38;
      pbVar12 = DAT_0043ce3c;
LAB_00420324:
      DAT_0043ce3c = pbVar12;
      DAT_0043ce38 = iVar14;
      iVar14 = ((int)*(short *)(&DAT_00427520 + iVar10) + uVar9) * 2;
      if (iVar13 == *(short *)(&DAT_004279c4 + iVar14)) break;
      iVar13 = (int)*(short *)(&DAT_00426fbc + iVar10);
      if (0x23f < iVar13) {
        uVar9 = (uint)(byte)(&DAT_00427460)[uVar9 * 4];
      }
      iVar10 = iVar13 << 1;
    }
    iVar13 = (int)*(short *)(&DAT_004280e4 + iVar14);
    iVar14 = DAT_0043ce38;
    pbVar12 = DAT_0043ce3c;
  }
  iVar11 = iVar13 * 2;
  iVar10 = (int)*(short *)(&DAT_00426b3c + iVar11);
  uVar9 = 1;
  DAT_0043ce38 = iVar14;
  DAT_0043ce3c = pbVar12;
  if (iVar10 != 0) {
    DAT_0043ce38 = iVar13;
    DAT_0043ce3c = DAT_0043ce24;
  }
  while( true ) {
    iVar14 = ((int)*(short *)(&DAT_00427520 + iVar11) + uVar9) * 2;
    if (iVar13 == *(short *)(&DAT_004279c4 + iVar14)) break;
    iVar13 = (int)*(short *)(&DAT_00426fbc + iVar11);
    if (0x23f < iVar13) {
      uVar9 = (uint)(byte)(&DAT_00427460)[uVar9 * 4];
    }
    iVar11 = iVar13 << 1;
  }
  iVar13 = (int)*(short *)(&DAT_004280e4 + iVar14);
  if ((iVar13 == 0x23f) || (iVar13 == 0)) {
    local_54 = yytext;
    goto LAB_0041e844;
  }
  DAT_0043ce24 = DAT_0043ce24 + 1;
  local_54 = yytext;
LAB_00420460:
  DAT_0043ce2c = *DAT_0043ce24;
  goto LAB_0041e77c;
code_r0x0041f54c:
  local_64 = yytext;
  if (pbVar16 + (int)(DAT_0043ce30 + 1) < DAT_0043ce24) {
    FUN_0041dc1c("fatal flex scanner internal error--end of buffer missed");
  }
  if (*(int *)(*(int *)(DAT_0043ce14 + DAT_0043ce18 * 4) + 0x28) != 0) {
    pbVar7 = DAT_0043ce24 + (-1 - (int)yytext);
    if (0 < (int)pbVar7) {
      iVar13 = 0;
      do {
        bVar1 = *local_64;
        iVar13 = iVar13 + 1;
        local_64 = local_64 + 1;
        *pbVar16 = bVar1;
        pbVar16 = pbVar16 + 1;
      } while (iVar13 < (int)pbVar7);
    }
    iVar13 = *(int *)(DAT_0043ce14 + DAT_0043ce18 * 4);
    if (*(int *)(iVar13 + 0x2c) == 2) {
      DAT_0043ce30 = (byte *)0x0;
      *(undefined4 *)(iVar13 + 0x10) = 0;
    }
    else {
      local_6c = (byte *)((*(int *)(iVar13 + 0xc) + -1) - (int)pbVar7);
      pbVar16 = DAT_0043ce24;
      while (DAT_0043ce24 = pbVar16, (int)local_6c < 1) {
        if (DAT_0043ce14 == 0) {
          iVar13 = 0;
        }
        else {
          iVar13 = *(int *)(DAT_0043ce14 + DAT_0043ce18 * 4);
        }
        pvVar5 = *(void **)(iVar13 + 4);
        if (*(int *)(iVar13 + 0x14) == 0) {
          *(undefined4 *)(iVar13 + 4) = 0;
LAB_0041fe24:
          FUN_0041dc1c("fatal error - scanner input buffer overflow");
        }
        else {
          uVar9 = *(uint *)(iVar13 + 0xc);
          if ((int)(uVar9 << 1) < 1) {
            *(uint *)(iVar13 + 0xc) = (uVar9 >> 3) + uVar9;
          }
          else {
            *(uint *)(iVar13 + 0xc) = uVar9 << 1;
          }
          pvVar4 = realloc(pvVar5,*(int *)(iVar13 + 0xc) + 2)   //possible issue identified - semgrep
          *(void **)(iVar13 + 4) = pvVar4;
          if (pvVar4 == (void *)0x0) goto LAB_0041fe24;
        }
        pbVar16 = pbVar16 + (*(int *)(iVar13 + 4) - (int)pvVar5);
        local_6c = (byte *)((*(int *)(*(int *)(DAT_0043ce14 + DAT_0043ce18 * 4) + 0xc) + -1) -
                           (int)pbVar7);
      }
      if (0x2000 < (int)local_6c) {
        local_6c = (byte *)0x2000;
      }
      if (*(int *)(*(int *)(DAT_0043ce14 + DAT_0043ce18 * 4) + 0x18) == 0) {
        piVar6 = __errno_location();
        *piVar6 = 0;
        while( true ) {
          DAT_0043ce30 = (byte *)fread(pbVar7 + *(int *)(*(int *)(DAT_0043ce14 + DAT_0043ce18 * 4) +
                                                        4),1,(size_t)local_6c,DAT_0043ce00)   //possible issue identified - semgrep
          pbVar16 = DAT_0043ce30;
          if ((DAT_0043ce30 != (byte *)0x0) ||
             (iVar13 = ferror(DAT_0043ce00), __stream = DAT_0043ce00, pbVar16 = DAT_0043ce30,
             iVar13 == 0)) goto LAB_0042066c;
          if (*piVar6 != 4) break;
          *piVar6 = 0;
          clearerr(__stream);
        }
        FUN_0041dc1c("input in flex scanner failed");
        pbVar16 = DAT_0043ce30;
      }
      else {
        local_68 = (byte *)0x0;
        do {
          iVar13 = fgetc(DAT_0043ce00)   //possible issue identified - semgrep
          if (iVar13 == -1) {
            iVar13 = ferror(DAT_0043ce00);
            pbVar16 = local_68;
            if (iVar13 != 0) {
              FUN_0041dc1c("input in flex scanner failed");
              pbVar16 = local_68;
            }
            break;
          }
          if (iVar13 == 10) {
            local_68[(int)(pbVar7 + *(int *)(*(int *)(DAT_0043ce14 + DAT_0043ce18 * 4) + 4))] = 10;
            pbVar16 = local_68 + 1;
            break;
          }
          pbVar16 = local_68 + 1;
          local_68[(int)(pbVar7 + *(int *)(*(int *)(DAT_0043ce14 + DAT_0043ce18 * 4) + 4))] =
               (byte)iVar13;
          local_68 = pbVar16;
        } while (pbVar16 < local_6c);
      }
LAB_0042066c:
      DAT_0043ce30 = pbVar16;
      *(byte **)(*(int *)(DAT_0043ce14 + DAT_0043ce18 * 4) + 0x10) = DAT_0043ce30;
    }
    if (DAT_0043ce30 == (byte *)0x0) {
      if (pbVar7 == (byte *)0x0) {
        local_5c = 1;
        FUN_0041e564(DAT_0043ce00);
      }
      else {
        *(undefined4 *)(*(int *)(DAT_0043ce14 + DAT_0043ce18 * 4) + 0x2c) = 2;
        local_5c = 2;
      }
    }
    else {
      local_5c = 0;
    }
    iVar13 = *(int *)(DAT_0043ce14 + DAT_0043ce18 * 4);
    if (*(byte **)(iVar13 + 0xc) < DAT_0043ce30 + (int)pbVar7) {
      pvVar5 = realloc(*(void **)(iVar13 + 4),
                       (size_t)(DAT_0043ce30 + (int)pbVar7 + ((int)DAT_0043ce30 >> 1)))   //possible issue identified - semgrep
      iVar10 = *(int *)(DAT_0043ce14 + DAT_0043ce18 * 4);
      *(void **)(iVar13 + 4) = pvVar5;
      if (*(int *)(iVar10 + 4) == 0) {
        FUN_0041dc1c("out of dynamic memory in yy_get_next_buffer()");
      }
    }
    DAT_0043ce30 = DAT_0043ce30 + (int)pbVar7;
    DAT_0043ce30[*(int *)(*(int *)(DAT_0043ce14 + DAT_0043ce18 * 4) + 4)] = 0;
    DAT_0043ce30[*(int *)(*(int *)(DAT_0043ce14 + DAT_0043ce18 * 4) + 4) + 1] = 0;
    yytext = *(byte **)(*(int *)(DAT_0043ce14 + DAT_0043ce18 * 4) + 4);
    if (local_5c != 1) {
      if (local_5c == 2) goto LAB_0041f5ac;
      if (local_5c == 0) {
        DAT_0043ce24 = yytext + (int)(pbVar12 + ~(uint)pbVar15);
        iVar13 = DAT_0043ce1c;
        iVar10 = DAT_0043ce38;
        pbVar15 = DAT_0043ce3c;
        for (pbVar12 = yytext; DAT_0043ce38 = iVar10, DAT_0043ce3c = pbVar15, local_54 = yytext,
            pbVar12 < DAT_0043ce24; pbVar12 = pbVar12 + 1) {
          if (*pbVar12 == 0) {
            uVar9 = 1;
          }
          else {
            uVar9 = (uint)(byte)(&DAT_0042673c)[(uint)*pbVar12 * 4];
          }
          iVar14 = iVar13 * 2;
          DAT_0043ce38 = iVar13;
          DAT_0043ce3c = pbVar12;
          if (*(short *)(&DAT_00426b3c + iVar14) == 0) goto LAB_0042083c;
          while( true ) {
            iVar10 = DAT_0043ce38;
            pbVar15 = DAT_0043ce3c;
LAB_0042083c:
            DAT_0043ce3c = pbVar15;
            DAT_0043ce38 = iVar10;
            iVar10 = ((int)*(short *)(&DAT_00427520 + iVar14) + uVar9) * 2;
            if (iVar13 == *(short *)(&DAT_004279c4 + iVar10)) break;
            iVar13 = (int)*(short *)(&DAT_00426fbc + iVar14);
            if (0x23f < iVar13) {
              uVar9 = (uint)(byte)(&DAT_00427460)[uVar9 * 4];
            }
            iVar14 = iVar13 << 1;
          }
          iVar13 = (int)*(short *)(&DAT_004280e4 + iVar10);
          iVar10 = DAT_0043ce38;
          pbVar15 = DAT_0043ce3c;
        }
        goto LAB_00420460;
      }
      goto switchD_0041e8e4_caseD_4d;
    }
LAB_00420478:
    DAT_0043ce24 = yytext;
    DAT_0043ce34 = 0;
    iVar10 = (DAT_0043ce1c + -1) / 2 + 0x59;
    goto LAB_0041e898;
  }
  if (yytext == DAT_0043ce24 + -1) goto LAB_00420478;
LAB_0041f5ac:
  iVar13 = DAT_0043ce1c;
  iVar14 = DAT_0043ce38;
  pbVar12 = DAT_0043ce3c;
  for (pbVar15 = yytext;
      pbVar15 < DAT_0043ce30 + *(int *)(*(int *)(DAT_0043ce14 + DAT_0043ce18 * 4) + 4);
      pbVar15 = pbVar15 + 1) {
    if (*pbVar15 == 0) {
      uVar9 = 1;
    }
    else {
      uVar9 = (uint)(byte)(&DAT_0042673c)[(uint)*pbVar15 * 4];
    }
    iVar10 = iVar13 * 2;
    DAT_0043ce38 = iVar13;
    DAT_0043ce3c = pbVar15;
    if (*(short *)(&DAT_00426b3c + iVar10) == 0) goto LAB_0041f634;
    while( true ) {
      iVar14 = DAT_0043ce38;
      pbVar12 = DAT_0043ce3c;
LAB_0041f634:
      DAT_0043ce3c = pbVar12;
      DAT_0043ce38 = iVar14;
      iVar14 = ((int)*(short *)(&DAT_00427520 + iVar10) + uVar9) * 2;
      if (iVar13 == *(short *)(&DAT_004279c4 + iVar14)) break;
      iVar13 = (int)*(short *)(&DAT_00426fbc + iVar10);
      if (0x23f < iVar13) {
        uVar9 = (uint)(byte)(&DAT_00427460)[uVar9 * 4];
      }
      iVar10 = iVar13 << 1;
    }
    iVar13 = (int)*(short *)(&DAT_004280e4 + iVar14);
    iVar14 = DAT_0043ce38;
    pbVar12 = DAT_0043ce3c;
  }
  local_54 = yytext;
  iVar10 = (int)*(short *)(&DAT_00426b3c + iVar13 * 2);
  DAT_0043ce24 = DAT_0043ce30 + *(int *)(*(int *)(DAT_0043ce14 + DAT_0043ce18 * 4) + 4);
  DAT_0043ce38 = iVar14;
  DAT_0043ce3c = pbVar12;
  goto LAB_0041e844;
switchD_0041e8e4_caseD_0:
  *pbVar12 = DAT_0043ce2c;
  iVar10 = (int)*(short *)(&DAT_00426b3c + DAT_0043ce38 * 2);
  DAT_0043ce24 = DAT_0043ce3c;
  goto LAB_0041e844;
}