
/* WARNING: Unknown calling convention */

int yylex(void)

{
  undefined *puVar1;
  undefined *puVar2;
  undefined *puVar3;
  undefined *puVar4;
  undefined *puVar5;
  YY_BUFFER_STATE pyVar6;
  byte bVar9;
  uint uVar7;
  FILE *pFVar8;
  bool bVar10;
  int iVar11;
  byte *pbVar12;
  int iVar13;
  int iVar14;
  byte *pbVar15;
  short sVar16;
  byte *pbVar17;
  byte *pbVar18;
  int iVar19;
  undefined4 *puVar20;
  undefined *local_68;
  
  puVar3 = PTR_s_hallenge__000af46c;
  puVar1 = PTR_host_name_addresses_map_000af458;
  iVar13 = *(int *)(PTR_host_name_addresses_map_000af458 + -0x6c);
  if (*(int *)(PTR_host_name_addresses_map_000af458 + -0x68) != 0) {
    local_68 = PTR_host_name_addresses_map_000af458;
    bVar9 = PTR_host_name_addresses_map_000af458[-0x5c];
    pbVar17 = *(byte **)(PTR_host_name_addresses_map_000af458 + -100);
    sVar16 = *(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2060);
    iVar14 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2a94);
    puVar20 = (undefined4 *)PTR_yytext_000af784;
    goto LAB_00027758;
  }
  *(undefined4 *)(PTR_host_name_addresses_map_000af458 + -0x68) = 1;
  puVar2 = PTR_yyin_000af788;
  if (iVar13 == 0) {
    iVar14 = 0;
    sVar16 = 0;
    iVar13 = 1;
    *(undefined4 *)(puVar1 + -0x6c) = 1;
    if (*(int *)puVar2 == 0) goto LAB_00027a1c;
LAB_00027984:
    iVar11 = *(int *)PTR_yyout_000af798;
  }
  else {
    iVar14 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2a94);
    sVar16 = *(short *)(puVar3 + iVar13 * 2 + -0x2060);
    if (*(int *)PTR_yyin_000af788 != 0) goto LAB_00027984;
LAB_00027a1c:
    *(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;
    iVar11 = *(int *)PTR_yyout_000af798;
  }
  if (iVar11 == 0) {
    *(undefined4 *)PTR_yyout_000af798 = *(undefined4 *)PTR_stdout_000afb6c;
  }
  puVar1 = PTR_host_name_addresses_map_000af458;
  if ((*(int *)(PTR_host_name_addresses_map_000af458 + -0x58) == 0) ||
     (pyVar6 = *(YY_BUFFER_STATE *)
                (*(int *)(PTR_host_name_addresses_map_000af458 + -0x58) +
                *(int *)(PTR_host_name_addresses_map_000af458 + -0x50) * 4),
     pyVar6 == (YY_BUFFER_STATE)0x0)) {
    yyensure_buffer_stack();
    iVar11 = *(int *)(puVar1 + -0x50);
    iVar19 = *(int *)(puVar1 + -0x58);
    pyVar6 = yy_create_buffer(*(FILE **)puVar2,0x4000);
    *(YY_BUFFER_STATE *)(iVar19 + iVar11 * 4) = pyVar6;
  }
  puVar20 = (undefined4 *)PTR_yytext_000af784;
  puVar1 = PTR_host_name_addresses_map_000af458;
  pbVar17 = (byte *)pyVar6->yy_buf_pos;
  pFVar8 = pyVar6->yy_input_file;
  local_68 = PTR_host_name_addresses_map_000af458;
  iVar11 = pyVar6->yy_n_chars;
  *(byte **)PTR_yytext_000af784 = pbVar17;
  *(FILE **)puVar2 = pFVar8;
  *(int *)(puVar1 + -0x60) = iVar11;
  *(byte **)(puVar1 + -100) = pbVar17;
  bVar9 = *pbVar17;
  puVar1[-0x5c] = bVar9;
LAB_00027758:
  puVar5 = PTR_yyleng_000af794;
  puVar4 = PTR_s_hallenge__000af46c;
  puVar2 = PTR_LAB_000af468;
  puVar1 = PTR_host_name_addresses_map_000af458;
  *pbVar17 = bVar9;
  bVar10 = false;
  iVar11 = *(int *)(puVar1 + -0x70);
  pbVar12 = *(byte **)(puVar1 + -0x74);
  iVar19 = iVar11;
  pbVar15 = pbVar12;
  pbVar18 = pbVar17;
  while( true ) {
    uVar7 = (uint)(byte)puVar4[bVar9 - 0x2160];
    if (sVar16 != 0) {
      bVar10 = true;
      iVar19 = iVar13;
      pbVar15 = pbVar18;
    }
    while( true ) {
      iVar14 = (iVar14 + uVar7) * 2;
      if (*(short *)(puVar2 + iVar14 + 0x5c30) == iVar13) break;
      iVar13 = (int)*(short *)(puVar4 + iVar13 * 2 + -0x3378);
      if (0x44e < iVar13) {
        uVar7 = (uint)(byte)puVar4[uVar7 - 0x21b0];
      }
      iVar14 = (int)*(short *)(puVar4 + iVar13 * 2 + -0x2a94);
    }
    iVar13 = (int)*(short *)(puVar4 + iVar14 + -0x6ba4);
    pbVar18 = pbVar18 + 1;
    if (iVar13 == 0x44e) break;
    bVar9 = *pbVar18;
    sVar16 = *(short *)(puVar3 + iVar13 * 2 + -0x2060);
    iVar14 = (int)*(short *)(puVar4 + iVar13 * 2 + -0x2a94);
  }
  if (bVar10) {
    *(byte **)(puVar1 + -0x74) = pbVar15;
    *(int *)(puVar1 + -0x70) = iVar19;
    iVar11 = iVar19;
    pbVar12 = pbVar15;
  }
  puVar1 = PTR_LAB_000af468;
  *(byte **)(local_68 + -100) = pbVar12;
  *puVar20 = pbVar17;
  sVar16 = *(short *)(puVar3 + iVar11 * 2 + -0x2060);
  *(int *)puVar5 = (int)pbVar12 - (int)pbVar17;
  bVar9 = *pbVar12;
  *pbVar12 = 0;
  local_68[-0x5c] = bVar9;
  if ((uint)(int)sVar16 < 0x2c) {
                    /* WARNING: Could not emulate address calculation at 0x00027900 */
                    /* WARNING: Treating indirect jump as call */
    iVar13 = (*(code *)(&_gp + *(int *)(puVar1 + sVar16 * 4 + 0x5b80)))();
    return iVar13;
  }
                    /* WARNING: Subroutine does not return */
  yy_fatal_error(PTR_LAB_000af468 + 0x5ad4);
}



void yylex(void)

{
  undefined *puVar1;
  undefined *puVar2;
  undefined *puVar3;
  undefined *puVar4;
  undefined *puVar5;
  undefined4 *puVar6;
  undefined4 uVar7;
  byte bVar10;
  uint uVar8;
  undefined4 uVar9;
  bool bVar11;
  int iVar12;
  byte *pbVar13;
  int iVar14;
  int iVar15;
  byte *pbVar16;
  short sVar17;
  byte *pbVar18;
  byte *pbVar19;
  int iVar20;
  undefined4 *puVar21;
  undefined *local_68;
  
  puVar3 = PTR_s_hallenge__000af46c;
  puVar1 = PTR_DAT_000af458;
  iVar14 = *(int *)(PTR_DAT_000af458 + -0x6c);
  if (*(int *)(PTR_DAT_000af458 + -0x68) != 0) {
    local_68 = PTR_DAT_000af458;
    bVar10 = PTR_DAT_000af458[-0x5c];
    pbVar18 = *(byte **)(PTR_DAT_000af458 + -100);
    sVar17 = *(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060);
    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);
    puVar21 = (undefined4 *)PTR_yytext_000af784;
    goto LAB_00027758;
  }
  *(undefined4 *)(PTR_DAT_000af458 + -0x68) = 1;
  puVar2 = PTR_yyin_000af788;
  if (iVar14 == 0) {
    iVar15 = 0;
    sVar17 = 0;
    iVar14 = 1;
    *(undefined4 *)(puVar1 + -0x6c) = 1;
    if (*(int *)puVar2 == 0) goto LAB_00027a1c;
LAB_00027984:
    iVar12 = *(int *)PTR_yyout_000af798;
  }
  else {
    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);
    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);
    if (*(int *)PTR_yyin_000af788 != 0) goto LAB_00027984;
LAB_00027a1c:
    *(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;
    iVar12 = *(int *)PTR_yyout_000af798;
  }
  if (iVar12 == 0) {
    *(undefined4 *)PTR_yyout_000af798 = *(undefined4 *)PTR_stdout_000afb6c;
  }
  puVar1 = PTR_DAT_000af458;
  if ((*(int *)(PTR_DAT_000af458 + -0x58) == 0) ||
     (puVar6 = *(undefined4 **)
                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4),
     puVar6 == (undefined4 *)0x0)) {
    FUN_000270f0();
    iVar12 = *(int *)(puVar1 + -0x50);
    iVar20 = *(int *)(puVar1 + -0x58);
    puVar6 = (undefined4 *)yy_create_buffer(*(undefined4 *)puVar2,0x4000);
    *(undefined4 **)(iVar20 + iVar12 * 4) = puVar6;
  }
  puVar21 = (undefined4 *)PTR_yytext_000af784;
  puVar1 = PTR_DAT_000af458;
  pbVar18 = (byte *)puVar6[2];
  uVar9 = *puVar6;
  local_68 = PTR_DAT_000af458;
  uVar7 = puVar6[4];
  *(byte **)PTR_yytext_000af784 = pbVar18;
  *(undefined4 *)puVar2 = uVar9;
  *(undefined4 *)(puVar1 + -0x60) = uVar7;
  *(byte **)(puVar1 + -100) = pbVar18;
  bVar10 = *pbVar18;
  puVar1[-0x5c] = bVar10;
LAB_00027758:
  puVar5 = PTR_yyleng_000af794;
  puVar4 = PTR_s_hallenge__000af46c;
  puVar2 = PTR_LAB_000af468;
  puVar1 = PTR_DAT_000af458;
  *pbVar18 = bVar10;
  bVar11 = false;
  iVar12 = *(int *)(puVar1 + -0x70);
  pbVar13 = *(byte **)(puVar1 + -0x74);
  iVar20 = iVar12;
  pbVar16 = pbVar13;
  pbVar19 = pbVar18;
  while( true ) {
    uVar8 = (uint)(byte)puVar4[bVar10 - 0x2160];
    if (sVar17 != 0) {
      bVar11 = true;
      iVar20 = iVar14;
      pbVar16 = pbVar19;
    }
    while( true ) {
      iVar15 = (iVar15 + uVar8) * 2;
      if (*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14) break;
      iVar14 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x3378);
      if (0x44e < iVar14) {
        uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];
      }
      iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);
    }
    iVar14 = (int)*(short *)(puVar4 + iVar15 + -0x6ba4);
    pbVar19 = pbVar19 + 1;
    if (iVar14 == 0x44e) break;
    bVar10 = *pbVar19;
    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);
    iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);
  }
  if (bVar11) {
    *(byte **)(puVar1 + -0x74) = pbVar16;
    *(int *)(puVar1 + -0x70) = iVar20;
    iVar12 = iVar20;
    pbVar13 = pbVar16;
  }
  puVar1 = PTR_LAB_000af468;
  *(byte **)(local_68 + -100) = pbVar13;
  *puVar21 = pbVar18;
  sVar17 = *(short *)(puVar3 + iVar12 * 2 + -0x2060);
  *(int *)puVar5 = (int)pbVar13 - (int)pbVar18;
  bVar10 = *pbVar13;
  *pbVar13 = 0;
  local_68[-0x5c] = bVar10;
  if ((uint)(int)sVar17 < 0x2c) {
                    /* WARNING: Could not emulate address calculation at 0x00027900 */
                    /* WARNING: Treating indirect jump as call */
    (*(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80)))();
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_000270a8(PTR_LAB_000af468 + 0x5ad4);
}


lui gp,0x9
addiu gp,gp,-0x294
addu gp,gp,t9
lw v0,-0x7fd8(gp)
addiu sp,sp,-0x90
lw v1,-0x7fd8(gp)
sw gp,0x10(sp)
or a0,v1,zero
sw v1,0x34(sp)
sw s1,0x6c(sp)
sw ra,0x8c(sp)
sw s8,0x88(sp)
sw s7,0x84(sp)
sw s6,0x80(sp)
sw s5,0x7c(sp)
sw s4,0x78(sp)
sw s3,0x74(sp)
sw s2,0x70(sp)
sw s0,0x68(sp)
lw v1,-0x68(v0)
beq v1,zero,0x00027948
_lw s1,-0x6c(a0)
lw t2,-0x7fc4(gp)
sll v1,s1,0x1
lw v0,-0x7fc4(gp)
lw a0,-0x7fd8(gp)
addiu t2,t2,-0x2060
lw s6,-0x7fd8(gp)
addiu v0,v0,-0x2a94
lw s5,-0x7cac(gp)
addu a1,t2,v1
sw a0,0x28(sp)
addu v0,v0,v1
lb a0,-0x5c(a0)
lw s4,-0x64(s6)
lh s3,0x0(a1)
lh s2,0x0(v0)
lw v0,-0x7fc4(gp)
or t6,a0,zero
lw s0,-0x7fc8(gp)
or a0,s2,zero
lw t0,-0x7fc4(gp)
or s8,t2,zero
addiu s7,v0,-0x2160
lw v0,-0x7fd8(gp)
lw v1,-0x7fc4(gp)
addiu s0,s0,0x5c30
addiu t0,t0,-0x3378
sw s5,0x24(sp)
sw v0,0x20(sp)
or s5,s6,zero
lw v0,-0x7fc4(gp)
addiu v1,v1,-0x2a94
addiu t8,v0,-0x6ba4
lw v0,-0x7fd8(gp)
sw v0,0x1c(sp)
lw v0,-0x7c9c(gp)
sw v0,0x2c(sp)
lw t1,-0x7fc4(gp)
or t2,s8,zero
addiu t1,t1,-0x21b0
sb t6,0x0(s4)
or t7,s4,zero
or t4,s5,zero
or s6,t2,zero
lw v0,0x20(sp)
or a3,zero,zero
li a2,0x44e
lw t2,-0x70(v0)
lw v0,0x1c(sp)
or a1,t2,zero
lw t3,-0x74(v0)
or v0,a0,zero
or a0,t6,zero
or s2,t3,zero
andi a0,a0,0xff
addu a0,s7,a0
beq s3,zero,0x00027834
_lbu a0,0x0(a0)
or a1,s1,zero
or s2,s4,zero
b 0x00027834
_li a3,0x1
addu s1,t0,s1
lh s1,0x0(s1)
slti v0,s1,0x44f
bne v0,zero,0x0002782c
_sll v0,s1,0x1
addu a0,a0,t1
lbu a0,0x0(a0)
addu v0,v1,v0
lh v0,0x0(v0)
addu v0,v0,a0
sll v0,v0,0x1
addu t5,s0,v0
lh t5,0x0(t5)
bne t5,s1,0x00027810
_sll s1,s1,0x1
addu v0,t8,v0
lh s1,0x0(v0)
beq s1,a2,0x00027878
_addiu s4,s4,0x1
sll v0,s1,0x1
lb a0,0x0(s4)
addu t5,s6,v0
addu v0,v1,v0
lh s3,0x0(t5)
b 0x000277f0
_lh v0,0x0(v0)
beq a3,zero,0x00027a48
_lw v0,0x1c(sp)
sw s2,-0x74(v0)
lw v0,0x20(sp)
sw a1,-0x70(v0)
lw v0,-0x7fd8(gp)
or s3,s6,zero
lw s5,-0x7fc8(gp)
or s8,t4,zero
or s6,t7,zero
sw v0,0x30(sp)
lw v0,-0x7fcc(gp)
addiu s5,s5,0x5b80
addiu v0,v0,0x6f50
sw v0,0x38(sp)
sll v0,a1,0x1
lw a1,0x24(sp)
subu a0,s2,s6
lw t3,-0x7fd8(gp)
addu v0,s3,v0
lw t2,-0x7fd8(gp)
sw s2,-0x64(s8)
sw s6,0x0(a1)
lw a1,0x2c(sp)
lh v0,0x0(v0)
sw a0,0x0(a1)
lw a1,0x28(sp)
lbu a0,0x0(s2)
sb zero,0x0(s2)
sb a0,-0x5c(a1)
sltiu a0,v0,0x2c
beq a0,zero,0x0002825c
_lw a0,-0x7fc8(gp)
sll a0,v0,0x2
addu a0,s5,a0
lw a0,0x0(a0)
addu a0,a0,gp
jr a0
_nop
or v0,zero,zero
lw ra,0x8c(sp)
lw s8,0x88(sp)
lw s7,0x84(sp)
lw s6,0x80(sp)
lw s5,0x7c(sp)
lw s4,0x78(sp)
lw s3,0x74(sp)
lw s2,0x70(sp)
lw s1,0x6c(sp)
lw s0,0x68(sp)
jr ra
_addiu sp,sp,0x90
li v1,0x1
lw t2,-0x7fc4(gp)
beq s1,zero,0x000279f8
_sw v1,-0x68(v0)
lw v0,-0x7fc4(gp)
sll v1,s1,0x1
lw s0,-0x7ca8(gp)
addiu t2,t2,-0x2060
addiu v0,v0,-0x2a94
addu a0,t2,v1
addu v0,v0,v1
lh s2,0x0(v0)
lw v0,0x0(s0)
beq v0,zero,0x00027a1c
_lh s3,0x0(a0)
lw v0,-0x7c98(gp)
lw v1,0x0(v0)
beq v1,zero,0x00027a3c
_lw v1,-0x78c4(gp)
lw s4,-0x7fd8(gp)
lw v0,-0x58(s4)
beq v0,zero,0x00027a54
_lw s5,-0x7fd8(gp)
lw v1,-0x50(s5)
sll v1,v1,0x2
addu v0,v0,v1
lw v0,0x0(v0)
beq v0,zero,0x00027a58
_lw t9,-0x7fcc(gp)
lw s5,-0x7cac(gp)
lw s4,0x8(v0)
lw a0,0x0(v0)
lw a1,-0x7fd8(gp)
lw v1,0x10(v0)
lw s6,-0x7fd8(gp)
lw v0,-0x7fd8(gp)
sw s4,0x0(s5)
sw a0,0x0(s0)
sw a1,0x28(sp)
sw v1,-0x60(v0)
sw s4,-0x64(s6)
lb a0,0x0(s4)
b 0x00027758
_sb a0,-0x5c(a1)
lw v0,0x34(sp)
or s2,zero,zero
lw s0,-0x7ca8(gp)
or s3,zero,zero
li s1,0x1
sw v1,-0x6c(v0)
lw v0,0x0(s0)
bne v0,zero,0x00027984
_addiu t2,t2,-0x2060
lw v0,-0x788c(gp)
lw v0,0x0(v0)
sw v0,0x0(s0)
lw v0,-0x7c98(gp)
lw v1,0x0(v0)
bne v1,zero,0x00027998
_lw s4,-0x7fd8(gp)
lw v1,-0x78c4(gp)
lw v1,0x0(v1)
b 0x00027994
_sw v1,0x0(v0)
or s2,t3,zero
b 0x0002788c
_or a1,t2,zero
lw t9,-0x7fcc(gp)
addiu t9,t9,0x70f0
bal 0x000270f0
_sw t2,0x1c(sp)
li a1,0x4000
lw gp,0x10(sp)
lw v0,-0x50(s5)
lw s4,-0x58(s4)
lw a0,0x0(s0)
sll v0,v0,0x2
lw t9,-0x7ca0(gp)
bal 0x000274fc
_addu s4,s4,v0
lw gp,0x10(sp)
lw t2,0x1c(sp)
b 0x000279bc
_sw v0,0x0(s4)
lw ra,0x8c(sp)
li v0,0x11
lw s8,0x88(sp)
lw s7,0x84(sp)
lw s6,0x80(sp)
lw s5,0x7c(sp)
lw s4,0x78(sp)
lw s3,0x74(sp)
lw s2,0x70(sp)
lw s1,0x6c(sp)
lw s0,0x68(sp)
jr ra
_addiu sp,sp,0x90
b 0x00027918
_li v0,0x12
b 0x00027918
_li v0,0x14
b 0x00027918
_li v0,0x18
b 0x00027918
_li v0,0x13
lw v0,0x2c(sp)
li a2,0x1
lw t9,-0x7834(gp)
or s5,s8,zero
sw v1,0x3c(sp)
or s8,s3,zero
sw t0,0x38(sp)
lw a1,0x0(v0)
lw v0,0x24(sp)
sw t8,0x30(sp)
lw a0,0x0(v0)
lw v0,-0x7c98(gp)
jalr t9
_lw a3,0x0(v0)
lw v0,0x34(sp)
lw v1,0x3c(sp)
lw gp,0x10(sp)
lw s4,-0x64(s5)
lw s1,-0x6c(v0)
lw v0,0x28(sp)
lw t8,0x30(sp)
lw t0,0x38(sp)
lb t6,-0x5c(v0)
sll v0,s1,0x1
addu a0,s3,v0
addu v0,v1,v0
lh s3,0x0(a0)
b 0x000277ac
_lh a0,0x0(v0)
b 0x00027918
_li v0,0xb
b 0x00027918
_li v0,0xa
b 0x00027918
_li v0,0x9
b 0x00027918
_li v0,0x8
b 0x00027918
_li v0,0x7
b 0x00027918
_li v0,0x6
b 0x00027918
_li v0,0x5
b 0x00027918
_li v0,0x4
b 0x00027918
_li v0,0x3
b 0x00027918
_li v0,0x2
lw v0,0x34(sp)
or t2,s3,zero
or s5,s8,zero
lw s4,-0x64(s8)
lw s1,-0x6c(v0)
lw v0,0x28(sp)
lb t6,-0x5c(v0)
sll v0,s1,0x1
addu a0,s3,v0
addu v0,v1,v0
lh s3,0x0(a0)
b 0x000277b8
_lh a0,0x0(v0)
b 0x00027918
_li v0,0x1b
lw v0,0x28(sp)
lw a0,0x20(sp)
lbu v0,-0x5c(v0)
lw a1,-0x70(a0)
sb v0,0x0(s2)
lw v0,0x1c(sp)
b 0x000278b4
_lw s2,-0x74(v0)
b 0x00027918
_li v0,0x16
b 0x00027918
_li v0,0x19
b 0x00027918
_li v0,0x1a
lw v0,0x30(sp)
lw a0,-0x50(t3)
lw a3,-0x58(v0)
sll a0,a0,0x2
lw v0,0x28(sp)
addu a3,a3,a0
lbu a1,-0x5c(v0)
lw v0,0x24(sp)
lw v0,0x0(v0)
sb a1,0x0(s2)
lw a2,0x0(a3)
subu v0,s2,v0
addiu v0,v0,-0x1
sw v0,0x44(sp)
lw v0,0x2c(a2)
beq v0,zero,0x00027f7c
_lw s1,-0x7ca8(gp)
lw v0,-0x60(t2)
lw t4,0x4(a2)
lw a1,-0x64(s8)
lw a0,0x24(sp)
addu s1,t4,v0
sltu t5,s1,a1
beq t5,zero,0x0002809c
_lw a0,0x0(a0)
addiu v0,v0,0x1
addu v0,t4,v0
sltu v0,v0,a1
bne v0,zero,0x0002826c
_lw t9,-0x7fcc(gp)
lw v0,0x28(a2)
bne v0,zero,0x00027d70
_subu s4,a1,a0
li v0,0x1
bne s4,v0,0x00027d30
_lw t9,0x38(sp)
lw v0,0x34(sp)
lw a0,0x24(sp)
lw v0,-0x6c(v0)
lw a1,0x0(a0)
addiu a0,v0,-0x1
sw a1,-0x64(s8)
srl v0,a0,0x1f
addu v0,v0,a0
sra v0,v0,0x1
b 0x000278f0
_addiu v0,v0,0x2b
b 0x00027918
_li v0,0x10
b 0x00027918
_li v0,0xc
b 0x00027918
_li v0,0x15
b 0x00027918
_li v0,0x17
lw s5,0x24(sp)
lw v0,0x0(s5)
b 0x00027918
_lb v0,0x0(v0)
b 0x00027918
_li v0,0xe
b 0x00027918
_li v0,0xd
b 0x00027918
_li v0,0xf
addu s1,s4,a3
lw t9,0x38(sp)
or s2,s1,zero
sw v1,0x48(sp)
sw t1,0x44(sp)
sw t0,0x40(sp)
sw t8,0x3c(sp)
jalr t9
_sw s1,-0x64(s8)
or a1,v0,zero
lw v0,0x24(sp)
lw gp,0x10(sp)
lw t8,0x3c(sp)
lw t0,0x40(sp)
lw s6,0x0(v0)
lw t1,0x44(sp)
b 0x000278b4
_lw v1,0x48(sp)
addiu v0,s4,-0x1
blez v0,0x00027d98
_sw v0,0x3c(sp)
addu v0,t4,v0
addiu a0,a0,0x1
lb a2,-0x1(a0)
addiu t4,t4,0x1
bne t4,v0,0x00027d80
_sb a2,-0x1(t4)
lw a2,0x0(a3)
lw a0,0x2c(a2)
li v0,0x2
beq a0,v0,0x00027f98
_lw a0,0x3c(sp)
lw v0,0xc(a2)
subu v0,v0,a0
addiu v0,v0,-0x1
bgtz v0,0x00027ea4
_or s1,a2,zero
b 0x00027e58
_lw a0,0x4(s1)
lw v0,0xc(s1)
blez v0,0x00027e7c
_nop
sll v0,v0,0x1
lw t9,-0x7648(gp)
addiu a1,v0,0x2
sw a3,0x60(sp)
sw v1,0x5c(sp)
sw t1,0x58(sp)
sw t0,0x54(sp)
sw t2,0x50(sp)
sw t3,0x4c(sp)
sw t8,0x48(sp)
sw a2,0x40(sp)
jalr t9
_sw v0,0xc(s1)
lw gp,0x10(sp)
lw a2,0x40(sp)
lw t8,0x48(sp)
lw t3,0x4c(sp)
lw t2,0x50(sp)
lw t0,0x54(sp)
lw t1,0x58(sp)
lw v1,0x5c(sp)
lw a3,0x60(sp)
beq v0,zero,0x00027e68
_sw v0,0x4(s1)
lw s1,0x0(a3)
addu a1,v0,a2
lw a0,0x3c(sp)
sw a1,-0x64(s8)
lw v0,0xc(s1)
subu v0,v0,a0
addiu v0,v0,-0x1
bgtz v0,0x00027ea0
_nop
lw a0,0x4(s1)
lw v0,0x14(s1)
bne v0,zero,0x00027dc4
_subu a2,a1,a0
sw zero,0x4(s1)
lw a0,-0x7fc8(gp)
lw t9,-0x7fcc(gp)
addiu t9,t9,0x70a8
bal 0x000270a8
_addiu a0,a0,0x5a58
bltz v0,0x00027e90
_or a1,v0,zero
sra a1,a1,0x3
b 0x00027dd4
_addu v0,a1,v0
addiu a1,v0,0x7
sra a1,a1,0x3
b 0x00027dd4
_addu v0,a1,v0
or a2,s1,zero
li a0,0x2000
lw a3,0x18(a2)
slti a1,v0,0x2001
movn a0,v0,a1
sw a3,0x40(sp)
beq a3,zero,0x000282f0
_or a1,a0,zero
lw s1,-0x7ca8(gp)
or a2,zero,zero
addiu t6,s4,-0x2
lw t9,-0x7890(gp)
lw a0,0x0(s1)
sw a2,0x5c(sp)
sw v1,0x58(sp)
sw t1,0x54(sp)
sw t0,0x50(sp)
sw t2,0x4c(sp)
sw t3,0x48(sp)
sw t8,0x40(sp)
sw t6,0x64(sp)
jalr t9
_sw a1,0x60(sp)
li t5,-0x1
lw gp,0x10(sp)
lw t8,0x40(sp)
lw t3,0x48(sp)
lw t2,0x4c(sp)
lw t0,0x50(sp)
lw t1,0x54(sp)
lw v1,0x58(sp)
beq v0,t5,0x00028288
_lw a2,0x5c(sp)
lw a1,0x30(sp)
addiu a2,a2,0x1
lw a0,-0x50(t3)
li a3,0xa
lw t6,0x64(sp)
lw s4,-0x58(a1)
sll a0,a0,0x2
addu t4,t6,a2
lw a1,0x60(sp)
addu s4,s4,a0
lw a0,0x0(s4)
lw a0,0x4(a0)
beq v0,a3,0x0002827c
_addu a0,a0,t4
bne a1,a2,0x00027ecc
_sb v0,0x0(a0)
lw a2,0x0(s4)
sw a1,-0x60(t2)
beq a1,zero,0x00027fa0
_sw a1,0x10(a2)
b 0x00027fd4
_sw zero,0x40(sp)
li a0,0x1
lw v0,0x10(a2)
sw a0,0x2c(a2)
sw v0,-0x60(t2)
lw a0,0x0(s1)
b 0x00027c6c
_sw a0,0x0(a2)
sw zero,-0x60(t2)
sw zero,0x10(a2)
lw v0,0x3c(sp)
beq v0,zero,0x000281e0
_lw v0,-0x50(t3)
lw a0,0x30(sp)
lw a1,-0x60(t2)
lw s4,-0x58(a0)
sll v0,v0,0x2
li a0,0x2
addu s4,s4,v0
sw a0,0x40(sp)
li v0,0x2
lw a2,0x0(s4)
sw v0,0x2c(a2)
lw a0,0x3c(sp)
lw v0,0xc(a2)
addu a3,a0,a1
slt v0,v0,a3
bne v0,zero,0x00028168
_lw a0,0x4(a2)
addu a0,a0,a3
sw a3,-0x60(t2)
li a1,0x1
sb zero,0x0(a0)
lw v0,0x0(s4)
lw a0,0x40(sp)
lw v0,0x4(v0)
addu v0,v0,a3
sb zero,0x1(v0)
lw v0,0x0(s4)
lw s4,0x4(v0)
lw v0,0x24(sp)
beq a0,a1,0x00027cb4
_sw s4,0x0(v0)
li v0,0x2
beq a0,v0,0x00027d28
_lw v0,0x44(sp)
or s6,s3,zero
lw t9,-0x7fcc(gp)
sw v1,0x48(sp)
addu s4,s4,v0
sw t1,0x40(sp)
addiu t9,t9,0x6f50
sw t0,0x3c(sp)
sw t8,0x38(sp)
sw s4,-0x64(s8)
bal 0x00026f50
_sw s8,0x30(sp)
or s1,v0,zero
lw v0,0x24(sp)
lw gp,0x10(sp)
lw t4,0x30(sp)
lw t8,0x38(sp)
lw t7,0x0(v0)
lw t0,0x3c(sp)
lw t1,0x40(sp)
lw v1,0x48(sp)
sll v0,s1,0x1
lb t6,0x0(s4)
addu a0,s6,v0
addu v0,v1,v0
lh s3,0x0(a0)
b 0x000277c8
_lh a0,0x0(v0)
lw v0,0x44(sp)
lw t9,0x38(sp)
sw v1,0x4c(sp)
addu s4,a0,v0
sw t1,0x48(sp)
sw t0,0x40(sp)
sw t8,0x3c(sp)
jalr t9
_sw s4,-0x64(s8)
sll a1,v0,0x1
lw gp,0x10(sp)
lw t8,0x3c(sp)
addu a0,s3,a1
lw t0,0x40(sp)
lw t1,0x48(sp)
lh a0,0x0(a0)
beq a0,zero,0x00028104
_lw v1,0x4c(sp)
lw a0,0x20(sp)
sw v0,-0x70(a0)
lw a0,0x1c(sp)
b 0x00028104
_sw s4,-0x74(a0)
addu a1,t0,a1
lh v0,0x0(a1)
sll a1,v0,0x1
addu a0,v1,a1
lh a0,0x0(a0)
addiu a0,a0,0x1
sll a0,a0,0x1
addu a2,s0,a0
lh a2,0x0(a2)
bne v0,a2,0x000280f8
_lw v0,0x24(sp)
addu a0,t8,a0
lh s1,0x0(a0)
lw s6,0x0(v0)
li v0,0x44e
beq s1,v0,0x00028144
_lw v0,0x1c(sp)
bne s1,zero,0x00028154
_or t7,s6,zero
lw s2,-0x74(v0)
lw v0,0x20(sp)
b 0x000278b4
_lw a1,-0x70(v0)
addiu s4,s4,0x1
or t4,s8,zero
sw s4,-0x64(s8)
b 0x00028080
_or s6,s3,zero
sra a1,a1,0x1
lw t9,-0x7648(gp)
sw v1,0x60(sp)
addu s1,a1,a3
sw t1,0x5c(sp)
sw t0,0x58(sp)
sw t2,0x54(sp)
or a1,s1,zero
sw t3,0x50(sp)
sw t8,0x4c(sp)
sw a2,0x48(sp)
jalr t9
_sw a3,0x3c(sp)
lw a2,0x48(sp)
lw a1,0x0(s4)
lw gp,0x10(sp)
lw a3,0x3c(sp)
lw t8,0x4c(sp)
lw t3,0x50(sp)
lw t2,0x54(sp)
lw t0,0x58(sp)
lw t1,0x5c(sp)
lw v1,0x60(sp)
sw v0,0x4(a2)
lw a0,0x4(a1)
beq a0,zero,0x0002824c
_lw t9,-0x7fcc(gp)
addiu s1,s1,-0x2
b 0x00027fec
_sw s1,0xc(a1)
lw s1,-0x7ca8(gp)
lw t9,-0x7c94(gp)
sw v1,0x5c(sp)
sw t1,0x58(sp)
sw t0,0x54(sp)
sw t2,0x50(sp)
sw t3,0x4c(sp)
sw t8,0x48(sp)
bal 0x000275a8
_lw a0,0x0(s1)
li v0,0x1
lw t3,0x4c(sp)
lw v1,0x30(sp)
lw t2,0x50(sp)
sw v0,0x40(sp)
lw v0,-0x50(t3)
lw s4,-0x58(v1)
lw gp,0x10(sp)
sll v0,v0,0x2
lw a1,-0x60(t2)
lw t8,0x48(sp)
addu s4,s4,v0
lw t0,0x54(sp)
lw t1,0x58(sp)
lw v1,0x5c(sp)
b 0x00027fd4
_lw a2,0x0(s4)
lw a0,-0x7fc8(gp)
addiu t9,t9,0x70a8
bal 0x000270a8
_addiu a0,a0,0x5aa4
lw t9,-0x7fcc(gp)
addiu t9,t9,0x70a8
bal 0x000270a8
_addiu a0,a0,0x5ad4
lw a0,-0x7fc8(gp)
addiu t9,t9,0x70a8
bal 0x000270a8
_addiu a0,a0,0x5a20
sb a3,0x0(a0)
b 0x00027f64
_or a1,a2,zero
lw t9,-0x7960(gp)
lw a0,0x0(s1)
sw v1,0x5c(sp)
sw t1,0x58(sp)
sw t0,0x54(sp)
sw t2,0x50(sp)
sw t3,0x4c(sp)
sw t8,0x48(sp)
jalr t9
_sw a2,0x40(sp)
bne v0,zero,0x00028474
_lw gp,0x10(sp)
lw t3,0x4c(sp)
lw v1,0x30(sp)
lw a2,0x40(sp)
lw t8,0x48(sp)
lw v0,-0x50(t3)
lw s4,-0x58(v1)
or a1,a2,zero
lw t2,0x50(sp)
sll v0,v0,0x2
lw t0,0x54(sp)
lw t1,0x58(sp)
addu s4,s4,v0
b 0x00027f64
_lw v1,0x5c(sp)
lw t9,-0x75a0(gp)
lw s1,-0x7ca8(gp)
sw a2,0x64(sp)
sw v1,0x60(sp)
sw t1,0x5c(sp)
sw t0,0x58(sp)
sw t2,0x54(sp)
sw t3,0x50(sp)
sw t8,0x4c(sp)
jalr t9
_sw a0,0x48(sp)
lw gp,0x10(sp)
or s4,v0,zero
lw a2,0x64(sp)
lw t8,0x4c(sp)
lw t3,0x50(sp)
lw t2,0x54(sp)
lw t0,0x58(sp)
lw t1,0x5c(sp)
lw v1,0x60(sp)
b 0x000283f4
_sw zero,0x0(v0)
lw t9,-0x7960(gp)
lw a0,0x0(s1)
sw v1,0x60(sp)
sw t1,0x5c(sp)
sw t0,0x58(sp)
sw t2,0x54(sp)
sw t3,0x50(sp)
jalr t9
_sw t8,0x4c(sp)
lw gp,0x10(sp)
lw t8,0x4c(sp)
lw t3,0x50(sp)
lw t2,0x54(sp)
lw t0,0x58(sp)
lw t1,0x5c(sp)
beq v0,zero,0x00028488
_lw v1,0x60(sp)
lw v0,0x0(s4)
sw v1,0x60(sp)
li v1,0x4
sw t1,0x5c(sp)
sw t0,0x58(sp)
sw t2,0x54(sp)
sw t3,0x50(sp)
bne v0,v1,0x00028474
_sw t8,0x4c(sp)
lw t9,-0x77e4(gp)
lw a0,0x0(s1)
jalr t9
_sw zero,0x0(s4)
lw t3,0x50(sp)
lw v0,0x30(sp)
lw gp,0x10(sp)
lw v1,0x60(sp)
lw a0,-0x50(t3)
lw v0,-0x58(v0)
lw t1,0x5c(sp)
sll a0,a0,0x2
lw t0,0x58(sp)
lw t2,0x54(sp)
addu v0,v0,a0
lw t8,0x4c(sp)
lw a2,0x0(v0)
lw a0,0x4(a2)
li a1,0x1
lw v0,0x3c(sp)
lw t9,-0x7938(gp)
lw a2,0x48(sp)
lw a3,0x0(s1)
addu a0,a0,v0
sw v1,0x60(sp)
sw t1,0x5c(sp)
sw t0,0x58(sp)
sw t2,0x54(sp)
sw t3,0x50(sp)
jalr t9
_sw t8,0x4c(sp)
lw t2,0x54(sp)
lw gp,0x10(sp)
lw t8,0x4c(sp)
lw t3,0x50(sp)
lw t0,0x58(sp)
lw t1,0x5c(sp)
lw v1,0x60(sp)
beq v0,zero,0x00028348
_sw v0,-0x60(t2)
lw a0,0x30(sp)
or a1,v0,zero
lw v0,-0x50(t3)
lw s4,-0x58(a0)
sll v0,v0,0x2
addu s4,s4,v0
lw a2,0x0(s4)
b 0x00027fd4
_sw a1,0x10(a2)
lw a0,-0x7fc8(gp)
lw t9,-0x7fcc(gp)
addiu t9,t9,0x70a8
bal 0x000270a8
_addiu a0,a0,0x5a84
lw v0,0x30(sp)
lw a0,-0x50(t3)
lw v0,-0x58(v0)
sll a0,a0,0x2
addu v0,v0,a0
lw v0,0x0(v0)
b 0x00027fa0
_sw zero,0x10(v0)
(translation_unit "void yylex(void)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  byte bVar10;\n  uint uVar8;\n  undefined4 uVar9;\n  bool bVar11;\n  int iVar12;\n  byte *pbVar13;\n  int iVar14;\n  int iVar15;\n  byte *pbVar16;\n  short sVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  int iVar20;\n  undefined4 *puVar21;\n  undefined *local_68;\n  \n  puVar3 = PTR_s_hallenge__000af46c;\n  puVar1 = PTR_DAT_000af458;\n  iVar14 = *(int *)(PTR_DAT_000af458 + -0x6c);\n  if (*(int *)(PTR_DAT_000af458 + -0x68) != 0) {\n    local_68 = PTR_DAT_000af458;\n    bVar10 = PTR_DAT_000af458[-0x5c];\n    pbVar18 = *(byte **)(PTR_DAT_000af458 + -100);\n    sVar17 = *(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060);\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    puVar21 = (undefined4 *)PTR_yytext_000af784;\n    goto LAB_00027758;\n  }\n  *(undefined4 *)(PTR_DAT_000af458 + -0x68) = 1;\n  puVar2 = PTR_yyin_000af788;\n  if (iVar14 == 0) {\n    iVar15 = 0;\n    sVar17 = 0;\n    iVar14 = 1;\n    *(undefined4 *)(puVar1 + -0x6c) = 1;\n    if (*(int *)puVar2 == 0) goto LAB_00027a1c;\nLAB_00027984:\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }\n  else {\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    if (*(int *)PTR_yyin_000af788 != 0) goto LAB_00027984;\nLAB_00027a1c:\n    *(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }\n  if (iVar12 == 0) {\n    *(undefined4 *)PTR_yyout_000af798 = *(undefined4 *)PTR_stdout_000afb6c;\n  }\n  puVar1 = PTR_DAT_000af458;\n  if ((*(int *)(PTR_DAT_000af458 + -0x58) == 0) ||\n     (puVar6 = *(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4),\n     puVar6 == (undefined4 *)0x0)) {\n    FUN_000270f0();\n    iVar12 = *(int *)(puVar1 + -0x50);\n    iVar20 = *(int *)(puVar1 + -0x58);\n    puVar6 = (undefined4 *)yy_create_buffer(*(undefined4 *)puVar2,0x4000);\n    *(undefined4 **)(iVar20 + iVar12 * 4) = puVar6;\n  }\n  puVar21 = (undefined4 *)PTR_yytext_000af784;\n  puVar1 = PTR_DAT_000af458;\n  pbVar18 = (byte *)puVar6[2];\n  uVar9 = *puVar6;\n  local_68 = PTR_DAT_000af458;\n  uVar7 = puVar6[4];\n  *(byte **)PTR_yytext_000af784 = pbVar18;\n  *(undefined4 *)puVar2 = uVar9;\n  *(undefined4 *)(puVar1 + -0x60) = uVar7;\n  *(byte **)(puVar1 + -100) = pbVar18;\n  bVar10 = *pbVar18;\n  puVar1[-0x5c] = bVar10;\nLAB_00027758:\n  puVar5 = PTR_yyleng_000af794;\n  puVar4 = PTR_s_hallenge__000af46c;\n  puVar2 = PTR_LAB_000af468;\n  puVar1 = PTR_DAT_000af458;\n  *pbVar18 = bVar10;\n  bVar11 = false;\n  iVar12 = *(int *)(puVar1 + -0x70);\n  pbVar13 = *(byte **)(puVar1 + -0x74);\n  iVar20 = iVar12;\n  pbVar16 = pbVar13;\n  pbVar19 = pbVar18;\n  while( true ) {\n    uVar8 = (uint)(byte)puVar4[bVar10 - 0x2160];\n    if (sVar17 != 0) {\n      bVar11 = true;\n      iVar20 = iVar14;\n      pbVar16 = pbVar19;\n    }\n    while( true ) {\n      iVar15 = (iVar15 + uVar8) * 2;\n      if (*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14) break;\n      iVar14 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x3378);\n      if (0x44e < iVar14) {\n        uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];\n      }\n      iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n    }\n    iVar14 = (int)*(short *)(puVar4 + iVar15 + -0x6ba4);\n    pbVar19 = pbVar19 + 1;\n    if (iVar14 == 0x44e) break;\n    bVar10 = *pbVar19;\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n  }\n  if (bVar11) {\n    *(byte **)(puVar1 + -0x74) = pbVar16;\n    *(int *)(puVar1 + -0x70) = iVar20;\n    iVar12 = iVar20;\n    pbVar13 = pbVar16;\n  }\n  puVar1 = PTR_LAB_000af468;\n  *(byte **)(local_68 + -100) = pbVar13;\n  *puVar21 = pbVar18;\n  sVar17 = *(short *)(puVar3 + iVar12 * 2 + -0x2060);\n  *(int *)puVar5 = (int)pbVar13 - (int)pbVar18;\n  bVar10 = *pbVar13;\n  *pbVar13 = 0;\n  local_68[-0x5c] = bVar10;\n  if ((uint)(int)sVar17 < 0x2c) {\n                    /* WARNING: Could not emulate address calculation at 0x00027900 */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80)))();\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_000270a8(PTR_LAB_000af468 + 0x5ad4);\n}\n\n" (function_definition "void yylex(void)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  byte bVar10;\n  uint uVar8;\n  undefined4 uVar9;\n  bool bVar11;\n  int iVar12;\n  byte *pbVar13;\n  int iVar14;\n  int iVar15;\n  byte *pbVar16;\n  short sVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  int iVar20;\n  undefined4 *puVar21;\n  undefined *local_68;\n  \n  puVar3 = PTR_s_hallenge__000af46c;\n  puVar1 = PTR_DAT_000af458;\n  iVar14 = *(int *)(PTR_DAT_000af458 + -0x6c);\n  if (*(int *)(PTR_DAT_000af458 + -0x68) != 0) {\n    local_68 = PTR_DAT_000af458;\n    bVar10 = PTR_DAT_000af458[-0x5c];\n    pbVar18 = *(byte **)(PTR_DAT_000af458 + -100);\n    sVar17 = *(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060);\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    puVar21 = (undefined4 *)PTR_yytext_000af784;\n    goto LAB_00027758;\n  }\n  *(undefined4 *)(PTR_DAT_000af458 + -0x68) = 1;\n  puVar2 = PTR_yyin_000af788;\n  if (iVar14 == 0) {\n    iVar15 = 0;\n    sVar17 = 0;\n    iVar14 = 1;\n    *(undefined4 *)(puVar1 + -0x6c) = 1;\n    if (*(int *)puVar2 == 0) goto LAB_00027a1c;\nLAB_00027984:\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }\n  else {\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    if (*(int *)PTR_yyin_000af788 != 0) goto LAB_00027984;\nLAB_00027a1c:\n    *(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }\n  if (iVar12 == 0) {\n    *(undefined4 *)PTR_yyout_000af798 = *(undefined4 *)PTR_stdout_000afb6c;\n  }\n  puVar1 = PTR_DAT_000af458;\n  if ((*(int *)(PTR_DAT_000af458 + -0x58) == 0) ||\n     (puVar6 = *(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4),\n     puVar6 == (undefined4 *)0x0)) {\n    FUN_000270f0();\n    iVar12 = *(int *)(puVar1 + -0x50);\n    iVar20 = *(int *)(puVar1 + -0x58);\n    puVar6 = (undefined4 *)yy_create_buffer(*(undefined4 *)puVar2,0x4000);\n    *(undefined4 **)(iVar20 + iVar12 * 4) = puVar6;\n  }\n  puVar21 = (undefined4 *)PTR_yytext_000af784;\n  puVar1 = PTR_DAT_000af458;\n  pbVar18 = (byte *)puVar6[2];\n  uVar9 = *puVar6;\n  local_68 = PTR_DAT_000af458;\n  uVar7 = puVar6[4];\n  *(byte **)PTR_yytext_000af784 = pbVar18;\n  *(undefined4 *)puVar2 = uVar9;\n  *(undefined4 *)(puVar1 + -0x60) = uVar7;\n  *(byte **)(puVar1 + -100) = pbVar18;\n  bVar10 = *pbVar18;\n  puVar1[-0x5c] = bVar10;\nLAB_00027758:\n  puVar5 = PTR_yyleng_000af794;\n  puVar4 = PTR_s_hallenge__000af46c;\n  puVar2 = PTR_LAB_000af468;\n  puVar1 = PTR_DAT_000af458;\n  *pbVar18 = bVar10;\n  bVar11 = false;\n  iVar12 = *(int *)(puVar1 + -0x70);\n  pbVar13 = *(byte **)(puVar1 + -0x74);\n  iVar20 = iVar12;\n  pbVar16 = pbVar13;\n  pbVar19 = pbVar18;\n  while( true ) {\n    uVar8 = (uint)(byte)puVar4[bVar10 - 0x2160];\n    if (sVar17 != 0) {\n      bVar11 = true;\n      iVar20 = iVar14;\n      pbVar16 = pbVar19;\n    }\n    while( true ) {\n      iVar15 = (iVar15 + uVar8) * 2;\n      if (*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14) break;\n      iVar14 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x3378);\n      if (0x44e < iVar14) {\n        uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];\n      }\n      iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n    }\n    iVar14 = (int)*(short *)(puVar4 + iVar15 + -0x6ba4);\n    pbVar19 = pbVar19 + 1;\n    if (iVar14 == 0x44e) break;\n    bVar10 = *pbVar19;\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n  }\n  if (bVar11) {\n    *(byte **)(puVar1 + -0x74) = pbVar16;\n    *(int *)(puVar1 + -0x70) = iVar20;\n    iVar12 = iVar20;\n    pbVar13 = pbVar16;\n  }\n  puVar1 = PTR_LAB_000af468;\n  *(byte **)(local_68 + -100) = pbVar13;\n  *puVar21 = pbVar18;\n  sVar17 = *(short *)(puVar3 + iVar12 * 2 + -0x2060);\n  *(int *)puVar5 = (int)pbVar13 - (int)pbVar18;\n  bVar10 = *pbVar13;\n  *pbVar13 = 0;\n  local_68[-0x5c] = bVar10;\n  if ((uint)(int)sVar17 < 0x2c) {\n                    /* WARNING: Could not emulate address calculation at 0x00027900 */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80)))();\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_000270a8(PTR_LAB_000af468 + 0x5ad4);\n}" primitive_type (function_declarator "yylex(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  byte bVar10;\n  uint uVar8;\n  undefined4 uVar9;\n  bool bVar11;\n  int iVar12;\n  byte *pbVar13;\n  int iVar14;\n  int iVar15;\n  byte *pbVar16;\n  short sVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  int iVar20;\n  undefined4 *puVar21;\n  undefined *local_68;\n  \n  puVar3 = PTR_s_hallenge__000af46c;\n  puVar1 = PTR_DAT_000af458;\n  iVar14 = *(int *)(PTR_DAT_000af458 + -0x6c);\n  if (*(int *)(PTR_DAT_000af458 + -0x68) != 0) {\n    local_68 = PTR_DAT_000af458;\n    bVar10 = PTR_DAT_000af458[-0x5c];\n    pbVar18 = *(byte **)(PTR_DAT_000af458 + -100);\n    sVar17 = *(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060);\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    puVar21 = (undefined4 *)PTR_yytext_000af784;\n    goto LAB_00027758;\n  }\n  *(undefined4 *)(PTR_DAT_000af458 + -0x68) = 1;\n  puVar2 = PTR_yyin_000af788;\n  if (iVar14 == 0) {\n    iVar15 = 0;\n    sVar17 = 0;\n    iVar14 = 1;\n    *(undefined4 *)(puVar1 + -0x6c) = 1;\n    if (*(int *)puVar2 == 0) goto LAB_00027a1c;\nLAB_00027984:\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }\n  else {\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    if (*(int *)PTR_yyin_000af788 != 0) goto LAB_00027984;\nLAB_00027a1c:\n    *(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }\n  if (iVar12 == 0) {\n    *(undefined4 *)PTR_yyout_000af798 = *(undefined4 *)PTR_stdout_000afb6c;\n  }\n  puVar1 = PTR_DAT_000af458;\n  if ((*(int *)(PTR_DAT_000af458 + -0x58) == 0) ||\n     (puVar6 = *(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4),\n     puVar6 == (undefined4 *)0x0)) {\n    FUN_000270f0();\n    iVar12 = *(int *)(puVar1 + -0x50);\n    iVar20 = *(int *)(puVar1 + -0x58);\n    puVar6 = (undefined4 *)yy_create_buffer(*(undefined4 *)puVar2,0x4000);\n    *(undefined4 **)(iVar20 + iVar12 * 4) = puVar6;\n  }\n  puVar21 = (undefined4 *)PTR_yytext_000af784;\n  puVar1 = PTR_DAT_000af458;\n  pbVar18 = (byte *)puVar6[2];\n  uVar9 = *puVar6;\n  local_68 = PTR_DAT_000af458;\n  uVar7 = puVar6[4];\n  *(byte **)PTR_yytext_000af784 = pbVar18;\n  *(undefined4 *)puVar2 = uVar9;\n  *(undefined4 *)(puVar1 + -0x60) = uVar7;\n  *(byte **)(puVar1 + -100) = pbVar18;\n  bVar10 = *pbVar18;\n  puVar1[-0x5c] = bVar10;\nLAB_00027758:\n  puVar5 = PTR_yyleng_000af794;\n  puVar4 = PTR_s_hallenge__000af46c;\n  puVar2 = PTR_LAB_000af468;\n  puVar1 = PTR_DAT_000af458;\n  *pbVar18 = bVar10;\n  bVar11 = false;\n  iVar12 = *(int *)(puVar1 + -0x70);\n  pbVar13 = *(byte **)(puVar1 + -0x74);\n  iVar20 = iVar12;\n  pbVar16 = pbVar13;\n  pbVar19 = pbVar18;\n  while( true ) {\n    uVar8 = (uint)(byte)puVar4[bVar10 - 0x2160];\n    if (sVar17 != 0) {\n      bVar11 = true;\n      iVar20 = iVar14;\n      pbVar16 = pbVar19;\n    }\n    while( true ) {\n      iVar15 = (iVar15 + uVar8) * 2;\n      if (*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14) break;\n      iVar14 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x3378);\n      if (0x44e < iVar14) {\n        uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];\n      }\n      iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n    }\n    iVar14 = (int)*(short *)(puVar4 + iVar15 + -0x6ba4);\n    pbVar19 = pbVar19 + 1;\n    if (iVar14 == 0x44e) break;\n    bVar10 = *pbVar19;\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n  }\n  if (bVar11) {\n    *(byte **)(puVar1 + -0x74) = pbVar16;\n    *(int *)(puVar1 + -0x70) = iVar20;\n    iVar12 = iVar20;\n    pbVar13 = pbVar16;\n  }\n  puVar1 = PTR_LAB_000af468;\n  *(byte **)(local_68 + -100) = pbVar13;\n  *puVar21 = pbVar18;\n  sVar17 = *(short *)(puVar3 + iVar12 * 2 + -0x2060);\n  *(int *)puVar5 = (int)pbVar13 - (int)pbVar18;\n  bVar10 = *pbVar13;\n  *pbVar13 = 0;\n  local_68[-0x5c] = bVar10;\n  if ((uint)(int)sVar17 < 0x2c) {\n                    /* WARNING: Could not emulate address calculation at 0x00027900 */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80)))();\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_000270a8(PTR_LAB_000af468 + 0x5ad4);\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "short sVar17;" (sized_type_specifier "short" short) identifier ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "undefined4 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "undefined *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (expression_statement "puVar3 = PTR_s_hallenge__000af46c;" (assignment_expression "puVar3 = PTR_s_hallenge__000af46c" identifier = identifier) ;) (expression_statement "puVar1 = PTR_DAT_000af458;" (assignment_expression "puVar1 = PTR_DAT_000af458" identifier = identifier) ;) (expression_statement "iVar14 = *(int *)(PTR_DAT_000af458 + -0x6c);" (assignment_expression "iVar14 = *(int *)(PTR_DAT_000af458 + -0x6c)" identifier = (pointer_expression "*(int *)(PTR_DAT_000af458 + -0x6c)" * (cast_expression "(int *)(PTR_DAT_000af458 + -0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000af458 + -0x6c)" ( (binary_expression "PTR_DAT_000af458 + -0x6c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(PTR_DAT_000af458 + -0x68) != 0) {\n    local_68 = PTR_DAT_000af458;\n    bVar10 = PTR_DAT_000af458[-0x5c];\n    pbVar18 = *(byte **)(PTR_DAT_000af458 + -100);\n    sVar17 = *(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060);\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    puVar21 = (undefined4 *)PTR_yytext_000af784;\n    goto LAB_00027758;\n  }" if (parenthesized_expression "(*(int *)(PTR_DAT_000af458 + -0x68) != 0)" ( (binary_expression "*(int *)(PTR_DAT_000af458 + -0x68) != 0" (pointer_expression "*(int *)(PTR_DAT_000af458 + -0x68)" * (cast_expression "(int *)(PTR_DAT_000af458 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000af458 + -0x68)" ( (binary_expression "PTR_DAT_000af458 + -0x68" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    local_68 = PTR_DAT_000af458;\n    bVar10 = PTR_DAT_000af458[-0x5c];\n    pbVar18 = *(byte **)(PTR_DAT_000af458 + -100);\n    sVar17 = *(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060);\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    puVar21 = (undefined4 *)PTR_yytext_000af784;\n    goto LAB_00027758;\n  }" { (expression_statement "local_68 = PTR_DAT_000af458;" (assignment_expression "local_68 = PTR_DAT_000af458" identifier = identifier) ;) (expression_statement "bVar10 = PTR_DAT_000af458[-0x5c];" (assignment_expression "bVar10 = PTR_DAT_000af458[-0x5c]" identifier = (subscript_expression "PTR_DAT_000af458[-0x5c]" identifier [ number_literal ])) ;) (expression_statement "pbVar18 = *(byte **)(PTR_DAT_000af458 + -100);" (assignment_expression "pbVar18 = *(byte **)(PTR_DAT_000af458 + -100)" identifier = (pointer_expression "*(byte **)(PTR_DAT_000af458 + -100)" * (cast_expression "(byte **)(PTR_DAT_000af458 + -100)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_000af458 + -100)" ( (binary_expression "PTR_DAT_000af458 + -100" identifier + number_literal) ))))) ;) (expression_statement "sVar17 = *(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060);" (assignment_expression "sVar17 = *(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060)" identifier = (pointer_expression "*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060)" * (cast_expression "(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060)" ( (binary_expression "PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060" (binary_expression "PTR_s_hallenge__000af46c + iVar14 * 2" identifier + (binary_expression "iVar14 * 2" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);" (assignment_expression "iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94)" identifier = (cast_expression "(int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94)" * (cast_expression "(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94)" ( (binary_expression "PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94" (binary_expression "PTR_s_hallenge__000af46c + iVar14 * 2" identifier + (binary_expression "iVar14 * 2" identifier * number_literal)) + number_literal) )))))) ;) (expression_statement "puVar21 = (undefined4 *)PTR_yytext_000af784;" (assignment_expression "puVar21 = (undefined4 *)PTR_yytext_000af784" identifier = (cast_expression "(undefined4 *)PTR_yytext_000af784" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_00027758;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(PTR_DAT_000af458 + -0x68) = 1;" (assignment_expression "*(undefined4 *)(PTR_DAT_000af458 + -0x68) = 1" (pointer_expression "*(undefined4 *)(PTR_DAT_000af458 + -0x68)" * (cast_expression "(undefined4 *)(PTR_DAT_000af458 + -0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000af458 + -0x68)" ( (binary_expression "PTR_DAT_000af458 + -0x68" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar2 = PTR_yyin_000af788;" (assignment_expression "puVar2 = PTR_yyin_000af788" identifier = identifier) ;) (if_statement "if (iVar14 == 0) {\n    iVar15 = 0;\n    sVar17 = 0;\n    iVar14 = 1;\n    *(undefined4 *)(puVar1 + -0x6c) = 1;\n    if (*(int *)puVar2 == 0) goto LAB_00027a1c;\nLAB_00027984:\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }\n  else {\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    if (*(int *)PTR_yyin_000af788 != 0) goto LAB_00027984;\nLAB_00027a1c:\n    *(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar15 = 0;\n    sVar17 = 0;\n    iVar14 = 1;\n    *(undefined4 *)(puVar1 + -0x6c) = 1;\n    if (*(int *)puVar2 == 0) goto LAB_00027a1c;\nLAB_00027984:\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "sVar17 = 0;" (assignment_expression "sVar17 = 0" identifier = number_literal) ;) (expression_statement "iVar14 = 1;" (assignment_expression "iVar14 = 1" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(puVar1 + -0x6c) = 1;" (assignment_expression "*(undefined4 *)(puVar1 + -0x6c) = 1" (pointer_expression "*(undefined4 *)(puVar1 + -0x6c)" * (cast_expression "(undefined4 *)(puVar1 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x6c)" ( (binary_expression "puVar1 + -0x6c" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(int *)puVar2 == 0) goto LAB_00027a1c;" if (parenthesized_expression "(*(int *)puVar2 == 0)" ( (binary_expression "*(int *)puVar2 == 0" (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (goto_statement "goto LAB_00027a1c;" goto statement_identifier ;)) (labeled_statement "LAB_00027984:\n    iVar12 = *(int *)PTR_yyout_000af798;" statement_identifier : (expression_statement "iVar12 = *(int *)PTR_yyout_000af798;" (assignment_expression "iVar12 = *(int *)PTR_yyout_000af798" identifier = (pointer_expression "*(int *)PTR_yyout_000af798" * (cast_expression "(int *)PTR_yyout_000af798" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;)) }) (else_clause "else {\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    if (*(int *)PTR_yyin_000af788 != 0) goto LAB_00027984;\nLAB_00027a1c:\n    *(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }" else (compound_statement "{\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    if (*(int *)PTR_yyin_000af788 != 0) goto LAB_00027984;\nLAB_00027a1c:\n    *(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }" { (expression_statement "iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);" (assignment_expression "iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94)" identifier = (cast_expression "(int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94)" * (cast_expression "(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94)" ( (binary_expression "PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94" (binary_expression "PTR_s_hallenge__000af46c + iVar14 * 2" identifier + (binary_expression "iVar14 * 2" identifier * number_literal)) + number_literal) )))))) ;) (expression_statement "sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);" (assignment_expression "sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060)" identifier = (pointer_expression "*(short *)(puVar3 + iVar14 * 2 + -0x2060)" * (cast_expression "(short *)(puVar3 + iVar14 * 2 + -0x2060)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + iVar14 * 2 + -0x2060)" ( (binary_expression "puVar3 + iVar14 * 2 + -0x2060" (binary_expression "puVar3 + iVar14 * 2" identifier + (binary_expression "iVar14 * 2" identifier * number_literal)) + number_literal) ))))) ;) (if_statement "if (*(int *)PTR_yyin_000af788 != 0) goto LAB_00027984;" if (parenthesized_expression "(*(int *)PTR_yyin_000af788 != 0)" ( (binary_expression "*(int *)PTR_yyin_000af788 != 0" (pointer_expression "*(int *)PTR_yyin_000af788" * (cast_expression "(int *)PTR_yyin_000af788" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (goto_statement "goto LAB_00027984;" goto statement_identifier ;)) (labeled_statement "LAB_00027a1c:\n    *(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;" statement_identifier : (expression_statement "*(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;" (assignment_expression "*(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4" (pointer_expression "*(undefined4 *)puVar2" * (cast_expression "(undefined4 *)puVar2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)PTR_stdin_000afba4" * (cast_expression "(undefined4 *)PTR_stdin_000afba4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;)) (expression_statement "iVar12 = *(int *)PTR_yyout_000af798;" (assignment_expression "iVar12 = *(int *)PTR_yyout_000af798" identifier = (pointer_expression "*(int *)PTR_yyout_000af798" * (cast_expression "(int *)PTR_yyout_000af798" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }))) (if_statement "if (iVar12 == 0) {\n    *(undefined4 *)PTR_yyout_000af798 = *(undefined4 *)PTR_stdout_000afb6c;\n  }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n    *(undefined4 *)PTR_yyout_000af798 = *(undefined4 *)PTR_stdout_000afb6c;\n  }" { (expression_statement "*(undefined4 *)PTR_yyout_000af798 = *(undefined4 *)PTR_stdout_000afb6c;" (assignment_expression "*(undefined4 *)PTR_yyout_000af798 = *(undefined4 *)PTR_stdout_000afb6c" (pointer_expression "*(undefined4 *)PTR_yyout_000af798" * (cast_expression "(undefined4 *)PTR_yyout_000af798" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)PTR_stdout_000afb6c" * (cast_expression "(undefined4 *)PTR_stdout_000afb6c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) })) (expression_statement "puVar1 = PTR_DAT_000af458;" (assignment_expression "puVar1 = PTR_DAT_000af458" identifier = identifier) ;) (if_statement "if ((*(int *)(PTR_DAT_000af458 + -0x58) == 0) ||\n     (puVar6 = *(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4),\n     puVar6 == (undefined4 *)0x0)) {\n    FUN_000270f0();\n    iVar12 = *(int *)(puVar1 + -0x50);\n    iVar20 = *(int *)(puVar1 + -0x58);\n    puVar6 = (undefined4 *)yy_create_buffer(*(undefined4 *)puVar2,0x4000);\n    *(undefined4 **)(iVar20 + iVar12 * 4) = puVar6;\n  }" if (parenthesized_expression "((*(int *)(PTR_DAT_000af458 + -0x58) == 0) ||\n     (puVar6 = *(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4),\n     puVar6 == (undefined4 *)0x0))" ( (binary_expression "(*(int *)(PTR_DAT_000af458 + -0x58) == 0) ||\n     (puVar6 = *(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4),\n     puVar6 == (undefined4 *)0x0)" (parenthesized_expression "(*(int *)(PTR_DAT_000af458 + -0x58) == 0)" ( (binary_expression "*(int *)(PTR_DAT_000af458 + -0x58) == 0" (pointer_expression "*(int *)(PTR_DAT_000af458 + -0x58)" * (cast_expression "(int *)(PTR_DAT_000af458 + -0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000af458 + -0x58)" ( (binary_expression "PTR_DAT_000af458 + -0x58" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(puVar6 = *(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4),\n     puVar6 == (undefined4 *)0x0)" ( (comma_expression "puVar6 = *(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4),\n     puVar6 == (undefined4 *)0x0" (assignment_expression "puVar6 = *(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4)" identifier = (pointer_expression "*(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4)" * (cast_expression "(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4)" ( (binary_expression "*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4" (pointer_expression "*(int *)(PTR_DAT_000af458 + -0x58)" * (cast_expression "(int *)(PTR_DAT_000af458 + -0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000af458 + -0x58)" ( (binary_expression "PTR_DAT_000af458 + -0x58" identifier + number_literal) )))) + (binary_expression "*(int *)(PTR_DAT_000af458 + -0x50) * 4" (pointer_expression "*(int *)(PTR_DAT_000af458 + -0x50)" * (cast_expression "(int *)(PTR_DAT_000af458 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000af458 + -0x50)" ( (binary_expression "PTR_DAT_000af458 + -0x50" identifier + number_literal) )))) * number_literal)) ))))) , (binary_expression "puVar6 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    FUN_000270f0();\n    iVar12 = *(int *)(puVar1 + -0x50);\n    iVar20 = *(int *)(puVar1 + -0x58);\n    puVar6 = (undefined4 *)yy_create_buffer(*(undefined4 *)puVar2,0x4000);\n    *(undefined4 **)(iVar20 + iVar12 * 4) = puVar6;\n  }" { (expression_statement "FUN_000270f0();" (call_expression "FUN_000270f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = *(int *)(puVar1 + -0x50);" (assignment_expression "iVar12 = *(int *)(puVar1 + -0x50)" identifier = (pointer_expression "*(int *)(puVar1 + -0x50)" * (cast_expression "(int *)(puVar1 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x50)" ( (binary_expression "puVar1 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = *(int *)(puVar1 + -0x58);" (assignment_expression "iVar20 = *(int *)(puVar1 + -0x58)" identifier = (pointer_expression "*(int *)(puVar1 + -0x58)" * (cast_expression "(int *)(puVar1 + -0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x58)" ( (binary_expression "puVar1 + -0x58" identifier + number_literal) ))))) ;) (expression_statement "puVar6 = (undefined4 *)yy_create_buffer(*(undefined4 *)puVar2,0x4000);" (assignment_expression "puVar6 = (undefined4 *)yy_create_buffer(*(undefined4 *)puVar2,0x4000)" identifier = (cast_expression "(undefined4 *)yy_create_buffer(*(undefined4 *)puVar2,0x4000)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "yy_create_buffer(*(undefined4 *)puVar2,0x4000)" identifier (argument_list "(*(undefined4 *)puVar2,0x4000)" ( (pointer_expression "*(undefined4 *)puVar2" * (cast_expression "(undefined4 *)puVar2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal ))))) ;) (expression_statement "*(undefined4 **)(iVar20 + iVar12 * 4) = puVar6;" (assignment_expression "*(undefined4 **)(iVar20 + iVar12 * 4) = puVar6" (pointer_expression "*(undefined4 **)(iVar20 + iVar12 * 4)" * (cast_expression "(undefined4 **)(iVar20 + iVar12 * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + iVar12 * 4)" ( (binary_expression "iVar20 + iVar12 * 4" identifier + (binary_expression "iVar12 * 4" identifier * number_literal)) )))) = identifier) ;) })) (expression_statement "puVar21 = (undefined4 *)PTR_yytext_000af784;" (assignment_expression "puVar21 = (undefined4 *)PTR_yytext_000af784" identifier = (cast_expression "(undefined4 *)PTR_yytext_000af784" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar1 = PTR_DAT_000af458;" (assignment_expression "puVar1 = PTR_DAT_000af458" identifier = identifier) ;) (expression_statement "pbVar18 = (byte *)puVar6[2];" (assignment_expression "pbVar18 = (byte *)puVar6[2]" identifier = (cast_expression "(byte *)puVar6[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar9 = *puVar6;" (assignment_expression "uVar9 = *puVar6" identifier = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "local_68 = PTR_DAT_000af458;" (assignment_expression "local_68 = PTR_DAT_000af458" identifier = identifier) ;) (expression_statement "uVar7 = puVar6[4];" (assignment_expression "uVar7 = puVar6[4]" identifier = (subscript_expression "puVar6[4]" identifier [ number_literal ])) ;) (expression_statement "*(byte **)PTR_yytext_000af784 = pbVar18;" (assignment_expression "*(byte **)PTR_yytext_000af784 = pbVar18" (pointer_expression "*(byte **)PTR_yytext_000af784" * (cast_expression "(byte **)PTR_yytext_000af784" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)puVar2 = uVar9;" (assignment_expression "*(undefined4 *)puVar2 = uVar9" (pointer_expression "*(undefined4 *)puVar2" * (cast_expression "(undefined4 *)puVar2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)(puVar1 + -0x60) = uVar7;" (assignment_expression "*(undefined4 *)(puVar1 + -0x60) = uVar7" (pointer_expression "*(undefined4 *)(puVar1 + -0x60)" * (cast_expression "(undefined4 *)(puVar1 + -0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x60)" ( (binary_expression "puVar1 + -0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar1 + -100) = pbVar18;" (assignment_expression "*(byte **)(puVar1 + -100) = pbVar18" (pointer_expression "*(byte **)(puVar1 + -100)" * (cast_expression "(byte **)(puVar1 + -100)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + -100)" ( (binary_expression "puVar1 + -100" identifier + number_literal) )))) = identifier) ;) (expression_statement "bVar10 = *pbVar18;" (assignment_expression "bVar10 = *pbVar18" identifier = (pointer_expression "*pbVar18" * identifier)) ;) (expression_statement "puVar1[-0x5c] = bVar10;" (assignment_expression "puVar1[-0x5c] = bVar10" (subscript_expression "puVar1[-0x5c]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_00027758:\n  puVar5 = PTR_yyleng_000af794;" statement_identifier : (expression_statement "puVar5 = PTR_yyleng_000af794;" (assignment_expression "puVar5 = PTR_yyleng_000af794" identifier = identifier) ;)) (expression_statement "puVar4 = PTR_s_hallenge__000af46c;" (assignment_expression "puVar4 = PTR_s_hallenge__000af46c" identifier = identifier) ;) (expression_statement "puVar2 = PTR_LAB_000af468;" (assignment_expression "puVar2 = PTR_LAB_000af468" identifier = identifier) ;) (expression_statement "puVar1 = PTR_DAT_000af458;" (assignment_expression "puVar1 = PTR_DAT_000af458" identifier = identifier) ;) (expression_statement "*pbVar18 = bVar10;" (assignment_expression "*pbVar18 = bVar10" (pointer_expression "*pbVar18" * identifier) = identifier) ;) (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" identifier = false) ;) (expression_statement "iVar12 = *(int *)(puVar1 + -0x70);" (assignment_expression "iVar12 = *(int *)(puVar1 + -0x70)" identifier = (pointer_expression "*(int *)(puVar1 + -0x70)" * (cast_expression "(int *)(puVar1 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x70)" ( (binary_expression "puVar1 + -0x70" identifier + number_literal) ))))) ;) (expression_statement "pbVar13 = *(byte **)(puVar1 + -0x74);" (assignment_expression "pbVar13 = *(byte **)(puVar1 + -0x74)" identifier = (pointer_expression "*(byte **)(puVar1 + -0x74)" * (cast_expression "(byte **)(puVar1 + -0x74)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + -0x74)" ( (binary_expression "puVar1 + -0x74" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = iVar12;" (assignment_expression "iVar20 = iVar12" identifier = identifier) ;) (expression_statement "pbVar16 = pbVar13;" (assignment_expression "pbVar16 = pbVar13" identifier = identifier) ;) (expression_statement "pbVar19 = pbVar18;" (assignment_expression "pbVar19 = pbVar18" identifier = identifier) ;) (while_statement "while( true ) {\n    uVar8 = (uint)(byte)puVar4[bVar10 - 0x2160];\n    if (sVar17 != 0) {\n      bVar11 = true;\n      iVar20 = iVar14;\n      pbVar16 = pbVar19;\n    }\n    while( true ) {\n      iVar15 = (iVar15 + uVar8) * 2;\n      if (*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14) break;\n      iVar14 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x3378);\n      if (0x44e < iVar14) {\n        uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];\n      }\n      iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n    }\n    iVar14 = (int)*(short *)(puVar4 + iVar15 + -0x6ba4);\n    pbVar19 = pbVar19 + 1;\n    if (iVar14 == 0x44e) break;\n    bVar10 = *pbVar19;\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    uVar8 = (uint)(byte)puVar4[bVar10 - 0x2160];\n    if (sVar17 != 0) {\n      bVar11 = true;\n      iVar20 = iVar14;\n      pbVar16 = pbVar19;\n    }\n    while( true ) {\n      iVar15 = (iVar15 + uVar8) * 2;\n      if (*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14) break;\n      iVar14 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x3378);\n      if (0x44e < iVar14) {\n        uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];\n      }\n      iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n    }\n    iVar14 = (int)*(short *)(puVar4 + iVar15 + -0x6ba4);\n    pbVar19 = pbVar19 + 1;\n    if (iVar14 == 0x44e) break;\n    bVar10 = *pbVar19;\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n  }" { (expression_statement "uVar8 = (uint)(byte)puVar4[bVar10 - 0x2160];" (assignment_expression "uVar8 = (uint)(byte)puVar4[bVar10 - 0x2160]" identifier = (cast_expression "(uint)(byte)puVar4[bVar10 - 0x2160]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar4[bVar10 - 0x2160]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar4[bVar10 - 0x2160]" identifier [ (binary_expression "bVar10 - 0x2160" identifier - number_literal) ])))) ;) (if_statement "if (sVar17 != 0) {\n      bVar11 = true;\n      iVar20 = iVar14;\n      pbVar16 = pbVar19;\n    }" if (parenthesized_expression "(sVar17 != 0)" ( (binary_expression "sVar17 != 0" identifier != number_literal) )) (compound_statement "{\n      bVar11 = true;\n      iVar20 = iVar14;\n      pbVar16 = pbVar19;\n    }" { (expression_statement "bVar11 = true;" (assignment_expression "bVar11 = true" identifier = true) ;) (expression_statement "iVar20 = iVar14;" (assignment_expression "iVar20 = iVar14" identifier = identifier) ;) (expression_statement "pbVar16 = pbVar19;" (assignment_expression "pbVar16 = pbVar19" identifier = identifier) ;) })) (while_statement "while( true ) {\n      iVar15 = (iVar15 + uVar8) * 2;\n      if (*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14) break;\n      iVar14 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x3378);\n      if (0x44e < iVar14) {\n        uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];\n      }\n      iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      iVar15 = (iVar15 + uVar8) * 2;\n      if (*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14) break;\n      iVar14 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x3378);\n      if (0x44e < iVar14) {\n        uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];\n      }\n      iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n    }" { (expression_statement "iVar15 = (iVar15 + uVar8) * 2;" (assignment_expression "iVar15 = (iVar15 + uVar8) * 2" identifier = (binary_expression "(iVar15 + uVar8) * 2" (parenthesized_expression "(iVar15 + uVar8)" ( (binary_expression "iVar15 + uVar8" identifier + identifier) )) * number_literal)) ;) (if_statement "if (*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14) break;" if (parenthesized_expression "(*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14)" ( (binary_expression "*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14" (pointer_expression "*(short *)(puVar2 + iVar15 + 0x5c30)" * (cast_expression "(short *)(puVar2 + iVar15 + 0x5c30)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + iVar15 + 0x5c30)" ( (binary_expression "puVar2 + iVar15 + 0x5c30" (binary_expression "puVar2 + iVar15" identifier + identifier) + number_literal) )))) == identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar14 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x3378);" (assignment_expression "iVar14 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x3378)" identifier = (cast_expression "(int)*(short *)(puVar4 + iVar14 * 2 + -0x3378)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(puVar4 + iVar14 * 2 + -0x3378)" * (cast_expression "(short *)(puVar4 + iVar14 * 2 + -0x3378)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + iVar14 * 2 + -0x3378)" ( (binary_expression "puVar4 + iVar14 * 2 + -0x3378" (binary_expression "puVar4 + iVar14 * 2" identifier + (binary_expression "iVar14 * 2" identifier * number_literal)) + number_literal) )))))) ;) (if_statement "if (0x44e < iVar14) {\n        uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];\n      }" if (parenthesized_expression "(0x44e < iVar14)" ( (binary_expression "0x44e < iVar14" number_literal < identifier) )) (compound_statement "{\n        uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];\n      }" { (expression_statement "uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];" (assignment_expression "uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0]" identifier = (cast_expression "(uint)(byte)puVar4[uVar8 - 0x21b0]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar4[uVar8 - 0x21b0]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar4[uVar8 - 0x21b0]" identifier [ (binary_expression "uVar8 - 0x21b0" identifier - number_literal) ])))) ;) })) (expression_statement "iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);" (assignment_expression "iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94)" identifier = (cast_expression "(int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(puVar4 + iVar14 * 2 + -0x2a94)" * (cast_expression "(short *)(puVar4 + iVar14 * 2 + -0x2a94)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + iVar14 * 2 + -0x2a94)" ( (binary_expression "puVar4 + iVar14 * 2 + -0x2a94" (binary_expression "puVar4 + iVar14 * 2" identifier + (binary_expression "iVar14 * 2" identifier * number_literal)) + number_literal) )))))) ;) })) (expression_statement "iVar14 = (int)*(short *)(puVar4 + iVar15 + -0x6ba4);" (assignment_expression "iVar14 = (int)*(short *)(puVar4 + iVar15 + -0x6ba4)" identifier = (cast_expression "(int)*(short *)(puVar4 + iVar15 + -0x6ba4)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(puVar4 + iVar15 + -0x6ba4)" * (cast_expression "(short *)(puVar4 + iVar15 + -0x6ba4)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + iVar15 + -0x6ba4)" ( (binary_expression "puVar4 + iVar15 + -0x6ba4" (binary_expression "puVar4 + iVar15" identifier + identifier) + number_literal) )))))) ;) (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (if_statement "if (iVar14 == 0x44e) break;" if (parenthesized_expression "(iVar14 == 0x44e)" ( (binary_expression "iVar14 == 0x44e" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "bVar10 = *pbVar19;" (assignment_expression "bVar10 = *pbVar19" identifier = (pointer_expression "*pbVar19" * identifier)) ;) (expression_statement "sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);" (assignment_expression "sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060)" identifier = (pointer_expression "*(short *)(puVar3 + iVar14 * 2 + -0x2060)" * (cast_expression "(short *)(puVar3 + iVar14 * 2 + -0x2060)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + iVar14 * 2 + -0x2060)" ( (binary_expression "puVar3 + iVar14 * 2 + -0x2060" (binary_expression "puVar3 + iVar14 * 2" identifier + (binary_expression "iVar14 * 2" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);" (assignment_expression "iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94)" identifier = (cast_expression "(int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(puVar4 + iVar14 * 2 + -0x2a94)" * (cast_expression "(short *)(puVar4 + iVar14 * 2 + -0x2a94)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + iVar14 * 2 + -0x2a94)" ( (binary_expression "puVar4 + iVar14 * 2 + -0x2a94" (binary_expression "puVar4 + iVar14 * 2" identifier + (binary_expression "iVar14 * 2" identifier * number_literal)) + number_literal) )))))) ;) })) (if_statement "if (bVar11) {\n    *(byte **)(puVar1 + -0x74) = pbVar16;\n    *(int *)(puVar1 + -0x70) = iVar20;\n    iVar12 = iVar20;\n    pbVar13 = pbVar16;\n  }" if (parenthesized_expression "(bVar11)" ( identifier )) (compound_statement "{\n    *(byte **)(puVar1 + -0x74) = pbVar16;\n    *(int *)(puVar1 + -0x70) = iVar20;\n    iVar12 = iVar20;\n    pbVar13 = pbVar16;\n  }" { (expression_statement "*(byte **)(puVar1 + -0x74) = pbVar16;" (assignment_expression "*(byte **)(puVar1 + -0x74) = pbVar16" (pointer_expression "*(byte **)(puVar1 + -0x74)" * (cast_expression "(byte **)(puVar1 + -0x74)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + -0x74)" ( (binary_expression "puVar1 + -0x74" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar1 + -0x70) = iVar20;" (assignment_expression "*(int *)(puVar1 + -0x70) = iVar20" (pointer_expression "*(int *)(puVar1 + -0x70)" * (cast_expression "(int *)(puVar1 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x70)" ( (binary_expression "puVar1 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar12 = iVar20;" (assignment_expression "iVar12 = iVar20" identifier = identifier) ;) (expression_statement "pbVar13 = pbVar16;" (assignment_expression "pbVar13 = pbVar16" identifier = identifier) ;) })) (expression_statement "puVar1 = PTR_LAB_000af468;" (assignment_expression "puVar1 = PTR_LAB_000af468" identifier = identifier) ;) (expression_statement "*(byte **)(local_68 + -100) = pbVar13;" (assignment_expression "*(byte **)(local_68 + -100) = pbVar13" (pointer_expression "*(byte **)(local_68 + -100)" * (cast_expression "(byte **)(local_68 + -100)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_68 + -100)" ( (binary_expression "local_68 + -100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*puVar21 = pbVar18;" (assignment_expression "*puVar21 = pbVar18" (pointer_expression "*puVar21" * identifier) = identifier) ;) (expression_statement "sVar17 = *(short *)(puVar3 + iVar12 * 2 + -0x2060);" (assignment_expression "sVar17 = *(short *)(puVar3 + iVar12 * 2 + -0x2060)" identifier = (pointer_expression "*(short *)(puVar3 + iVar12 * 2 + -0x2060)" * (cast_expression "(short *)(puVar3 + iVar12 * 2 + -0x2060)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + iVar12 * 2 + -0x2060)" ( (binary_expression "puVar3 + iVar12 * 2 + -0x2060" (binary_expression "puVar3 + iVar12 * 2" identifier + (binary_expression "iVar12 * 2" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "*(int *)puVar5 = (int)pbVar13 - (int)pbVar18;" (assignment_expression "*(int *)puVar5 = (int)pbVar13 - (int)pbVar18" (pointer_expression "*(int *)puVar5" * (cast_expression "(int *)puVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(int)pbVar13 - (int)pbVar18" (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "bVar10 = *pbVar13;" (assignment_expression "bVar10 = *pbVar13" identifier = (pointer_expression "*pbVar13" * identifier)) ;) (expression_statement "*pbVar13 = 0;" (assignment_expression "*pbVar13 = 0" (pointer_expression "*pbVar13" * identifier) = number_literal) ;) (expression_statement "local_68[-0x5c] = bVar10;" (assignment_expression "local_68[-0x5c] = bVar10" (subscript_expression "local_68[-0x5c]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((uint)(int)sVar17 < 0x2c) {\n                    /* WARNING: Could not emulate address calculation at 0x00027900 */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80)))();\n    return;\n  }" if (parenthesized_expression "((uint)(int)sVar17 < 0x2c)" ( (binary_expression "(uint)(int)sVar17 < 0x2c" (cast_expression "(uint)(int)sVar17" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(int)sVar17" ( (type_descriptor "int" primitive_type) ) identifier)) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x00027900 */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80)))();\n    return;\n  }" { comment comment (expression_statement "(*(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80)))();" (call_expression "(*(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80))" * (cast_expression "(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80))" ( (binary_expression "&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(puVar1 + sVar17 * 4 + 0x5b80)" * (cast_expression "(int *)(puVar1 + sVar17 * 4 + 0x5b80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + sVar17 * 4 + 0x5b80)" ( (binary_expression "puVar1 + sVar17 * 4 + 0x5b80" (binary_expression "puVar1 + sVar17 * 4" identifier + (binary_expression "sVar17 * 4" identifier * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) comment (expression_statement "FUN_000270a8(PTR_LAB_000af468 + 0x5ad4);" (call_expression "FUN_000270a8(PTR_LAB_000af468 + 0x5ad4)" identifier (argument_list "(PTR_LAB_000af468 + 0x5ad4)" ( (binary_expression "PTR_LAB_000af468 + 0x5ad4" identifier + number_literal) ))) ;) })))
(translation_unit "/* WARNING: Unknown calling convention */\n\nint yylex(void)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  YY_BUFFER_STATE pyVar6;\n  byte bVar9;\n  uint uVar7;\n  FILE *pFVar8;\n  bool bVar10;\n  int iVar11;\n  byte *pbVar12;\n  int iVar13;\n  int iVar14;\n  byte *pbVar15;\n  short sVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  int iVar19;\n  undefined4 *puVar20;\n  undefined *local_68;\n  \n  puVar3 = PTR_s_hallenge__000af46c;\n  puVar1 = PTR_host_name_addresses_map_000af458;\n  iVar13 = *(int *)(PTR_host_name_addresses_map_000af458 + -0x6c);\n  if (*(int *)(PTR_host_name_addresses_map_000af458 + -0x68) != 0) {\n    local_68 = PTR_host_name_addresses_map_000af458;\n    bVar9 = PTR_host_name_addresses_map_000af458[-0x5c];\n    pbVar17 = *(byte **)(PTR_host_name_addresses_map_000af458 + -100);\n    sVar16 = *(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2060);\n    iVar14 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2a94);\n    puVar20 = (undefined4 *)PTR_yytext_000af784;\n    goto LAB_00027758;\n  }\n  *(undefined4 *)(PTR_host_name_addresses_map_000af458 + -0x68) = 1;\n  puVar2 = PTR_yyin_000af788;\n  if (iVar13 == 0) {\n    iVar14 = 0;\n    sVar16 = 0;\n    iVar13 = 1;\n    *(undefined4 *)(puVar1 + -0x6c) = 1;\n    if (*(int *)puVar2 == 0) goto LAB_00027a1c;\nLAB_00027984:\n    iVar11 = *(int *)PTR_yyout_000af798;\n  }\n  else {\n    iVar14 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2a94);\n    sVar16 = *(short *)(puVar3 + iVar13 * 2 + -0x2060);\n    if (*(int *)PTR_yyin_000af788 != 0) goto LAB_00027984;\nLAB_00027a1c:\n    *(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;\n    iVar11 = *(int *)PTR_yyout_000af798;\n  }\n  if (iVar11 == 0) {\n    *(undefined4 *)PTR_yyout_000af798 = *(undefined4 *)PTR_stdout_000afb6c;\n  }\n  puVar1 = PTR_host_name_addresses_map_000af458;\n  if ((*(int *)(PTR_host_name_addresses_map_000af458 + -0x58) == 0) ||\n     (pyVar6 = *(YY_BUFFER_STATE *)\n                (*(int *)(PTR_host_name_addresses_map_000af458 + -0x58) +\n                *(int *)(PTR_host_name_addresses_map_000af458 + -0x50) * 4),\n     pyVar6 == (YY_BUFFER_STATE)0x0)) {\n    yyensure_buffer_stack();\n    iVar11 = *(int *)(puVar1 + -0x50);\n    iVar19 = *(int *)(puVar1 + -0x58);\n    pyVar6 = yy_create_buffer(*(FILE **)puVar2,0x4000);\n    *(YY_BUFFER_STATE *)(iVar19 + iVar11 * 4) = pyVar6;\n  }\n  puVar20 = (undefined4 *)PTR_yytext_000af784;\n  puVar1 = PTR_host_name_addresses_map_000af458;\n  pbVar17 = (byte *)pyVar6->yy_buf_pos;\n  pFVar8 = pyVar6->yy_input_file;\n  local_68 = PTR_host_name_addresses_map_000af458;\n  iVar11 = pyVar6->yy_n_chars;\n  *(byte **)PTR_yytext_000af784 = pbVar17;\n  *(FILE **)puVar2 = pFVar8;\n  *(int *)(puVar1 + -0x60) = iVar11;\n  *(byte **)(puVar1 + -100) = pbVar17;\n  bVar9 = *pbVar17;\n  puVar1[-0x5c] = bVar9;\nLAB_00027758:\n  puVar5 = PTR_yyleng_000af794;\n  puVar4 = PTR_s_hallenge__000af46c;\n  puVar2 = PTR_LAB_000af468;\n  puVar1 = PTR_host_name_addresses_map_000af458;\n  *pbVar17 = bVar9;\n  bVar10 = false;\n  iVar11 = *(int *)(puVar1 + -0x70);\n  pbVar12 = *(byte **)(puVar1 + -0x74);\n  iVar19 = iVar11;\n  pbVar15 = pbVar12;\n  pbVar18 = pbVar17;\n  while( true ) {\n    uVar7 = (uint)(byte)puVar4[bVar9 - 0x2160];\n    if (sVar16 != 0) {\n      bVar10 = true;\n      iVar19 = iVar13;\n      pbVar15 = pbVar18;\n    }\n    while( true ) {\n      iVar14 = (iVar14 + uVar7) * 2;\n      if (*(short *)(puVar2 + iVar14 + 0x5c30) == iVar13) break;\n      iVar13 = (int)*(short *)(puVar4 + iVar13 * 2 + -0x3378);\n      if (0x44e < iVar13) {\n        uVar7 = (uint)(byte)puVar4[uVar7 - 0x21b0];\n      }\n      iVar14 = (int)*(short *)(puVar4 + iVar13 * 2 + -0x2a94);\n    }\n    iVar13 = (int)*(short *)(puVar4 + iVar14 + -0x6ba4);\n    pbVar18 = pbVar18 + 1;\n    if (iVar13 == 0x44e) break;\n    bVar9 = *pbVar18;\n    sVar16 = *(short *)(puVar3 + iVar13 * 2 + -0x2060);\n    iVar14 = (int)*(short *)(puVar4 + iVar13 * 2 + -0x2a94);\n  }\n  if (bVar10) {\n    *(byte **)(puVar1 + -0x74) = pbVar15;\n    *(int *)(puVar1 + -0x70) = iVar19;\n    iVar11 = iVar19;\n    pbVar12 = pbVar15;\n  }\n  puVar1 = PTR_LAB_000af468;\n  *(byte **)(local_68 + -100) = pbVar12;\n  *puVar20 = pbVar17;\n  sVar16 = *(short *)(puVar3 + iVar11 * 2 + -0x2060);\n  *(int *)puVar5 = (int)pbVar12 - (int)pbVar17;\n  bVar9 = *pbVar12;\n  *pbVar12 = 0;\n  local_68[-0x5c] = bVar9;\n  if ((uint)(int)sVar16 < 0x2c) {\n                    /* WARNING: Could not emulate address calculation at 0x00027900 */\n                    /* WARNING: Treating indirect jump as call */\n    iVar13 = (*(code *)(&_gp + *(int *)(puVar1 + sVar16 * 4 + 0x5b80)))();\n    return iVar13;\n  }\n                    /* WARNING: Subroutine does not return */\n  yy_fatal_error(PTR_LAB_000af468 + 0x5ad4);\n}\n\n" comment (function_definition "int yylex(void)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  YY_BUFFER_STATE pyVar6;\n  byte bVar9;\n  uint uVar7;\n  FILE *pFVar8;\n  bool bVar10;\n  int iVar11;\n  byte *pbVar12;\n  int iVar13;\n  int iVar14;\n  byte *pbVar15;\n  short sVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  int iVar19;\n  undefined4 *puVar20;\n  undefined *local_68;\n  \n  puVar3 = PTR_s_hallenge__000af46c;\n  puVar1 = PTR_host_name_addresses_map_000af458;\n  iVar13 = *(int *)(PTR_host_name_addresses_map_000af458 + -0x6c);\n  if (*(int *)(PTR_host_name_addresses_map_000af458 + -0x68) != 0) {\n    local_68 = PTR_host_name_addresses_map_000af458;\n    bVar9 = PTR_host_name_addresses_map_000af458[-0x5c];\n    pbVar17 = *(byte **)(PTR_host_name_addresses_map_000af458 + -100);\n    sVar16 = *(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2060);\n    iVar14 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2a94);\n    puVar20 = (undefined4 *)PTR_yytext_000af784;\n    goto LAB_00027758;\n  }\n  *(undefined4 *)(PTR_host_name_addresses_map_000af458 + -0x68) = 1;\n  puVar2 = PTR_yyin_000af788;\n  if (iVar13 == 0) {\n    iVar14 = 0;\n    sVar16 = 0;\n    iVar13 = 1;\n    *(undefined4 *)(puVar1 + -0x6c) = 1;\n    if (*(int *)puVar2 == 0) goto LAB_00027a1c;\nLAB_00027984:\n    iVar11 = *(int *)PTR_yyout_000af798;\n  }\n  else {\n    iVar14 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2a94);\n    sVar16 = *(short *)(puVar3 + iVar13 * 2 + -0x2060);\n    if (*(int *)PTR_yyin_000af788 != 0) goto LAB_00027984;\nLAB_00027a1c:\n    *(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;\n    iVar11 = *(int *)PTR_yyout_000af798;\n  }\n  if (iVar11 == 0) {\n    *(undefined4 *)PTR_yyout_000af798 = *(undefined4 *)PTR_stdout_000afb6c;\n  }\n  puVar1 = PTR_host_name_addresses_map_000af458;\n  if ((*(int *)(PTR_host_name_addresses_map_000af458 + -0x58) == 0) ||\n     (pyVar6 = *(YY_BUFFER_STATE *)\n                (*(int *)(PTR_host_name_addresses_map_000af458 + -0x58) +\n                *(int *)(PTR_host_name_addresses_map_000af458 + -0x50) * 4),\n     pyVar6 == (YY_BUFFER_STATE)0x0)) {\n    yyensure_buffer_stack();\n    iVar11 = *(int *)(puVar1 + -0x50);\n    iVar19 = *(int *)(puVar1 + -0x58);\n    pyVar6 = yy_create_buffer(*(FILE **)puVar2,0x4000);\n    *(YY_BUFFER_STATE *)(iVar19 + iVar11 * 4) = pyVar6;\n  }\n  puVar20 = (undefined4 *)PTR_yytext_000af784;\n  puVar1 = PTR_host_name_addresses_map_000af458;\n  pbVar17 = (byte *)pyVar6->yy_buf_pos;\n  pFVar8 = pyVar6->yy_input_file;\n  local_68 = PTR_host_name_addresses_map_000af458;\n  iVar11 = pyVar6->yy_n_chars;\n  *(byte **)PTR_yytext_000af784 = pbVar17;\n  *(FILE **)puVar2 = pFVar8;\n  *(int *)(puVar1 + -0x60) = iVar11;\n  *(byte **)(puVar1 + -100) = pbVar17;\n  bVar9 = *pbVar17;\n  puVar1[-0x5c] = bVar9;\nLAB_00027758:\n  puVar5 = PTR_yyleng_000af794;\n  puVar4 = PTR_s_hallenge__000af46c;\n  puVar2 = PTR_LAB_000af468;\n  puVar1 = PTR_host_name_addresses_map_000af458;\n  *pbVar17 = bVar9;\n  bVar10 = false;\n  iVar11 = *(int *)(puVar1 + -0x70);\n  pbVar12 = *(byte **)(puVar1 + -0x74);\n  iVar19 = iVar11;\n  pbVar15 = pbVar12;\n  pbVar18 = pbVar17;\n  while( true ) {\n    uVar7 = (uint)(byte)puVar4[bVar9 - 0x2160];\n    if (sVar16 != 0) {\n      bVar10 = true;\n      iVar19 = iVar13;\n      pbVar15 = pbVar18;\n    }\n    while( true ) {\n      iVar14 = (iVar14 + uVar7) * 2;\n      if (*(short *)(puVar2 + iVar14 + 0x5c30) == iVar13) break;\n      iVar13 = (int)*(short *)(puVar4 + iVar13 * 2 + -0x3378);\n      if (0x44e < iVar13) {\n        uVar7 = (uint)(byte)puVar4[uVar7 - 0x21b0];\n      }\n      iVar14 = (int)*(short *)(puVar4 + iVar13 * 2 + -0x2a94);\n    }\n    iVar13 = (int)*(short *)(puVar4 + iVar14 + -0x6ba4);\n    pbVar18 = pbVar18 + 1;\n    if (iVar13 == 0x44e) break;\n    bVar9 = *pbVar18;\n    sVar16 = *(short *)(puVar3 + iVar13 * 2 + -0x2060);\n    iVar14 = (int)*(short *)(puVar4 + iVar13 * 2 + -0x2a94);\n  }\n  if (bVar10) {\n    *(byte **)(puVar1 + -0x74) = pbVar15;\n    *(int *)(puVar1 + -0x70) = iVar19;\n    iVar11 = iVar19;\n    pbVar12 = pbVar15;\n  }\n  puVar1 = PTR_LAB_000af468;\n  *(byte **)(local_68 + -100) = pbVar12;\n  *puVar20 = pbVar17;\n  sVar16 = *(short *)(puVar3 + iVar11 * 2 + -0x2060);\n  *(int *)puVar5 = (int)pbVar12 - (int)pbVar17;\n  bVar9 = *pbVar12;\n  *pbVar12 = 0;\n  local_68[-0x5c] = bVar9;\n  if ((uint)(int)sVar16 < 0x2c) {\n                    /* WARNING: Could not emulate address calculation at 0x00027900 */\n                    /* WARNING: Treating indirect jump as call */\n    iVar13 = (*(code *)(&_gp + *(int *)(puVar1 + sVar16 * 4 + 0x5b80)))();\n    return iVar13;\n  }\n                    /* WARNING: Subroutine does not return */\n  yy_fatal_error(PTR_LAB_000af468 + 0x5ad4);\n}" primitive_type (function_declarator "yylex(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  YY_BUFFER_STATE pyVar6;\n  byte bVar9;\n  uint uVar7;\n  FILE *pFVar8;\n  bool bVar10;\n  int iVar11;\n  byte *pbVar12;\n  int iVar13;\n  int iVar14;\n  byte *pbVar15;\n  short sVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  int iVar19;\n  undefined4 *puVar20;\n  undefined *local_68;\n  \n  puVar3 = PTR_s_hallenge__000af46c;\n  puVar1 = PTR_host_name_addresses_map_000af458;\n  iVar13 = *(int *)(PTR_host_name_addresses_map_000af458 + -0x6c);\n  if (*(int *)(PTR_host_name_addresses_map_000af458 + -0x68) != 0) {\n    local_68 = PTR_host_name_addresses_map_000af458;\n    bVar9 = PTR_host_name_addresses_map_000af458[-0x5c];\n    pbVar17 = *(byte **)(PTR_host_name_addresses_map_000af458 + -100);\n    sVar16 = *(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2060);\n    iVar14 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2a94);\n    puVar20 = (undefined4 *)PTR_yytext_000af784;\n    goto LAB_00027758;\n  }\n  *(undefined4 *)(PTR_host_name_addresses_map_000af458 + -0x68) = 1;\n  puVar2 = PTR_yyin_000af788;\n  if (iVar13 == 0) {\n    iVar14 = 0;\n    sVar16 = 0;\n    iVar13 = 1;\n    *(undefined4 *)(puVar1 + -0x6c) = 1;\n    if (*(int *)puVar2 == 0) goto LAB_00027a1c;\nLAB_00027984:\n    iVar11 = *(int *)PTR_yyout_000af798;\n  }\n  else {\n    iVar14 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2a94);\n    sVar16 = *(short *)(puVar3 + iVar13 * 2 + -0x2060);\n    if (*(int *)PTR_yyin_000af788 != 0) goto LAB_00027984;\nLAB_00027a1c:\n    *(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;\n    iVar11 = *(int *)PTR_yyout_000af798;\n  }\n  if (iVar11 == 0) {\n    *(undefined4 *)PTR_yyout_000af798 = *(undefined4 *)PTR_stdout_000afb6c;\n  }\n  puVar1 = PTR_host_name_addresses_map_000af458;\n  if ((*(int *)(PTR_host_name_addresses_map_000af458 + -0x58) == 0) ||\n     (pyVar6 = *(YY_BUFFER_STATE *)\n                (*(int *)(PTR_host_name_addresses_map_000af458 + -0x58) +\n                *(int *)(PTR_host_name_addresses_map_000af458 + -0x50) * 4),\n     pyVar6 == (YY_BUFFER_STATE)0x0)) {\n    yyensure_buffer_stack();\n    iVar11 = *(int *)(puVar1 + -0x50);\n    iVar19 = *(int *)(puVar1 + -0x58);\n    pyVar6 = yy_create_buffer(*(FILE **)puVar2,0x4000);\n    *(YY_BUFFER_STATE *)(iVar19 + iVar11 * 4) = pyVar6;\n  }\n  puVar20 = (undefined4 *)PTR_yytext_000af784;\n  puVar1 = PTR_host_name_addresses_map_000af458;\n  pbVar17 = (byte *)pyVar6->yy_buf_pos;\n  pFVar8 = pyVar6->yy_input_file;\n  local_68 = PTR_host_name_addresses_map_000af458;\n  iVar11 = pyVar6->yy_n_chars;\n  *(byte **)PTR_yytext_000af784 = pbVar17;\n  *(FILE **)puVar2 = pFVar8;\n  *(int *)(puVar1 + -0x60) = iVar11;\n  *(byte **)(puVar1 + -100) = pbVar17;\n  bVar9 = *pbVar17;\n  puVar1[-0x5c] = bVar9;\nLAB_00027758:\n  puVar5 = PTR_yyleng_000af794;\n  puVar4 = PTR_s_hallenge__000af46c;\n  puVar2 = PTR_LAB_000af468;\n  puVar1 = PTR_host_name_addresses_map_000af458;\n  *pbVar17 = bVar9;\n  bVar10 = false;\n  iVar11 = *(int *)(puVar1 + -0x70);\n  pbVar12 = *(byte **)(puVar1 + -0x74);\n  iVar19 = iVar11;\n  pbVar15 = pbVar12;\n  pbVar18 = pbVar17;\n  while( true ) {\n    uVar7 = (uint)(byte)puVar4[bVar9 - 0x2160];\n    if (sVar16 != 0) {\n      bVar10 = true;\n      iVar19 = iVar13;\n      pbVar15 = pbVar18;\n    }\n    while( true ) {\n      iVar14 = (iVar14 + uVar7) * 2;\n      if (*(short *)(puVar2 + iVar14 + 0x5c30) == iVar13) break;\n      iVar13 = (int)*(short *)(puVar4 + iVar13 * 2 + -0x3378);\n      if (0x44e < iVar13) {\n        uVar7 = (uint)(byte)puVar4[uVar7 - 0x21b0];\n      }\n      iVar14 = (int)*(short *)(puVar4 + iVar13 * 2 + -0x2a94);\n    }\n    iVar13 = (int)*(short *)(puVar4 + iVar14 + -0x6ba4);\n    pbVar18 = pbVar18 + 1;\n    if (iVar13 == 0x44e) break;\n    bVar9 = *pbVar18;\n    sVar16 = *(short *)(puVar3 + iVar13 * 2 + -0x2060);\n    iVar14 = (int)*(short *)(puVar4 + iVar13 * 2 + -0x2a94);\n  }\n  if (bVar10) {\n    *(byte **)(puVar1 + -0x74) = pbVar15;\n    *(int *)(puVar1 + -0x70) = iVar19;\n    iVar11 = iVar19;\n    pbVar12 = pbVar15;\n  }\n  puVar1 = PTR_LAB_000af468;\n  *(byte **)(local_68 + -100) = pbVar12;\n  *puVar20 = pbVar17;\n  sVar16 = *(short *)(puVar3 + iVar11 * 2 + -0x2060);\n  *(int *)puVar5 = (int)pbVar12 - (int)pbVar17;\n  bVar9 = *pbVar12;\n  *pbVar12 = 0;\n  local_68[-0x5c] = bVar9;\n  if ((uint)(int)sVar16 < 0x2c) {\n                    /* WARNING: Could not emulate address calculation at 0x00027900 */\n                    /* WARNING: Treating indirect jump as call */\n    iVar13 = (*(code *)(&_gp + *(int *)(puVar1 + sVar16 * 4 + 0x5b80)))();\n    return iVar13;\n  }\n                    /* WARNING: Subroutine does not return */\n  yy_fatal_error(PTR_LAB_000af468 + 0x5ad4);\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "YY_BUFFER_STATE pyVar6;" type_identifier identifier ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "FILE *pFVar8;" type_identifier (pointer_declarator "*pFVar8" * identifier) ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "short sVar16;" (sized_type_specifier "short" short) identifier ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "undefined4 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (expression_statement "puVar3 = PTR_s_hallenge__000af46c;" (assignment_expression "puVar3 = PTR_s_hallenge__000af46c" identifier = identifier) ;) (expression_statement "puVar1 = PTR_host_name_addresses_map_000af458;" (assignment_expression "puVar1 = PTR_host_name_addresses_map_000af458" identifier = identifier) ;) (expression_statement "iVar13 = *(int *)(PTR_host_name_addresses_map_000af458 + -0x6c);" (assignment_expression "iVar13 = *(int *)(PTR_host_name_addresses_map_000af458 + -0x6c)" identifier = (pointer_expression "*(int *)(PTR_host_name_addresses_map_000af458 + -0x6c)" * (cast_expression "(int *)(PTR_host_name_addresses_map_000af458 + -0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_host_name_addresses_map_000af458 + -0x6c)" ( (binary_expression "PTR_host_name_addresses_map_000af458 + -0x6c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(PTR_host_name_addresses_map_000af458 + -0x68) != 0) {\n    local_68 = PTR_host_name_addresses_map_000af458;\n    bVar9 = PTR_host_name_addresses_map_000af458[-0x5c];\n    pbVar17 = *(byte **)(PTR_host_name_addresses_map_000af458 + -100);\n    sVar16 = *(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2060);\n    iVar14 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2a94);\n    puVar20 = (undefined4 *)PTR_yytext_000af784;\n    goto LAB_00027758;\n  }" if (parenthesized_expression "(*(int *)(PTR_host_name_addresses_map_000af458 + -0x68) != 0)" ( (binary_expression "*(int *)(PTR_host_name_addresses_map_000af458 + -0x68) != 0" (pointer_expression "*(int *)(PTR_host_name_addresses_map_000af458 + -0x68)" * (cast_expression "(int *)(PTR_host_name_addresses_map_000af458 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_host_name_addresses_map_000af458 + -0x68)" ( (binary_expression "PTR_host_name_addresses_map_000af458 + -0x68" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    local_68 = PTR_host_name_addresses_map_000af458;\n    bVar9 = PTR_host_name_addresses_map_000af458[-0x5c];\n    pbVar17 = *(byte **)(PTR_host_name_addresses_map_000af458 + -100);\n    sVar16 = *(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2060);\n    iVar14 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2a94);\n    puVar20 = (undefined4 *)PTR_yytext_000af784;\n    goto LAB_00027758;\n  }" { (expression_statement "local_68 = PTR_host_name_addresses_map_000af458;" (assignment_expression "local_68 = PTR_host_name_addresses_map_000af458" identifier = identifier) ;) (expression_statement "bVar9 = PTR_host_name_addresses_map_000af458[-0x5c];" (assignment_expression "bVar9 = PTR_host_name_addresses_map_000af458[-0x5c]" identifier = (subscript_expression "PTR_host_name_addresses_map_000af458[-0x5c]" identifier [ number_literal ])) ;) (expression_statement "pbVar17 = *(byte **)(PTR_host_name_addresses_map_000af458 + -100);" (assignment_expression "pbVar17 = *(byte **)(PTR_host_name_addresses_map_000af458 + -100)" identifier = (pointer_expression "*(byte **)(PTR_host_name_addresses_map_000af458 + -100)" * (cast_expression "(byte **)(PTR_host_name_addresses_map_000af458 + -100)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_host_name_addresses_map_000af458 + -100)" ( (binary_expression "PTR_host_name_addresses_map_000af458 + -100" identifier + number_literal) ))))) ;) (expression_statement "sVar16 = *(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2060);" (assignment_expression "sVar16 = *(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2060)" identifier = (pointer_expression "*(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2060)" * (cast_expression "(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2060)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2060)" ( (binary_expression "PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2060" (binary_expression "PTR_s_hallenge__000af46c + iVar13 * 2" identifier + (binary_expression "iVar13 * 2" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "iVar14 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2a94);" (assignment_expression "iVar14 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2a94)" identifier = (cast_expression "(int)*(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2a94)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2a94)" * (cast_expression "(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2a94)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2a94)" ( (binary_expression "PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2a94" (binary_expression "PTR_s_hallenge__000af46c + iVar13 * 2" identifier + (binary_expression "iVar13 * 2" identifier * number_literal)) + number_literal) )))))) ;) (expression_statement "puVar20 = (undefined4 *)PTR_yytext_000af784;" (assignment_expression "puVar20 = (undefined4 *)PTR_yytext_000af784" identifier = (cast_expression "(undefined4 *)PTR_yytext_000af784" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_00027758;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(PTR_host_name_addresses_map_000af458 + -0x68) = 1;" (assignment_expression "*(undefined4 *)(PTR_host_name_addresses_map_000af458 + -0x68) = 1" (pointer_expression "*(undefined4 *)(PTR_host_name_addresses_map_000af458 + -0x68)" * (cast_expression "(undefined4 *)(PTR_host_name_addresses_map_000af458 + -0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_host_name_addresses_map_000af458 + -0x68)" ( (binary_expression "PTR_host_name_addresses_map_000af458 + -0x68" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar2 = PTR_yyin_000af788;" (assignment_expression "puVar2 = PTR_yyin_000af788" identifier = identifier) ;) (if_statement "if (iVar13 == 0) {\n    iVar14 = 0;\n    sVar16 = 0;\n    iVar13 = 1;\n    *(undefined4 *)(puVar1 + -0x6c) = 1;\n    if (*(int *)puVar2 == 0) goto LAB_00027a1c;\nLAB_00027984:\n    iVar11 = *(int *)PTR_yyout_000af798;\n  }\n  else {\n    iVar14 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2a94);\n    sVar16 = *(short *)(puVar3 + iVar13 * 2 + -0x2060);\n    if (*(int *)PTR_yyin_000af788 != 0) goto LAB_00027984;\nLAB_00027a1c:\n    *(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;\n    iVar11 = *(int *)PTR_yyout_000af798;\n  }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar14 = 0;\n    sVar16 = 0;\n    iVar13 = 1;\n    *(undefined4 *)(puVar1 + -0x6c) = 1;\n    if (*(int *)puVar2 == 0) goto LAB_00027a1c;\nLAB_00027984:\n    iVar11 = *(int *)PTR_yyout_000af798;\n  }" { (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "sVar16 = 0;" (assignment_expression "sVar16 = 0" identifier = number_literal) ;) (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(puVar1 + -0x6c) = 1;" (assignment_expression "*(undefined4 *)(puVar1 + -0x6c) = 1" (pointer_expression "*(undefined4 *)(puVar1 + -0x6c)" * (cast_expression "(undefined4 *)(puVar1 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x6c)" ( (binary_expression "puVar1 + -0x6c" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(int *)puVar2 == 0) goto LAB_00027a1c;" if (parenthesized_expression "(*(int *)puVar2 == 0)" ( (binary_expression "*(int *)puVar2 == 0" (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (goto_statement "goto LAB_00027a1c;" goto statement_identifier ;)) (labeled_statement "LAB_00027984:\n    iVar11 = *(int *)PTR_yyout_000af798;" statement_identifier : (expression_statement "iVar11 = *(int *)PTR_yyout_000af798;" (assignment_expression "iVar11 = *(int *)PTR_yyout_000af798" identifier = (pointer_expression "*(int *)PTR_yyout_000af798" * (cast_expression "(int *)PTR_yyout_000af798" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;)) }) (else_clause "else {\n    iVar14 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2a94);\n    sVar16 = *(short *)(puVar3 + iVar13 * 2 + -0x2060);\n    if (*(int *)PTR_yyin_000af788 != 0) goto LAB_00027984;\nLAB_00027a1c:\n    *(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;\n    iVar11 = *(int *)PTR_yyout_000af798;\n  }" else (compound_statement "{\n    iVar14 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2a94);\n    sVar16 = *(short *)(puVar3 + iVar13 * 2 + -0x2060);\n    if (*(int *)PTR_yyin_000af788 != 0) goto LAB_00027984;\nLAB_00027a1c:\n    *(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;\n    iVar11 = *(int *)PTR_yyout_000af798;\n  }" { (expression_statement "iVar14 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2a94);" (assignment_expression "iVar14 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2a94)" identifier = (cast_expression "(int)*(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2a94)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2a94)" * (cast_expression "(short *)(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2a94)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2a94)" ( (binary_expression "PTR_s_hallenge__000af46c + iVar13 * 2 + -0x2a94" (binary_expression "PTR_s_hallenge__000af46c + iVar13 * 2" identifier + (binary_expression "iVar13 * 2" identifier * number_literal)) + number_literal) )))))) ;) (expression_statement "sVar16 = *(short *)(puVar3 + iVar13 * 2 + -0x2060);" (assignment_expression "sVar16 = *(short *)(puVar3 + iVar13 * 2 + -0x2060)" identifier = (pointer_expression "*(short *)(puVar3 + iVar13 * 2 + -0x2060)" * (cast_expression "(short *)(puVar3 + iVar13 * 2 + -0x2060)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + iVar13 * 2 + -0x2060)" ( (binary_expression "puVar3 + iVar13 * 2 + -0x2060" (binary_expression "puVar3 + iVar13 * 2" identifier + (binary_expression "iVar13 * 2" identifier * number_literal)) + number_literal) ))))) ;) (if_statement "if (*(int *)PTR_yyin_000af788 != 0) goto LAB_00027984;" if (parenthesized_expression "(*(int *)PTR_yyin_000af788 != 0)" ( (binary_expression "*(int *)PTR_yyin_000af788 != 0" (pointer_expression "*(int *)PTR_yyin_000af788" * (cast_expression "(int *)PTR_yyin_000af788" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (goto_statement "goto LAB_00027984;" goto statement_identifier ;)) (labeled_statement "LAB_00027a1c:\n    *(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;" statement_identifier : (expression_statement "*(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;" (assignment_expression "*(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4" (pointer_expression "*(undefined4 *)puVar2" * (cast_expression "(undefined4 *)puVar2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)PTR_stdin_000afba4" * (cast_expression "(undefined4 *)PTR_stdin_000afba4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;)) (expression_statement "iVar11 = *(int *)PTR_yyout_000af798;" (assignment_expression "iVar11 = *(int *)PTR_yyout_000af798" identifier = (pointer_expression "*(int *)PTR_yyout_000af798" * (cast_expression "(int *)PTR_yyout_000af798" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }))) (if_statement "if (iVar11 == 0) {\n    *(undefined4 *)PTR_yyout_000af798 = *(undefined4 *)PTR_stdout_000afb6c;\n  }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n    *(undefined4 *)PTR_yyout_000af798 = *(undefined4 *)PTR_stdout_000afb6c;\n  }" { (expression_statement "*(undefined4 *)PTR_yyout_000af798 = *(undefined4 *)PTR_stdout_000afb6c;" (assignment_expression "*(undefined4 *)PTR_yyout_000af798 = *(undefined4 *)PTR_stdout_000afb6c" (pointer_expression "*(undefined4 *)PTR_yyout_000af798" * (cast_expression "(undefined4 *)PTR_yyout_000af798" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)PTR_stdout_000afb6c" * (cast_expression "(undefined4 *)PTR_stdout_000afb6c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) })) (expression_statement "puVar1 = PTR_host_name_addresses_map_000af458;" (assignment_expression "puVar1 = PTR_host_name_addresses_map_000af458" identifier = identifier) ;) (if_statement "if ((*(int *)(PTR_host_name_addresses_map_000af458 + -0x58) == 0) ||\n     (pyVar6 = *(YY_BUFFER_STATE *)\n                (*(int *)(PTR_host_name_addresses_map_000af458 + -0x58) +\n                *(int *)(PTR_host_name_addresses_map_000af458 + -0x50) * 4),\n     pyVar6 == (YY_BUFFER_STATE)0x0)) {\n    yyensure_buffer_stack();\n    iVar11 = *(int *)(puVar1 + -0x50);\n    iVar19 = *(int *)(puVar1 + -0x58);\n    pyVar6 = yy_create_buffer(*(FILE **)puVar2,0x4000);\n    *(YY_BUFFER_STATE *)(iVar19 + iVar11 * 4) = pyVar6;\n  }" if (parenthesized_expression "((*(int *)(PTR_host_name_addresses_map_000af458 + -0x58) == 0) ||\n     (pyVar6 = *(YY_BUFFER_STATE *)\n                (*(int *)(PTR_host_name_addresses_map_000af458 + -0x58) +\n                *(int *)(PTR_host_name_addresses_map_000af458 + -0x50) * 4),\n     pyVar6 == (YY_BUFFER_STATE)0x0))" ( (binary_expression "(*(int *)(PTR_host_name_addresses_map_000af458 + -0x58) == 0) ||\n     (pyVar6 = *(YY_BUFFER_STATE *)\n                (*(int *)(PTR_host_name_addresses_map_000af458 + -0x58) +\n                *(int *)(PTR_host_name_addresses_map_000af458 + -0x50) * 4),\n     pyVar6 == (YY_BUFFER_STATE)0x0)" (parenthesized_expression "(*(int *)(PTR_host_name_addresses_map_000af458 + -0x58) == 0)" ( (binary_expression "*(int *)(PTR_host_name_addresses_map_000af458 + -0x58) == 0" (pointer_expression "*(int *)(PTR_host_name_addresses_map_000af458 + -0x58)" * (cast_expression "(int *)(PTR_host_name_addresses_map_000af458 + -0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_host_name_addresses_map_000af458 + -0x58)" ( (binary_expression "PTR_host_name_addresses_map_000af458 + -0x58" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(pyVar6 = *(YY_BUFFER_STATE *)\n                (*(int *)(PTR_host_name_addresses_map_000af458 + -0x58) +\n                *(int *)(PTR_host_name_addresses_map_000af458 + -0x50) * 4),\n     pyVar6 == (YY_BUFFER_STATE)0x0)" ( (comma_expression "pyVar6 = *(YY_BUFFER_STATE *)\n                (*(int *)(PTR_host_name_addresses_map_000af458 + -0x58) +\n                *(int *)(PTR_host_name_addresses_map_000af458 + -0x50) * 4),\n     pyVar6 == (YY_BUFFER_STATE)0x0" (assignment_expression "pyVar6 = *(YY_BUFFER_STATE *)\n                (*(int *)(PTR_host_name_addresses_map_000af458 + -0x58) +\n                *(int *)(PTR_host_name_addresses_map_000af458 + -0x50) * 4)" identifier = (pointer_expression "*(YY_BUFFER_STATE *)\n                (*(int *)(PTR_host_name_addresses_map_000af458 + -0x58) +\n                *(int *)(PTR_host_name_addresses_map_000af458 + -0x50) * 4)" * (cast_expression "(YY_BUFFER_STATE *)\n                (*(int *)(PTR_host_name_addresses_map_000af458 + -0x58) +\n                *(int *)(PTR_host_name_addresses_map_000af458 + -0x50) * 4)" ( (type_descriptor "YY_BUFFER_STATE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(PTR_host_name_addresses_map_000af458 + -0x58) +\n                *(int *)(PTR_host_name_addresses_map_000af458 + -0x50) * 4)" ( (binary_expression "*(int *)(PTR_host_name_addresses_map_000af458 + -0x58) +\n                *(int *)(PTR_host_name_addresses_map_000af458 + -0x50) * 4" (pointer_expression "*(int *)(PTR_host_name_addresses_map_000af458 + -0x58)" * (cast_expression "(int *)(PTR_host_name_addresses_map_000af458 + -0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_host_name_addresses_map_000af458 + -0x58)" ( (binary_expression "PTR_host_name_addresses_map_000af458 + -0x58" identifier + number_literal) )))) + (binary_expression "*(int *)(PTR_host_name_addresses_map_000af458 + -0x50) * 4" (pointer_expression "*(int *)(PTR_host_name_addresses_map_000af458 + -0x50)" * (cast_expression "(int *)(PTR_host_name_addresses_map_000af458 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_host_name_addresses_map_000af458 + -0x50)" ( (binary_expression "PTR_host_name_addresses_map_000af458 + -0x50" identifier + number_literal) )))) * number_literal)) ))))) , (binary_expression "pyVar6 == (YY_BUFFER_STATE)0x0" identifier == (cast_expression "(YY_BUFFER_STATE)0x0" ( (type_descriptor "YY_BUFFER_STATE" type_identifier) ) number_literal))) ))) )) (compound_statement "{\n    yyensure_buffer_stack();\n    iVar11 = *(int *)(puVar1 + -0x50);\n    iVar19 = *(int *)(puVar1 + -0x58);\n    pyVar6 = yy_create_buffer(*(FILE **)puVar2,0x4000);\n    *(YY_BUFFER_STATE *)(iVar19 + iVar11 * 4) = pyVar6;\n  }" { (expression_statement "yyensure_buffer_stack();" (call_expression "yyensure_buffer_stack()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar11 = *(int *)(puVar1 + -0x50);" (assignment_expression "iVar11 = *(int *)(puVar1 + -0x50)" identifier = (pointer_expression "*(int *)(puVar1 + -0x50)" * (cast_expression "(int *)(puVar1 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x50)" ( (binary_expression "puVar1 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "iVar19 = *(int *)(puVar1 + -0x58);" (assignment_expression "iVar19 = *(int *)(puVar1 + -0x58)" identifier = (pointer_expression "*(int *)(puVar1 + -0x58)" * (cast_expression "(int *)(puVar1 + -0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x58)" ( (binary_expression "puVar1 + -0x58" identifier + number_literal) ))))) ;) (expression_statement "pyVar6 = yy_create_buffer(*(FILE **)puVar2,0x4000);" (assignment_expression "pyVar6 = yy_create_buffer(*(FILE **)puVar2,0x4000)" identifier = (call_expression "yy_create_buffer(*(FILE **)puVar2,0x4000)" identifier (argument_list "(*(FILE **)puVar2,0x4000)" ( (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , number_literal )))) ;) (expression_statement "*(YY_BUFFER_STATE *)(iVar19 + iVar11 * 4) = pyVar6;" (assignment_expression "*(YY_BUFFER_STATE *)(iVar19 + iVar11 * 4) = pyVar6" (pointer_expression "*(YY_BUFFER_STATE *)(iVar19 + iVar11 * 4)" * (cast_expression "(YY_BUFFER_STATE *)(iVar19 + iVar11 * 4)" ( (type_descriptor "YY_BUFFER_STATE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + iVar11 * 4)" ( (binary_expression "iVar19 + iVar11 * 4" identifier + (binary_expression "iVar11 * 4" identifier * number_literal)) )))) = identifier) ;) })) (expression_statement "puVar20 = (undefined4 *)PTR_yytext_000af784;" (assignment_expression "puVar20 = (undefined4 *)PTR_yytext_000af784" identifier = (cast_expression "(undefined4 *)PTR_yytext_000af784" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar1 = PTR_host_name_addresses_map_000af458;" (assignment_expression "puVar1 = PTR_host_name_addresses_map_000af458" identifier = identifier) ;) (expression_statement "pbVar17 = (byte *)pyVar6->yy_buf_pos;" (assignment_expression "pbVar17 = (byte *)pyVar6->yy_buf_pos" identifier = (cast_expression "(byte *)pyVar6->yy_buf_pos" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pyVar6->yy_buf_pos" identifier -> field_identifier))) ;) (expression_statement "pFVar8 = pyVar6->yy_input_file;" (assignment_expression "pFVar8 = pyVar6->yy_input_file" identifier = (field_expression "pyVar6->yy_input_file" identifier -> field_identifier)) ;) (expression_statement "local_68 = PTR_host_name_addresses_map_000af458;" (assignment_expression "local_68 = PTR_host_name_addresses_map_000af458" identifier = identifier) ;) (expression_statement "iVar11 = pyVar6->yy_n_chars;" (assignment_expression "iVar11 = pyVar6->yy_n_chars" identifier = (field_expression "pyVar6->yy_n_chars" identifier -> field_identifier)) ;) (expression_statement "*(byte **)PTR_yytext_000af784 = pbVar17;" (assignment_expression "*(byte **)PTR_yytext_000af784 = pbVar17" (pointer_expression "*(byte **)PTR_yytext_000af784" * (cast_expression "(byte **)PTR_yytext_000af784" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "*(FILE **)puVar2 = pFVar8;" (assignment_expression "*(FILE **)puVar2 = pFVar8" (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "*(int *)(puVar1 + -0x60) = iVar11;" (assignment_expression "*(int *)(puVar1 + -0x60) = iVar11" (pointer_expression "*(int *)(puVar1 + -0x60)" * (cast_expression "(int *)(puVar1 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x60)" ( (binary_expression "puVar1 + -0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar1 + -100) = pbVar17;" (assignment_expression "*(byte **)(puVar1 + -100) = pbVar17" (pointer_expression "*(byte **)(puVar1 + -100)" * (cast_expression "(byte **)(puVar1 + -100)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + -100)" ( (binary_expression "puVar1 + -100" identifier + number_literal) )))) = identifier) ;) (expression_statement "bVar9 = *pbVar17;" (assignment_expression "bVar9 = *pbVar17" identifier = (pointer_expression "*pbVar17" * identifier)) ;) (expression_statement "puVar1[-0x5c] = bVar9;" (assignment_expression "puVar1[-0x5c] = bVar9" (subscript_expression "puVar1[-0x5c]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_00027758:\n  puVar5 = PTR_yyleng_000af794;" statement_identifier : (expression_statement "puVar5 = PTR_yyleng_000af794;" (assignment_expression "puVar5 = PTR_yyleng_000af794" identifier = identifier) ;)) (expression_statement "puVar4 = PTR_s_hallenge__000af46c;" (assignment_expression "puVar4 = PTR_s_hallenge__000af46c" identifier = identifier) ;) (expression_statement "puVar2 = PTR_LAB_000af468;" (assignment_expression "puVar2 = PTR_LAB_000af468" identifier = identifier) ;) (expression_statement "puVar1 = PTR_host_name_addresses_map_000af458;" (assignment_expression "puVar1 = PTR_host_name_addresses_map_000af458" identifier = identifier) ;) (expression_statement "*pbVar17 = bVar9;" (assignment_expression "*pbVar17 = bVar9" (pointer_expression "*pbVar17" * identifier) = identifier) ;) (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) (expression_statement "iVar11 = *(int *)(puVar1 + -0x70);" (assignment_expression "iVar11 = *(int *)(puVar1 + -0x70)" identifier = (pointer_expression "*(int *)(puVar1 + -0x70)" * (cast_expression "(int *)(puVar1 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x70)" ( (binary_expression "puVar1 + -0x70" identifier + number_literal) ))))) ;) (expression_statement "pbVar12 = *(byte **)(puVar1 + -0x74);" (assignment_expression "pbVar12 = *(byte **)(puVar1 + -0x74)" identifier = (pointer_expression "*(byte **)(puVar1 + -0x74)" * (cast_expression "(byte **)(puVar1 + -0x74)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + -0x74)" ( (binary_expression "puVar1 + -0x74" identifier + number_literal) ))))) ;) (expression_statement "iVar19 = iVar11;" (assignment_expression "iVar19 = iVar11" identifier = identifier) ;) (expression_statement "pbVar15 = pbVar12;" (assignment_expression "pbVar15 = pbVar12" identifier = identifier) ;) (expression_statement "pbVar18 = pbVar17;" (assignment_expression "pbVar18 = pbVar17" identifier = identifier) ;) (while_statement "while( true ) {\n    uVar7 = (uint)(byte)puVar4[bVar9 - 0x2160];\n    if (sVar16 != 0) {\n      bVar10 = true;\n      iVar19 = iVar13;\n      pbVar15 = pbVar18;\n    }\n    while( true ) {\n      iVar14 = (iVar14 + uVar7) * 2;\n      if (*(short *)(puVar2 + iVar14 + 0x5c30) == iVar13) break;\n      iVar13 = (int)*(short *)(puVar4 + iVar13 * 2 + -0x3378);\n      if (0x44e < iVar13) {\n        uVar7 = (uint)(byte)puVar4[uVar7 - 0x21b0];\n      }\n      iVar14 = (int)*(short *)(puVar4 + iVar13 * 2 + -0x2a94);\n    }\n    iVar13 = (int)*(short *)(puVar4 + iVar14 + -0x6ba4);\n    pbVar18 = pbVar18 + 1;\n    if (iVar13 == 0x44e) break;\n    bVar9 = *pbVar18;\n    sVar16 = *(short *)(puVar3 + iVar13 * 2 + -0x2060);\n    iVar14 = (int)*(short *)(puVar4 + iVar13 * 2 + -0x2a94);\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    uVar7 = (uint)(byte)puVar4[bVar9 - 0x2160];\n    if (sVar16 != 0) {\n      bVar10 = true;\n      iVar19 = iVar13;\n      pbVar15 = pbVar18;\n    }\n    while( true ) {\n      iVar14 = (iVar14 + uVar7) * 2;\n      if (*(short *)(puVar2 + iVar14 + 0x5c30) == iVar13) break;\n      iVar13 = (int)*(short *)(puVar4 + iVar13 * 2 + -0x3378);\n      if (0x44e < iVar13) {\n        uVar7 = (uint)(byte)puVar4[uVar7 - 0x21b0];\n      }\n      iVar14 = (int)*(short *)(puVar4 + iVar13 * 2 + -0x2a94);\n    }\n    iVar13 = (int)*(short *)(puVar4 + iVar14 + -0x6ba4);\n    pbVar18 = pbVar18 + 1;\n    if (iVar13 == 0x44e) break;\n    bVar9 = *pbVar18;\n    sVar16 = *(short *)(puVar3 + iVar13 * 2 + -0x2060);\n    iVar14 = (int)*(short *)(puVar4 + iVar13 * 2 + -0x2a94);\n  }" { (expression_statement "uVar7 = (uint)(byte)puVar4[bVar9 - 0x2160];" (assignment_expression "uVar7 = (uint)(byte)puVar4[bVar9 - 0x2160]" identifier = (cast_expression "(uint)(byte)puVar4[bVar9 - 0x2160]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar4[bVar9 - 0x2160]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar4[bVar9 - 0x2160]" identifier [ (binary_expression "bVar9 - 0x2160" identifier - number_literal) ])))) ;) (if_statement "if (sVar16 != 0) {\n      bVar10 = true;\n      iVar19 = iVar13;\n      pbVar15 = pbVar18;\n    }" if (parenthesized_expression "(sVar16 != 0)" ( (binary_expression "sVar16 != 0" identifier != number_literal) )) (compound_statement "{\n      bVar10 = true;\n      iVar19 = iVar13;\n      pbVar15 = pbVar18;\n    }" { (expression_statement "bVar10 = true;" (assignment_expression "bVar10 = true" identifier = true) ;) (expression_statement "iVar19 = iVar13;" (assignment_expression "iVar19 = iVar13" identifier = identifier) ;) (expression_statement "pbVar15 = pbVar18;" (assignment_expression "pbVar15 = pbVar18" identifier = identifier) ;) })) (while_statement "while( true ) {\n      iVar14 = (iVar14 + uVar7) * 2;\n      if (*(short *)(puVar2 + iVar14 + 0x5c30) == iVar13) break;\n      iVar13 = (int)*(short *)(puVar4 + iVar13 * 2 + -0x3378);\n      if (0x44e < iVar13) {\n        uVar7 = (uint)(byte)puVar4[uVar7 - 0x21b0];\n      }\n      iVar14 = (int)*(short *)(puVar4 + iVar13 * 2 + -0x2a94);\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      iVar14 = (iVar14 + uVar7) * 2;\n      if (*(short *)(puVar2 + iVar14 + 0x5c30) == iVar13) break;\n      iVar13 = (int)*(short *)(puVar4 + iVar13 * 2 + -0x3378);\n      if (0x44e < iVar13) {\n        uVar7 = (uint)(byte)puVar4[uVar7 - 0x21b0];\n      }\n      iVar14 = (int)*(short *)(puVar4 + iVar13 * 2 + -0x2a94);\n    }" { (expression_statement "iVar14 = (iVar14 + uVar7) * 2;" (assignment_expression "iVar14 = (iVar14 + uVar7) * 2" identifier = (binary_expression "(iVar14 + uVar7) * 2" (parenthesized_expression "(iVar14 + uVar7)" ( (binary_expression "iVar14 + uVar7" identifier + identifier) )) * number_literal)) ;) (if_statement "if (*(short *)(puVar2 + iVar14 + 0x5c30) == iVar13) break;" if (parenthesized_expression "(*(short *)(puVar2 + iVar14 + 0x5c30) == iVar13)" ( (binary_expression "*(short *)(puVar2 + iVar14 + 0x5c30) == iVar13" (pointer_expression "*(short *)(puVar2 + iVar14 + 0x5c30)" * (cast_expression "(short *)(puVar2 + iVar14 + 0x5c30)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + iVar14 + 0x5c30)" ( (binary_expression "puVar2 + iVar14 + 0x5c30" (binary_expression "puVar2 + iVar14" identifier + identifier) + number_literal) )))) == identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar13 = (int)*(short *)(puVar4 + iVar13 * 2 + -0x3378);" (assignment_expression "iVar13 = (int)*(short *)(puVar4 + iVar13 * 2 + -0x3378)" identifier = (cast_expression "(int)*(short *)(puVar4 + iVar13 * 2 + -0x3378)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(puVar4 + iVar13 * 2 + -0x3378)" * (cast_expression "(short *)(puVar4 + iVar13 * 2 + -0x3378)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + iVar13 * 2 + -0x3378)" ( (binary_expression "puVar4 + iVar13 * 2 + -0x3378" (binary_expression "puVar4 + iVar13 * 2" identifier + (binary_expression "iVar13 * 2" identifier * number_literal)) + number_literal) )))))) ;) (if_statement "if (0x44e < iVar13) {\n        uVar7 = (uint)(byte)puVar4[uVar7 - 0x21b0];\n      }" if (parenthesized_expression "(0x44e < iVar13)" ( (binary_expression "0x44e < iVar13" number_literal < identifier) )) (compound_statement "{\n        uVar7 = (uint)(byte)puVar4[uVar7 - 0x21b0];\n      }" { (expression_statement "uVar7 = (uint)(byte)puVar4[uVar7 - 0x21b0];" (assignment_expression "uVar7 = (uint)(byte)puVar4[uVar7 - 0x21b0]" identifier = (cast_expression "(uint)(byte)puVar4[uVar7 - 0x21b0]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar4[uVar7 - 0x21b0]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar4[uVar7 - 0x21b0]" identifier [ (binary_expression "uVar7 - 0x21b0" identifier - number_literal) ])))) ;) })) (expression_statement "iVar14 = (int)*(short *)(puVar4 + iVar13 * 2 + -0x2a94);" (assignment_expression "iVar14 = (int)*(short *)(puVar4 + iVar13 * 2 + -0x2a94)" identifier = (cast_expression "(int)*(short *)(puVar4 + iVar13 * 2 + -0x2a94)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(puVar4 + iVar13 * 2 + -0x2a94)" * (cast_expression "(short *)(puVar4 + iVar13 * 2 + -0x2a94)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + iVar13 * 2 + -0x2a94)" ( (binary_expression "puVar4 + iVar13 * 2 + -0x2a94" (binary_expression "puVar4 + iVar13 * 2" identifier + (binary_expression "iVar13 * 2" identifier * number_literal)) + number_literal) )))))) ;) })) (expression_statement "iVar13 = (int)*(short *)(puVar4 + iVar14 + -0x6ba4);" (assignment_expression "iVar13 = (int)*(short *)(puVar4 + iVar14 + -0x6ba4)" identifier = (cast_expression "(int)*(short *)(puVar4 + iVar14 + -0x6ba4)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(puVar4 + iVar14 + -0x6ba4)" * (cast_expression "(short *)(puVar4 + iVar14 + -0x6ba4)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + iVar14 + -0x6ba4)" ( (binary_expression "puVar4 + iVar14 + -0x6ba4" (binary_expression "puVar4 + iVar14" identifier + identifier) + number_literal) )))))) ;) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (if_statement "if (iVar13 == 0x44e) break;" if (parenthesized_expression "(iVar13 == 0x44e)" ( (binary_expression "iVar13 == 0x44e" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "bVar9 = *pbVar18;" (assignment_expression "bVar9 = *pbVar18" identifier = (pointer_expression "*pbVar18" * identifier)) ;) (expression_statement "sVar16 = *(short *)(puVar3 + iVar13 * 2 + -0x2060);" (assignment_expression "sVar16 = *(short *)(puVar3 + iVar13 * 2 + -0x2060)" identifier = (pointer_expression "*(short *)(puVar3 + iVar13 * 2 + -0x2060)" * (cast_expression "(short *)(puVar3 + iVar13 * 2 + -0x2060)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + iVar13 * 2 + -0x2060)" ( (binary_expression "puVar3 + iVar13 * 2 + -0x2060" (binary_expression "puVar3 + iVar13 * 2" identifier + (binary_expression "iVar13 * 2" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "iVar14 = (int)*(short *)(puVar4 + iVar13 * 2 + -0x2a94);" (assignment_expression "iVar14 = (int)*(short *)(puVar4 + iVar13 * 2 + -0x2a94)" identifier = (cast_expression "(int)*(short *)(puVar4 + iVar13 * 2 + -0x2a94)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(puVar4 + iVar13 * 2 + -0x2a94)" * (cast_expression "(short *)(puVar4 + iVar13 * 2 + -0x2a94)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + iVar13 * 2 + -0x2a94)" ( (binary_expression "puVar4 + iVar13 * 2 + -0x2a94" (binary_expression "puVar4 + iVar13 * 2" identifier + (binary_expression "iVar13 * 2" identifier * number_literal)) + number_literal) )))))) ;) })) (if_statement "if (bVar10) {\n    *(byte **)(puVar1 + -0x74) = pbVar15;\n    *(int *)(puVar1 + -0x70) = iVar19;\n    iVar11 = iVar19;\n    pbVar12 = pbVar15;\n  }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n    *(byte **)(puVar1 + -0x74) = pbVar15;\n    *(int *)(puVar1 + -0x70) = iVar19;\n    iVar11 = iVar19;\n    pbVar12 = pbVar15;\n  }" { (expression_statement "*(byte **)(puVar1 + -0x74) = pbVar15;" (assignment_expression "*(byte **)(puVar1 + -0x74) = pbVar15" (pointer_expression "*(byte **)(puVar1 + -0x74)" * (cast_expression "(byte **)(puVar1 + -0x74)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + -0x74)" ( (binary_expression "puVar1 + -0x74" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar1 + -0x70) = iVar19;" (assignment_expression "*(int *)(puVar1 + -0x70) = iVar19" (pointer_expression "*(int *)(puVar1 + -0x70)" * (cast_expression "(int *)(puVar1 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x70)" ( (binary_expression "puVar1 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar11 = iVar19;" (assignment_expression "iVar11 = iVar19" identifier = identifier) ;) (expression_statement "pbVar12 = pbVar15;" (assignment_expression "pbVar12 = pbVar15" identifier = identifier) ;) })) (expression_statement "puVar1 = PTR_LAB_000af468;" (assignment_expression "puVar1 = PTR_LAB_000af468" identifier = identifier) ;) (expression_statement "*(byte **)(local_68 + -100) = pbVar12;" (assignment_expression "*(byte **)(local_68 + -100) = pbVar12" (pointer_expression "*(byte **)(local_68 + -100)" * (cast_expression "(byte **)(local_68 + -100)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_68 + -100)" ( (binary_expression "local_68 + -100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*puVar20 = pbVar17;" (assignment_expression "*puVar20 = pbVar17" (pointer_expression "*puVar20" * identifier) = identifier) ;) (expression_statement "sVar16 = *(short *)(puVar3 + iVar11 * 2 + -0x2060);" (assignment_expression "sVar16 = *(short *)(puVar3 + iVar11 * 2 + -0x2060)" identifier = (pointer_expression "*(short *)(puVar3 + iVar11 * 2 + -0x2060)" * (cast_expression "(short *)(puVar3 + iVar11 * 2 + -0x2060)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + iVar11 * 2 + -0x2060)" ( (binary_expression "puVar3 + iVar11 * 2 + -0x2060" (binary_expression "puVar3 + iVar11 * 2" identifier + (binary_expression "iVar11 * 2" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "*(int *)puVar5 = (int)pbVar12 - (int)pbVar17;" (assignment_expression "*(int *)puVar5 = (int)pbVar12 - (int)pbVar17" (pointer_expression "*(int *)puVar5" * (cast_expression "(int *)puVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(int)pbVar12 - (int)pbVar17" (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "bVar9 = *pbVar12;" (assignment_expression "bVar9 = *pbVar12" identifier = (pointer_expression "*pbVar12" * identifier)) ;) (expression_statement "*pbVar12 = 0;" (assignment_expression "*pbVar12 = 0" (pointer_expression "*pbVar12" * identifier) = number_literal) ;) (expression_statement "local_68[-0x5c] = bVar9;" (assignment_expression "local_68[-0x5c] = bVar9" (subscript_expression "local_68[-0x5c]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((uint)(int)sVar16 < 0x2c) {\n                    /* WARNING: Could not emulate address calculation at 0x00027900 */\n                    /* WARNING: Treating indirect jump as call */\n    iVar13 = (*(code *)(&_gp + *(int *)(puVar1 + sVar16 * 4 + 0x5b80)))();\n    return iVar13;\n  }" if (parenthesized_expression "((uint)(int)sVar16 < 0x2c)" ( (binary_expression "(uint)(int)sVar16 < 0x2c" (cast_expression "(uint)(int)sVar16" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(int)sVar16" ( (type_descriptor "int" primitive_type) ) identifier)) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x00027900 */\n                    /* WARNING: Treating indirect jump as call */\n    iVar13 = (*(code *)(&_gp + *(int *)(puVar1 + sVar16 * 4 + 0x5b80)))();\n    return iVar13;\n  }" { comment comment (expression_statement "iVar13 = (*(code *)(&_gp + *(int *)(puVar1 + sVar16 * 4 + 0x5b80)))();" (assignment_expression "iVar13 = (*(code *)(&_gp + *(int *)(puVar1 + sVar16 * 4 + 0x5b80)))()" identifier = (call_expression "(*(code *)(&_gp + *(int *)(puVar1 + sVar16 * 4 + 0x5b80)))()" (parenthesized_expression "(*(code *)(&_gp + *(int *)(puVar1 + sVar16 * 4 + 0x5b80)))" ( (pointer_expression "*(code *)(&_gp + *(int *)(puVar1 + sVar16 * 4 + 0x5b80))" * (cast_expression "(code *)(&_gp + *(int *)(puVar1 + sVar16 * 4 + 0x5b80))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp + *(int *)(puVar1 + sVar16 * 4 + 0x5b80))" ( (binary_expression "&_gp + *(int *)(puVar1 + sVar16 * 4 + 0x5b80)" (pointer_expression "&_gp" & identifier) + (pointer_expression "*(int *)(puVar1 + sVar16 * 4 + 0x5b80)" * (cast_expression "(int *)(puVar1 + sVar16 * 4 + 0x5b80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + sVar16 * 4 + 0x5b80)" ( (binary_expression "puVar1 + sVar16 * 4 + 0x5b80" (binary_expression "puVar1 + sVar16 * 4" identifier + (binary_expression "sVar16 * 4" identifier * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar13;" return identifier ;) })) comment (expression_statement "yy_fatal_error(PTR_LAB_000af468 + 0x5ad4);" (call_expression "yy_fatal_error(PTR_LAB_000af468 + 0x5ad4)" identifier (argument_list "(PTR_LAB_000af468 + 0x5ad4)" ( (binary_expression "PTR_LAB_000af468 + 0x5ad4" identifier + number_literal) ))) ;) })))
(translation_unit "void yylex(void)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  byte bVar10;\n  uint uVar8;\n  undefined4 uVar9;\n  bool bVar11;\n  int iVar12;\n  byte *pbVar13;\n  int iVar14;\n  int iVar15;\n  byte *pbVar16;\n  short sVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  int iVar20;\n  undefined4 *puVar21;\n  undefined *local_68;\n  \n  puVar3 = PTR_s_hallenge__000af46c;\n  puVar1 = PTR_DAT_000af458;\n  iVar14 = *(int *)(PTR_DAT_000af458 + -0x6c);\n  if (*(int *)(PTR_DAT_000af458 + -0x68) != 0) {\n    local_68 = PTR_DAT_000af458;\n    bVar10 = PTR_DAT_000af458[-0x5c];\n    pbVar18 = *(byte **)(PTR_DAT_000af458 + -100);\n    sVar17 = *(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060);\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    puVar21 = (undefined4 *)PTR_yytext_000af784;\n    goto LAB_00027758;\n  }\n  *(undefined4 *)(PTR_DAT_000af458 + -0x68) = 1;\n  puVar2 = PTR_yyin_000af788;\n  if (iVar14 == 0) {\n    iVar15 = 0;\n    sVar17 = 0;\n    iVar14 = 1;\n    *(undefined4 *)(puVar1 + -0x6c) = 1;\n    if (*(int *)puVar2 == 0) goto LAB_00027a1c;\nLAB_00027984:\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }\n  else {\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    if (*(int *)PTR_yyin_000af788 != 0) goto LAB_00027984;\nLAB_00027a1c:\n    *(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }\n  if (iVar12 == 0) {\n    *(undefined4 *)PTR_yyout_000af798 = *(undefined4 *)PTR_stdout_000afb6c;\n  }\n  puVar1 = PTR_DAT_000af458;\n  if ((*(int *)(PTR_DAT_000af458 + -0x58) == 0) ||\n     (puVar6 = *(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4),\n     puVar6 == (undefined4 *)0x0)) {\n    FUN_000270f0();\n    iVar12 = *(int *)(puVar1 + -0x50);\n    iVar20 = *(int *)(puVar1 + -0x58);\n    puVar6 = (undefined4 *)yy_create_buffer(*(undefined4 *)puVar2,0x4000);\n    *(undefined4 **)(iVar20 + iVar12 * 4) = puVar6;\n  }\n  puVar21 = (undefined4 *)PTR_yytext_000af784;\n  puVar1 = PTR_DAT_000af458;\n  pbVar18 = (byte *)puVar6[2];\n  uVar9 = *puVar6;\n  local_68 = PTR_DAT_000af458;\n  uVar7 = puVar6[4];\n  *(byte **)PTR_yytext_000af784 = pbVar18;\n  *(undefined4 *)puVar2 = uVar9;\n  *(undefined4 *)(puVar1 + -0x60) = uVar7;\n  *(byte **)(puVar1 + -100) = pbVar18;\n  bVar10 = *pbVar18;\n  puVar1[-0x5c] = bVar10;\nLAB_00027758:\n  puVar5 = PTR_yyleng_000af794;\n  puVar4 = PTR_s_hallenge__000af46c;\n  puVar2 = PTR_LAB_000af468;\n  puVar1 = PTR_DAT_000af458;\n  *pbVar18 = bVar10;\n  bVar11 = false;\n  iVar12 = *(int *)(puVar1 + -0x70);\n  pbVar13 = *(byte **)(puVar1 + -0x74);\n  iVar20 = iVar12;\n  pbVar16 = pbVar13;\n  pbVar19 = pbVar18;\n  while( true ) {\n    uVar8 = (uint)(byte)puVar4[bVar10 - 0x2160];\n    if (sVar17 != 0) {\n      bVar11 = true;\n      iVar20 = iVar14;\n      pbVar16 = pbVar19;\n    }\n    while( true ) {\n      iVar15 = (iVar15 + uVar8) * 2;\n      if (*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14) break;\n      iVar14 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x3378);\n      if (0x44e < iVar14) {\n        uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];\n      }\n      iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n    }\n    iVar14 = (int)*(short *)(puVar4 + iVar15 + -0x6ba4);\n    pbVar19 = pbVar19 + 1;\n    if (iVar14 == 0x44e) break;\n    bVar10 = *pbVar19;\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n  }\n  if (bVar11) {\n    *(byte **)(puVar1 + -0x74) = pbVar16;\n    *(int *)(puVar1 + -0x70) = iVar20;\n    iVar12 = iVar20;\n    pbVar13 = pbVar16;\n  }\n  puVar1 = PTR_LAB_000af468;\n  *(byte **)(local_68 + -100) = pbVar13;\n  *puVar21 = pbVar18;\n  sVar17 = *(short *)(puVar3 + iVar12 * 2 + -0x2060);\n  *(int *)puVar5 = (int)pbVar13 - (int)pbVar18;\n  bVar10 = *pbVar13;\n  *pbVar13 = 0;\n  local_68[-0x5c] = bVar10;\n  if ((uint)(int)sVar17 < 0x2c) {\n                    \n                    \n    (*(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80)))();\n    return;\n  }\n                    \n  FUN_000270a8(PTR_LAB_000af468 + 0x5ad4);\n}\n\n" (function_definition "void yylex(void)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  byte bVar10;\n  uint uVar8;\n  undefined4 uVar9;\n  bool bVar11;\n  int iVar12;\n  byte *pbVar13;\n  int iVar14;\n  int iVar15;\n  byte *pbVar16;\n  short sVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  int iVar20;\n  undefined4 *puVar21;\n  undefined *local_68;\n  \n  puVar3 = PTR_s_hallenge__000af46c;\n  puVar1 = PTR_DAT_000af458;\n  iVar14 = *(int *)(PTR_DAT_000af458 + -0x6c);\n  if (*(int *)(PTR_DAT_000af458 + -0x68) != 0) {\n    local_68 = PTR_DAT_000af458;\n    bVar10 = PTR_DAT_000af458[-0x5c];\n    pbVar18 = *(byte **)(PTR_DAT_000af458 + -100);\n    sVar17 = *(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060);\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    puVar21 = (undefined4 *)PTR_yytext_000af784;\n    goto LAB_00027758;\n  }\n  *(undefined4 *)(PTR_DAT_000af458 + -0x68) = 1;\n  puVar2 = PTR_yyin_000af788;\n  if (iVar14 == 0) {\n    iVar15 = 0;\n    sVar17 = 0;\n    iVar14 = 1;\n    *(undefined4 *)(puVar1 + -0x6c) = 1;\n    if (*(int *)puVar2 == 0) goto LAB_00027a1c;\nLAB_00027984:\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }\n  else {\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    if (*(int *)PTR_yyin_000af788 != 0) goto LAB_00027984;\nLAB_00027a1c:\n    *(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }\n  if (iVar12 == 0) {\n    *(undefined4 *)PTR_yyout_000af798 = *(undefined4 *)PTR_stdout_000afb6c;\n  }\n  puVar1 = PTR_DAT_000af458;\n  if ((*(int *)(PTR_DAT_000af458 + -0x58) == 0) ||\n     (puVar6 = *(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4),\n     puVar6 == (undefined4 *)0x0)) {\n    FUN_000270f0();\n    iVar12 = *(int *)(puVar1 + -0x50);\n    iVar20 = *(int *)(puVar1 + -0x58);\n    puVar6 = (undefined4 *)yy_create_buffer(*(undefined4 *)puVar2,0x4000);\n    *(undefined4 **)(iVar20 + iVar12 * 4) = puVar6;\n  }\n  puVar21 = (undefined4 *)PTR_yytext_000af784;\n  puVar1 = PTR_DAT_000af458;\n  pbVar18 = (byte *)puVar6[2];\n  uVar9 = *puVar6;\n  local_68 = PTR_DAT_000af458;\n  uVar7 = puVar6[4];\n  *(byte **)PTR_yytext_000af784 = pbVar18;\n  *(undefined4 *)puVar2 = uVar9;\n  *(undefined4 *)(puVar1 + -0x60) = uVar7;\n  *(byte **)(puVar1 + -100) = pbVar18;\n  bVar10 = *pbVar18;\n  puVar1[-0x5c] = bVar10;\nLAB_00027758:\n  puVar5 = PTR_yyleng_000af794;\n  puVar4 = PTR_s_hallenge__000af46c;\n  puVar2 = PTR_LAB_000af468;\n  puVar1 = PTR_DAT_000af458;\n  *pbVar18 = bVar10;\n  bVar11 = false;\n  iVar12 = *(int *)(puVar1 + -0x70);\n  pbVar13 = *(byte **)(puVar1 + -0x74);\n  iVar20 = iVar12;\n  pbVar16 = pbVar13;\n  pbVar19 = pbVar18;\n  while( true ) {\n    uVar8 = (uint)(byte)puVar4[bVar10 - 0x2160];\n    if (sVar17 != 0) {\n      bVar11 = true;\n      iVar20 = iVar14;\n      pbVar16 = pbVar19;\n    }\n    while( true ) {\n      iVar15 = (iVar15 + uVar8) * 2;\n      if (*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14) break;\n      iVar14 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x3378);\n      if (0x44e < iVar14) {\n        uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];\n      }\n      iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n    }\n    iVar14 = (int)*(short *)(puVar4 + iVar15 + -0x6ba4);\n    pbVar19 = pbVar19 + 1;\n    if (iVar14 == 0x44e) break;\n    bVar10 = *pbVar19;\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n  }\n  if (bVar11) {\n    *(byte **)(puVar1 + -0x74) = pbVar16;\n    *(int *)(puVar1 + -0x70) = iVar20;\n    iVar12 = iVar20;\n    pbVar13 = pbVar16;\n  }\n  puVar1 = PTR_LAB_000af468;\n  *(byte **)(local_68 + -100) = pbVar13;\n  *puVar21 = pbVar18;\n  sVar17 = *(short *)(puVar3 + iVar12 * 2 + -0x2060);\n  *(int *)puVar5 = (int)pbVar13 - (int)pbVar18;\n  bVar10 = *pbVar13;\n  *pbVar13 = 0;\n  local_68[-0x5c] = bVar10;\n  if ((uint)(int)sVar17 < 0x2c) {\n                    \n                    \n    (*(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80)))();\n    return;\n  }\n                    \n  FUN_000270a8(PTR_LAB_000af468 + 0x5ad4);\n}" primitive_type (function_declarator "yylex(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  byte bVar10;\n  uint uVar8;\n  undefined4 uVar9;\n  bool bVar11;\n  int iVar12;\n  byte *pbVar13;\n  int iVar14;\n  int iVar15;\n  byte *pbVar16;\n  short sVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  int iVar20;\n  undefined4 *puVar21;\n  undefined *local_68;\n  \n  puVar3 = PTR_s_hallenge__000af46c;\n  puVar1 = PTR_DAT_000af458;\n  iVar14 = *(int *)(PTR_DAT_000af458 + -0x6c);\n  if (*(int *)(PTR_DAT_000af458 + -0x68) != 0) {\n    local_68 = PTR_DAT_000af458;\n    bVar10 = PTR_DAT_000af458[-0x5c];\n    pbVar18 = *(byte **)(PTR_DAT_000af458 + -100);\n    sVar17 = *(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060);\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    puVar21 = (undefined4 *)PTR_yytext_000af784;\n    goto LAB_00027758;\n  }\n  *(undefined4 *)(PTR_DAT_000af458 + -0x68) = 1;\n  puVar2 = PTR_yyin_000af788;\n  if (iVar14 == 0) {\n    iVar15 = 0;\n    sVar17 = 0;\n    iVar14 = 1;\n    *(undefined4 *)(puVar1 + -0x6c) = 1;\n    if (*(int *)puVar2 == 0) goto LAB_00027a1c;\nLAB_00027984:\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }\n  else {\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    if (*(int *)PTR_yyin_000af788 != 0) goto LAB_00027984;\nLAB_00027a1c:\n    *(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }\n  if (iVar12 == 0) {\n    *(undefined4 *)PTR_yyout_000af798 = *(undefined4 *)PTR_stdout_000afb6c;\n  }\n  puVar1 = PTR_DAT_000af458;\n  if ((*(int *)(PTR_DAT_000af458 + -0x58) == 0) ||\n     (puVar6 = *(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4),\n     puVar6 == (undefined4 *)0x0)) {\n    FUN_000270f0();\n    iVar12 = *(int *)(puVar1 + -0x50);\n    iVar20 = *(int *)(puVar1 + -0x58);\n    puVar6 = (undefined4 *)yy_create_buffer(*(undefined4 *)puVar2,0x4000);\n    *(undefined4 **)(iVar20 + iVar12 * 4) = puVar6;\n  }\n  puVar21 = (undefined4 *)PTR_yytext_000af784;\n  puVar1 = PTR_DAT_000af458;\n  pbVar18 = (byte *)puVar6[2];\n  uVar9 = *puVar6;\n  local_68 = PTR_DAT_000af458;\n  uVar7 = puVar6[4];\n  *(byte **)PTR_yytext_000af784 = pbVar18;\n  *(undefined4 *)puVar2 = uVar9;\n  *(undefined4 *)(puVar1 + -0x60) = uVar7;\n  *(byte **)(puVar1 + -100) = pbVar18;\n  bVar10 = *pbVar18;\n  puVar1[-0x5c] = bVar10;\nLAB_00027758:\n  puVar5 = PTR_yyleng_000af794;\n  puVar4 = PTR_s_hallenge__000af46c;\n  puVar2 = PTR_LAB_000af468;\n  puVar1 = PTR_DAT_000af458;\n  *pbVar18 = bVar10;\n  bVar11 = false;\n  iVar12 = *(int *)(puVar1 + -0x70);\n  pbVar13 = *(byte **)(puVar1 + -0x74);\n  iVar20 = iVar12;\n  pbVar16 = pbVar13;\n  pbVar19 = pbVar18;\n  while( true ) {\n    uVar8 = (uint)(byte)puVar4[bVar10 - 0x2160];\n    if (sVar17 != 0) {\n      bVar11 = true;\n      iVar20 = iVar14;\n      pbVar16 = pbVar19;\n    }\n    while( true ) {\n      iVar15 = (iVar15 + uVar8) * 2;\n      if (*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14) break;\n      iVar14 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x3378);\n      if (0x44e < iVar14) {\n        uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];\n      }\n      iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n    }\n    iVar14 = (int)*(short *)(puVar4 + iVar15 + -0x6ba4);\n    pbVar19 = pbVar19 + 1;\n    if (iVar14 == 0x44e) break;\n    bVar10 = *pbVar19;\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n  }\n  if (bVar11) {\n    *(byte **)(puVar1 + -0x74) = pbVar16;\n    *(int *)(puVar1 + -0x70) = iVar20;\n    iVar12 = iVar20;\n    pbVar13 = pbVar16;\n  }\n  puVar1 = PTR_LAB_000af468;\n  *(byte **)(local_68 + -100) = pbVar13;\n  *puVar21 = pbVar18;\n  sVar17 = *(short *)(puVar3 + iVar12 * 2 + -0x2060);\n  *(int *)puVar5 = (int)pbVar13 - (int)pbVar18;\n  bVar10 = *pbVar13;\n  *pbVar13 = 0;\n  local_68[-0x5c] = bVar10;\n  if ((uint)(int)sVar17 < 0x2c) {\n                    \n                    \n    (*(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80)))();\n    return;\n  }\n                    \n  FUN_000270a8(PTR_LAB_000af468 + 0x5ad4);\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "short sVar17;" (sized_type_specifier "short" short) identifier ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "undefined4 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "undefined *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (expression_statement "puVar3 = PTR_s_hallenge__000af46c;" (assignment_expression "puVar3 = PTR_s_hallenge__000af46c" identifier = identifier) ;) (expression_statement "puVar1 = PTR_DAT_000af458;" (assignment_expression "puVar1 = PTR_DAT_000af458" identifier = identifier) ;) (expression_statement "iVar14 = *(int *)(PTR_DAT_000af458 + -0x6c);" (assignment_expression "iVar14 = *(int *)(PTR_DAT_000af458 + -0x6c)" identifier = (pointer_expression "*(int *)(PTR_DAT_000af458 + -0x6c)" * (cast_expression "(int *)(PTR_DAT_000af458 + -0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000af458 + -0x6c)" ( (binary_expression "PTR_DAT_000af458 + -0x6c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(PTR_DAT_000af458 + -0x68) != 0) {\n    local_68 = PTR_DAT_000af458;\n    bVar10 = PTR_DAT_000af458[-0x5c];\n    pbVar18 = *(byte **)(PTR_DAT_000af458 + -100);\n    sVar17 = *(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060);\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    puVar21 = (undefined4 *)PTR_yytext_000af784;\n    goto LAB_00027758;\n  }" if (parenthesized_expression "(*(int *)(PTR_DAT_000af458 + -0x68) != 0)" ( (binary_expression "*(int *)(PTR_DAT_000af458 + -0x68) != 0" (pointer_expression "*(int *)(PTR_DAT_000af458 + -0x68)" * (cast_expression "(int *)(PTR_DAT_000af458 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000af458 + -0x68)" ( (binary_expression "PTR_DAT_000af458 + -0x68" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    local_68 = PTR_DAT_000af458;\n    bVar10 = PTR_DAT_000af458[-0x5c];\n    pbVar18 = *(byte **)(PTR_DAT_000af458 + -100);\n    sVar17 = *(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060);\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    puVar21 = (undefined4 *)PTR_yytext_000af784;\n    goto LAB_00027758;\n  }" { (expression_statement "local_68 = PTR_DAT_000af458;" (assignment_expression "local_68 = PTR_DAT_000af458" identifier = identifier) ;) (expression_statement "bVar10 = PTR_DAT_000af458[-0x5c];" (assignment_expression "bVar10 = PTR_DAT_000af458[-0x5c]" identifier = (subscript_expression "PTR_DAT_000af458[-0x5c]" identifier [ number_literal ])) ;) (expression_statement "pbVar18 = *(byte **)(PTR_DAT_000af458 + -100);" (assignment_expression "pbVar18 = *(byte **)(PTR_DAT_000af458 + -100)" identifier = (pointer_expression "*(byte **)(PTR_DAT_000af458 + -100)" * (cast_expression "(byte **)(PTR_DAT_000af458 + -100)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_000af458 + -100)" ( (binary_expression "PTR_DAT_000af458 + -100" identifier + number_literal) ))))) ;) (expression_statement "sVar17 = *(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060);" (assignment_expression "sVar17 = *(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060)" identifier = (pointer_expression "*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060)" * (cast_expression "(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060)" ( (binary_expression "PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060" (binary_expression "PTR_s_hallenge__000af46c + iVar14 * 2" identifier + (binary_expression "iVar14 * 2" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);" (assignment_expression "iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94)" identifier = (cast_expression "(int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94)" * (cast_expression "(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94)" ( (binary_expression "PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94" (binary_expression "PTR_s_hallenge__000af46c + iVar14 * 2" identifier + (binary_expression "iVar14 * 2" identifier * number_literal)) + number_literal) )))))) ;) (expression_statement "puVar21 = (undefined4 *)PTR_yytext_000af784;" (assignment_expression "puVar21 = (undefined4 *)PTR_yytext_000af784" identifier = (cast_expression "(undefined4 *)PTR_yytext_000af784" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_00027758;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(PTR_DAT_000af458 + -0x68) = 1;" (assignment_expression "*(undefined4 *)(PTR_DAT_000af458 + -0x68) = 1" (pointer_expression "*(undefined4 *)(PTR_DAT_000af458 + -0x68)" * (cast_expression "(undefined4 *)(PTR_DAT_000af458 + -0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000af458 + -0x68)" ( (binary_expression "PTR_DAT_000af458 + -0x68" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar2 = PTR_yyin_000af788;" (assignment_expression "puVar2 = PTR_yyin_000af788" identifier = identifier) ;) (if_statement "if (iVar14 == 0) {\n    iVar15 = 0;\n    sVar17 = 0;\n    iVar14 = 1;\n    *(undefined4 *)(puVar1 + -0x6c) = 1;\n    if (*(int *)puVar2 == 0) goto LAB_00027a1c;\nLAB_00027984:\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }\n  else {\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    if (*(int *)PTR_yyin_000af788 != 0) goto LAB_00027984;\nLAB_00027a1c:\n    *(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar15 = 0;\n    sVar17 = 0;\n    iVar14 = 1;\n    *(undefined4 *)(puVar1 + -0x6c) = 1;\n    if (*(int *)puVar2 == 0) goto LAB_00027a1c;\nLAB_00027984:\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "sVar17 = 0;" (assignment_expression "sVar17 = 0" identifier = number_literal) ;) (expression_statement "iVar14 = 1;" (assignment_expression "iVar14 = 1" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(puVar1 + -0x6c) = 1;" (assignment_expression "*(undefined4 *)(puVar1 + -0x6c) = 1" (pointer_expression "*(undefined4 *)(puVar1 + -0x6c)" * (cast_expression "(undefined4 *)(puVar1 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x6c)" ( (binary_expression "puVar1 + -0x6c" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(int *)puVar2 == 0) goto LAB_00027a1c;" if (parenthesized_expression "(*(int *)puVar2 == 0)" ( (binary_expression "*(int *)puVar2 == 0" (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (goto_statement "goto LAB_00027a1c;" goto statement_identifier ;)) (labeled_statement "LAB_00027984:\n    iVar12 = *(int *)PTR_yyout_000af798;" statement_identifier : (expression_statement "iVar12 = *(int *)PTR_yyout_000af798;" (assignment_expression "iVar12 = *(int *)PTR_yyout_000af798" identifier = (pointer_expression "*(int *)PTR_yyout_000af798" * (cast_expression "(int *)PTR_yyout_000af798" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;)) }) (else_clause "else {\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    if (*(int *)PTR_yyin_000af788 != 0) goto LAB_00027984;\nLAB_00027a1c:\n    *(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }" else (compound_statement "{\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    if (*(int *)PTR_yyin_000af788 != 0) goto LAB_00027984;\nLAB_00027a1c:\n    *(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }" { (expression_statement "iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);" (assignment_expression "iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94)" identifier = (cast_expression "(int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94)" * (cast_expression "(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94)" ( (binary_expression "PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94" (binary_expression "PTR_s_hallenge__000af46c + iVar14 * 2" identifier + (binary_expression "iVar14 * 2" identifier * number_literal)) + number_literal) )))))) ;) (expression_statement "sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);" (assignment_expression "sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060)" identifier = (pointer_expression "*(short *)(puVar3 + iVar14 * 2 + -0x2060)" * (cast_expression "(short *)(puVar3 + iVar14 * 2 + -0x2060)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + iVar14 * 2 + -0x2060)" ( (binary_expression "puVar3 + iVar14 * 2 + -0x2060" (binary_expression "puVar3 + iVar14 * 2" identifier + (binary_expression "iVar14 * 2" identifier * number_literal)) + number_literal) ))))) ;) (if_statement "if (*(int *)PTR_yyin_000af788 != 0) goto LAB_00027984;" if (parenthesized_expression "(*(int *)PTR_yyin_000af788 != 0)" ( (binary_expression "*(int *)PTR_yyin_000af788 != 0" (pointer_expression "*(int *)PTR_yyin_000af788" * (cast_expression "(int *)PTR_yyin_000af788" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (goto_statement "goto LAB_00027984;" goto statement_identifier ;)) (labeled_statement "LAB_00027a1c:\n    *(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;" statement_identifier : (expression_statement "*(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;" (assignment_expression "*(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4" (pointer_expression "*(undefined4 *)puVar2" * (cast_expression "(undefined4 *)puVar2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)PTR_stdin_000afba4" * (cast_expression "(undefined4 *)PTR_stdin_000afba4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;)) (expression_statement "iVar12 = *(int *)PTR_yyout_000af798;" (assignment_expression "iVar12 = *(int *)PTR_yyout_000af798" identifier = (pointer_expression "*(int *)PTR_yyout_000af798" * (cast_expression "(int *)PTR_yyout_000af798" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }))) (if_statement "if (iVar12 == 0) {\n    *(undefined4 *)PTR_yyout_000af798 = *(undefined4 *)PTR_stdout_000afb6c;\n  }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n    *(undefined4 *)PTR_yyout_000af798 = *(undefined4 *)PTR_stdout_000afb6c;\n  }" { (expression_statement "*(undefined4 *)PTR_yyout_000af798 = *(undefined4 *)PTR_stdout_000afb6c;" (assignment_expression "*(undefined4 *)PTR_yyout_000af798 = *(undefined4 *)PTR_stdout_000afb6c" (pointer_expression "*(undefined4 *)PTR_yyout_000af798" * (cast_expression "(undefined4 *)PTR_yyout_000af798" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)PTR_stdout_000afb6c" * (cast_expression "(undefined4 *)PTR_stdout_000afb6c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) })) (expression_statement "puVar1 = PTR_DAT_000af458;" (assignment_expression "puVar1 = PTR_DAT_000af458" identifier = identifier) ;) (if_statement "if ((*(int *)(PTR_DAT_000af458 + -0x58) == 0) ||\n     (puVar6 = *(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4),\n     puVar6 == (undefined4 *)0x0)) {\n    FUN_000270f0();\n    iVar12 = *(int *)(puVar1 + -0x50);\n    iVar20 = *(int *)(puVar1 + -0x58);\n    puVar6 = (undefined4 *)yy_create_buffer(*(undefined4 *)puVar2,0x4000);\n    *(undefined4 **)(iVar20 + iVar12 * 4) = puVar6;\n  }" if (parenthesized_expression "((*(int *)(PTR_DAT_000af458 + -0x58) == 0) ||\n     (puVar6 = *(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4),\n     puVar6 == (undefined4 *)0x0))" ( (binary_expression "(*(int *)(PTR_DAT_000af458 + -0x58) == 0) ||\n     (puVar6 = *(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4),\n     puVar6 == (undefined4 *)0x0)" (parenthesized_expression "(*(int *)(PTR_DAT_000af458 + -0x58) == 0)" ( (binary_expression "*(int *)(PTR_DAT_000af458 + -0x58) == 0" (pointer_expression "*(int *)(PTR_DAT_000af458 + -0x58)" * (cast_expression "(int *)(PTR_DAT_000af458 + -0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000af458 + -0x58)" ( (binary_expression "PTR_DAT_000af458 + -0x58" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(puVar6 = *(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4),\n     puVar6 == (undefined4 *)0x0)" ( (comma_expression "puVar6 = *(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4),\n     puVar6 == (undefined4 *)0x0" (assignment_expression "puVar6 = *(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4)" identifier = (pointer_expression "*(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4)" * (cast_expression "(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4)" ( (binary_expression "*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4" (pointer_expression "*(int *)(PTR_DAT_000af458 + -0x58)" * (cast_expression "(int *)(PTR_DAT_000af458 + -0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000af458 + -0x58)" ( (binary_expression "PTR_DAT_000af458 + -0x58" identifier + number_literal) )))) + (binary_expression "*(int *)(PTR_DAT_000af458 + -0x50) * 4" (pointer_expression "*(int *)(PTR_DAT_000af458 + -0x50)" * (cast_expression "(int *)(PTR_DAT_000af458 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000af458 + -0x50)" ( (binary_expression "PTR_DAT_000af458 + -0x50" identifier + number_literal) )))) * number_literal)) ))))) , (binary_expression "puVar6 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    FUN_000270f0();\n    iVar12 = *(int *)(puVar1 + -0x50);\n    iVar20 = *(int *)(puVar1 + -0x58);\n    puVar6 = (undefined4 *)yy_create_buffer(*(undefined4 *)puVar2,0x4000);\n    *(undefined4 **)(iVar20 + iVar12 * 4) = puVar6;\n  }" { (expression_statement "FUN_000270f0();" (call_expression "FUN_000270f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = *(int *)(puVar1 + -0x50);" (assignment_expression "iVar12 = *(int *)(puVar1 + -0x50)" identifier = (pointer_expression "*(int *)(puVar1 + -0x50)" * (cast_expression "(int *)(puVar1 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x50)" ( (binary_expression "puVar1 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = *(int *)(puVar1 + -0x58);" (assignment_expression "iVar20 = *(int *)(puVar1 + -0x58)" identifier = (pointer_expression "*(int *)(puVar1 + -0x58)" * (cast_expression "(int *)(puVar1 + -0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x58)" ( (binary_expression "puVar1 + -0x58" identifier + number_literal) ))))) ;) (expression_statement "puVar6 = (undefined4 *)yy_create_buffer(*(undefined4 *)puVar2,0x4000);" (assignment_expression "puVar6 = (undefined4 *)yy_create_buffer(*(undefined4 *)puVar2,0x4000)" identifier = (cast_expression "(undefined4 *)yy_create_buffer(*(undefined4 *)puVar2,0x4000)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "yy_create_buffer(*(undefined4 *)puVar2,0x4000)" identifier (argument_list "(*(undefined4 *)puVar2,0x4000)" ( (pointer_expression "*(undefined4 *)puVar2" * (cast_expression "(undefined4 *)puVar2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal ))))) ;) (expression_statement "*(undefined4 **)(iVar20 + iVar12 * 4) = puVar6;" (assignment_expression "*(undefined4 **)(iVar20 + iVar12 * 4) = puVar6" (pointer_expression "*(undefined4 **)(iVar20 + iVar12 * 4)" * (cast_expression "(undefined4 **)(iVar20 + iVar12 * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + iVar12 * 4)" ( (binary_expression "iVar20 + iVar12 * 4" identifier + (binary_expression "iVar12 * 4" identifier * number_literal)) )))) = identifier) ;) })) (expression_statement "puVar21 = (undefined4 *)PTR_yytext_000af784;" (assignment_expression "puVar21 = (undefined4 *)PTR_yytext_000af784" identifier = (cast_expression "(undefined4 *)PTR_yytext_000af784" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar1 = PTR_DAT_000af458;" (assignment_expression "puVar1 = PTR_DAT_000af458" identifier = identifier) ;) (expression_statement "pbVar18 = (byte *)puVar6[2];" (assignment_expression "pbVar18 = (byte *)puVar6[2]" identifier = (cast_expression "(byte *)puVar6[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar9 = *puVar6;" (assignment_expression "uVar9 = *puVar6" identifier = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "local_68 = PTR_DAT_000af458;" (assignment_expression "local_68 = PTR_DAT_000af458" identifier = identifier) ;) (expression_statement "uVar7 = puVar6[4];" (assignment_expression "uVar7 = puVar6[4]" identifier = (subscript_expression "puVar6[4]" identifier [ number_literal ])) ;) (expression_statement "*(byte **)PTR_yytext_000af784 = pbVar18;" (assignment_expression "*(byte **)PTR_yytext_000af784 = pbVar18" (pointer_expression "*(byte **)PTR_yytext_000af784" * (cast_expression "(byte **)PTR_yytext_000af784" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)puVar2 = uVar9;" (assignment_expression "*(undefined4 *)puVar2 = uVar9" (pointer_expression "*(undefined4 *)puVar2" * (cast_expression "(undefined4 *)puVar2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)(puVar1 + -0x60) = uVar7;" (assignment_expression "*(undefined4 *)(puVar1 + -0x60) = uVar7" (pointer_expression "*(undefined4 *)(puVar1 + -0x60)" * (cast_expression "(undefined4 *)(puVar1 + -0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x60)" ( (binary_expression "puVar1 + -0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar1 + -100) = pbVar18;" (assignment_expression "*(byte **)(puVar1 + -100) = pbVar18" (pointer_expression "*(byte **)(puVar1 + -100)" * (cast_expression "(byte **)(puVar1 + -100)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + -100)" ( (binary_expression "puVar1 + -100" identifier + number_literal) )))) = identifier) ;) (expression_statement "bVar10 = *pbVar18;" (assignment_expression "bVar10 = *pbVar18" identifier = (pointer_expression "*pbVar18" * identifier)) ;) (expression_statement "puVar1[-0x5c] = bVar10;" (assignment_expression "puVar1[-0x5c] = bVar10" (subscript_expression "puVar1[-0x5c]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_00027758:\n  puVar5 = PTR_yyleng_000af794;" statement_identifier : (expression_statement "puVar5 = PTR_yyleng_000af794;" (assignment_expression "puVar5 = PTR_yyleng_000af794" identifier = identifier) ;)) (expression_statement "puVar4 = PTR_s_hallenge__000af46c;" (assignment_expression "puVar4 = PTR_s_hallenge__000af46c" identifier = identifier) ;) (expression_statement "puVar2 = PTR_LAB_000af468;" (assignment_expression "puVar2 = PTR_LAB_000af468" identifier = identifier) ;) (expression_statement "puVar1 = PTR_DAT_000af458;" (assignment_expression "puVar1 = PTR_DAT_000af458" identifier = identifier) ;) (expression_statement "*pbVar18 = bVar10;" (assignment_expression "*pbVar18 = bVar10" (pointer_expression "*pbVar18" * identifier) = identifier) ;) (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" identifier = false) ;) (expression_statement "iVar12 = *(int *)(puVar1 + -0x70);" (assignment_expression "iVar12 = *(int *)(puVar1 + -0x70)" identifier = (pointer_expression "*(int *)(puVar1 + -0x70)" * (cast_expression "(int *)(puVar1 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x70)" ( (binary_expression "puVar1 + -0x70" identifier + number_literal) ))))) ;) (expression_statement "pbVar13 = *(byte **)(puVar1 + -0x74);" (assignment_expression "pbVar13 = *(byte **)(puVar1 + -0x74)" identifier = (pointer_expression "*(byte **)(puVar1 + -0x74)" * (cast_expression "(byte **)(puVar1 + -0x74)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + -0x74)" ( (binary_expression "puVar1 + -0x74" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = iVar12;" (assignment_expression "iVar20 = iVar12" identifier = identifier) ;) (expression_statement "pbVar16 = pbVar13;" (assignment_expression "pbVar16 = pbVar13" identifier = identifier) ;) (expression_statement "pbVar19 = pbVar18;" (assignment_expression "pbVar19 = pbVar18" identifier = identifier) ;) (while_statement "while( true ) {\n    uVar8 = (uint)(byte)puVar4[bVar10 - 0x2160];\n    if (sVar17 != 0) {\n      bVar11 = true;\n      iVar20 = iVar14;\n      pbVar16 = pbVar19;\n    }\n    while( true ) {\n      iVar15 = (iVar15 + uVar8) * 2;\n      if (*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14) break;\n      iVar14 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x3378);\n      if (0x44e < iVar14) {\n        uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];\n      }\n      iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n    }\n    iVar14 = (int)*(short *)(puVar4 + iVar15 + -0x6ba4);\n    pbVar19 = pbVar19 + 1;\n    if (iVar14 == 0x44e) break;\n    bVar10 = *pbVar19;\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    uVar8 = (uint)(byte)puVar4[bVar10 - 0x2160];\n    if (sVar17 != 0) {\n      bVar11 = true;\n      iVar20 = iVar14;\n      pbVar16 = pbVar19;\n    }\n    while( true ) {\n      iVar15 = (iVar15 + uVar8) * 2;\n      if (*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14) break;\n      iVar14 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x3378);\n      if (0x44e < iVar14) {\n        uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];\n      }\n      iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n    }\n    iVar14 = (int)*(short *)(puVar4 + iVar15 + -0x6ba4);\n    pbVar19 = pbVar19 + 1;\n    if (iVar14 == 0x44e) break;\n    bVar10 = *pbVar19;\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n  }" { (expression_statement "uVar8 = (uint)(byte)puVar4[bVar10 - 0x2160];" (assignment_expression "uVar8 = (uint)(byte)puVar4[bVar10 - 0x2160]" identifier = (cast_expression "(uint)(byte)puVar4[bVar10 - 0x2160]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar4[bVar10 - 0x2160]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar4[bVar10 - 0x2160]" identifier [ (binary_expression "bVar10 - 0x2160" identifier - number_literal) ])))) ;) (if_statement "if (sVar17 != 0) {\n      bVar11 = true;\n      iVar20 = iVar14;\n      pbVar16 = pbVar19;\n    }" if (parenthesized_expression "(sVar17 != 0)" ( (binary_expression "sVar17 != 0" identifier != number_literal) )) (compound_statement "{\n      bVar11 = true;\n      iVar20 = iVar14;\n      pbVar16 = pbVar19;\n    }" { (expression_statement "bVar11 = true;" (assignment_expression "bVar11 = true" identifier = true) ;) (expression_statement "iVar20 = iVar14;" (assignment_expression "iVar20 = iVar14" identifier = identifier) ;) (expression_statement "pbVar16 = pbVar19;" (assignment_expression "pbVar16 = pbVar19" identifier = identifier) ;) })) (while_statement "while( true ) {\n      iVar15 = (iVar15 + uVar8) * 2;\n      if (*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14) break;\n      iVar14 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x3378);\n      if (0x44e < iVar14) {\n        uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];\n      }\n      iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      iVar15 = (iVar15 + uVar8) * 2;\n      if (*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14) break;\n      iVar14 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x3378);\n      if (0x44e < iVar14) {\n        uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];\n      }\n      iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n    }" { (expression_statement "iVar15 = (iVar15 + uVar8) * 2;" (assignment_expression "iVar15 = (iVar15 + uVar8) * 2" identifier = (binary_expression "(iVar15 + uVar8) * 2" (parenthesized_expression "(iVar15 + uVar8)" ( (binary_expression "iVar15 + uVar8" identifier + identifier) )) * number_literal)) ;) (if_statement "if (*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14) break;" if (parenthesized_expression "(*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14)" ( (binary_expression "*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14" (pointer_expression "*(short *)(puVar2 + iVar15 + 0x5c30)" * (cast_expression "(short *)(puVar2 + iVar15 + 0x5c30)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + iVar15 + 0x5c30)" ( (binary_expression "puVar2 + iVar15 + 0x5c30" (binary_expression "puVar2 + iVar15" identifier + identifier) + number_literal) )))) == identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar14 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x3378);" (assignment_expression "iVar14 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x3378)" identifier = (cast_expression "(int)*(short *)(puVar4 + iVar14 * 2 + -0x3378)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(puVar4 + iVar14 * 2 + -0x3378)" * (cast_expression "(short *)(puVar4 + iVar14 * 2 + -0x3378)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + iVar14 * 2 + -0x3378)" ( (binary_expression "puVar4 + iVar14 * 2 + -0x3378" (binary_expression "puVar4 + iVar14 * 2" identifier + (binary_expression "iVar14 * 2" identifier * number_literal)) + number_literal) )))))) ;) (if_statement "if (0x44e < iVar14) {\n        uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];\n      }" if (parenthesized_expression "(0x44e < iVar14)" ( (binary_expression "0x44e < iVar14" number_literal < identifier) )) (compound_statement "{\n        uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];\n      }" { (expression_statement "uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];" (assignment_expression "uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0]" identifier = (cast_expression "(uint)(byte)puVar4[uVar8 - 0x21b0]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar4[uVar8 - 0x21b0]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar4[uVar8 - 0x21b0]" identifier [ (binary_expression "uVar8 - 0x21b0" identifier - number_literal) ])))) ;) })) (expression_statement "iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);" (assignment_expression "iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94)" identifier = (cast_expression "(int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(puVar4 + iVar14 * 2 + -0x2a94)" * (cast_expression "(short *)(puVar4 + iVar14 * 2 + -0x2a94)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + iVar14 * 2 + -0x2a94)" ( (binary_expression "puVar4 + iVar14 * 2 + -0x2a94" (binary_expression "puVar4 + iVar14 * 2" identifier + (binary_expression "iVar14 * 2" identifier * number_literal)) + number_literal) )))))) ;) })) (expression_statement "iVar14 = (int)*(short *)(puVar4 + iVar15 + -0x6ba4);" (assignment_expression "iVar14 = (int)*(short *)(puVar4 + iVar15 + -0x6ba4)" identifier = (cast_expression "(int)*(short *)(puVar4 + iVar15 + -0x6ba4)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(puVar4 + iVar15 + -0x6ba4)" * (cast_expression "(short *)(puVar4 + iVar15 + -0x6ba4)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + iVar15 + -0x6ba4)" ( (binary_expression "puVar4 + iVar15 + -0x6ba4" (binary_expression "puVar4 + iVar15" identifier + identifier) + number_literal) )))))) ;) (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (if_statement "if (iVar14 == 0x44e) break;" if (parenthesized_expression "(iVar14 == 0x44e)" ( (binary_expression "iVar14 == 0x44e" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "bVar10 = *pbVar19;" (assignment_expression "bVar10 = *pbVar19" identifier = (pointer_expression "*pbVar19" * identifier)) ;) (expression_statement "sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);" (assignment_expression "sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060)" identifier = (pointer_expression "*(short *)(puVar3 + iVar14 * 2 + -0x2060)" * (cast_expression "(short *)(puVar3 + iVar14 * 2 + -0x2060)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + iVar14 * 2 + -0x2060)" ( (binary_expression "puVar3 + iVar14 * 2 + -0x2060" (binary_expression "puVar3 + iVar14 * 2" identifier + (binary_expression "iVar14 * 2" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);" (assignment_expression "iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94)" identifier = (cast_expression "(int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(puVar4 + iVar14 * 2 + -0x2a94)" * (cast_expression "(short *)(puVar4 + iVar14 * 2 + -0x2a94)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + iVar14 * 2 + -0x2a94)" ( (binary_expression "puVar4 + iVar14 * 2 + -0x2a94" (binary_expression "puVar4 + iVar14 * 2" identifier + (binary_expression "iVar14 * 2" identifier * number_literal)) + number_literal) )))))) ;) })) (if_statement "if (bVar11) {\n    *(byte **)(puVar1 + -0x74) = pbVar16;\n    *(int *)(puVar1 + -0x70) = iVar20;\n    iVar12 = iVar20;\n    pbVar13 = pbVar16;\n  }" if (parenthesized_expression "(bVar11)" ( identifier )) (compound_statement "{\n    *(byte **)(puVar1 + -0x74) = pbVar16;\n    *(int *)(puVar1 + -0x70) = iVar20;\n    iVar12 = iVar20;\n    pbVar13 = pbVar16;\n  }" { (expression_statement "*(byte **)(puVar1 + -0x74) = pbVar16;" (assignment_expression "*(byte **)(puVar1 + -0x74) = pbVar16" (pointer_expression "*(byte **)(puVar1 + -0x74)" * (cast_expression "(byte **)(puVar1 + -0x74)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + -0x74)" ( (binary_expression "puVar1 + -0x74" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar1 + -0x70) = iVar20;" (assignment_expression "*(int *)(puVar1 + -0x70) = iVar20" (pointer_expression "*(int *)(puVar1 + -0x70)" * (cast_expression "(int *)(puVar1 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x70)" ( (binary_expression "puVar1 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar12 = iVar20;" (assignment_expression "iVar12 = iVar20" identifier = identifier) ;) (expression_statement "pbVar13 = pbVar16;" (assignment_expression "pbVar13 = pbVar16" identifier = identifier) ;) })) (expression_statement "puVar1 = PTR_LAB_000af468;" (assignment_expression "puVar1 = PTR_LAB_000af468" identifier = identifier) ;) (expression_statement "*(byte **)(local_68 + -100) = pbVar13;" (assignment_expression "*(byte **)(local_68 + -100) = pbVar13" (pointer_expression "*(byte **)(local_68 + -100)" * (cast_expression "(byte **)(local_68 + -100)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_68 + -100)" ( (binary_expression "local_68 + -100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*puVar21 = pbVar18;" (assignment_expression "*puVar21 = pbVar18" (pointer_expression "*puVar21" * identifier) = identifier) ;) (expression_statement "sVar17 = *(short *)(puVar3 + iVar12 * 2 + -0x2060);" (assignment_expression "sVar17 = *(short *)(puVar3 + iVar12 * 2 + -0x2060)" identifier = (pointer_expression "*(short *)(puVar3 + iVar12 * 2 + -0x2060)" * (cast_expression "(short *)(puVar3 + iVar12 * 2 + -0x2060)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + iVar12 * 2 + -0x2060)" ( (binary_expression "puVar3 + iVar12 * 2 + -0x2060" (binary_expression "puVar3 + iVar12 * 2" identifier + (binary_expression "iVar12 * 2" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "*(int *)puVar5 = (int)pbVar13 - (int)pbVar18;" (assignment_expression "*(int *)puVar5 = (int)pbVar13 - (int)pbVar18" (pointer_expression "*(int *)puVar5" * (cast_expression "(int *)puVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(int)pbVar13 - (int)pbVar18" (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "bVar10 = *pbVar13;" (assignment_expression "bVar10 = *pbVar13" identifier = (pointer_expression "*pbVar13" * identifier)) ;) (expression_statement "*pbVar13 = 0;" (assignment_expression "*pbVar13 = 0" (pointer_expression "*pbVar13" * identifier) = number_literal) ;) (expression_statement "local_68[-0x5c] = bVar10;" (assignment_expression "local_68[-0x5c] = bVar10" (subscript_expression "local_68[-0x5c]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((uint)(int)sVar17 < 0x2c) {\n                    \n                    \n    (*(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80)))();\n    return;\n  }" if (parenthesized_expression "((uint)(int)sVar17 < 0x2c)" ( (binary_expression "(uint)(int)sVar17 < 0x2c" (cast_expression "(uint)(int)sVar17" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(int)sVar17" ( (type_descriptor "int" primitive_type) ) identifier)) < number_literal) )) (compound_statement "{\n                    \n                    \n    (*(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80)))();\n    return;\n  }" { (expression_statement "(*(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80)))();" (call_expression "(*(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80))" * (cast_expression "(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80))" ( (binary_expression "&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(puVar1 + sVar17 * 4 + 0x5b80)" * (cast_expression "(int *)(puVar1 + sVar17 * 4 + 0x5b80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + sVar17 * 4 + 0x5b80)" ( (binary_expression "puVar1 + sVar17 * 4 + 0x5b80" (binary_expression "puVar1 + sVar17 * 4" identifier + (binary_expression "sVar17 * 4" identifier * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_000270a8(PTR_LAB_000af468 + 0x5ad4);" (call_expression "FUN_000270a8(PTR_LAB_000af468 + 0x5ad4)" identifier (argument_list "(PTR_LAB_000af468 + 0x5ad4)" ( (binary_expression "PTR_LAB_000af468 + 0x5ad4" identifier + 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 TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier short) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression IDENT - LIT) ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression IDENT - LIT) ])))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))))) ;) })) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) < LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) ))))) )))) )) (argument_list ( ))) ;) (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) })))
(function_definition "void yylex(void)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  byte bVar10;\n  uint uVar8;\n  undefined4 uVar9;\n  bool bVar11;\n  int iVar12;\n  byte *pbVar13;\n  int iVar14;\n  int iVar15;\n  byte *pbVar16;\n  short sVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  int iVar20;\n  undefined4 *puVar21;\n  undefined *local_68;\n  \n  puVar3 = PTR_s_hallenge__000af46c;\n  puVar1 = PTR_DAT_000af458;\n  iVar14 = *(int *)(PTR_DAT_000af458 + -0x6c);\n  if (*(int *)(PTR_DAT_000af458 + -0x68) != 0) {\n    local_68 = PTR_DAT_000af458;\n    bVar10 = PTR_DAT_000af458[-0x5c];\n    pbVar18 = *(byte **)(PTR_DAT_000af458 + -100);\n    sVar17 = *(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060);\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    puVar21 = (undefined4 *)PTR_yytext_000af784;\n    goto LAB_00027758;\n  }\n  *(undefined4 *)(PTR_DAT_000af458 + -0x68) = 1;\n  puVar2 = PTR_yyin_000af788;\n  if (iVar14 == 0) {\n    iVar15 = 0;\n    sVar17 = 0;\n    iVar14 = 1;\n    *(undefined4 *)(puVar1 + -0x6c) = 1;\n    if (*(int *)puVar2 == 0) goto LAB_00027a1c;\nLAB_00027984:\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }\n  else {\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    if (*(int *)PTR_yyin_000af788 != 0) goto LAB_00027984;\nLAB_00027a1c:\n    *(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }\n  if (iVar12 == 0) {\n    *(undefined4 *)PTR_yyout_000af798 = *(undefined4 *)PTR_stdout_000afb6c;\n  }\n  puVar1 = PTR_DAT_000af458;\n  if ((*(int *)(PTR_DAT_000af458 + -0x58) == 0) ||\n     (puVar6 = *(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4),\n     puVar6 == (undefined4 *)0x0)) {\n    FUN_000270f0();\n    iVar12 = *(int *)(puVar1 + -0x50);\n    iVar20 = *(int *)(puVar1 + -0x58);\n    puVar6 = (undefined4 *)yy_create_buffer(*(undefined4 *)puVar2,0x4000);\n    *(undefined4 **)(iVar20 + iVar12 * 4) = puVar6;\n  }\n  puVar21 = (undefined4 *)PTR_yytext_000af784;\n  puVar1 = PTR_DAT_000af458;\n  pbVar18 = (byte *)puVar6[2];\n  uVar9 = *puVar6;\n  local_68 = PTR_DAT_000af458;\n  uVar7 = puVar6[4];\n  *(byte **)PTR_yytext_000af784 = pbVar18;\n  *(undefined4 *)puVar2 = uVar9;\n  *(undefined4 *)(puVar1 + -0x60) = uVar7;\n  *(byte **)(puVar1 + -100) = pbVar18;\n  bVar10 = *pbVar18;\n  puVar1[-0x5c] = bVar10;\nLAB_00027758:\n  puVar5 = PTR_yyleng_000af794;\n  puVar4 = PTR_s_hallenge__000af46c;\n  puVar2 = PTR_LAB_000af468;\n  puVar1 = PTR_DAT_000af458;\n  *pbVar18 = bVar10;\n  bVar11 = false;\n  iVar12 = *(int *)(puVar1 + -0x70);\n  pbVar13 = *(byte **)(puVar1 + -0x74);\n  iVar20 = iVar12;\n  pbVar16 = pbVar13;\n  pbVar19 = pbVar18;\n  while( true ) {\n    uVar8 = (uint)(byte)puVar4[bVar10 - 0x2160];\n    if (sVar17 != 0) {\n      bVar11 = true;\n      iVar20 = iVar14;\n      pbVar16 = pbVar19;\n    }\n    while( true ) {\n      iVar15 = (iVar15 + uVar8) * 2;\n      if (*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14) break;\n      iVar14 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x3378);\n      if (0x44e < iVar14) {\n        uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];\n      }\n      iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n    }\n    iVar14 = (int)*(short *)(puVar4 + iVar15 + -0x6ba4);\n    pbVar19 = pbVar19 + 1;\n    if (iVar14 == 0x44e) break;\n    bVar10 = *pbVar19;\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n  }\n  if (bVar11) {\n    *(byte **)(puVar1 + -0x74) = pbVar16;\n    *(int *)(puVar1 + -0x70) = iVar20;\n    iVar12 = iVar20;\n    pbVar13 = pbVar16;\n  }\n  puVar1 = PTR_LAB_000af468;\n  *(byte **)(local_68 + -100) = pbVar13;\n  *puVar21 = pbVar18;\n  sVar17 = *(short *)(puVar3 + iVar12 * 2 + -0x2060);\n  *(int *)puVar5 = (int)pbVar13 - (int)pbVar18;\n  bVar10 = *pbVar13;\n  *pbVar13 = 0;\n  local_68[-0x5c] = bVar10;\n  if ((uint)(int)sVar17 < 0x2c) {\n                    \n                    \n    (*(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80)))();\n    return;\n  }\n                    \n  FUN_000270a8(PTR_LAB_000af468 + 0x5ad4);\n}" (primitive_type "void") (function_declarator "yylex(void)" (identifier "yylex") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  byte bVar10;\n  uint uVar8;\n  undefined4 uVar9;\n  bool bVar11;\n  int iVar12;\n  byte *pbVar13;\n  int iVar14;\n  int iVar15;\n  byte *pbVar16;\n  short sVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  int iVar20;\n  undefined4 *puVar21;\n  undefined *local_68;\n  \n  puVar3 = PTR_s_hallenge__000af46c;\n  puVar1 = PTR_DAT_000af458;\n  iVar14 = *(int *)(PTR_DAT_000af458 + -0x6c);\n  if (*(int *)(PTR_DAT_000af458 + -0x68) != 0) {\n    local_68 = PTR_DAT_000af458;\n    bVar10 = PTR_DAT_000af458[-0x5c];\n    pbVar18 = *(byte **)(PTR_DAT_000af458 + -100);\n    sVar17 = *(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060);\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    puVar21 = (undefined4 *)PTR_yytext_000af784;\n    goto LAB_00027758;\n  }\n  *(undefined4 *)(PTR_DAT_000af458 + -0x68) = 1;\n  puVar2 = PTR_yyin_000af788;\n  if (iVar14 == 0) {\n    iVar15 = 0;\n    sVar17 = 0;\n    iVar14 = 1;\n    *(undefined4 *)(puVar1 + -0x6c) = 1;\n    if (*(int *)puVar2 == 0) goto LAB_00027a1c;\nLAB_00027984:\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }\n  else {\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    if (*(int *)PTR_yyin_000af788 != 0) goto LAB_00027984;\nLAB_00027a1c:\n    *(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }\n  if (iVar12 == 0) {\n    *(undefined4 *)PTR_yyout_000af798 = *(undefined4 *)PTR_stdout_000afb6c;\n  }\n  puVar1 = PTR_DAT_000af458;\n  if ((*(int *)(PTR_DAT_000af458 + -0x58) == 0) ||\n     (puVar6 = *(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4),\n     puVar6 == (undefined4 *)0x0)) {\n    FUN_000270f0();\n    iVar12 = *(int *)(puVar1 + -0x50);\n    iVar20 = *(int *)(puVar1 + -0x58);\n    puVar6 = (undefined4 *)yy_create_buffer(*(undefined4 *)puVar2,0x4000);\n    *(undefined4 **)(iVar20 + iVar12 * 4) = puVar6;\n  }\n  puVar21 = (undefined4 *)PTR_yytext_000af784;\n  puVar1 = PTR_DAT_000af458;\n  pbVar18 = (byte *)puVar6[2];\n  uVar9 = *puVar6;\n  local_68 = PTR_DAT_000af458;\n  uVar7 = puVar6[4];\n  *(byte **)PTR_yytext_000af784 = pbVar18;\n  *(undefined4 *)puVar2 = uVar9;\n  *(undefined4 *)(puVar1 + -0x60) = uVar7;\n  *(byte **)(puVar1 + -100) = pbVar18;\n  bVar10 = *pbVar18;\n  puVar1[-0x5c] = bVar10;\nLAB_00027758:\n  puVar5 = PTR_yyleng_000af794;\n  puVar4 = PTR_s_hallenge__000af46c;\n  puVar2 = PTR_LAB_000af468;\n  puVar1 = PTR_DAT_000af458;\n  *pbVar18 = bVar10;\n  bVar11 = false;\n  iVar12 = *(int *)(puVar1 + -0x70);\n  pbVar13 = *(byte **)(puVar1 + -0x74);\n  iVar20 = iVar12;\n  pbVar16 = pbVar13;\n  pbVar19 = pbVar18;\n  while( true ) {\n    uVar8 = (uint)(byte)puVar4[bVar10 - 0x2160];\n    if (sVar17 != 0) {\n      bVar11 = true;\n      iVar20 = iVar14;\n      pbVar16 = pbVar19;\n    }\n    while( true ) {\n      iVar15 = (iVar15 + uVar8) * 2;\n      if (*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14) break;\n      iVar14 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x3378);\n      if (0x44e < iVar14) {\n        uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];\n      }\n      iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n    }\n    iVar14 = (int)*(short *)(puVar4 + iVar15 + -0x6ba4);\n    pbVar19 = pbVar19 + 1;\n    if (iVar14 == 0x44e) break;\n    bVar10 = *pbVar19;\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n  }\n  if (bVar11) {\n    *(byte **)(puVar1 + -0x74) = pbVar16;\n    *(int *)(puVar1 + -0x70) = iVar20;\n    iVar12 = iVar20;\n    pbVar13 = pbVar16;\n  }\n  puVar1 = PTR_LAB_000af468;\n  *(byte **)(local_68 + -100) = pbVar13;\n  *puVar21 = pbVar18;\n  sVar17 = *(short *)(puVar3 + iVar12 * 2 + -0x2060);\n  *(int *)puVar5 = (int)pbVar13 - (int)pbVar18;\n  bVar10 = *pbVar13;\n  *pbVar13 = 0;\n  local_68[-0x5c] = bVar10;\n  if ((uint)(int)sVar17 < 0x2c) {\n                    \n                    \n    (*(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80)))();\n    return;\n  }\n                    \n  FUN_000270a8(PTR_LAB_000af468 + 0x5ad4);\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "byte bVar10;" (type_identifier "byte") (identifier "bVar10") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "bool bVar11;" (primitive_type "bool") (identifier "bVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "byte *pbVar13;" (type_identifier "byte") (pointer_declarator "*pbVar13" (* "*") (identifier "pbVar13")) (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "byte *pbVar16;" (type_identifier "byte") (pointer_declarator "*pbVar16" (* "*") (identifier "pbVar16")) (; ";")) (declaration "short sVar17;" (sized_type_specifier "short" (short "short")) (identifier "sVar17") (; ";")) (declaration "byte *pbVar18;" (type_identifier "byte") (pointer_declarator "*pbVar18" (* "*") (identifier "pbVar18")) (; ";")) (declaration "byte *pbVar19;" (type_identifier "byte") (pointer_declarator "*pbVar19" (* "*") (identifier "pbVar19")) (; ";")) (declaration "int iVar20;" (primitive_type "int") (identifier "iVar20") (; ";")) (declaration "undefined4 *puVar21;" (type_identifier "undefined4") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "undefined *local_68;" (type_identifier "undefined") (pointer_declarator "*local_68" (* "*") (identifier "local_68")) (; ";")) (expression_statement "puVar3 = PTR_s_hallenge__000af46c;" (assignment_expression "puVar3 = PTR_s_hallenge__000af46c" (identifier "puVar3") (= "=") (identifier "PTR_s_hallenge__000af46c")) (; ";")) (expression_statement "puVar1 = PTR_DAT_000af458;" (assignment_expression "puVar1 = PTR_DAT_000af458" (identifier "puVar1") (= "=") (identifier "PTR_DAT_000af458")) (; ";")) (expression_statement "iVar14 = *(int *)(PTR_DAT_000af458 + -0x6c);" (assignment_expression "iVar14 = *(int *)(PTR_DAT_000af458 + -0x6c)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(PTR_DAT_000af458 + -0x6c)" (* "*") (cast_expression "(int *)(PTR_DAT_000af458 + -0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000af458 + -0x6c)" (( "(") (binary_expression "PTR_DAT_000af458 + -0x6c" (identifier "PTR_DAT_000af458") (+ "+") (number_literal "-0x6c")) () ")"))))) (; ";")) (if_statement "if (*(int *)(PTR_DAT_000af458 + -0x68) != 0) {\n    local_68 = PTR_DAT_000af458;\n    bVar10 = PTR_DAT_000af458[-0x5c];\n    pbVar18 = *(byte **)(PTR_DAT_000af458 + -100);\n    sVar17 = *(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060);\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    puVar21 = (undefined4 *)PTR_yytext_000af784;\n    goto LAB_00027758;\n  }" (if "if") (parenthesized_expression "(*(int *)(PTR_DAT_000af458 + -0x68) != 0)" (( "(") (binary_expression "*(int *)(PTR_DAT_000af458 + -0x68) != 0" (pointer_expression "*(int *)(PTR_DAT_000af458 + -0x68)" (* "*") (cast_expression "(int *)(PTR_DAT_000af458 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000af458 + -0x68)" (( "(") (binary_expression "PTR_DAT_000af458 + -0x68" (identifier "PTR_DAT_000af458") (+ "+") (number_literal "-0x68")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_68 = PTR_DAT_000af458;\n    bVar10 = PTR_DAT_000af458[-0x5c];\n    pbVar18 = *(byte **)(PTR_DAT_000af458 + -100);\n    sVar17 = *(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060);\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    puVar21 = (undefined4 *)PTR_yytext_000af784;\n    goto LAB_00027758;\n  }" ({ "{") (expression_statement "local_68 = PTR_DAT_000af458;" (assignment_expression "local_68 = PTR_DAT_000af458" (identifier "local_68") (= "=") (identifier "PTR_DAT_000af458")) (; ";")) (expression_statement "bVar10 = PTR_DAT_000af458[-0x5c];" (assignment_expression "bVar10 = PTR_DAT_000af458[-0x5c]" (identifier "bVar10") (= "=") (subscript_expression "PTR_DAT_000af458[-0x5c]" (identifier "PTR_DAT_000af458") ([ "[") (number_literal "-0x5c") (] "]"))) (; ";")) (expression_statement "pbVar18 = *(byte **)(PTR_DAT_000af458 + -100);" (assignment_expression "pbVar18 = *(byte **)(PTR_DAT_000af458 + -100)" (identifier "pbVar18") (= "=") (pointer_expression "*(byte **)(PTR_DAT_000af458 + -100)" (* "*") (cast_expression "(byte **)(PTR_DAT_000af458 + -100)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_000af458 + -100)" (( "(") (binary_expression "PTR_DAT_000af458 + -100" (identifier "PTR_DAT_000af458") (+ "+") (number_literal "-100")) () ")"))))) (; ";")) (expression_statement "sVar17 = *(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060);" (assignment_expression "sVar17 = *(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060)" (identifier "sVar17") (= "=") (pointer_expression "*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060)" (* "*") (cast_expression "(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060)" (( "(") (binary_expression "PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060" (binary_expression "PTR_s_hallenge__000af46c + iVar14 * 2" (identifier "PTR_s_hallenge__000af46c") (+ "+") (binary_expression "iVar14 * 2" (identifier "iVar14") (* "*") (number_literal "2"))) (+ "+") (number_literal "-0x2060")) () ")"))))) (; ";")) (expression_statement "iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);" (assignment_expression "iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94)" (identifier "iVar15") (= "=") (cast_expression "(int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94)" (* "*") (cast_expression "(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94)" (( "(") (binary_expression "PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94" (binary_expression "PTR_s_hallenge__000af46c + iVar14 * 2" (identifier "PTR_s_hallenge__000af46c") (+ "+") (binary_expression "iVar14 * 2" (identifier "iVar14") (* "*") (number_literal "2"))) (+ "+") (number_literal "-0x2a94")) () ")")))))) (; ";")) (expression_statement "puVar21 = (undefined4 *)PTR_yytext_000af784;" (assignment_expression "puVar21 = (undefined4 *)PTR_yytext_000af784" (identifier "puVar21") (= "=") (cast_expression "(undefined4 *)PTR_yytext_000af784" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_yytext_000af784"))) (; ";")) (goto_statement "goto LAB_00027758;" (goto "goto") (statement_identifier "LAB_00027758") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(PTR_DAT_000af458 + -0x68) = 1;" (assignment_expression "*(undefined4 *)(PTR_DAT_000af458 + -0x68) = 1" (pointer_expression "*(undefined4 *)(PTR_DAT_000af458 + -0x68)" (* "*") (cast_expression "(undefined4 *)(PTR_DAT_000af458 + -0x68)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000af458 + -0x68)" (( "(") (binary_expression "PTR_DAT_000af458 + -0x68" (identifier "PTR_DAT_000af458") (+ "+") (number_literal "-0x68")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar2 = PTR_yyin_000af788;" (assignment_expression "puVar2 = PTR_yyin_000af788" (identifier "puVar2") (= "=") (identifier "PTR_yyin_000af788")) (; ";")) (if_statement "if (iVar14 == 0) {\n    iVar15 = 0;\n    sVar17 = 0;\n    iVar14 = 1;\n    *(undefined4 *)(puVar1 + -0x6c) = 1;\n    if (*(int *)puVar2 == 0) goto LAB_00027a1c;\nLAB_00027984:\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }\n  else {\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    if (*(int *)PTR_yyin_000af788 != 0) goto LAB_00027984;\nLAB_00027a1c:\n    *(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }" (if "if") (parenthesized_expression "(iVar14 == 0)" (( "(") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar15 = 0;\n    sVar17 = 0;\n    iVar14 = 1;\n    *(undefined4 *)(puVar1 + -0x6c) = 1;\n    if (*(int *)puVar2 == 0) goto LAB_00027a1c;\nLAB_00027984:\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }" ({ "{") (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";")) (expression_statement "sVar17 = 0;" (assignment_expression "sVar17 = 0" (identifier "sVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar14 = 1;" (assignment_expression "iVar14 = 1" (identifier "iVar14") (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(puVar1 + -0x6c) = 1;" (assignment_expression "*(undefined4 *)(puVar1 + -0x6c) = 1" (pointer_expression "*(undefined4 *)(puVar1 + -0x6c)" (* "*") (cast_expression "(undefined4 *)(puVar1 + -0x6c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + -0x6c)" (( "(") (binary_expression "puVar1 + -0x6c" (identifier "puVar1") (+ "+") (number_literal "-0x6c")) () ")")))) (= "=") (number_literal "1")) (; ";")) (if_statement "if (*(int *)puVar2 == 0) goto LAB_00027a1c;" (if "if") (parenthesized_expression "(*(int *)puVar2 == 0)" (( "(") (binary_expression "*(int *)puVar2 == 0" (pointer_expression "*(int *)puVar2" (* "*") (cast_expression "(int *)puVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00027a1c;" (goto "goto") (statement_identifier "LAB_00027a1c") (; ";"))) (labeled_statement "LAB_00027984:\n    iVar12 = *(int *)PTR_yyout_000af798;" (statement_identifier "LAB_00027984") (: ":") (expression_statement "iVar12 = *(int *)PTR_yyout_000af798;" (assignment_expression "iVar12 = *(int *)PTR_yyout_000af798" (identifier "iVar12") (= "=") (pointer_expression "*(int *)PTR_yyout_000af798" (* "*") (cast_expression "(int *)PTR_yyout_000af798" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_yyout_000af798")))) (; ";"))) (} "}")) (else_clause "else {\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    if (*(int *)PTR_yyin_000af788 != 0) goto LAB_00027984;\nLAB_00027a1c:\n    *(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }" (else "else") (compound_statement "{\n    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    if (*(int *)PTR_yyin_000af788 != 0) goto LAB_00027984;\nLAB_00027a1c:\n    *(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;\n    iVar12 = *(int *)PTR_yyout_000af798;\n  }" ({ "{") (expression_statement "iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);" (assignment_expression "iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94)" (identifier "iVar15") (= "=") (cast_expression "(int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94)" (* "*") (cast_expression "(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94)" (( "(") (binary_expression "PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94" (binary_expression "PTR_s_hallenge__000af46c + iVar14 * 2" (identifier "PTR_s_hallenge__000af46c") (+ "+") (binary_expression "iVar14 * 2" (identifier "iVar14") (* "*") (number_literal "2"))) (+ "+") (number_literal "-0x2a94")) () ")")))))) (; ";")) (expression_statement "sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);" (assignment_expression "sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060)" (identifier "sVar17") (= "=") (pointer_expression "*(short *)(puVar3 + iVar14 * 2 + -0x2060)" (* "*") (cast_expression "(short *)(puVar3 + iVar14 * 2 + -0x2060)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + iVar14 * 2 + -0x2060)" (( "(") (binary_expression "puVar3 + iVar14 * 2 + -0x2060" (binary_expression "puVar3 + iVar14 * 2" (identifier "puVar3") (+ "+") (binary_expression "iVar14 * 2" (identifier "iVar14") (* "*") (number_literal "2"))) (+ "+") (number_literal "-0x2060")) () ")"))))) (; ";")) (if_statement "if (*(int *)PTR_yyin_000af788 != 0) goto LAB_00027984;" (if "if") (parenthesized_expression "(*(int *)PTR_yyin_000af788 != 0)" (( "(") (binary_expression "*(int *)PTR_yyin_000af788 != 0" (pointer_expression "*(int *)PTR_yyin_000af788" (* "*") (cast_expression "(int *)PTR_yyin_000af788" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_yyin_000af788"))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00027984;" (goto "goto") (statement_identifier "LAB_00027984") (; ";"))) (labeled_statement "LAB_00027a1c:\n    *(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;" (statement_identifier "LAB_00027a1c") (: ":") (expression_statement "*(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;" (assignment_expression "*(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4" (pointer_expression "*(undefined4 *)puVar2" (* "*") (cast_expression "(undefined4 *)puVar2" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) (= "=") (pointer_expression "*(undefined4 *)PTR_stdin_000afba4" (* "*") (cast_expression "(undefined4 *)PTR_stdin_000afba4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stdin_000afba4")))) (; ";"))) (expression_statement "iVar12 = *(int *)PTR_yyout_000af798;" (assignment_expression "iVar12 = *(int *)PTR_yyout_000af798" (identifier "iVar12") (= "=") (pointer_expression "*(int *)PTR_yyout_000af798" (* "*") (cast_expression "(int *)PTR_yyout_000af798" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_yyout_000af798")))) (; ";")) (} "}")))) (if_statement "if (iVar12 == 0) {\n    *(undefined4 *)PTR_yyout_000af798 = *(undefined4 *)PTR_stdout_000afb6c;\n  }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *(undefined4 *)PTR_yyout_000af798 = *(undefined4 *)PTR_stdout_000afb6c;\n  }" ({ "{") (expression_statement "*(undefined4 *)PTR_yyout_000af798 = *(undefined4 *)PTR_stdout_000afb6c;" (assignment_expression "*(undefined4 *)PTR_yyout_000af798 = *(undefined4 *)PTR_stdout_000afb6c" (pointer_expression "*(undefined4 *)PTR_yyout_000af798" (* "*") (cast_expression "(undefined4 *)PTR_yyout_000af798" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_yyout_000af798"))) (= "=") (pointer_expression "*(undefined4 *)PTR_stdout_000afb6c" (* "*") (cast_expression "(undefined4 *)PTR_stdout_000afb6c" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stdout_000afb6c")))) (; ";")) (} "}"))) (expression_statement "puVar1 = PTR_DAT_000af458;" (assignment_expression "puVar1 = PTR_DAT_000af458" (identifier "puVar1") (= "=") (identifier "PTR_DAT_000af458")) (; ";")) (if_statement "if ((*(int *)(PTR_DAT_000af458 + -0x58) == 0) ||\n     (puVar6 = *(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4),\n     puVar6 == (undefined4 *)0x0)) {\n    FUN_000270f0();\n    iVar12 = *(int *)(puVar1 + -0x50);\n    iVar20 = *(int *)(puVar1 + -0x58);\n    puVar6 = (undefined4 *)yy_create_buffer(*(undefined4 *)puVar2,0x4000);\n    *(undefined4 **)(iVar20 + iVar12 * 4) = puVar6;\n  }" (if "if") (parenthesized_expression "((*(int *)(PTR_DAT_000af458 + -0x58) == 0) ||\n     (puVar6 = *(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4),\n     puVar6 == (undefined4 *)0x0))" (( "(") (binary_expression "(*(int *)(PTR_DAT_000af458 + -0x58) == 0) ||\n     (puVar6 = *(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4),\n     puVar6 == (undefined4 *)0x0)" (parenthesized_expression "(*(int *)(PTR_DAT_000af458 + -0x58) == 0)" (( "(") (binary_expression "*(int *)(PTR_DAT_000af458 + -0x58) == 0" (pointer_expression "*(int *)(PTR_DAT_000af458 + -0x58)" (* "*") (cast_expression "(int *)(PTR_DAT_000af458 + -0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000af458 + -0x58)" (( "(") (binary_expression "PTR_DAT_000af458 + -0x58" (identifier "PTR_DAT_000af458") (+ "+") (number_literal "-0x58")) () ")")))) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(puVar6 = *(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4),\n     puVar6 == (undefined4 *)0x0)" (( "(") (comma_expression "puVar6 = *(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4),\n     puVar6 == (undefined4 *)0x0" (assignment_expression "puVar6 = *(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4)" (identifier "puVar6") (= "=") (pointer_expression "*(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4)" (* "*") (cast_expression "(undefined4 **)\n                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4)" (( "(") (binary_expression "*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4" (pointer_expression "*(int *)(PTR_DAT_000af458 + -0x58)" (* "*") (cast_expression "(int *)(PTR_DAT_000af458 + -0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000af458 + -0x58)" (( "(") (binary_expression "PTR_DAT_000af458 + -0x58" (identifier "PTR_DAT_000af458") (+ "+") (number_literal "-0x58")) () ")")))) (+ "+") (binary_expression "*(int *)(PTR_DAT_000af458 + -0x50) * 4" (pointer_expression "*(int *)(PTR_DAT_000af458 + -0x50)" (* "*") (cast_expression "(int *)(PTR_DAT_000af458 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000af458 + -0x50)" (( "(") (binary_expression "PTR_DAT_000af458 + -0x50" (identifier "PTR_DAT_000af458") (+ "+") (number_literal "-0x50")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (, ",") (binary_expression "puVar6 == (undefined4 *)0x0" (identifier "puVar6") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n    FUN_000270f0();\n    iVar12 = *(int *)(puVar1 + -0x50);\n    iVar20 = *(int *)(puVar1 + -0x58);\n    puVar6 = (undefined4 *)yy_create_buffer(*(undefined4 *)puVar2,0x4000);\n    *(undefined4 **)(iVar20 + iVar12 * 4) = puVar6;\n  }" ({ "{") (expression_statement "FUN_000270f0();" (call_expression "FUN_000270f0()" (identifier "FUN_000270f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar12 = *(int *)(puVar1 + -0x50);" (assignment_expression "iVar12 = *(int *)(puVar1 + -0x50)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(puVar1 + -0x50)" (* "*") (cast_expression "(int *)(puVar1 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + -0x50)" (( "(") (binary_expression "puVar1 + -0x50" (identifier "puVar1") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (expression_statement "iVar20 = *(int *)(puVar1 + -0x58);" (assignment_expression "iVar20 = *(int *)(puVar1 + -0x58)" (identifier "iVar20") (= "=") (pointer_expression "*(int *)(puVar1 + -0x58)" (* "*") (cast_expression "(int *)(puVar1 + -0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + -0x58)" (( "(") (binary_expression "puVar1 + -0x58" (identifier "puVar1") (+ "+") (number_literal "-0x58")) () ")"))))) (; ";")) (expression_statement "puVar6 = (undefined4 *)yy_create_buffer(*(undefined4 *)puVar2,0x4000);" (assignment_expression "puVar6 = (undefined4 *)yy_create_buffer(*(undefined4 *)puVar2,0x4000)" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)yy_create_buffer(*(undefined4 *)puVar2,0x4000)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "yy_create_buffer(*(undefined4 *)puVar2,0x4000)" (identifier "yy_create_buffer") (argument_list "(*(undefined4 *)puVar2,0x4000)" (( "(") (pointer_expression "*(undefined4 *)puVar2" (* "*") (cast_expression "(undefined4 *)puVar2" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) (, ",") (number_literal "0x4000") () ")"))))) (; ";")) (expression_statement "*(undefined4 **)(iVar20 + iVar12 * 4) = puVar6;" (assignment_expression "*(undefined4 **)(iVar20 + iVar12 * 4) = puVar6" (pointer_expression "*(undefined4 **)(iVar20 + iVar12 * 4)" (* "*") (cast_expression "(undefined4 **)(iVar20 + iVar12 * 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar20 + iVar12 * 4)" (( "(") (binary_expression "iVar20 + iVar12 * 4" (identifier "iVar20") (+ "+") (binary_expression "iVar12 * 4" (identifier "iVar12") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "puVar6")) (; ";")) (} "}"))) (expression_statement "puVar21 = (undefined4 *)PTR_yytext_000af784;" (assignment_expression "puVar21 = (undefined4 *)PTR_yytext_000af784" (identifier "puVar21") (= "=") (cast_expression "(undefined4 *)PTR_yytext_000af784" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_yytext_000af784"))) (; ";")) (expression_statement "puVar1 = PTR_DAT_000af458;" (assignment_expression "puVar1 = PTR_DAT_000af458" (identifier "puVar1") (= "=") (identifier "PTR_DAT_000af458")) (; ";")) (expression_statement "pbVar18 = (byte *)puVar6[2];" (assignment_expression "pbVar18 = (byte *)puVar6[2]" (identifier "pbVar18") (= "=") (cast_expression "(byte *)puVar6[2]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "uVar9 = *puVar6;" (assignment_expression "uVar9 = *puVar6" (identifier "uVar9") (= "=") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (; ";")) (expression_statement "local_68 = PTR_DAT_000af458;" (assignment_expression "local_68 = PTR_DAT_000af458" (identifier "local_68") (= "=") (identifier "PTR_DAT_000af458")) (; ";")) (expression_statement "uVar7 = puVar6[4];" (assignment_expression "uVar7 = puVar6[4]" (identifier "uVar7") (= "=") (subscript_expression "puVar6[4]" (identifier "puVar6") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "*(byte **)PTR_yytext_000af784 = pbVar18;" (assignment_expression "*(byte **)PTR_yytext_000af784 = pbVar18" (pointer_expression "*(byte **)PTR_yytext_000af784" (* "*") (cast_expression "(byte **)PTR_yytext_000af784" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_yytext_000af784"))) (= "=") (identifier "pbVar18")) (; ";")) (expression_statement "*(undefined4 *)puVar2 = uVar9;" (assignment_expression "*(undefined4 *)puVar2 = uVar9" (pointer_expression "*(undefined4 *)puVar2" (* "*") (cast_expression "(undefined4 *)puVar2" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "*(undefined4 *)(puVar1 + -0x60) = uVar7;" (assignment_expression "*(undefined4 *)(puVar1 + -0x60) = uVar7" (pointer_expression "*(undefined4 *)(puVar1 + -0x60)" (* "*") (cast_expression "(undefined4 *)(puVar1 + -0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + -0x60)" (( "(") (binary_expression "puVar1 + -0x60" (identifier "puVar1") (+ "+") (number_literal "-0x60")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "*(byte **)(puVar1 + -100) = pbVar18;" (assignment_expression "*(byte **)(puVar1 + -100) = pbVar18" (pointer_expression "*(byte **)(puVar1 + -100)" (* "*") (cast_expression "(byte **)(puVar1 + -100)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar1 + -100)" (( "(") (binary_expression "puVar1 + -100" (identifier "puVar1") (+ "+") (number_literal "-100")) () ")")))) (= "=") (identifier "pbVar18")) (; ";")) (expression_statement "bVar10 = *pbVar18;" (assignment_expression "bVar10 = *pbVar18" (identifier "bVar10") (= "=") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18"))) (; ";")) (expression_statement "puVar1[-0x5c] = bVar10;" (assignment_expression "puVar1[-0x5c] = bVar10" (subscript_expression "puVar1[-0x5c]" (identifier "puVar1") ([ "[") (number_literal "-0x5c") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (labeled_statement "LAB_00027758:\n  puVar5 = PTR_yyleng_000af794;" (statement_identifier "LAB_00027758") (: ":") (expression_statement "puVar5 = PTR_yyleng_000af794;" (assignment_expression "puVar5 = PTR_yyleng_000af794" (identifier "puVar5") (= "=") (identifier "PTR_yyleng_000af794")) (; ";"))) (expression_statement "puVar4 = PTR_s_hallenge__000af46c;" (assignment_expression "puVar4 = PTR_s_hallenge__000af46c" (identifier "puVar4") (= "=") (identifier "PTR_s_hallenge__000af46c")) (; ";")) (expression_statement "puVar2 = PTR_LAB_000af468;" (assignment_expression "puVar2 = PTR_LAB_000af468" (identifier "puVar2") (= "=") (identifier "PTR_LAB_000af468")) (; ";")) (expression_statement "puVar1 = PTR_DAT_000af458;" (assignment_expression "puVar1 = PTR_DAT_000af458" (identifier "puVar1") (= "=") (identifier "PTR_DAT_000af458")) (; ";")) (expression_statement "*pbVar18 = bVar10;" (assignment_expression "*pbVar18 = bVar10" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (= "=") (identifier "bVar10")) (; ";")) (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" (identifier "bVar11") (= "=") (false "false")) (; ";")) (expression_statement "iVar12 = *(int *)(puVar1 + -0x70);" (assignment_expression "iVar12 = *(int *)(puVar1 + -0x70)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(puVar1 + -0x70)" (* "*") (cast_expression "(int *)(puVar1 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + -0x70)" (( "(") (binary_expression "puVar1 + -0x70" (identifier "puVar1") (+ "+") (number_literal "-0x70")) () ")"))))) (; ";")) (expression_statement "pbVar13 = *(byte **)(puVar1 + -0x74);" (assignment_expression "pbVar13 = *(byte **)(puVar1 + -0x74)" (identifier "pbVar13") (= "=") (pointer_expression "*(byte **)(puVar1 + -0x74)" (* "*") (cast_expression "(byte **)(puVar1 + -0x74)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar1 + -0x74)" (( "(") (binary_expression "puVar1 + -0x74" (identifier "puVar1") (+ "+") (number_literal "-0x74")) () ")"))))) (; ";")) (expression_statement "iVar20 = iVar12;" (assignment_expression "iVar20 = iVar12" (identifier "iVar20") (= "=") (identifier "iVar12")) (; ";")) (expression_statement "pbVar16 = pbVar13;" (assignment_expression "pbVar16 = pbVar13" (identifier "pbVar16") (= "=") (identifier "pbVar13")) (; ";")) (expression_statement "pbVar19 = pbVar18;" (assignment_expression "pbVar19 = pbVar18" (identifier "pbVar19") (= "=") (identifier "pbVar18")) (; ";")) (while_statement "while( true ) {\n    uVar8 = (uint)(byte)puVar4[bVar10 - 0x2160];\n    if (sVar17 != 0) {\n      bVar11 = true;\n      iVar20 = iVar14;\n      pbVar16 = pbVar19;\n    }\n    while( true ) {\n      iVar15 = (iVar15 + uVar8) * 2;\n      if (*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14) break;\n      iVar14 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x3378);\n      if (0x44e < iVar14) {\n        uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];\n      }\n      iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n    }\n    iVar14 = (int)*(short *)(puVar4 + iVar15 + -0x6ba4);\n    pbVar19 = pbVar19 + 1;\n    if (iVar14 == 0x44e) break;\n    bVar10 = *pbVar19;\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    uVar8 = (uint)(byte)puVar4[bVar10 - 0x2160];\n    if (sVar17 != 0) {\n      bVar11 = true;\n      iVar20 = iVar14;\n      pbVar16 = pbVar19;\n    }\n    while( true ) {\n      iVar15 = (iVar15 + uVar8) * 2;\n      if (*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14) break;\n      iVar14 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x3378);\n      if (0x44e < iVar14) {\n        uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];\n      }\n      iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n    }\n    iVar14 = (int)*(short *)(puVar4 + iVar15 + -0x6ba4);\n    pbVar19 = pbVar19 + 1;\n    if (iVar14 == 0x44e) break;\n    bVar10 = *pbVar19;\n    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);\n    iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n  }" ({ "{") (expression_statement "uVar8 = (uint)(byte)puVar4[bVar10 - 0x2160];" (assignment_expression "uVar8 = (uint)(byte)puVar4[bVar10 - 0x2160]" (identifier "uVar8") (= "=") (cast_expression "(uint)(byte)puVar4[bVar10 - 0x2160]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)puVar4[bVar10 - 0x2160]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "puVar4[bVar10 - 0x2160]" (identifier "puVar4") ([ "[") (binary_expression "bVar10 - 0x2160" (identifier "bVar10") (- "-") (number_literal "0x2160")) (] "]"))))) (; ";")) (if_statement "if (sVar17 != 0) {\n      bVar11 = true;\n      iVar20 = iVar14;\n      pbVar16 = pbVar19;\n    }" (if "if") (parenthesized_expression "(sVar17 != 0)" (( "(") (binary_expression "sVar17 != 0" (identifier "sVar17") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      bVar11 = true;\n      iVar20 = iVar14;\n      pbVar16 = pbVar19;\n    }" ({ "{") (expression_statement "bVar11 = true;" (assignment_expression "bVar11 = true" (identifier "bVar11") (= "=") (true "true")) (; ";")) (expression_statement "iVar20 = iVar14;" (assignment_expression "iVar20 = iVar14" (identifier "iVar20") (= "=") (identifier "iVar14")) (; ";")) (expression_statement "pbVar16 = pbVar19;" (assignment_expression "pbVar16 = pbVar19" (identifier "pbVar16") (= "=") (identifier "pbVar19")) (; ";")) (} "}"))) (while_statement "while( true ) {\n      iVar15 = (iVar15 + uVar8) * 2;\n      if (*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14) break;\n      iVar14 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x3378);\n      if (0x44e < iVar14) {\n        uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];\n      }\n      iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      iVar15 = (iVar15 + uVar8) * 2;\n      if (*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14) break;\n      iVar14 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x3378);\n      if (0x44e < iVar14) {\n        uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];\n      }\n      iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);\n    }" ({ "{") (expression_statement "iVar15 = (iVar15 + uVar8) * 2;" (assignment_expression "iVar15 = (iVar15 + uVar8) * 2" (identifier "iVar15") (= "=") (binary_expression "(iVar15 + uVar8) * 2" (parenthesized_expression "(iVar15 + uVar8)" (( "(") (binary_expression "iVar15 + uVar8" (identifier "iVar15") (+ "+") (identifier "uVar8")) () ")")) (* "*") (number_literal "2"))) (; ";")) (if_statement "if (*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14) break;" (if "if") (parenthesized_expression "(*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14)" (( "(") (binary_expression "*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14" (pointer_expression "*(short *)(puVar2 + iVar15 + 0x5c30)" (* "*") (cast_expression "(short *)(puVar2 + iVar15 + 0x5c30)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + iVar15 + 0x5c30)" (( "(") (binary_expression "puVar2 + iVar15 + 0x5c30" (binary_expression "puVar2 + iVar15" (identifier "puVar2") (+ "+") (identifier "iVar15")) (+ "+") (number_literal "0x5c30")) () ")")))) (== "==") (identifier "iVar14")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar14 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x3378);" (assignment_expression "iVar14 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x3378)" (identifier "iVar14") (= "=") (cast_expression "(int)*(short *)(puVar4 + iVar14 * 2 + -0x3378)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)(puVar4 + iVar14 * 2 + -0x3378)" (* "*") (cast_expression "(short *)(puVar4 + iVar14 * 2 + -0x3378)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + iVar14 * 2 + -0x3378)" (( "(") (binary_expression "puVar4 + iVar14 * 2 + -0x3378" (binary_expression "puVar4 + iVar14 * 2" (identifier "puVar4") (+ "+") (binary_expression "iVar14 * 2" (identifier "iVar14") (* "*") (number_literal "2"))) (+ "+") (number_literal "-0x3378")) () ")")))))) (; ";")) (if_statement "if (0x44e < iVar14) {\n        uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];\n      }" (if "if") (parenthesized_expression "(0x44e < iVar14)" (( "(") (binary_expression "0x44e < iVar14" (number_literal "0x44e") (< "<") (identifier "iVar14")) () ")")) (compound_statement "{\n        uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];\n      }" ({ "{") (expression_statement "uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];" (assignment_expression "uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0]" (identifier "uVar8") (= "=") (cast_expression "(uint)(byte)puVar4[uVar8 - 0x21b0]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)puVar4[uVar8 - 0x21b0]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "puVar4[uVar8 - 0x21b0]" (identifier "puVar4") ([ "[") (binary_expression "uVar8 - 0x21b0" (identifier "uVar8") (- "-") (number_literal "0x21b0")) (] "]"))))) (; ";")) (} "}"))) (expression_statement "iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);" (assignment_expression "iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94)" (identifier "iVar15") (= "=") (cast_expression "(int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)(puVar4 + iVar14 * 2 + -0x2a94)" (* "*") (cast_expression "(short *)(puVar4 + iVar14 * 2 + -0x2a94)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + iVar14 * 2 + -0x2a94)" (( "(") (binary_expression "puVar4 + iVar14 * 2 + -0x2a94" (binary_expression "puVar4 + iVar14 * 2" (identifier "puVar4") (+ "+") (binary_expression "iVar14 * 2" (identifier "iVar14") (* "*") (number_literal "2"))) (+ "+") (number_literal "-0x2a94")) () ")")))))) (; ";")) (} "}"))) (expression_statement "iVar14 = (int)*(short *)(puVar4 + iVar15 + -0x6ba4);" (assignment_expression "iVar14 = (int)*(short *)(puVar4 + iVar15 + -0x6ba4)" (identifier "iVar14") (= "=") (cast_expression "(int)*(short *)(puVar4 + iVar15 + -0x6ba4)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)(puVar4 + iVar15 + -0x6ba4)" (* "*") (cast_expression "(short *)(puVar4 + iVar15 + -0x6ba4)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + iVar15 + -0x6ba4)" (( "(") (binary_expression "puVar4 + iVar15 + -0x6ba4" (binary_expression "puVar4 + iVar15" (identifier "puVar4") (+ "+") (identifier "iVar15")) (+ "+") (number_literal "-0x6ba4")) () ")")))))) (; ";")) (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + 1" (identifier "pbVar19") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar14 == 0x44e) break;" (if "if") (parenthesized_expression "(iVar14 == 0x44e)" (( "(") (binary_expression "iVar14 == 0x44e" (identifier "iVar14") (== "==") (number_literal "0x44e")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "bVar10 = *pbVar19;" (assignment_expression "bVar10 = *pbVar19" (identifier "bVar10") (= "=") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19"))) (; ";")) (expression_statement "sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);" (assignment_expression "sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060)" (identifier "sVar17") (= "=") (pointer_expression "*(short *)(puVar3 + iVar14 * 2 + -0x2060)" (* "*") (cast_expression "(short *)(puVar3 + iVar14 * 2 + -0x2060)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + iVar14 * 2 + -0x2060)" (( "(") (binary_expression "puVar3 + iVar14 * 2 + -0x2060" (binary_expression "puVar3 + iVar14 * 2" (identifier "puVar3") (+ "+") (binary_expression "iVar14 * 2" (identifier "iVar14") (* "*") (number_literal "2"))) (+ "+") (number_literal "-0x2060")) () ")"))))) (; ";")) (expression_statement "iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);" (assignment_expression "iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94)" (identifier "iVar15") (= "=") (cast_expression "(int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)(puVar4 + iVar14 * 2 + -0x2a94)" (* "*") (cast_expression "(short *)(puVar4 + iVar14 * 2 + -0x2a94)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + iVar14 * 2 + -0x2a94)" (( "(") (binary_expression "puVar4 + iVar14 * 2 + -0x2a94" (binary_expression "puVar4 + iVar14 * 2" (identifier "puVar4") (+ "+") (binary_expression "iVar14 * 2" (identifier "iVar14") (* "*") (number_literal "2"))) (+ "+") (number_literal "-0x2a94")) () ")")))))) (; ";")) (} "}"))) (if_statement "if (bVar11) {\n    *(byte **)(puVar1 + -0x74) = pbVar16;\n    *(int *)(puVar1 + -0x70) = iVar20;\n    iVar12 = iVar20;\n    pbVar13 = pbVar16;\n  }" (if "if") (parenthesized_expression "(bVar11)" (( "(") (identifier "bVar11") () ")")) (compound_statement "{\n    *(byte **)(puVar1 + -0x74) = pbVar16;\n    *(int *)(puVar1 + -0x70) = iVar20;\n    iVar12 = iVar20;\n    pbVar13 = pbVar16;\n  }" ({ "{") (expression_statement "*(byte **)(puVar1 + -0x74) = pbVar16;" (assignment_expression "*(byte **)(puVar1 + -0x74) = pbVar16" (pointer_expression "*(byte **)(puVar1 + -0x74)" (* "*") (cast_expression "(byte **)(puVar1 + -0x74)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar1 + -0x74)" (( "(") (binary_expression "puVar1 + -0x74" (identifier "puVar1") (+ "+") (number_literal "-0x74")) () ")")))) (= "=") (identifier "pbVar16")) (; ";")) (expression_statement "*(int *)(puVar1 + -0x70) = iVar20;" (assignment_expression "*(int *)(puVar1 + -0x70) = iVar20" (pointer_expression "*(int *)(puVar1 + -0x70)" (* "*") (cast_expression "(int *)(puVar1 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + -0x70)" (( "(") (binary_expression "puVar1 + -0x70" (identifier "puVar1") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (identifier "iVar20")) (; ";")) (expression_statement "iVar12 = iVar20;" (assignment_expression "iVar12 = iVar20" (identifier "iVar12") (= "=") (identifier "iVar20")) (; ";")) (expression_statement "pbVar13 = pbVar16;" (assignment_expression "pbVar13 = pbVar16" (identifier "pbVar13") (= "=") (identifier "pbVar16")) (; ";")) (} "}"))) (expression_statement "puVar1 = PTR_LAB_000af468;" (assignment_expression "puVar1 = PTR_LAB_000af468" (identifier "puVar1") (= "=") (identifier "PTR_LAB_000af468")) (; ";")) (expression_statement "*(byte **)(local_68 + -100) = pbVar13;" (assignment_expression "*(byte **)(local_68 + -100) = pbVar13" (pointer_expression "*(byte **)(local_68 + -100)" (* "*") (cast_expression "(byte **)(local_68 + -100)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_68 + -100)" (( "(") (binary_expression "local_68 + -100" (identifier "local_68") (+ "+") (number_literal "-100")) () ")")))) (= "=") (identifier "pbVar13")) (; ";")) (expression_statement "*puVar21 = pbVar18;" (assignment_expression "*puVar21 = pbVar18" (pointer_expression "*puVar21" (* "*") (identifier "puVar21")) (= "=") (identifier "pbVar18")) (; ";")) (expression_statement "sVar17 = *(short *)(puVar3 + iVar12 * 2 + -0x2060);" (assignment_expression "sVar17 = *(short *)(puVar3 + iVar12 * 2 + -0x2060)" (identifier "sVar17") (= "=") (pointer_expression "*(short *)(puVar3 + iVar12 * 2 + -0x2060)" (* "*") (cast_expression "(short *)(puVar3 + iVar12 * 2 + -0x2060)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + iVar12 * 2 + -0x2060)" (( "(") (binary_expression "puVar3 + iVar12 * 2 + -0x2060" (binary_expression "puVar3 + iVar12 * 2" (identifier "puVar3") (+ "+") (binary_expression "iVar12 * 2" (identifier "iVar12") (* "*") (number_literal "2"))) (+ "+") (number_literal "-0x2060")) () ")"))))) (; ";")) (expression_statement "*(int *)puVar5 = (int)pbVar13 - (int)pbVar18;" (assignment_expression "*(int *)puVar5 = (int)pbVar13 - (int)pbVar18" (pointer_expression "*(int *)puVar5" (* "*") (cast_expression "(int *)puVar5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar5"))) (= "=") (binary_expression "(int)pbVar13 - (int)pbVar18" (cast_expression "(int)pbVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar13")) (- "-") (cast_expression "(int)pbVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar18")))) (; ";")) (expression_statement "bVar10 = *pbVar13;" (assignment_expression "bVar10 = *pbVar13" (identifier "bVar10") (= "=") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13"))) (; ";")) (expression_statement "*pbVar13 = 0;" (assignment_expression "*pbVar13 = 0" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_68[-0x5c] = bVar10;" (assignment_expression "local_68[-0x5c] = bVar10" (subscript_expression "local_68[-0x5c]" (identifier "local_68") ([ "[") (number_literal "-0x5c") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (if_statement "if ((uint)(int)sVar17 < 0x2c) {\n                    \n                    \n    (*(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80)))();\n    return;\n  }" (if "if") (parenthesized_expression "((uint)(int)sVar17 < 0x2c)" (( "(") (binary_expression "(uint)(int)sVar17 < 0x2c" (cast_expression "(uint)(int)sVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(int)sVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar17"))) (< "<") (number_literal "0x2c")) () ")")) (compound_statement "{\n                    \n                    \n    (*(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80)))();\n    return;\n  }" ({ "{") (expression_statement "(*(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80)))();" (call_expression "(*(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80)))" (( "(") (pointer_expression "*(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80))" (* "*") (cast_expression "(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80))" (( "(") (binary_expression "&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80)" (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (+ "+") (pointer_expression "*(int *)(puVar1 + sVar17 * 4 + 0x5b80)" (* "*") (cast_expression "(int *)(puVar1 + sVar17 * 4 + 0x5b80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + sVar17 * 4 + 0x5b80)" (( "(") (binary_expression "puVar1 + sVar17 * 4 + 0x5b80" (binary_expression "puVar1 + sVar17 * 4" (identifier "puVar1") (+ "+") (binary_expression "sVar17 * 4" (identifier "sVar17") (* "*") (number_literal "4"))) (+ "+") (number_literal "0x5b80")) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_000270a8(PTR_LAB_000af468 + 0x5ad4);" (call_expression "FUN_000270a8(PTR_LAB_000af468 + 0x5ad4)" (identifier "FUN_000270a8") (argument_list "(PTR_LAB_000af468 + 0x5ad4)" (( "(") (binary_expression "PTR_LAB_000af468 + 0x5ad4" (identifier "PTR_LAB_000af468") (+ "+") (number_literal "0x5ad4")) () ")"))) (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) 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: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (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: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) 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: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) 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 (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))))) right: (identifier))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (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: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (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: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))))))) arguments: (argument_list))) (return_statement))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))))

void MASKED(void)

{
  undefined *puVar1;
  undefined *puVar2;
  undefined *puVar3;
  undefined *puVar4;
  undefined *puVar5;
  undefined4 *puVar6;
  undefined4 uVar7;
  byte bVar10;
  uint uVar8;
  undefined4 uVar9;
  bool bVar11;
  int iVar12;
  byte *pbVar13;
  int iVar14;
  int iVar15;
  byte *pbVar16;
  short sVar17;
  byte *pbVar18;
  byte *pbVar19;
  int iVar20;
  undefined4 *puVar21;
  undefined *local_68;
  
  puVar3 = PTR_s_hallenge__000af46c;
  puVar1 = PTR_DAT_000af458;
  iVar14 = *(int *)(PTR_DAT_000af458 + -0x6c);
  if (*(int *)(PTR_DAT_000af458 + -0x68) != 0) {
    local_68 = PTR_DAT_000af458;
    bVar10 = PTR_DAT_000af458[-0x5c];
    pbVar18 = *(byte **)(PTR_DAT_000af458 + -100);
    sVar17 = *(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2060);
    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);
    puVar21 = (undefined4 *)PTR_yytext_000af784;
    goto LAB_00027758;
  }
  *(undefined4 *)(PTR_DAT_000af458 + -0x68) = 1;
  puVar2 = PTR_yyin_000af788;
  if (iVar14 == 0) {
    iVar15 = 0;
    sVar17 = 0;
    iVar14 = 1;
    *(undefined4 *)(puVar1 + -0x6c) = 1;
    if (*(int *)puVar2 == 0) goto LAB_00027a1c;
LAB_00027984:
    iVar12 = *(int *)PTR_yyout_000af798;
  }
  else {
    iVar15 = (int)*(short *)(PTR_s_hallenge__000af46c + iVar14 * 2 + -0x2a94);
    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);
    if (*(int *)PTR_yyin_000af788 != 0) goto LAB_00027984;
LAB_00027a1c:
    *(undefined4 *)puVar2 = *(undefined4 *)PTR_stdin_000afba4;
    iVar12 = *(int *)PTR_yyout_000af798;
  }
  if (iVar12 == 0) {
    *(undefined4 *)PTR_yyout_000af798 = *(undefined4 *)PTR_stdout_000afb6c;
  }
  puVar1 = PTR_DAT_000af458;
  if ((*(int *)(PTR_DAT_000af458 + -0x58) == 0) ||
     (puVar6 = *(undefined4 **)
                (*(int *)(PTR_DAT_000af458 + -0x58) + *(int *)(PTR_DAT_000af458 + -0x50) * 4),
     puVar6 == (undefined4 *)0x0)) {
    FUN_000270f0();
    iVar12 = *(int *)(puVar1 + -0x50);
    iVar20 = *(int *)(puVar1 + -0x58);
    puVar6 = (undefined4 *)yy_create_buffer(*(undefined4 *)puVar2,0x4000);
    *(undefined4 **)(iVar20 + iVar12 * 4) = puVar6;
  }
  puVar21 = (undefined4 *)PTR_yytext_000af784;
  puVar1 = PTR_DAT_000af458;
  pbVar18 = (byte *)puVar6[2];
  uVar9 = *puVar6;
  local_68 = PTR_DAT_000af458;
  uVar7 = puVar6[4];
  *(byte **)PTR_yytext_000af784 = pbVar18;
  *(undefined4 *)puVar2 = uVar9;
  *(undefined4 *)(puVar1 + -0x60) = uVar7;
  *(byte **)(puVar1 + -100) = pbVar18;
  bVar10 = *pbVar18;
  puVar1[-0x5c] = bVar10;
LAB_00027758:
  puVar5 = PTR_yyleng_000af794;
  puVar4 = PTR_s_hallenge__000af46c;
  puVar2 = PTR_LAB_000af468;
  puVar1 = PTR_DAT_000af458;
  *pbVar18 = bVar10;
  bVar11 = false;
  iVar12 = *(int *)(puVar1 + -0x70);
  pbVar13 = *(byte **)(puVar1 + -0x74);
  iVar20 = iVar12;
  pbVar16 = pbVar13;
  pbVar19 = pbVar18;
  while( true ) {
    uVar8 = (uint)(byte)puVar4[bVar10 - 0x2160];
    if (sVar17 != 0) {
      bVar11 = true;
      iVar20 = iVar14;
      pbVar16 = pbVar19;
    }
    while( true ) {
      iVar15 = (iVar15 + uVar8) * 2;
      if (*(short *)(puVar2 + iVar15 + 0x5c30) == iVar14) break;
      iVar14 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x3378);
      if (0x44e < iVar14) {
        uVar8 = (uint)(byte)puVar4[uVar8 - 0x21b0];
      }
      iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);
    }
    iVar14 = (int)*(short *)(puVar4 + iVar15 + -0x6ba4);
    pbVar19 = pbVar19 + 1;
    if (iVar14 == 0x44e) break;
    bVar10 = *pbVar19;
    sVar17 = *(short *)(puVar3 + iVar14 * 2 + -0x2060);
    iVar15 = (int)*(short *)(puVar4 + iVar14 * 2 + -0x2a94);
  }
  if (bVar11) {
    *(byte **)(puVar1 + -0x74) = pbVar16;
    *(int *)(puVar1 + -0x70) = iVar20;
    iVar12 = iVar20;
    pbVar13 = pbVar16;
  }
  puVar1 = PTR_LAB_000af468;
  *(byte **)(local_68 + -100) = pbVar13;
  *puVar21 = pbVar18;
  sVar17 = *(short *)(puVar3 + iVar12 * 2 + -0x2060);
  *(int *)puVar5 = (int)pbVar13 - (int)pbVar18;
  bVar10 = *pbVar13;
  *pbVar13 = 0;
  local_68[-0x5c] = bVar10;
  if ((uint)(int)sVar17 < 0x2c) {
                    /* WARNING: Could not emulate address calculation at 0x00027900 */
                    /* WARNING: Treating indirect jump as call */
    (*(code *)(&_gp_1 + *(int *)(puVar1 + sVar17 * 4 + 0x5b80)))();
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_000270a8(PTR_LAB_000af468 + 0x5ad4);
}

