
/* WARNING: Type propagation algorithm not settling */

void debug_print_current_time(char *item,parser_control *pc)

{
  char cVar1;
  bool bVar2;
  undefined *puVar3;
  undefined *puVar4;
  int iVar5;
  char *pcVar6;
  undefined4 uVar7;
  int *piVar8;
  int iVar9;
  byte bVar13;
  int iVar10;
  table *ptVar11;
  uint **ppuVar12;
  uint *puVar14;
  parser_control *pc_00;
  uint uVar15;
  uint **name;
  uint *puVar16;
  uint uVar17;
  int iVar18;
  uint *puVar19;
  uint *puVar20;
  uint **ppuVar21;
  uint uVar22;
  uint uVar23;
  uint **in_t0;
  uint uVar24;
  uint *in_t2;
  uint in_t3;
  uint **in_t4;
  uint in_t5;
  uint in_t6;
  uint *puVar25;
  byte *pbVar26;
  short *psVar27;
  uint **ppuVar28;
  uint *puVar29;
  int iVar30;
  undefined *unaff_s4;
  uint *puVar31;
  short *psVar32;
  short *unaff_s6;
  uint in_t8;
  undefined *puVar33;
  code *pcVar34;
  uint *puStack_674;
  int iStack_670;
  uint *puStack_66c;
  int iStack_660;
  uint *puStack_65c;
  uint *puStack_630;
  uint *apuStack_5e8 [4];
  int iStack_5d8;
  uint *apuStack_5b8 [2];
  uint auStack_5b0 [2];
  uint *puStack_5a8;
  uint uStack_5a4;
  short *apsStack_5a0 [2];
  uint **ppuStack_598;
  uint **ppuStack_594;
  uint **ppuStack_590;
  uint uStack_58c;
  uint uStack_588;
  uint uStack_584;
  uint auStack_580 [2];
  short asStack_578 [19];
  short sStack_552;
  uint auStack_550 [279];
  byte abStack_f1 [21];
  int iStack_dc;
  parser_control *ppStack_d8;
  uint **ppuStack_d4;
  undefined *puStack_d0;
  undefined *puStack_cc;
  undefined *puStack_c8;
  char tmp [100];
  
  puVar3 = PTR___stack_chk_guard_00038350;
  iVar5 = *(int *)PTR___stack_chk_guard_00038350;
  pcVar6 = (char *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x50a0,5);
  dbg_printf(pcVar6,item);
  puVar4 = PTR_stderr_00038360;
  if (pc->dates_seen == 0) {
    ppuVar28 = *(uint ***)PTR_stderr_00038360;
    if (pc->year_seen != pc->debug_year_seen) goto LAB_00014a30;
LAB_00014c7c:
    uVar17 = 0;
  }
  else {
    ppuVar28 = *(uint ***)PTR_stderr_00038360;
    if (pc->debug_dates_seen == false) {
      in_t3 = (uint)pc->month;
      in_t2 = *(uint **)&pc->month;
      in_t0 = *(uint ***)&(pc->year).value;
      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);
      pc->debug_dates_seen = true;
      if (pc->year_seen == pc->debug_year_seen) {
        ppuVar28 = *(uint ***)puVar4;
        uVar17 = 1;
        goto LAB_00014a80;
      }
      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);
      ppuVar28 = *(uint ***)puVar4;
    }
    else if (pc->year_seen == pc->debug_year_seen) goto LAB_00014c7c;
LAB_00014a30:
    uVar7 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);
    in_t0 = *(uint ***)&(pc->year).value;
    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar7);
    uVar17 = 1;
    ppuVar28 = *(uint ***)puVar4;
    pc->debug_year_seen = pc->year_seen;
  }
LAB_00014a80:
  if ((pc->times_seen == 0) || (pc->debug_times_seen != false)) {
    if ((pc->days_seen != 0) && (pc->debug_days_seen == false)) {
      if (uVar17 != 0) goto LAB_00014d08;
LAB_00014ab8:
      iVar18 = 5;
      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c);
      pcVar6 = str_days(pc,tmp,iVar18);
      in_t0 = *(uint ***)&pc->day_ordinal;
      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,pcVar6);
      ppuVar28 = *(uint ***)puVar4;
      uVar17 = 1;
      pc->debug_days_seen = true;
    }
  }
  else {
    in_t3 = (uint)pc->minutes;
    in_t2 = *(uint **)&pc->minutes;
    in_t0 = *(uint ***)&pc->hour;
    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar17 ^ 1) + 0x5168);
    if ((pc->seconds).tv_nsec != 0) {
      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);
    }
    ppuVar28 = *(uint ***)puVar4;
    if (pc->meridian == 1) {
      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);
      ppuVar28 = *(uint ***)puVar4;
    }
    pc->debug_times_seen = true;
    if (pc->days_seen == 0) {
      uVar17 = 1;
    }
    else {
      uVar17 = (uint)pc->debug_days_seen;
      if (uVar17 == 0) {
LAB_00014d08:
        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);
        ppuVar28 = *(uint ***)puVar4;
        goto LAB_00014ab8;
      }
    }
  }
  if ((pc->local_zones_seen == 0) || (pc->debug_local_zones_seen != false)) {
    if ((pc->zones_seen == 0) || (unaff_s4 = PTR_LAB_0003811c, pc->debug_zones_seen != false)) {
      if (pc->timespec_seen == false) goto LAB_00014bb0;
      pc = (parser_control *)(pc->seconds).tv_sec;
      unaff_s4 = (undefined *)((int)pc >> 0x1f);
      if (uVar17 != 0) goto LAB_00014d8c;
      goto LAB_00014c1c;
    }
    unaff_s4 = PTR_LAB_0003811c + (uVar17 ^ 1) + 0x5130;
LAB_00014d38:
    pcVar6 = time_zone_str(pc->time_zone,tmp);
    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,pcVar6);
    pc->debug_zones_seen = true;
    if (pc->timespec_seen != false) {
      pc = (parser_control *)(pc->seconds).tv_sec;
      ppuVar28 = *(uint ***)puVar4;
      goto LAB_00014d88;
    }
  }
  else {
    (*(code *)PTR___fprintf_chk_00038280)
              (ppuVar28,1,PTR_LAB_0003811c + (uVar17 ^ 1) + 0x51ac,pc->local_isdst);
    pc->debug_local_zones_seen = true;
    if (pc->zones_seen == 0) {
      cVar1 = pc->timespec_seen;
      ppuVar28 = *(uint ***)puVar4;
    }
    else {
      ppuVar28 = *(uint ***)puVar4;
      if (pc->debug_zones_seen == false) {
        unaff_s4 = PTR_LAB_0003811c + 0x5130;
        goto LAB_00014d38;
      }
      cVar1 = pc->timespec_seen;
    }
    if (cVar1 == '\0') goto LAB_00014bb0;
    pc = (parser_control *)(pc->seconds).tv_sec;
LAB_00014d88:
    unaff_s4 = (undefined *)((int)pc >> 0x1f);
LAB_00014d8c:
    (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);
    ppuVar28 = *(uint ***)puVar4;
LAB_00014c1c:
    uVar7 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);
    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar7);
  }
  ppuVar28 = *(uint ***)puVar4;
LAB_00014bb0:
  pc_00 = (parser_control *)&DAT_0000000a;
  ppuVar21 = ppuVar28;
  (*(code *)PTR_fputc_00038298)();
  if (iVar5 == *(int *)puVar3) {
    return;
  }
  puVar33 = PTR___stack_chk_fail_00038334;
  (*(code *)PTR___stack_chk_fail_00038334)();
  piVar8 = *(int **)(puVar33 + 0x234a4);
  uVar17 = 0xfffffffe;
  puStack_cc = puVar3;
  puVar31 = (uint *)&DAT_00000026;
  iStack_dc = *piVar8;
  iVar5 = *(int *)(puVar33 + 0x23270);
  puStack_c8 = unaff_s4;
  puStack_d0 = puVar4;
  puVar14 = auStack_550;
  ppuStack_d4 = ppuVar28;
  puVar29 = (uint *)0xfffffffe;
  iVar30 = *(int *)(puVar33 + 0x23270) + 0x6250;
  ppStack_d8 = pc;
  puVar25 = (uint *)0x0;
  iVar18 = *(int *)(puVar33 + 0x23270) + 0x62c4;
  asStack_578[0] = 0;
  iStack_670 = 0;
  psVar32 = asStack_578;
LAB_00014f50:
  ppuVar28 = (uint **)0x800000;
  puVar19 = puVar31;
  if (puVar29 == (uint *)0xfffffffe) {
    ppuVar21 = (uint **)pc_00->input;
    in_t2 = (uint *)0x1;
    ppuVar28 = (uint **)0x80001f;
    in_t4 = (uint **)0x2d;
    bVar13 = *(byte *)ppuVar21;
    in_t5 = 0x2b;
    in_t6 = 0x28;
    uVar17 = 0x29;
LAB_000152f0:
    in_t0 = (uint **)(int)(char)bVar13;
    uVar15 = (uint)bVar13;
LAB_000152f4:
    uVar22 = uVar15 - 9;
    name = (uint **)(uint)(uVar22 < 0x18);
    if (name == (uint **)0x0) goto LAB_000153a8;
LAB_00015308:
    ppuVar12 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f);
    while (ppuVar12 != (uint **)0x0) {
      ppuVar21 = (uint **)((int)ppuVar21 + 1);
      pc_00->input = (char *)ppuVar21;
      in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;
      uVar15 = (uint)*(byte *)ppuVar21;
      name = (uint **)(uVar15 - 9);
      if ((uint **)0x17 < name) goto LAB_000153a8;
      name = (uint **)(1 << ((uint)name & 0x1f) & 0x80001f);
      ppuVar12 = name;
    }
LAB_00015344:
    in_t3 = 0xffffffff;
    if (uVar15 == 0x2d) goto LAB_00015358;
    if (uVar15 == 0x2b) goto LAB_00015354;
    if ((0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))
       ) {
      pbVar26 = (byte *)pc_00->input;
      name = (uint **)(abStack_f1 + 1);
      in_t0 = (uint **)(abStack_f1 + 0x14);
      ppuVar28 = (uint **)&DAT_0000002e;
      ppuVar21 = name;
      do {
        pbVar26 = pbVar26 + 1;
        if (ppuVar21 < in_t0) {
          *(byte *)ppuVar21 = (byte)uVar15;
          ppuVar21 = (uint **)((int)ppuVar21 + 1);
        }
        pc_00->input = (char *)pbVar26;
        iVar9 = (int)(char)*pbVar26;
        uVar15 = (uint)*pbVar26;
      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||
              (uVar15 == 0x2e));
      *(byte *)ppuVar21 = 0;
      ppuVar21 = name;
      bVar13 = abStack_f1[1];
      while (bVar13 != 0) {
        if (bVar13 - 0x61 < 0x1a) {
          bVar13 = bVar13 - 0x20;
        }
        *(byte *)ppuVar21 = bVar13;
        ppuVar21 = (uint **)((int)ppuVar21 + 1);
        bVar13 = *(byte *)ppuVar21;
      }
      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);
      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);
      do {
        iVar9 = (**(code **)(puVar33 + 0x234c8))(name);
        puStack_674 = puVar25;
        if (iVar9 == 0) {
LAB_00015708:
          puVar29 = *(uint **)(unaff_s6 + 2);
          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);
          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);
          goto LAB_00014f5c;
        }
        unaff_s6 = unaff_s6 + 6;
        ppuVar21 = *(uint ***)unaff_s6;
      } while (ppuVar21 != (uint **)0x0);
      puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(name);
      if (puStack_674 == (uint *)0x3) {
        bVar2 = true;
      }
      else if (puStack_674 == (uint *)0x4) {
        bVar2 = abStack_f1[4] == '.';
      }
      else {
        bVar2 = false;
      }
      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);
      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);
      do {
        if (bVar2) {
          iVar9 = (**(code **)(puVar33 + 0x233c8))(name,ppuVar21,3);
        }
        else {
          iVar9 = (**(code **)(puVar33 + 0x234c8))(name);
        }
        puStack_66c = puVar25;
        if (iVar9 == 0) {
          puVar29 = *(uint **)(unaff_s6 + 2);
          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);
          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);
          goto LAB_00014f5c;
        }
        unaff_s6 = unaff_s6 + 6;
        ppuVar21 = *(uint ***)unaff_s6;
      } while (ppuVar21 != (uint **)0x0);
      iVar9 = *(int *)(puVar33 + 0x2326c);
      ppuVar21 = name;
      ptVar11 = lookup_zone(pc_00,(char *)name);
      unaff_s6 = asStack_578;
      if (ptVar11 != (table *)0x0) {
        puVar29 = (uint *)ptVar11->type;
        apuStack_5e8[1] = (uint *)ptVar11->value;
        apuStack_5e8[0] = (uint *)(ptVar11->value >> 0x1f);
        puStack_66c = (uint *)0x0;
        goto LAB_00014f5c;
      }
      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);
      iVar10 = (**(code **)(puVar33 + 0x234c8))(name);
      if (iVar10 == 0) {
        puVar29 = (uint *)0x103;
        apuStack_5e8[1] = (uint *)0x0;
        apuStack_5e8[0] = (uint *)0x0;
LAB_00015588:
        iVar9 = *(int *)(puVar33 + 0x23270);
        name = ppuVar21;
        puStack_66c = puVar31;
        goto LAB_0001558c;
      }
      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);
      ppuVar12 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);
      ppuVar21 = ppuVar12;
      psVar27 = unaff_s6;
      do {
        iVar10 = (**(code **)(puVar33 + 0x234c8))(name);
        if (iVar10 == 0) {
          puVar29 = *(uint **)(psVar27 + 2);
          apuStack_5e8[1] = *(uint **)(psVar27 + 4);
          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);
          goto LAB_00014f5c;
        }
        psVar27 = psVar27 + 6;
        ppuVar21 = *(uint ***)psVar27;
      } while (ppuVar21 != (uint **)0x0);
      pbVar26 = (byte *)((int)name + (int)((int)puStack_674 + -1));
      if (*pbVar26 == 0x53) {
        *pbVar26 = 0;
        pcVar34 = *(code **)(puVar33 + 0x234c8);
        do {
          iVar10 = (*pcVar34)(name);
          ppuVar21 = ppuVar12;
          puStack_66c = puVar31;
          if (iVar10 == 0) goto LAB_00015708;
          unaff_s6 = unaff_s6 + 6;
          ppuVar12 = *(uint ***)unaff_s6;
          pcVar34 = *(code **)(puVar33 + 0x234c8);
        } while (ppuVar12 != (uint **)0x0);
        *pbVar26 = 0x53;
      }
      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);
      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);
      pcVar34 = *(code **)(puVar33 + 0x234c8);
      do {
        iVar10 = (*pcVar34)(name);
        puStack_66c = puVar31;
        if (iVar10 == 0) goto LAB_00015708;
        unaff_s6 = unaff_s6 + 6;
        ppuVar21 = *(uint ***)unaff_s6;
        pcVar34 = *(code **)(puVar33 + 0x234c8);
      } while (ppuVar21 != (uint **)0x0);
      if (puStack_674 == (uint *)0x1) {
        ppuVar21 = *(uint ***)(puVar33 + 0x23268);
        if (abStack_f1[1] == 0x41) {
          puVar29 = (uint *)0x111;
          apuStack_5e8[1] = (uint *)0xfffff1f0;
          apuStack_5e8[0] = (uint *)0xffffffff;
          goto LAB_00015588;
        }
        ppuVar12 = ppuVar21 + 0x1e51;
        while( true ) {
          ppuVar21 = ppuVar12;
          if (ppuVar21[3] == (uint *)0x0) break;
          ppuVar12 = ppuVar21 + 3;
          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {
            puVar29 = ppuVar21[4];
            apuStack_5e8[1] = ppuVar21[5];
            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);
            goto LAB_00014f5c;
          }
        }
      }
      if (abStack_f1[1] != 0) {
        bVar2 = false;
        ppuVar21 = name;
        ppuVar12 = name;
        bVar13 = abStack_f1[1];
        do {
          if (bVar13 == 0x2e) {
            bVar2 = true;
          }
          else {
            ppuVar21 = (uint **)((int)ppuVar21 + 1);
          }
          ppuVar12 = (uint **)((int)ppuVar12 + 1);
          bVar13 = *(byte *)ppuVar12;
          *(byte *)ppuVar21 = bVar13;
        } while (bVar13 != 0);
        puStack_674 = puVar31;
        if ((bVar2) &&
           (ppuVar21 = name, iVar9 = (*(code *)(&DAT_00004388 + iVar9))(pc_00), iVar9 != 0)) {
          puVar29 = *(uint **)(iVar9 + 4);
          apuStack_5e8[1] = *(uint **)(iVar9 + 8);
          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);
          goto LAB_00014f5c;
        }
      }
      ppuVar21 = *(uint ***)(puVar33 + 0x23270);
      if (pc_00->parse_datetime_debug == false) goto LAB_00017ae0;
      pcVar6 = (char *)(**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5)
      ;
      puVar29 = (uint *)0x3f;
      dbg_printf(pcVar6);
      uVar15 = 2;
      puVar19 = (uint *)((int)puVar31 + 2);
      goto LAB_00014f74;
    }
    iVar9 = 0;
    if (uVar15 == 0x28) {
      ppuVar21 = (uint **)pc_00->input;
      goto LAB_000157a8;
    }
    pc_00->input = (char *)((int)ppuVar21 + 1);
    puVar29 = (uint *)(uint)*(byte *)ppuVar21;
    iVar9 = *(int *)(puVar33 + 0x23270);
    if (puVar29 != (uint *)0x0) goto LAB_0001558c;
    uVar15 = 0;
    goto LAB_00014f74;
  }
LAB_00014f5c:
  name = ppuVar21;
  if ((int)puVar29 < 1) {
LAB_000152b8:
    uVar15 = 0;
    puVar29 = (uint *)0x0;
  }
  else {
    iVar9 = *(int *)(puVar33 + 0x23270);
    if ((int)puVar29 < 0x116) {
LAB_0001558c:
      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);
      puVar19 = (uint *)((int)puVar31 + uVar15);
    }
    else {
      uVar15 = 2;
      puVar19 = (uint *)((int)puVar31 + 2);
    }
  }
  goto LAB_00014f74;
LAB_00015354:
  do {
    in_t3 = 1;
LAB_00015358:
    while( true ) {
      ppuVar21 = (uint **)pc_00->input;
      do {
        ppuVar21 = (uint **)((int)ppuVar21 + 1);
        pc_00->input = (char *)ppuVar21;
        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;
        uVar15 = (uint)*(byte *)ppuVar21;
        in_t8 = (uint)(uVar15 - 9 < 0x18);
        if (in_t8 == 0) {
          uVar22 = uVar15 - 0x30;
          if (9 < uVar22) goto LAB_000152f4;
          goto LAB_000153dc;
        }
      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);
      uVar22 = uVar15 - 9;
      name = (uint **)(uint)(uVar22 < 0x18);
      if (name != (uint **)0x0) goto LAB_00015308;
LAB_000153a8:
      uVar22 = uVar15 - 0x30;
      if (9 < uVar22) goto LAB_00015344;
      if (uVar15 != 0x2d) break;
      in_t3 = 0xffffffff;
    }
    in_t3 = 0;
  } while (uVar15 == 0x2b);
  ppuVar21 = (uint **)pc_00->input;
LAB_000153dc:
  name = (uint **)0x0;
  puVar29 = (uint *)0x0;
  in_t5 = 0xffffffff;
  uVar17 = 0x30;
  in_t8 = 10;
  ppuVar28 = ppuVar21;
LAB_000153f8:
  if (in_t3 == 0xffffffff) {
    uVar22 = 0x30 - uVar15;
  }
  uVar15 = (int)uVar22 >> 0x1f;
  puVar16 = (uint *)((int)puVar29 + uVar22);
  in_t2 = (uint *)((int)name + (puVar16 < puVar29) + uVar15);
  in_t4 = (uint **)((uint)in_t2 ^ uVar15);
  name = (uint **)((uint)in_t4 & ~((uint)name ^ uVar15));
  if ((int)name < 0) goto LAB_00017ad0;
  uVar15 = (uint)*(byte *)((int)ppuVar28 + 1);
  uVar22 = uVar15 - 0x30;
  in_t4 = (uint **)((int)ppuVar28 + 1);
  if (uVar22 < 10) goto LAB_00015528;
  name = (uint **)0xfffffffd;
  if (((*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c) ||
     (puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29)) {
    pc_00->input = (char *)in_t4;
    uVar15 = 0x13;
    apuStack_5e8[0] = (uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_);
    puVar29 = (uint *)0x112;
    if (in_t3 == 0) {
      uVar15 = 0x14;
    }
    iStack_660 = (int)in_t4 - (int)ppuVar21;
    if (in_t3 == 0) {
      puVar29 = (uint *)0x113;
    }
    puVar19 = (uint *)((int)puVar31 + uVar15);
    puStack_65c = in_t2;
    puStack_630 = puVar16;
    goto LAB_00014f74;
  }
  in_t2 = (uint *)((int)in_t2 + (uint)(puVar16 + -0x20000000 < puVar16));
  iVar9 = 8;
  ppuVar21 = name;
  if (in_t2 != (uint *)0x0) goto LAB_00017ae0;
  in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 3);
  ppuVar28 = (uint **)((int)ppuVar28 + 3);
  ppuVar21 = in_t0 + -0xc;
  name = (uint **)((int)puVar29 * 4);
  do {
    puVar29 = (uint *)((int)((int)name + (int)puVar29) * 2);
    if (ppuVar21 < &DAT_0000000a) {
      in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);
      puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);
      ppuVar28 = (uint **)((int)ppuVar28 + 1);
      ppuVar21 = in_t0 + -0xc;
    }
    iVar9 = iVar9 + -1;
    name = (uint **)((int)puVar29 << 2);
  } while (iVar9 != 0);
  in_t2 = puVar16;
  if (in_t3 == 0xffffffff) {
    ppuVar12 = in_t0;
    if (ppuVar21 < &DAT_0000000a) {
      do {
        if (ppuVar12 != (uint **)0x30) {
          puVar29 = (uint *)((int)puVar29 + 1);
          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;
          break;
        }
        ppuVar28 = (uint **)((int)ppuVar28 + 1);
        name = (uint **)(int)(char)*(byte *)ppuVar28;
        ppuVar12 = name;
      } while (name + -0xc <= &DAT_00000009);
    }
LAB_00015c20:
    if (puVar29 != (uint *)0x0) {
      in_t2 = (uint *)((int)puVar16 + -1);
      ppuVar21 = name;
      if (puVar16 == (uint *)0x80000000) {
LAB_00017ae0:
        name = ppuVar21;
        uVar15 = 2;
        puVar29 = (uint *)0x3f;
        puVar19 = (uint *)((int)puVar31 + 2);
        goto LAB_00014f74;
      }
      puVar29 = (uint *)(1000000000 - (int)puVar29);
    }
    uVar15 = 0x15;
    apuStack_5e8[1] = puVar29;
    apuStack_5e8[0] = in_t2;
    puVar29 = (uint *)0x114;
    pc_00->input = (char *)ppuVar28;
    puVar19 = (uint *)((int)puVar31 + 0x15);
    goto LAB_00014f74;
  }
  if (ppuVar21 < &DAT_0000000a) {
LAB_000154dc:
    do {
      ppuVar28 = (uint **)((int)ppuVar28 + 1);
    } while ((int)(char)*(byte *)ppuVar28 - 0x30U < 10);
    if (in_t3 == 0xffffffff) goto LAB_00015c20;
  }
  apuStack_5e8[0] = puVar16;
  uVar15 = 0x16;
  apuStack_5e8[1] = puVar29;
  puVar29 = (uint *)0x115;
  pc_00->input = (char *)ppuVar28;
  if (in_t3 != 0) {
    uVar15 = 0x15;
    puVar29 = (uint *)0x114;
  }
  puVar19 = (uint *)((int)puVar31 + uVar15);
LAB_00014f74:
  psVar27 = psVar32;
  if ((uint *)0x70 < puVar19) goto LAB_0001504c;
  iVar9 = *(int *)(puVar33 + 0x23270);
  if ((int)(char)*(byte *)((int)puVar19 + iVar30) != uVar15) goto LAB_00015050;
  puVar25 = (uint *)(uint)*(byte *)((int)puVar19 + iVar18);
  if (puVar25 == (uint *)0x0) {
    puStack_66c = auStack_5b0;
    puVar25 = puVar14 + 0xe;
    puVar31 = puStack_66c;
    do {
      puVar16 = puVar31;
      puVar19 = puVar25;
      puVar25 = puVar19 + 4;
      uVar22 = puVar19[1];
      uVar15 = puVar19[2];
      uVar17 = puVar19[3];
      *puVar16 = *puVar19;
      puVar16[1] = uVar22;
      puVar16[2] = uVar15;
      puVar16[3] = uVar17;
      puVar31 = puVar16 + 4;
    } while (puVar25 != puVar14 + 0x1a);
    uVar17 = puVar19[5];
    iVar10 = -0x1c;
    puVar16[4] = *puVar25;
    puVar16[5] = uVar17;
    puStack_674 = (uint *)puVar14[0x13];
    in_t3 = puVar14[0x11];
    in_t2 = (uint *)puVar14[0x10];
    unaff_s6 = (short *)puVar14[0x12];
    ppuVar28 = (uint **)puVar14[0x15];
    in_t0 = (uint **)puVar14[0x14];
    in_t5 = puVar14[0x17];
    in_t4 = (uint **)puVar14[0x16];
    uVar17 = puVar14[0x18];
    in_t6 = puVar14[0x19];
    in_t8 = puVar14[0x1a];
    iVar9 = 0;
    goto LAB_00015adc;
  }
  if (iStack_670 != 0) {
    iStack_670 = iStack_670 + -1;
  }
  puVar14 = puVar14 + 0xe;
  in_t0 = apuStack_5b8;
  apuStack_5e8[3] = puStack_630;
  apuStack_5e8[2] = puStack_65c;
  iStack_5d8 = iStack_660;
  ppuVar21 = apuStack_5e8;
  puVar29 = puVar14;
  do {
    puVar31 = puVar29;
    ppuVar12 = ppuVar21;
    ppuVar21 = ppuVar12 + 4;
    puVar19 = ppuVar12[1];
    name = (uint **)ppuVar12[2];
    puVar29 = ppuVar12[3];
    *puVar31 = (uint)*ppuVar12;
    puVar31[1] = (uint)puVar19;
    puVar31[2] = (uint)name;
    puVar31[3] = (uint)puVar29;
    puVar29 = puVar31 + 4;
  } while (ppuVar21 != in_t0);
  puVar29 = (uint *)0xfffffffe;
  puVar19 = ppuVar12[5];
  puVar31[4] = (uint)*ppuVar21;
  puVar31[5] = (uint)puVar19;
  do {
    while( true ) {
      psVar27 = psVar32 + 1;
      psVar32[1] = (short)puVar25;
      if ((psVar27 < &sStack_552) && (puVar25 != (uint *)0xc)) break;
LAB_00015278:
      do {
        do {
          if (iStack_dc == *piVar8) {
            return;
          }
          iVar9 = iStack_dc;
          uVar7 = (**(code **)(puVar33 + 0x23488))();
          bVar2 = name == (uint **)0x0;
          *(undefined4 *)&pc_00->day = uVar7;
          *(int *)((int)&pc_00->day + 4) = iVar9;
        } while (bVar2);
        name = (uint **)puVar14[3];
        if (puVar14[2] == 0x80000000) {
          bVar2 = name == (uint **)0x0;
        }
        *(uint *)&(pc_00->year).value = -(uint)(-(int)name != 0) - puVar14[2];
        *(int *)((int)&(pc_00->year).value + 4) = -(int)name;
      } while (bVar2);
      puVar25 = puVar14 + 4;
      puVar14 = puVar14 + -0x2a;
      psVar32 = psVar27 + -3;
      iVar10 = 0xe;
      (pc_00->year).digits = *puVar25;
      iVar9 = -0x5d;
LAB_00015adc:
      puVar14 = puVar14 + 0xe;
      puStack_5a8 = in_t2;
      in_t2 = auStack_580;
      uStack_5a4 = in_t3;
      apsStack_5a0[1] = (short *)puStack_674;
      apsStack_5a0[0] = unaff_s6;
      ppuStack_594 = ppuVar28;
      ppuStack_598 = in_t0;
      uStack_58c = in_t5;
      ppuStack_590 = in_t4;
      uStack_588 = uVar17;
      uStack_584 = in_t6;
      auStack_580[0] = in_t8;
      puVar25 = puStack_66c;
      puVar31 = puVar14;
      do {
        puVar16 = puVar31;
        puVar19 = puVar25;
        in_t0 = (uint **)*puVar19;
        puVar25 = puVar19 + 4;
        uVar23 = puVar19[1];
        uVar22 = puVar19[2];
        uVar15 = puVar19[3];
        *puVar16 = (uint)in_t0;
        puVar16[1] = uVar23;
        puVar16[2] = uVar22;
        puVar16[3] = uVar15;
        puVar31 = puVar16 + 4;
      } while (puVar25 != in_t2);
      name = (uint **)(int)*psVar32;
      uVar15 = puVar19[5];
      pbVar26 = (byte *)((int)name + iVar9);
      puVar16[4] = *puVar25;
      puVar16[5] = uVar15;
      if ((pbVar26 < (byte *)0x71) && ((uint **)(int)(char)pbVar26[iVar30] == name)) {
        puVar25 = (uint *)(uint)pbVar26[iVar18];
      }
      else {
        puVar25 = (uint *)(int)*(char *)(iVar10 + iVar5 + 0x6338);
      }
    }
    puVar31 = (uint *)(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4);
    ppuVar21 = name;
    psVar32 = psVar27;
    if (puVar31 != (uint *)0xffffffa3) goto LAB_00014f50;
LAB_0001504c:
    iVar9 = *(int *)(puVar33 + 0x23270);
    psVar32 = psVar27;
LAB_00015050:
    uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370);
    if (uVar15 != 0) {
      uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);
      puVar19 = puVar14 + (1 - uVar22) * 0xe;
      puVar25 = puVar19;
      puVar31 = auStack_5b0;
      do {
        puVar20 = puVar31;
        puVar16 = puVar25;
        puVar25 = puVar16 + 4;
        uVar24 = puVar16[1];
        uVar23 = puVar16[2];
        uVar17 = puVar16[3];
        *puVar20 = *puVar16;
        puVar20[1] = uVar24;
        puVar20[2] = uVar23;
        puVar20[3] = uVar17;
        puVar31 = puVar20 + 4;
      } while (puVar25 != puVar19 + 0xc);
      uVar17 = puVar16[5];
      uVar23 = uVar15 - 4 & 0xff;
      puVar20[4] = *puVar25;
      puVar20[5] = uVar17;
      puStack_674 = (uint *)puVar19[5];
      in_t3 = puVar19[3];
      in_t2 = (uint *)puVar19[2];
      unaff_s6 = (short *)puVar19[4];
      ppuVar28 = (uint **)puVar19[7];
      in_t0 = (uint **)puVar19[6];
      in_t5 = puVar19[9];
      in_t4 = (uint **)puVar19[8];
      uVar17 = puVar19[10];
      in_t6 = puVar19[0xb];
      in_t8 = puVar19[0xc];
      if (uVar23 < 0x58) {
                    /* WARNING: Could not recover jumptable at 0x00015220. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        (*(code *)(puVar33 + *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))
                  ();
        return;
      }
      psVar32 = psVar32 + -uVar22;
      puVar14 = puVar14 + uVar22 * -0xe;
      iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;
      iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);
      puStack_66c = auStack_5b0;
      goto LAB_00015adc;
    }
    if (iStack_670 == 3) {
      if ((int)puVar29 < 1) {
        psVar27 = psVar32;
        if (puVar29 == (uint *)0x0) goto LAB_00015278;
      }
      else {
        puVar29 = (uint *)0xfffffffe;
      }
    }
    name = (uint **)0xffffffa3;
    while ((((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),
             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||
            (*(char *)(uVar15 + iVar30) != '\x01')) ||
           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar18), puVar25 == (uint *)0x0))) {
      psVar27 = psVar32;
      if (psVar32 == asStack_578) goto LAB_00015278;
      psVar32 = psVar32 + -1;
      puVar25 = (uint *)(int)*psVar32;
      puVar14 = puVar14 + -0xe;
    }
    puVar14 = puVar14 + 0xe;
    in_t0 = apuStack_5b8;
    apuStack_5e8[3] = puStack_630;
    apuStack_5e8[2] = puStack_65c;
    iStack_5d8 = iStack_660;
    ppuVar21 = apuStack_5e8;
    puVar31 = puVar14;
    do {
      puVar19 = puVar31;
      ppuVar12 = ppuVar21;
      ppuVar21 = ppuVar12 + 4;
      puVar20 = ppuVar12[1];
      puVar16 = ppuVar12[2];
      puVar31 = ppuVar12[3];
      *puVar19 = (uint)*ppuVar12;
      puVar19[1] = (uint)puVar20;
      puVar19[2] = (uint)puVar16;
      puVar19[3] = (uint)puVar31;
      puVar31 = puVar19 + 4;
    } while (ppuVar21 != in_t0);
    name = (uint **)0x3;
    puVar31 = ppuVar12[5];
    iStack_670 = 3;
    puVar19[4] = (uint)*ppuVar21;
    puVar19[5] = (uint)puVar31;
  } while( true );
LAB_00015528:
  puVar29 = (uint *)((int)puVar16 >> 0x1f);
  bVar2 = false;
  if (puVar29 == in_t2) {
    in_t2 = (uint *)((uint)puVar16 >> 0x1e);
    in_t0 = (uint **)((int)((int)puVar29 +
                           (uint)((uint)((int)puVar16 * 5) < (uint)((int)puVar16 * 4)) +
                           ((uint)in_t2 | (int)puVar29 << 2)) * 2);
    name = (uint **)((uint)((int)puVar16 * 5) >> 0x1f | (uint)in_t0);
  }
  else {
    ppuVar28 = (uint **)(ZEXT48(in_t2) * 10);
    unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20);
    in_t6 = (int)puVar16 * 4;
    puStack_674 = (uint *)((uint)puVar16 >> 0x1e);
    in_t0 = (uint **)((int)puVar16 * 10);
    psVar27 = unaff_s6;
    if ((int)in_t2 < 0) {
      psVar27 = unaff_s6 + -5;
    }
    name = (uint **)((int)ppuVar28 +
                    ((uint)((int)puVar16 * 5) >> 0x1f |
                    (int)((int)puStack_674 + (uint)((uint)((int)puVar16 * 5) < in_t6)) * 2));
    if ((int)name >> 0x1f != (uint)(name < ppuVar28) + (int)psVar27) {
      bVar2 = true;
      in_t0 = (uint **)((int)((int)in_t2 +
                             (uint)((uint)((int)puVar16 * 5) < in_t6) +
                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);
      name = (uint **)((uint)((int)puVar16 * 5) >> 0x1f | (uint)in_t0);
    }
  }
  puVar29 = (uint *)((int)puVar16 * 10);
  ppuVar28 = in_t4;
  if (bVar2) goto LAB_00017ad0;
  goto LAB_000153f8;
LAB_00017ad0:
  uVar15 = 2;
  puVar29 = (uint *)0x3f;
  puVar19 = (uint *)((int)puVar31 + 2);
  goto LAB_00014f74;
  while( true ) {
    if (bVar13 == 0x28) {
      iVar9 = iVar9 + 1;
    }
    else if (bVar13 == 0x29) {
      iVar9 = iVar9 + -1;
    }
    if (iVar9 == 0) break;
LAB_000157a8:
    name = ppuVar21;
    ppuVar21 = (uint **)((int)name + 1);
    pc_00->input = (char *)ppuVar21;
    bVar13 = *(byte *)name;
    if (bVar13 == 0) goto LAB_000152b8;
  }
  bVar13 = *(byte *)((int)name + 1);
  goto LAB_000152f0;
}



/* WARNING: Type propagation algorithm not settling */

int FUN_00014998(undefined4 param_1,int param_2)

{
  char cVar1;
  bool bVar2;
  undefined *puVar3;
  undefined *puVar4;
  undefined4 uVar5;
  int iVar6;
  int *piVar7;
  int iVar8;
  int iVar9;
  byte bVar12;
  int iVar10;
  uint **ppuVar11;
  uint *puVar13;
  undefined4 *puVar14;
  uint uVar15;
  uint **ppuVar16;
  uint *puVar17;
  uint uVar18;
  uint *puVar19;
  uint *puVar20;
  uint **ppuVar21;
  uint uVar22;
  uint uVar23;
  uint **in_t0;
  uint uVar24;
  uint *in_t2;
  uint in_t3;
  uint **in_t4;
  uint in_t5;
  uint in_t6;
  uint *puVar25;
  byte *pbVar26;
  short *psVar27;
  uint **ppuVar28;
  uint *puVar29;
  int iVar30;
  undefined *unaff_s4;
  uint *puVar31;
  short *psVar32;
  short *unaff_s6;
  uint in_t8;
  undefined *puVar33;
  code *pcVar34;
  uint *puStack_674;
  int iStack_670;
  uint *puStack_66c;
  int iStack_660;
  uint *puStack_65c;
  uint *puStack_630;
  uint *apuStack_5e8 [4];
  int iStack_5d8;
  uint *apuStack_5b8 [2];
  uint auStack_5b0 [2];
  uint *puStack_5a8;
  uint uStack_5a4;
  short *apsStack_5a0 [2];
  uint **ppuStack_598;
  uint **ppuStack_594;
  uint **ppuStack_590;
  uint uStack_58c;
  uint uStack_588;
  uint uStack_584;
  uint auStack_580 [2];
  short asStack_578 [19];
  short sStack_552;
  uint auStack_550 [279];
  byte abStack_f1 [21];
  int iStack_dc;
  int iStack_d8;
  uint **ppuStack_d4;
  undefined *puStack_d0;
  undefined *puStack_cc;
  undefined *puStack_c8;
  undefined1 auStack_80 [100];
  int local_1c;
  
  puVar3 = PTR___stack_chk_guard_00038350;
  local_1c = *(int *)PTR___stack_chk_guard_00038350;
  uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x50a0,5);
  FUN_00014188(uVar5,param_1);
  puVar4 = PTR_stderr_00038360;
  if (*(int *)(param_2 + 0x9c) == 0) {
    ppuVar28 = *(uint ***)PTR_stderr_00038360;
    if (*(char *)(param_2 + 0xb4) != *(char *)(param_2 + 0xbb)) goto LAB_00014a30;
LAB_00014c7c:
    uVar18 = 0;
  }
  else {
    ppuVar28 = *(uint ***)PTR_stderr_00038360;
    if (*(char *)(param_2 + 0xb6) == '\0') {
      in_t3 = *(uint *)(param_2 + 0x3c);
      in_t2 = *(uint **)(param_2 + 0x38);
      in_t0 = *(uint ***)(param_2 + 0x28);
      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);
      *(undefined1 *)(param_2 + 0xb6) = 1;
      if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) {
        ppuVar28 = *(uint ***)puVar4;
        uVar18 = 1;
        goto LAB_00014a80;
      }
      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);
      ppuVar28 = *(uint ***)puVar4;
    }
    else if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) goto LAB_00014c7c;
LAB_00014a30:
    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);
    in_t0 = *(uint ***)(param_2 + 0x28);
    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);
    uVar18 = 1;
    ppuVar28 = *(uint ***)puVar4;
    *(undefined1 *)(param_2 + 0xbb) = *(undefined1 *)(param_2 + 0xb4);
  }
LAB_00014a80:
  if ((*(int *)(param_2 + 0xac) == 0) || (*(char *)(param_2 + 0xb9) != '\0')) {
    if ((*(int *)(param_2 + 0xa0) != 0) && (*(char *)(param_2 + 0xb7) == '\0')) {
      if (uVar18 != 0) goto LAB_00014d08;
LAB_00014ab8:
      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);
      uVar5 = FUN_00014838(param_2,auStack_80);
      in_t0 = *(uint ***)(param_2 + 8);
      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);
      ppuVar28 = *(uint ***)puVar4;
      uVar18 = 1;
      *(undefined1 *)(param_2 + 0xb7) = 1;
    }
  }
  else {
    in_t3 = *(uint *)(param_2 + 0x54);
    in_t2 = *(uint **)(param_2 + 0x50);
    in_t0 = *(uint ***)(param_2 + 0x48);
    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168);
    if (*(int *)(param_2 + 0x5c) != 0) {
      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);
    }
    ppuVar28 = *(uint ***)puVar4;
    if (*(int *)(param_2 + 0x1c) == 1) {
      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);
      ppuVar28 = *(uint ***)puVar4;
    }
    *(undefined1 *)(param_2 + 0xb9) = 1;
    if (*(int *)(param_2 + 0xa0) == 0) {
      uVar18 = 1;
    }
    else {
      uVar18 = (uint)*(byte *)(param_2 + 0xb7);
      if (uVar18 == 0) {
LAB_00014d08:
        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);
        ppuVar28 = *(uint ***)puVar4;
        goto LAB_00014ab8;
      }
    }
  }
  if ((*(int *)(param_2 + 0xa4) == 0) || (*(char *)(param_2 + 0xb8) != '\0')) {
    if ((*(int *)(param_2 + 0xb0) == 0) ||
       (unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0')) {
      if (*(char *)(param_2 + 0x98) == '\0') goto LAB_00014bb0;
      param_2 = *(int *)(param_2 + 0x58);
      unaff_s4 = (undefined *)(param_2 >> 0x1f);
      if (uVar18 != 0) goto LAB_00014d8c;
      goto LAB_00014c1c;
    }
    unaff_s4 = PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5130;
LAB_00014d38:
    uVar5 = FUN_00013f30(*(undefined4 *)(param_2 + 0x18),auStack_80);
    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);
    *(undefined1 *)(param_2 + 0xba) = 1;
    if (*(char *)(param_2 + 0x98) != '\0') {
      param_2 = *(int *)(param_2 + 0x58);
      ppuVar28 = *(uint ***)puVar4;
      goto LAB_00014d88;
    }
  }
  else {
    (*(code *)PTR___fprintf_chk_00038280)
              (ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac,*(undefined4 *)(param_2 + 0x14));
    *(undefined1 *)(param_2 + 0xb8) = 1;
    if (*(int *)(param_2 + 0xb0) == 0) {
      cVar1 = *(char *)(param_2 + 0x98);
      ppuVar28 = *(uint ***)puVar4;
    }
    else {
      ppuVar28 = *(uint ***)puVar4;
      if (*(char *)(param_2 + 0xba) == '\0') {
        unaff_s4 = PTR_LAB_0003811c + 0x5130;
        goto LAB_00014d38;
      }
      cVar1 = *(char *)(param_2 + 0x98);
    }
    if (cVar1 == '\0') goto LAB_00014bb0;
    param_2 = *(int *)(param_2 + 0x58);
LAB_00014d88:
    unaff_s4 = (undefined *)(param_2 >> 0x1f);
LAB_00014d8c:
    (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);
    ppuVar28 = *(uint ***)puVar4;
LAB_00014c1c:
    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);
    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);
  }
  ppuVar28 = *(uint ***)puVar4;
LAB_00014bb0:
  puVar14 = (undefined4 *)&DAT_0000000a;
  ppuVar21 = ppuVar28;
  (*(code *)PTR_fputc_00038298)();
  iVar6 = *(int *)puVar3;
  if (local_1c == iVar6) {
    return iVar6;
  }
  puVar33 = PTR___stack_chk_fail_00038334;
  (*(code *)PTR___stack_chk_fail_00038334)();
  piVar7 = *(int **)(puVar33 + 0x234a4);
  uVar18 = 0xfffffffe;
  puStack_cc = puVar3;
  puVar31 = (uint *)&DAT_00000026;
  iStack_dc = *piVar7;
  iVar6 = *(int *)(puVar33 + 0x23270);
  puStack_c8 = unaff_s4;
  puStack_d0 = puVar4;
  puVar13 = auStack_550;
  ppuStack_d4 = ppuVar28;
  puVar29 = (uint *)0xfffffffe;
  iVar30 = *(int *)(puVar33 + 0x23270) + 0x6250;
  iStack_d8 = param_2;
  puVar25 = (uint *)0x0;
  iVar8 = *(int *)(puVar33 + 0x23270) + 0x62c4;
  asStack_578[0] = 0;
  iStack_670 = 0;
  psVar32 = asStack_578;
LAB_00014f50:
  ppuVar28 = (uint **)0x800000;
  puVar19 = puVar31;
  if (puVar29 == (uint *)0xfffffffe) {
    ppuVar21 = (uint **)*puVar14;
    in_t2 = (uint *)0x1;
    ppuVar28 = (uint **)0x80001f;
    in_t4 = (uint **)0x2d;
    bVar12 = *(byte *)ppuVar21;
    in_t5 = 0x2b;
    in_t6 = 0x28;
    uVar18 = 0x29;
LAB_000152f0:
    in_t0 = (uint **)(int)(char)bVar12;
    uVar15 = (uint)bVar12;
LAB_000152f4:
    uVar22 = uVar15 - 9;
    ppuVar16 = (uint **)(uint)(uVar22 < 0x18);
    if (ppuVar16 == (uint **)0x0) goto LAB_000153a8;
LAB_00015308:
    ppuVar11 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f);
    while (ppuVar11 != (uint **)0x0) {
      ppuVar21 = (uint **)((int)ppuVar21 + 1);
      *puVar14 = ppuVar21;
      in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;
      uVar15 = (uint)*(byte *)ppuVar21;
      ppuVar16 = (uint **)(uVar15 - 9);
      if ((uint **)0x17 < ppuVar16) goto LAB_000153a8;
      ppuVar16 = (uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f);
      ppuVar11 = ppuVar16;
    }
LAB_00015344:
    in_t3 = 0xffffffff;
    if (uVar15 == 0x2d) goto LAB_00015358;
    if (uVar15 == 0x2b) goto LAB_00015354;
    if ((0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))
       ) {
      pbVar26 = (byte *)*puVar14;
      ppuVar16 = (uint **)(abStack_f1 + 1);
      in_t0 = (uint **)(abStack_f1 + 0x14);
      ppuVar28 = (uint **)&DAT_0000002e;
      ppuVar21 = ppuVar16;
      do {
        pbVar26 = pbVar26 + 1;
        if (ppuVar21 < in_t0) {
          *(byte *)ppuVar21 = (byte)uVar15;
          ppuVar21 = (uint **)((int)ppuVar21 + 1);
        }
        *puVar14 = pbVar26;
        iVar9 = (int)(char)*pbVar26;
        uVar15 = (uint)*pbVar26;
      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||
              (uVar15 == 0x2e));
      *(byte *)ppuVar21 = 0;
      ppuVar21 = ppuVar16;
      bVar12 = abStack_f1[1];
      while (bVar12 != 0) {
        if (bVar12 - 0x61 < 0x1a) {
          bVar12 = bVar12 - 0x20;
        }
        *(byte *)ppuVar21 = bVar12;
        ppuVar21 = (uint **)((int)ppuVar21 + 1);
        bVar12 = *(byte *)ppuVar21;
      }
      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);
      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);
      do {
        iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);
        puStack_674 = puVar25;
        if (iVar9 == 0) {
LAB_00015708:
          puVar29 = *(uint **)(unaff_s6 + 2);
          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);
          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);
          goto LAB_00014f5c;
        }
        unaff_s6 = unaff_s6 + 6;
        ppuVar21 = *(uint ***)unaff_s6;
      } while (ppuVar21 != (uint **)0x0);
      puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16);
      if (puStack_674 == (uint *)0x3) {
        bVar2 = true;
      }
      else if (puStack_674 == (uint *)0x4) {
        bVar2 = abStack_f1[4] == '.';
      }
      else {
        bVar2 = false;
      }
      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);
      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);
      do {
        if (bVar2) {
          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);
        }
        else {
          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);
        }
        puStack_66c = puVar25;
        if (iVar9 == 0) {
          puVar29 = *(uint **)(unaff_s6 + 2);
          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);
          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);
          goto LAB_00014f5c;
        }
        unaff_s6 = unaff_s6 + 6;
        ppuVar21 = *(uint ***)unaff_s6;
      } while (ppuVar21 != (uint **)0x0);
      iVar9 = *(int *)(puVar33 + 0x2326c);
      ppuVar21 = ppuVar16;
      iVar10 = FUN_00014388(puVar14);
      unaff_s6 = asStack_578;
      if (iVar10 != 0) {
        puVar29 = *(uint **)(iVar10 + 4);
        apuStack_5e8[1] = *(uint **)(iVar10 + 8);
        apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);
        puStack_66c = (uint *)0x0;
        goto LAB_00014f5c;
      }
      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);
      iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);
      if (iVar10 == 0) {
        puVar29 = (uint *)0x103;
        apuStack_5e8[1] = (uint *)0x0;
        apuStack_5e8[0] = (uint *)0x0;
LAB_00015588:
        iVar9 = *(int *)(puVar33 + 0x23270);
        ppuVar16 = ppuVar21;
        puStack_66c = puVar31;
        goto LAB_0001558c;
      }
      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);
      ppuVar11 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);
      ppuVar21 = ppuVar11;
      psVar27 = unaff_s6;
      do {
        iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);
        if (iVar10 == 0) {
          puVar29 = *(uint **)(psVar27 + 2);
          apuStack_5e8[1] = *(uint **)(psVar27 + 4);
          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);
          goto LAB_00014f5c;
        }
        psVar27 = psVar27 + 6;
        ppuVar21 = *(uint ***)psVar27;
      } while (ppuVar21 != (uint **)0x0);
      pbVar26 = (byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1));
      if (*pbVar26 == 0x53) {
        *pbVar26 = 0;
        pcVar34 = *(code **)(puVar33 + 0x234c8);
        do {
          iVar10 = (*pcVar34)(ppuVar16);
          ppuVar21 = ppuVar11;
          puStack_66c = puVar31;
          if (iVar10 == 0) goto LAB_00015708;
          unaff_s6 = unaff_s6 + 6;
          ppuVar11 = *(uint ***)unaff_s6;
          pcVar34 = *(code **)(puVar33 + 0x234c8);
        } while (ppuVar11 != (uint **)0x0);
        *pbVar26 = 0x53;
      }
      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);
      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);
      pcVar34 = *(code **)(puVar33 + 0x234c8);
      do {
        iVar10 = (*pcVar34)(ppuVar16);
        puStack_66c = puVar31;
        if (iVar10 == 0) goto LAB_00015708;
        unaff_s6 = unaff_s6 + 6;
        ppuVar21 = *(uint ***)unaff_s6;
        pcVar34 = *(code **)(puVar33 + 0x234c8);
      } while (ppuVar21 != (uint **)0x0);
      if (puStack_674 == (uint *)0x1) {
        ppuVar21 = *(uint ***)(puVar33 + 0x23268);
        if (abStack_f1[1] == 0x41) {
          puVar29 = (uint *)0x111;
          apuStack_5e8[1] = (uint *)0xfffff1f0;
          apuStack_5e8[0] = (uint *)0xffffffff;
          goto LAB_00015588;
        }
        ppuVar11 = ppuVar21 + 0x1e51;
        while( true ) {
          ppuVar21 = ppuVar11;
          if (ppuVar21[3] == (uint *)0x0) break;
          ppuVar11 = ppuVar21 + 3;
          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {
            puVar29 = ppuVar21[4];
            apuStack_5e8[1] = ppuVar21[5];
            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);
            goto LAB_00014f5c;
          }
        }
      }
      if (abStack_f1[1] != 0) {
        bVar2 = false;
        ppuVar21 = ppuVar16;
        ppuVar11 = ppuVar16;
        bVar12 = abStack_f1[1];
        do {
          if (bVar12 == 0x2e) {
            bVar2 = true;
          }
          else {
            ppuVar21 = (uint **)((int)ppuVar21 + 1);
          }
          ppuVar11 = (uint **)((int)ppuVar11 + 1);
          bVar12 = *(byte *)ppuVar11;
          *(byte *)ppuVar21 = bVar12;
        } while (bVar12 != 0);
        puStack_674 = puVar31;
        if ((bVar2) &&
           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {
          puVar29 = *(uint **)(iVar9 + 4);
          apuStack_5e8[1] = *(uint **)(iVar9 + 8);
          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);
          goto LAB_00014f5c;
        }
      }
      ppuVar21 = *(uint ***)(puVar33 + 0x23270);
      if (*(char *)((int)puVar14 + 0xb5) == '\0') goto LAB_00017ae0;
      uVar5 = (**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5);
      puVar29 = (uint *)0x3f;
      FUN_00014188(uVar5);
      uVar15 = 2;
      puVar19 = (uint *)((int)puVar31 + 2);
      goto LAB_00014f74;
    }
    iVar9 = 0;
    if (uVar15 == 0x28) {
      ppuVar21 = (uint **)*puVar14;
      goto LAB_000157a8;
    }
    *puVar14 = (byte *)((int)ppuVar21 + 1);
    puVar29 = (uint *)(uint)*(byte *)ppuVar21;
    iVar9 = *(int *)(puVar33 + 0x23270);
    if (puVar29 != (uint *)0x0) goto LAB_0001558c;
    uVar15 = 0;
    goto LAB_00014f74;
  }
LAB_00014f5c:
  ppuVar16 = ppuVar21;
  if ((int)puVar29 < 1) {
LAB_000152b8:
    uVar15 = 0;
    puVar29 = (uint *)0x0;
  }
  else {
    iVar9 = *(int *)(puVar33 + 0x23270);
    if ((int)puVar29 < 0x116) {
LAB_0001558c:
      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);
      puVar19 = (uint *)((int)puVar31 + uVar15);
    }
    else {
      uVar15 = 2;
      puVar19 = (uint *)((int)puVar31 + 2);
    }
  }
  goto LAB_00014f74;
LAB_00015354:
  do {
    in_t3 = 1;
LAB_00015358:
    while( true ) {
      ppuVar21 = (uint **)*puVar14;
      do {
        ppuVar21 = (uint **)((int)ppuVar21 + 1);
        *puVar14 = ppuVar21;
        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;
        uVar15 = (uint)*(byte *)ppuVar21;
        in_t8 = (uint)(uVar15 - 9 < 0x18);
        if (in_t8 == 0) {
          uVar22 = uVar15 - 0x30;
          if (9 < uVar22) goto LAB_000152f4;
          goto LAB_000153dc;
        }
      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);
      uVar22 = uVar15 - 9;
      ppuVar16 = (uint **)(uint)(uVar22 < 0x18);
      if (ppuVar16 != (uint **)0x0) goto LAB_00015308;
LAB_000153a8:
      uVar22 = uVar15 - 0x30;
      if (9 < uVar22) goto LAB_00015344;
      if (uVar15 != 0x2d) break;
      in_t3 = 0xffffffff;
    }
    in_t3 = 0;
  } while (uVar15 == 0x2b);
  ppuVar21 = (uint **)*puVar14;
LAB_000153dc:
  ppuVar16 = (uint **)0x0;
  puVar29 = (uint *)0x0;
  in_t5 = 0xffffffff;
  uVar18 = 0x30;
  in_t8 = 10;
  ppuVar28 = ppuVar21;
LAB_000153f8:
  if (in_t3 == 0xffffffff) {
    uVar22 = 0x30 - uVar15;
  }
  uVar15 = (int)uVar22 >> 0x1f;
  puVar17 = (uint *)((int)puVar29 + uVar22);
  in_t2 = (uint *)((int)ppuVar16 + (puVar17 < puVar29) + uVar15);
  in_t4 = (uint **)((uint)in_t2 ^ uVar15);
  ppuVar16 = (uint **)((uint)in_t4 & ~((uint)ppuVar16 ^ uVar15));
  if ((int)ppuVar16 < 0) goto LAB_00017ad0;
  uVar15 = (uint)*(byte *)((int)ppuVar28 + 1);
  uVar22 = uVar15 - 0x30;
  in_t4 = (uint **)((int)ppuVar28 + 1);
  if (uVar22 < 10) goto LAB_00015528;
  ppuVar16 = (uint **)0xfffffffd;
  if (((*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c) ||
     (puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29)) {
    *puVar14 = in_t4;
    uVar15 = 0x13;
    apuStack_5e8[0] = (uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_);
    puVar29 = (uint *)0x112;
    if (in_t3 == 0) {
      uVar15 = 0x14;
    }
    iStack_660 = (int)in_t4 - (int)ppuVar21;
    if (in_t3 == 0) {
      puVar29 = (uint *)0x113;
    }
    puVar19 = (uint *)((int)puVar31 + uVar15);
    puStack_65c = in_t2;
    puStack_630 = puVar17;
    goto LAB_00014f74;
  }
  in_t2 = (uint *)((int)in_t2 + (uint)(puVar17 + -0x20000000 < puVar17));
  iVar9 = 8;
  ppuVar21 = ppuVar16;
  if (in_t2 != (uint *)0x0) goto LAB_00017ae0;
  in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 3);
  ppuVar28 = (uint **)((int)ppuVar28 + 3);
  ppuVar21 = in_t0 + -0xc;
  ppuVar16 = (uint **)((int)puVar29 * 4);
  do {
    puVar29 = (uint *)((int)((int)ppuVar16 + (int)puVar29) * 2);
    if (ppuVar21 < &DAT_0000000a) {
      in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);
      puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);
      ppuVar28 = (uint **)((int)ppuVar28 + 1);
      ppuVar21 = in_t0 + -0xc;
    }
    iVar9 = iVar9 + -1;
    ppuVar16 = (uint **)((int)puVar29 << 2);
  } while (iVar9 != 0);
  in_t2 = puVar17;
  if (in_t3 == 0xffffffff) {
    ppuVar11 = in_t0;
    if (ppuVar21 < &DAT_0000000a) {
      do {
        if (ppuVar11 != (uint **)0x30) {
          puVar29 = (uint *)((int)puVar29 + 1);
          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;
          break;
        }
        ppuVar28 = (uint **)((int)ppuVar28 + 1);
        ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;
        ppuVar11 = ppuVar16;
      } while (ppuVar16 + -0xc <= &DAT_00000009);
    }
LAB_00015c20:
    if (puVar29 != (uint *)0x0) {
      in_t2 = (uint *)((int)puVar17 + -1);
      ppuVar21 = ppuVar16;
      if (puVar17 == (uint *)0x80000000) {
LAB_00017ae0:
        ppuVar16 = ppuVar21;
        uVar15 = 2;
        puVar29 = (uint *)0x3f;
        puVar19 = (uint *)((int)puVar31 + 2);
        goto LAB_00014f74;
      }
      puVar29 = (uint *)(1000000000 - (int)puVar29);
    }
    uVar15 = 0x15;
    apuStack_5e8[1] = puVar29;
    apuStack_5e8[0] = in_t2;
    puVar29 = (uint *)0x114;
    *puVar14 = ppuVar28;
    puVar19 = (uint *)((int)puVar31 + 0x15);
    goto LAB_00014f74;
  }
  if (ppuVar21 < &DAT_0000000a) {
LAB_000154dc:
    do {
      ppuVar28 = (uint **)((int)ppuVar28 + 1);
    } while ((int)(char)*(byte *)ppuVar28 - 0x30U < 10);
    if (in_t3 == 0xffffffff) goto LAB_00015c20;
  }
  apuStack_5e8[0] = puVar17;
  uVar15 = 0x16;
  apuStack_5e8[1] = puVar29;
  puVar29 = (uint *)0x115;
  *puVar14 = ppuVar28;
  if (in_t3 != 0) {
    uVar15 = 0x15;
    puVar29 = (uint *)0x114;
  }
  puVar19 = (uint *)((int)puVar31 + uVar15);
LAB_00014f74:
  psVar27 = psVar32;
  if ((uint *)0x70 < puVar19) goto LAB_0001504c;
  iVar9 = *(int *)(puVar33 + 0x23270);
  if ((int)(char)*(byte *)((int)puVar19 + iVar30) != uVar15) goto LAB_00015050;
  puVar25 = (uint *)(uint)*(byte *)((int)puVar19 + iVar8);
  if (puVar25 == (uint *)0x0) {
    puStack_66c = auStack_5b0;
    puVar25 = puVar13 + 0xe;
    puVar31 = puStack_66c;
    do {
      puVar17 = puVar31;
      puVar19 = puVar25;
      puVar25 = puVar19 + 4;
      uVar22 = puVar19[1];
      uVar15 = puVar19[2];
      uVar18 = puVar19[3];
      *puVar17 = *puVar19;
      puVar17[1] = uVar22;
      puVar17[2] = uVar15;
      puVar17[3] = uVar18;
      puVar31 = puVar17 + 4;
    } while (puVar25 != puVar13 + 0x1a);
    uVar18 = puVar19[5];
    iVar10 = -0x1c;
    puVar17[4] = *puVar25;
    puVar17[5] = uVar18;
    puStack_674 = (uint *)puVar13[0x13];
    in_t3 = puVar13[0x11];
    in_t2 = (uint *)puVar13[0x10];
    unaff_s6 = (short *)puVar13[0x12];
    ppuVar28 = (uint **)puVar13[0x15];
    in_t0 = (uint **)puVar13[0x14];
    in_t5 = puVar13[0x17];
    in_t4 = (uint **)puVar13[0x16];
    uVar18 = puVar13[0x18];
    in_t6 = puVar13[0x19];
    in_t8 = puVar13[0x1a];
    iVar9 = 0;
    goto LAB_00015adc;
  }
  if (iStack_670 != 0) {
    iStack_670 = iStack_670 + -1;
  }
  puVar13 = puVar13 + 0xe;
  in_t0 = apuStack_5b8;
  apuStack_5e8[3] = puStack_630;
  apuStack_5e8[2] = puStack_65c;
  iStack_5d8 = iStack_660;
  ppuVar21 = apuStack_5e8;
  puVar29 = puVar13;
  do {
    puVar31 = puVar29;
    ppuVar11 = ppuVar21;
    ppuVar21 = ppuVar11 + 4;
    puVar19 = ppuVar11[1];
    ppuVar16 = (uint **)ppuVar11[2];
    puVar29 = ppuVar11[3];
    *puVar31 = (uint)*ppuVar11;
    puVar31[1] = (uint)puVar19;
    puVar31[2] = (uint)ppuVar16;
    puVar31[3] = (uint)puVar29;
    puVar29 = puVar31 + 4;
  } while (ppuVar21 != in_t0);
  puVar29 = (uint *)0xfffffffe;
  puVar19 = ppuVar11[5];
  puVar31[4] = (uint)*ppuVar21;
  puVar31[5] = (uint)puVar19;
LAB_00015014:
  psVar27 = psVar32 + 1;
  psVar32[1] = (short)puVar25;
  if (&sStack_552 <= psVar27) {
    iVar9 = 2;
LAB_00015278:
    do {
      if (iStack_dc == *piVar7) {
        return iVar9;
      }
      iVar9 = iStack_dc;
      uVar5 = (**(code **)(puVar33 + 0x23488))();
      bVar2 = ppuVar16 == (uint **)0x0;
      puVar14[0x10] = uVar5;
      puVar14[0x11] = iVar9;
      if (!bVar2) {
        ppuVar16 = (uint **)puVar13[3];
        if (puVar13[2] == 0x80000000) {
          bVar2 = ppuVar16 == (uint **)0x0;
        }
        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];
        puVar14[0xb] = -(int)ppuVar16;
        if (!bVar2) goto code_r0x00016f40;
      }
      iVar9 = 1;
    } while( true );
  }
  if (puVar25 == (uint *)0xc) {
    iVar9 = 0;
    goto LAB_00015278;
  }
  puVar31 = (uint *)(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4);
  ppuVar21 = ppuVar16;
  psVar32 = psVar27;
  if (puVar31 == (uint *)0xffffffa3) {
LAB_0001504c:
    iVar9 = *(int *)(puVar33 + 0x23270);
    psVar32 = psVar27;
LAB_00015050:
    uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370);
    if (uVar15 != 0) {
      uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);
      puVar19 = puVar13 + (1 - uVar22) * 0xe;
      puVar25 = puVar19;
      puVar31 = auStack_5b0;
      do {
        puVar20 = puVar31;
        puVar17 = puVar25;
        puVar25 = puVar17 + 4;
        uVar24 = puVar17[1];
        uVar23 = puVar17[2];
        uVar18 = puVar17[3];
        *puVar20 = *puVar17;
        puVar20[1] = uVar24;
        puVar20[2] = uVar23;
        puVar20[3] = uVar18;
        puVar31 = puVar20 + 4;
      } while (puVar25 != puVar19 + 0xc);
      uVar18 = puVar17[5];
      uVar23 = uVar15 - 4 & 0xff;
      puVar20[4] = *puVar25;
      puVar20[5] = uVar18;
      puStack_674 = (uint *)puVar19[5];
      in_t3 = puVar19[3];
      in_t2 = (uint *)puVar19[2];
      unaff_s6 = (short *)puVar19[4];
      ppuVar28 = (uint **)puVar19[7];
      in_t0 = (uint **)puVar19[6];
      in_t5 = puVar19[9];
      in_t4 = (uint **)puVar19[8];
      uVar18 = puVar19[10];
      in_t6 = puVar19[0xb];
      in_t8 = puVar19[0xc];
      if (uVar23 < 0x58) {
                    /* WARNING: Could not recover jumptable at 0x00015220. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        iVar6 = (*(code *)(puVar33 +
                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();
        return iVar6;
      }
      psVar32 = psVar32 + -uVar22;
      puVar13 = puVar13 + uVar22 * -0xe;
      iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;
      iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);
      puStack_66c = auStack_5b0;
      goto LAB_00015adc;
    }
    if (iStack_670 == 3) {
      if ((int)puVar29 < 1) {
        iVar9 = 1;
        psVar27 = psVar32;
        if (puVar29 == (uint *)0x0) goto LAB_00015278;
      }
      else {
        puVar29 = (uint *)0xfffffffe;
      }
    }
    ppuVar16 = (uint **)0xffffffa3;
    while ((((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),
             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||
            (*(char *)(uVar15 + iVar30) != '\x01')) ||
           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0))) {
      iVar9 = 1;
      psVar27 = psVar32;
      if (psVar32 == asStack_578) goto LAB_00015278;
      psVar32 = psVar32 + -1;
      puVar25 = (uint *)(int)*psVar32;
      puVar13 = puVar13 + -0xe;
    }
    puVar13 = puVar13 + 0xe;
    in_t0 = apuStack_5b8;
    apuStack_5e8[3] = puStack_630;
    apuStack_5e8[2] = puStack_65c;
    iStack_5d8 = iStack_660;
    ppuVar21 = apuStack_5e8;
    puVar31 = puVar13;
    do {
      puVar19 = puVar31;
      ppuVar11 = ppuVar21;
      ppuVar21 = ppuVar11 + 4;
      puVar20 = ppuVar11[1];
      puVar17 = ppuVar11[2];
      puVar31 = ppuVar11[3];
      *puVar19 = (uint)*ppuVar11;
      puVar19[1] = (uint)puVar20;
      puVar19[2] = (uint)puVar17;
      puVar19[3] = (uint)puVar31;
      puVar31 = puVar19 + 4;
    } while (ppuVar21 != in_t0);
    ppuVar16 = (uint **)0x3;
    puVar31 = ppuVar11[5];
    iStack_670 = 3;
    puVar19[4] = (uint)*ppuVar21;
    puVar19[5] = (uint)puVar31;
    goto LAB_00015014;
  }
  goto LAB_00014f50;
LAB_00015528:
  puVar29 = (uint *)((int)puVar17 >> 0x1f);
  bVar2 = false;
  if (puVar29 == in_t2) {
    in_t2 = (uint *)((uint)puVar17 >> 0x1e);
    in_t0 = (uint **)((int)((int)puVar29 +
                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +
                           ((uint)in_t2 | (int)puVar29 << 2)) * 2);
    ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);
  }
  else {
    ppuVar28 = (uint **)(ZEXT48(in_t2) * 10);
    unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20);
    in_t6 = (int)puVar17 * 4;
    puStack_674 = (uint *)((uint)puVar17 >> 0x1e);
    in_t0 = (uint **)((int)puVar17 * 10);
    psVar27 = unaff_s6;
    if ((int)in_t2 < 0) {
      psVar27 = unaff_s6 + -5;
    }
    ppuVar16 = (uint **)((int)ppuVar28 +
                        ((uint)((int)puVar17 * 5) >> 0x1f |
                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2));
    if ((int)ppuVar16 >> 0x1f != (uint)(ppuVar16 < ppuVar28) + (int)psVar27) {
      bVar2 = true;
      in_t0 = (uint **)((int)((int)in_t2 +
                             (uint)((uint)((int)puVar17 * 5) < in_t6) +
                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);
      ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);
    }
  }
  puVar29 = (uint *)((int)puVar17 * 10);
  ppuVar28 = in_t4;
  if (bVar2) goto LAB_00017ad0;
  goto LAB_000153f8;
LAB_00017ad0:
  uVar15 = 2;
  puVar29 = (uint *)0x3f;
  puVar19 = (uint *)((int)puVar31 + 2);
  goto LAB_00014f74;
  while( true ) {
    if (bVar12 == 0x28) {
      iVar9 = iVar9 + 1;
    }
    else if (bVar12 == 0x29) {
      iVar9 = iVar9 + -1;
    }
    if (iVar9 == 0) break;
LAB_000157a8:
    ppuVar16 = ppuVar21;
    ppuVar21 = (uint **)((int)ppuVar16 + 1);
    *puVar14 = ppuVar21;
    bVar12 = *(byte *)ppuVar16;
    if (bVar12 == 0) goto LAB_000152b8;
  }
  bVar12 = *(byte *)((int)ppuVar16 + 1);
  goto LAB_000152f0;
code_r0x00016f40:
  puVar25 = puVar13 + 4;
  puVar13 = puVar13 + -0x2a;
  psVar32 = psVar27 + -3;
  iVar10 = 0xe;
  puVar14[0xc] = *puVar25;
  iVar9 = -0x5d;
LAB_00015adc:
  puVar13 = puVar13 + 0xe;
  puStack_5a8 = in_t2;
  in_t2 = auStack_580;
  uStack_5a4 = in_t3;
  apsStack_5a0[1] = (short *)puStack_674;
  apsStack_5a0[0] = unaff_s6;
  ppuStack_594 = ppuVar28;
  ppuStack_598 = in_t0;
  uStack_58c = in_t5;
  ppuStack_590 = in_t4;
  uStack_588 = uVar18;
  uStack_584 = in_t6;
  auStack_580[0] = in_t8;
  puVar25 = puStack_66c;
  puVar31 = puVar13;
  do {
    puVar17 = puVar31;
    puVar19 = puVar25;
    in_t0 = (uint **)*puVar19;
    puVar25 = puVar19 + 4;
    uVar23 = puVar19[1];
    uVar22 = puVar19[2];
    uVar15 = puVar19[3];
    *puVar17 = (uint)in_t0;
    puVar17[1] = uVar23;
    puVar17[2] = uVar22;
    puVar17[3] = uVar15;
    puVar31 = puVar17 + 4;
  } while (puVar25 != in_t2);
  ppuVar16 = (uint **)(int)*psVar32;
  uVar15 = puVar19[5];
  pbVar26 = (byte *)((int)ppuVar16 + iVar9);
  puVar17[4] = *puVar25;
  puVar17[5] = uVar15;
  if ((pbVar26 < (byte *)0x71) && ((uint **)(int)(char)pbVar26[iVar30] == ppuVar16)) {
    puVar25 = (uint *)(uint)pbVar26[iVar8];
  }
  else {
    puVar25 = (uint *)(int)*(char *)(iVar10 + iVar6 + 0x6338);
  }
  goto LAB_00015014;
}


lui gp,0x3
addiu gp,gp,-0x48b8
addu gp,gp,t9
addiu sp,sp,-0xb0
lw t9,-0x7da8(gp)
li a2,0x5
sw s3,0xa4(sp)
sw s0,0x98(sp)
or s0,a1,zero
lw s3,-0x7d90(gp)
lw a1,-0x7fc4(gp)
sw s1,0x9c(sp)
or s1,a0,zero
or a0,zero,zero
sw gp,0x28(sp)
sw ra,0xac(sp)
addiu a1,a1,0x50a0
sw s2,0xa0(sp)
sw s4,0xa8(sp)
lw v0,0x0(s3)
sw v0,0x94(sp)
jalr t9
_nop
or a1,s1,zero
lw gp,0x28(sp)
lw t9,-0x7fc8(gp)
addiu t9,t9,0x4188
bal 0x00014188
_or a0,v0,zero
lw gp,0x28(sp)
lw v0,0x9c(s0)
bne v0,zero,0x00014c60
_lw s2,-0x7d80(gp)
lbu v1,0xb4(s0)
lbu v0,0xbb(s0)
beq v1,v0,0x00014c7c
_lw s1,0x0(s2)
lw a1,-0x7fc4(gp)
li a2,0x5
lw t9,-0x7da8(gp)
or a0,zero,zero
jalr t9
_addiu a1,a1,0x5158
li a1,0x1
lw gp,0x28(sp)
or a0,s1,zero
lw t1,0x2c(s0)
or a2,v0,zero
lw t0,0x28(s0)
lw t9,-0x7e60(gp)
sw t1,0x14(sp)
jalr t9
_sw t0,0x10(sp)
li a2,0x1
lbu v0,0xb4(s0)
lw s1,0x0(s2)
lw gp,0x28(sp)
sb v0,0xbb(s0)
lw v0,0xac(s0)
beq v0,zero,0x00014a98
_nop
lbu v0,0xb9(s0)
beq v0,zero,0x00014c84
_lw v0,-0x7fc4(gp)
lw v0,0xa0(s0)
beq v0,zero,0x00014b34
_nop
lbu v0,0xb7(s0)
bne v0,zero,0x00014b34
_nop
bne a2,zero,0x00014d08
_lw t9,-0x7e48(gp)
lw a1,-0x7fc4(gp)
li a2,0x5
lw t9,-0x7da8(gp)
or a0,zero,zero
jalr t9
_addiu a1,a1,0x518c
addiu a1,sp,0x30
lw gp,0x28(sp)
or a0,s0,zero
lw t9,-0x7fc8(gp)
addiu t9,t9,0x4838
bal 0x00014838
_or s4,v0,zero
li a1,0x1
lw gp,0x28(sp)
or a0,s1,zero
lw v1,0x10(s0)
or a2,s4,zero
lw t1,0xc(s0)
or a3,v0,zero
lw t0,0x8(s0)
lw t9,-0x7e60(gp)
sw v1,0x18(sp)
sw t1,0x14(sp)
jalr t9
_sw t0,0x10(sp)
li v0,0x1
lw s1,0x0(s2)
li a2,0x1
lw gp,0x28(sp)
sb v0,0xb7(s0)
lw v0,0xa4(s0)
beq v0,zero,0x00014bec
_nop
lbu v0,0xb8(s0)
bne v0,zero,0x00014bec
_lw v0,-0x7fc4(gp)
xori a2,a2,0x1
lw v1,0xa8(s0)
lw a3,0x14(s0)
addiu v0,v0,0x51ac
bne v1,zero,0x00014d20
_addu a2,v0,a2
lw v0,-0x7fc4(gp)
addiu v0,v0,0x7198
lw t9,-0x7e60(gp)
li a1,0x1
sw v0,0x10(sp)
jalr t9
_or a0,s1,zero
li v1,0x1
lw v0,0xb0(s0)
lw gp,0x28(sp)
beq v0,zero,0x00014da4
_sb v1,0xb8(s0)
lbu v0,0xba(s0)
beq v0,zero,0x00014e6c
_lw s1,0x0(s2)
lbu v0,0x98(s0)
bne v0,zero,0x00014db0
_nop
lw t9,-0x7e48(gp)
li a0,0xa
jalr t9
_or a1,s1,zero
lw v1,0x94(sp)
lw v0,0x0(s3)
bne v1,v0,0x00014ea0
_lw gp,0x28(sp)
lw ra,0xac(sp)
lw s4,0xa8(sp)
lw s3,0xa4(sp)
lw s2,0xa0(sp)
lw s1,0x9c(sp)
lw s0,0x98(sp)
jr ra
_addiu sp,sp,0xb0
lw v0,0xb0(s0)
beq v0,zero,0x00014c04
_nop
lbu v0,0xba(s0)
beq v0,zero,0x00014d2c
_lw s4,-0x7fc4(gp)
lbu v0,0x98(s0)
beq v0,zero,0x00014bb0
_lw t9,-0x7e48(gp)
lw s0,0x58(s0)
bne a2,zero,0x00014d8c
_sra s4,s0,0x1f
lw a1,-0x7fc4(gp)
li a2,0x5
lw t9,-0x7da8(gp)
or a0,zero,zero
jalr t9
_addiu a1,a1,0x51b8
li a1,0x1
lw gp,0x28(sp)
or a0,s1,zero
sw s4,0x10(sp)
or a2,v0,zero
lw t9,-0x7e60(gp)
jalr t9
_sw s0,0x14(sp)
lw gp,0x28(sp)
b 0x00014bac
_lw s1,0x0(s2)
lbu v0,0xb6(s0)
beq v0,zero,0x00014dbc
_lw s1,0x0(s2)
lbu v1,0xb4(s0)
lbu v0,0xbb(s0)
bne v1,v0,0x00014a30
_lw a1,-0x7fc4(gp)
b 0x00014a80
_or a2,zero,zero
xori a2,a2,0x1
lw v1,0x58(s0)
li a1,0x1
lw t3,0x54(s0)
or a0,s1,zero
lw t2,0x50(s0)
addiu v0,v0,0x5168
lw t1,0x4c(s0)
sra a3,v1,0x1f
lw t0,0x48(s0)
addu a2,v0,a2
lw t9,-0x7e60(gp)
sw a3,0x20(sp)
sw v1,0x24(sp)
sw t3,0x1c(sp)
sw t2,0x18(sp)
sw t1,0x14(sp)
jalr t9
_sw t0,0x10(sp)
lw a3,0x5c(s0)
bne a3,zero,0x00014e4c
_lw gp,0x28(sp)
lw v1,0x1c(s0)
li v0,0x1
beq v1,v0,0x00014e78
_lw s1,0x0(s2)
lw v0,0xa0(s0)
li v1,0x1
beq v0,zero,0x00014e38
_sb v1,0xb9(s0)
lbu a2,0xb7(s0)
bne a2,zero,0x00014b34
_lw t9,-0x7e48(gp)
li a0,0x20
jalr t9
_or a1,s1,zero
lw gp,0x28(sp)
b 0x00014ab8
_lw s1,0x0(s2)
lw v0,-0x7fc4(gp)
b 0x00014b6c
_addiu v0,v0,0x5128
xori a2,a2,0x1
addiu s4,s4,0x5130
addu s4,s4,a2
lw t9,-0x7fc8(gp)
addiu a1,sp,0x30
addiu t9,t9,0x3f30
bal 0x00013f30
_lw a0,0x18(s0)
li a1,0x1
lw gp,0x28(sp)
or a3,v0,zero
or a2,s4,zero
lw t9,-0x7e60(gp)
jalr t9
_or a0,s1,zero
li v1,0x1
lbu v0,0x98(s0)
lw gp,0x28(sp)
beq v0,zero,0x00014c58
_sb v1,0xba(s0)
lw s0,0x58(s0)
lw s1,0x0(s2)
sra s4,s0,0x1f
lw t9,-0x7e48(gp)
li a0,0x20
jalr t9
_or a1,s1,zero
lw gp,0x28(sp)
b 0x00014c1c
_lw s1,0x0(s2)
lbu v0,0x98(s0)
beq v0,zero,0x00014bac
_lw s1,0x0(s2)
lw s0,0x58(s0)
b 0x00014d88
_sra s4,s0,0x1f
lw a2,-0x7fc4(gp)
li a1,0x1
lw v1,0x44(s0)
or a0,s1,zero
lw v0,0x40(s0)
lw t3,0x3c(s0)
addiu a2,a2,0x5138
lw t2,0x38(s0)
lw t1,0x2c(s0)
lw t0,0x28(s0)
lw t9,-0x7e60(gp)
sw v1,0x24(sp)
sw v0,0x20(sp)
sw t3,0x1c(sp)
sw t2,0x18(sp)
sw t1,0x14(sp)
jalr t9
_sw t0,0x10(sp)
li a0,0x1
lbu v1,0xb4(s0)
lbu v0,0xbb(s0)
lw gp,0x28(sp)
beq v1,v0,0x00014e40
_sb a0,0xb6(s0)
lw t9,-0x7e48(gp)
li a0,0x20
jalr t9
_lw a1,0x0(s2)
lw gp,0x28(sp)
b 0x00014a2c
_lw s1,0x0(s2)
b 0x00014b34
_li a2,0x1
lw s1,0x0(s2)
b 0x00014a80
_li a2,0x1
lw a2,-0x7fc4(gp)
li a1,0x1
lw t9,-0x7e60(gp)
lw a0,0x0(s2)
jalr t9
_addiu a2,a2,0x5180
b 0x00014cdc
_lw gp,0x28(sp)
lw a2,-0x7fc4(gp)
b 0x00014d38
_addiu s4,a2,0x5130
lw a0,-0x7fc4(gp)
li a2,0x2
lw t9,-0x7dbc(gp)
li a1,0x1
or a3,s1,zero
jalr t9
_addiu a0,a0,0x5188
lw gp,0x28(sp)
b 0x00014cec
_lw s1,0x0(s2)
lw t9,-0x7dac(gp)
jalr t9
_nop
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nint FUN_00014998(undefined4 param_1,int param_2)\n\n{\n  char cVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int *piVar7;\n  int iVar8;\n  int iVar9;\n  byte bVar12;\n  int iVar10;\n  uint **ppuVar11;\n  uint *puVar13;\n  undefined4 *puVar14;\n  uint uVar15;\n  uint **ppuVar16;\n  uint *puVar17;\n  uint uVar18;\n  uint *puVar19;\n  uint *puVar20;\n  uint **ppuVar21;\n  uint uVar22;\n  uint uVar23;\n  uint **in_t0;\n  uint uVar24;\n  uint *in_t2;\n  uint in_t3;\n  uint **in_t4;\n  uint in_t5;\n  uint in_t6;\n  uint *puVar25;\n  byte *pbVar26;\n  short *psVar27;\n  uint **ppuVar28;\n  uint *puVar29;\n  int iVar30;\n  undefined *unaff_s4;\n  uint *puVar31;\n  short *psVar32;\n  short *unaff_s6;\n  uint in_t8;\n  undefined *puVar33;\n  code *pcVar34;\n  uint *puStack_674;\n  int iStack_670;\n  uint *puStack_66c;\n  int iStack_660;\n  uint *puStack_65c;\n  uint *puStack_630;\n  uint *apuStack_5e8 [4];\n  int iStack_5d8;\n  uint *apuStack_5b8 [2];\n  uint auStack_5b0 [2];\n  uint *puStack_5a8;\n  uint uStack_5a4;\n  short *apsStack_5a0 [2];\n  uint **ppuStack_598;\n  uint **ppuStack_594;\n  uint **ppuStack_590;\n  uint uStack_58c;\n  uint uStack_588;\n  uint uStack_584;\n  uint auStack_580 [2];\n  short asStack_578 [19];\n  short sStack_552;\n  uint auStack_550 [279];\n  byte abStack_f1 [21];\n  int iStack_dc;\n  int iStack_d8;\n  uint **ppuStack_d4;\n  undefined *puStack_d0;\n  undefined *puStack_cc;\n  undefined *puStack_c8;\n  undefined1 auStack_80 [100];\n  int local_1c;\n  \n  puVar3 = PTR___stack_chk_guard_00038350;\n  local_1c = *(int *)PTR___stack_chk_guard_00038350;\n  uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x50a0,5);\n  FUN_00014188(uVar5,param_1);\n  puVar4 = PTR_stderr_00038360;\n  if (*(int *)(param_2 + 0x9c) == 0) {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb4) != *(char *)(param_2 + 0xbb)) goto LAB_00014a30;\nLAB_00014c7c:\n    uVar18 = 0;\n  }\n  else {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb6) == '\0') {\n      in_t3 = *(uint *)(param_2 + 0x3c);\n      in_t2 = *(uint **)(param_2 + 0x38);\n      in_t0 = *(uint ***)(param_2 + 0x28);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      *(undefined1 *)(param_2 + 0xb6) = 1;\n      if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar18 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) goto LAB_00014c7c;\nLAB_00014a30:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);\n    in_t0 = *(uint ***)(param_2 + 0x28);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n    uVar18 = 1;\n    ppuVar28 = *(uint ***)puVar4;\n    *(undefined1 *)(param_2 + 0xbb) = *(undefined1 *)(param_2 + 0xb4);\n  }\nLAB_00014a80:\n  if ((*(int *)(param_2 + 0xac) == 0) || (*(char *)(param_2 + 0xb9) != '\0')) {\n    if ((*(int *)(param_2 + 0xa0) != 0) && (*(char *)(param_2 + 0xb7) == '\0')) {\n      if (uVar18 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);\n      uVar5 = FUN_00014838(param_2,auStack_80);\n      in_t0 = *(uint ***)(param_2 + 8);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar18 = 1;\n      *(undefined1 *)(param_2 + 0xb7) = 1;\n    }\n  }\n  else {\n    in_t3 = *(uint *)(param_2 + 0x54);\n    in_t2 = *(uint **)(param_2 + 0x50);\n    in_t0 = *(uint ***)(param_2 + 0x48);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168);\n    if (*(int *)(param_2 + 0x5c) != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }\n    ppuVar28 = *(uint ***)puVar4;\n    if (*(int *)(param_2 + 0x1c) == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    *(undefined1 *)(param_2 + 0xb9) = 1;\n    if (*(int *)(param_2 + 0xa0) == 0) {\n      uVar18 = 1;\n    }\n    else {\n      uVar18 = (uint)*(byte *)(param_2 + 0xb7);\n      if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }\n  }\n  if ((*(int *)(param_2 + 0xa4) == 0) || (*(char *)(param_2 + 0xb8) != '\0')) {\n    if ((*(int *)(param_2 + 0xb0) == 0) ||\n       (unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0')) {\n      if (*(char *)(param_2 + 0x98) == '\0') goto LAB_00014bb0;\n      param_2 = *(int *)(param_2 + 0x58);\n      unaff_s4 = (undefined *)(param_2 >> 0x1f);\n      if (uVar18 != 0) goto LAB_00014d8c;\n      goto LAB_00014c1c;\n    }\n    unaff_s4 = PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5130;\nLAB_00014d38:\n    uVar5 = FUN_00013f30(*(undefined4 *)(param_2 + 0x18),auStack_80);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n    *(undefined1 *)(param_2 + 0xba) = 1;\n    if (*(char *)(param_2 + 0x98) != '\0') {\n      param_2 = *(int *)(param_2 + 0x58);\n      ppuVar28 = *(uint ***)puVar4;\n      goto LAB_00014d88;\n    }\n  }\n  else {\n    (*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac,*(undefined4 *)(param_2 + 0x14));\n    *(undefined1 *)(param_2 + 0xb8) = 1;\n    if (*(int *)(param_2 + 0xb0) == 0) {\n      cVar1 = *(char *)(param_2 + 0x98);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (*(char *)(param_2 + 0xba) == '\0') {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = *(char *)(param_2 + 0x98);\n    }\n    if (cVar1 == '\0') goto LAB_00014bb0;\n    param_2 = *(int *)(param_2 + 0x58);\nLAB_00014d88:\n    unaff_s4 = (undefined *)(param_2 >> 0x1f);\nLAB_00014d8c:\n    (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n    ppuVar28 = *(uint ***)puVar4;\nLAB_00014c1c:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n  }\n  ppuVar28 = *(uint ***)puVar4;\nLAB_00014bb0:\n  puVar14 = (undefined4 *)&DAT_0000000a;\n  ppuVar21 = ppuVar28;\n  (*(code *)PTR_fputc_00038298)();\n  iVar6 = *(int *)puVar3;\n  if (local_1c == iVar6) {\n    return iVar6;\n  }\n  puVar33 = PTR___stack_chk_fail_00038334;\n  (*(code *)PTR___stack_chk_fail_00038334)();\n  piVar7 = *(int **)(puVar33 + 0x234a4);\n  uVar18 = 0xfffffffe;\n  puStack_cc = puVar3;\n  puVar31 = (uint *)&DAT_00000026;\n  iStack_dc = *piVar7;\n  iVar6 = *(int *)(puVar33 + 0x23270);\n  puStack_c8 = unaff_s4;\n  puStack_d0 = puVar4;\n  puVar13 = auStack_550;\n  ppuStack_d4 = ppuVar28;\n  puVar29 = (uint *)0xfffffffe;\n  iVar30 = *(int *)(puVar33 + 0x23270) + 0x6250;\n  iStack_d8 = param_2;\n  puVar25 = (uint *)0x0;\n  iVar8 = *(int *)(puVar33 + 0x23270) + 0x62c4;\n  asStack_578[0] = 0;\n  iStack_670 = 0;\n  psVar32 = asStack_578;\nLAB_00014f50:\n  ppuVar28 = (uint **)0x800000;\n  puVar19 = puVar31;\n  if (puVar29 == (uint *)0xfffffffe) {\n    ppuVar21 = (uint **)*puVar14;\n    in_t2 = (uint *)0x1;\n    ppuVar28 = (uint **)0x80001f;\n    in_t4 = (uint **)0x2d;\n    bVar12 = *(byte *)ppuVar21;\n    in_t5 = 0x2b;\n    in_t6 = 0x28;\n    uVar18 = 0x29;\nLAB_000152f0:\n    in_t0 = (uint **)(int)(char)bVar12;\n    uVar15 = (uint)bVar12;\nLAB_000152f4:\n    uVar22 = uVar15 - 9;\n    ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n    if (ppuVar16 == (uint **)0x0) goto LAB_000153a8;\nLAB_00015308:\n    ppuVar11 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f);\n    while (ppuVar11 != (uint **)0x0) {\n      ppuVar21 = (uint **)((int)ppuVar21 + 1);\n      *puVar14 = ppuVar21;\n      in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n      uVar15 = (uint)*(byte *)ppuVar21;\n      ppuVar16 = (uint **)(uVar15 - 9);\n      if ((uint **)0x17 < ppuVar16) goto LAB_000153a8;\n      ppuVar16 = (uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f);\n      ppuVar11 = ppuVar16;\n    }\nLAB_00015344:\n    in_t3 = 0xffffffff;\n    if (uVar15 == 0x2d) goto LAB_00015358;\n    if (uVar15 == 0x2b) goto LAB_00015354;\n    if ((0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))\n       ) {\n      pbVar26 = (byte *)*puVar14;\n      ppuVar16 = (uint **)(abStack_f1 + 1);\n      in_t0 = (uint **)(abStack_f1 + 0x14);\n      ppuVar28 = (uint **)&DAT_0000002e;\n      ppuVar21 = ppuVar16;\n      do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        *puVar14 = pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));\n      *(byte *)ppuVar21 = 0;\n      ppuVar21 = ppuVar16;\n      bVar12 = abStack_f1[1];\n      while (bVar12 != 0) {\n        if (bVar12 - 0x61 < 0x1a) {\n          bVar12 = bVar12 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar12;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar12 = *(byte *)ppuVar21;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);\n      do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16);\n      if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);\n      do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      iVar9 = *(int *)(puVar33 + 0x2326c);\n      ppuVar21 = ppuVar16;\n      iVar10 = FUN_00014388(puVar14);\n      unaff_s6 = asStack_578;\n      if (iVar10 != 0) {\n        puVar29 = *(uint **)(iVar10 + 4);\n        apuStack_5e8[1] = *(uint **)(iVar10 + 8);\n        apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);\n      iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n      if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        ppuVar16 = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);\n      ppuVar11 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);\n      ppuVar21 = ppuVar11;\n      psVar27 = unaff_s6;\n      do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);\n      pbVar26 = (byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1));\n      if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar11 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);\n      pcVar34 = *(code **)(puVar33 + 0x234c8);\n      do {\n        iVar10 = (*pcVar34)(ppuVar16);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);\n      if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar11 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }\n      if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = ppuVar16;\n        ppuVar11 = ppuVar16;\n        bVar12 = abStack_f1[1];\n        do {\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        } while (bVar12 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }\n      ppuVar21 = *(uint ***)(puVar33 + 0x23270);\n      if (*(char *)((int)puVar14 + 0xb5) == '\0') goto LAB_00017ae0;\n      uVar5 = (**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5);\n      puVar29 = (uint *)0x3f;\n      FUN_00014188(uVar5);\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n      goto LAB_00014f74;\n    }\n    iVar9 = 0;\n    if (uVar15 == 0x28) {\n      ppuVar21 = (uint **)*puVar14;\n      goto LAB_000157a8;\n    }\n    *puVar14 = (byte *)((int)ppuVar21 + 1);\n    puVar29 = (uint *)(uint)*(byte *)ppuVar21;\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if (puVar29 != (uint *)0x0) goto LAB_0001558c;\n    uVar15 = 0;\n    goto LAB_00014f74;\n  }\nLAB_00014f5c:\n  ppuVar16 = ppuVar21;\n  if ((int)puVar29 < 1) {\nLAB_000152b8:\n    uVar15 = 0;\n    puVar29 = (uint *)0x0;\n  }\n  else {\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if ((int)puVar29 < 0x116) {\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }\n    else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }\n  }\n  goto LAB_00014f74;\nLAB_00015354:\n  do {\n    in_t3 = 1;\nLAB_00015358:\n    while( true ) {\n      ppuVar21 = (uint **)*puVar14;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n      if (ppuVar16 != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }\n    in_t3 = 0;\n  } while (uVar15 == 0x2b);\n  ppuVar21 = (uint **)*puVar14;\nLAB_000153dc:\n  ppuVar16 = (uint **)0x0;\n  puVar29 = (uint *)0x0;\n  in_t5 = 0xffffffff;\n  uVar18 = 0x30;\n  in_t8 = 10;\n  ppuVar28 = ppuVar21;\nLAB_000153f8:\n  if (in_t3 == 0xffffffff) {\n    uVar22 = 0x30 - uVar15;\n  }\n  uVar15 = (int)uVar22 >> 0x1f;\n  puVar17 = (uint *)((int)puVar29 + uVar22);\n  in_t2 = (uint *)((int)ppuVar16 + (puVar17 < puVar29) + uVar15);\n  in_t4 = (uint **)((uint)in_t2 ^ uVar15);\n  ppuVar16 = (uint **)((uint)in_t4 & ~((uint)ppuVar16 ^ uVar15));\n  if ((int)ppuVar16 < 0) goto LAB_00017ad0;\n  uVar15 = (uint)*(byte *)((int)ppuVar28 + 1);\n  uVar22 = uVar15 - 0x30;\n  in_t4 = (uint **)((int)ppuVar28 + 1);\n  if (uVar22 < 10) goto LAB_00015528;\n  ppuVar16 = (uint **)0xfffffffd;\n  if (((*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c) ||\n     (puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29)) {\n    *puVar14 = in_t4;\n    uVar15 = 0x13;\n    apuStack_5e8[0] = (uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_);\n    puVar29 = (uint *)0x112;\n    if (in_t3 == 0) {\n      uVar15 = 0x14;\n    }\n    iStack_660 = (int)in_t4 - (int)ppuVar21;\n    if (in_t3 == 0) {\n      puVar29 = (uint *)0x113;\n    }\n    puVar19 = (uint *)((int)puVar31 + uVar15);\n    puStack_65c = in_t2;\n    puStack_630 = puVar17;\n    goto LAB_00014f74;\n  }\n  in_t2 = (uint *)((int)in_t2 + (uint)(puVar17 + -0x20000000 < puVar17));\n  iVar9 = 8;\n  ppuVar21 = ppuVar16;\n  if (in_t2 != (uint *)0x0) goto LAB_00017ae0;\n  in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 3);\n  ppuVar28 = (uint **)((int)ppuVar28 + 3);\n  ppuVar21 = in_t0 + -0xc;\n  ppuVar16 = (uint **)((int)puVar29 * 4);\n  do {\n    puVar29 = (uint *)((int)((int)ppuVar16 + (int)puVar29) * 2);\n    if (ppuVar21 < &DAT_0000000a) {\n      in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);\n      puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n      ppuVar21 = in_t0 + -0xc;\n    }\n    iVar9 = iVar9 + -1;\n    ppuVar16 = (uint **)((int)puVar29 << 2);\n  } while (iVar9 != 0);\n  in_t2 = puVar17;\n  if (in_t3 == 0xffffffff) {\n    ppuVar11 = in_t0;\n    if (ppuVar21 < &DAT_0000000a) {\n      do {\n        if (ppuVar11 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar11 = ppuVar16;\n      } while (ppuVar16 + -0xc <= &DAT_00000009);\n    }\nLAB_00015c20:\n    if (puVar29 != (uint *)0x0) {\n      in_t2 = (uint *)((int)puVar17 + -1);\n      ppuVar21 = ppuVar16;\n      if (puVar17 == (uint *)0x80000000) {\nLAB_00017ae0:\n        ppuVar16 = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }\n    uVar15 = 0x15;\n    apuStack_5e8[1] = puVar29;\n    apuStack_5e8[0] = in_t2;\n    puVar29 = (uint *)0x114;\n    *puVar14 = ppuVar28;\n    puVar19 = (uint *)((int)puVar31 + 0x15);\n    goto LAB_00014f74;\n  }\n  if (ppuVar21 < &DAT_0000000a) {\nLAB_000154dc:\n    do {\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    } while ((int)(char)*(byte *)ppuVar28 - 0x30U < 10);\n    if (in_t3 == 0xffffffff) goto LAB_00015c20;\n  }\n  apuStack_5e8[0] = puVar17;\n  uVar15 = 0x16;\n  apuStack_5e8[1] = puVar29;\n  puVar29 = (uint *)0x115;\n  *puVar14 = ppuVar28;\n  if (in_t3 != 0) {\n    uVar15 = 0x15;\n    puVar29 = (uint *)0x114;\n  }\n  puVar19 = (uint *)((int)puVar31 + uVar15);\nLAB_00014f74:\n  psVar27 = psVar32;\n  if ((uint *)0x70 < puVar19) goto LAB_0001504c;\n  iVar9 = *(int *)(puVar33 + 0x23270);\n  if ((int)(char)*(byte *)((int)puVar19 + iVar30) != uVar15) goto LAB_00015050;\n  puVar25 = (uint *)(uint)*(byte *)((int)puVar19 + iVar8);\n  if (puVar25 == (uint *)0x0) {\n    puStack_66c = auStack_5b0;\n    puVar25 = puVar13 + 0xe;\n    puVar31 = puStack_66c;\n    do {\n      puVar17 = puVar31;\n      puVar19 = puVar25;\n      puVar25 = puVar19 + 4;\n      uVar22 = puVar19[1];\n      uVar15 = puVar19[2];\n      uVar18 = puVar19[3];\n      *puVar17 = *puVar19;\n      puVar17[1] = uVar22;\n      puVar17[2] = uVar15;\n      puVar17[3] = uVar18;\n      puVar31 = puVar17 + 4;\n    } while (puVar25 != puVar13 + 0x1a);\n    uVar18 = puVar19[5];\n    iVar10 = -0x1c;\n    puVar17[4] = *puVar25;\n    puVar17[5] = uVar18;\n    puStack_674 = (uint *)puVar13[0x13];\n    in_t3 = puVar13[0x11];\n    in_t2 = (uint *)puVar13[0x10];\n    unaff_s6 = (short *)puVar13[0x12];\n    ppuVar28 = (uint **)puVar13[0x15];\n    in_t0 = (uint **)puVar13[0x14];\n    in_t5 = puVar13[0x17];\n    in_t4 = (uint **)puVar13[0x16];\n    uVar18 = puVar13[0x18];\n    in_t6 = puVar13[0x19];\n    in_t8 = puVar13[0x1a];\n    iVar9 = 0;\n    goto LAB_00015adc;\n  }\n  if (iStack_670 != 0) {\n    iStack_670 = iStack_670 + -1;\n  }\n  puVar13 = puVar13 + 0xe;\n  in_t0 = apuStack_5b8;\n  apuStack_5e8[3] = puStack_630;\n  apuStack_5e8[2] = puStack_65c;\n  iStack_5d8 = iStack_660;\n  ppuVar21 = apuStack_5e8;\n  puVar29 = puVar13;\n  do {\n    puVar31 = puVar29;\n    ppuVar11 = ppuVar21;\n    ppuVar21 = ppuVar11 + 4;\n    puVar19 = ppuVar11[1];\n    ppuVar16 = (uint **)ppuVar11[2];\n    puVar29 = ppuVar11[3];\n    *puVar31 = (uint)*ppuVar11;\n    puVar31[1] = (uint)puVar19;\n    puVar31[2] = (uint)ppuVar16;\n    puVar31[3] = (uint)puVar29;\n    puVar29 = puVar31 + 4;\n  } while (ppuVar21 != in_t0);\n  puVar29 = (uint *)0xfffffffe;\n  puVar19 = ppuVar11[5];\n  puVar31[4] = (uint)*ppuVar21;\n  puVar31[5] = (uint)puVar19;\nLAB_00015014:\n  psVar27 = psVar32 + 1;\n  psVar32[1] = (short)puVar25;\n  if (&sStack_552 <= psVar27) {\n    iVar9 = 2;\nLAB_00015278:\n    do {\n      if (iStack_dc == *piVar7) {\n        return iVar9;\n      }\n      iVar9 = iStack_dc;\n      uVar5 = (**(code **)(puVar33 + 0x23488))();\n      bVar2 = ppuVar16 == (uint **)0x0;\n      puVar14[0x10] = uVar5;\n      puVar14[0x11] = iVar9;\n      if (!bVar2) {\n        ppuVar16 = (uint **)puVar13[3];\n        if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }\n        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];\n        puVar14[0xb] = -(int)ppuVar16;\n        if (!bVar2) goto code_r0x00016f40;\n      }\n      iVar9 = 1;\n    } while( true );\n  }\n  if (puVar25 == (uint *)0xc) {\n    iVar9 = 0;\n    goto LAB_00015278;\n  }\n  puVar31 = (uint *)(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4);\n  ppuVar21 = ppuVar16;\n  psVar32 = psVar27;\n  if (puVar31 == (uint *)0xffffffa3) {\nLAB_0001504c:\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    psVar32 = psVar27;\nLAB_00015050:\n    uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370);\n    if (uVar15 != 0) {\n      uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);\n      puVar19 = puVar13 + (1 - uVar22) * 0xe;\n      puVar25 = puVar19;\n      puVar31 = auStack_5b0;\n      do {\n        puVar20 = puVar31;\n        puVar17 = puVar25;\n        puVar25 = puVar17 + 4;\n        uVar24 = puVar17[1];\n        uVar23 = puVar17[2];\n        uVar18 = puVar17[3];\n        *puVar20 = *puVar17;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar18;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);\n      uVar18 = puVar17[5];\n      uVar23 = uVar15 - 4 & 0xff;\n      puVar20[4] = *puVar25;\n      puVar20[5] = uVar18;\n      puStack_674 = (uint *)puVar19[5];\n      in_t3 = puVar19[3];\n      in_t2 = (uint *)puVar19[2];\n      unaff_s6 = (short *)puVar19[4];\n      ppuVar28 = (uint **)puVar19[7];\n      in_t0 = (uint **)puVar19[6];\n      in_t5 = puVar19[9];\n      in_t4 = (uint **)puVar19[8];\n      uVar18 = puVar19[10];\n      in_t6 = puVar19[0xb];\n      in_t8 = puVar19[0xc];\n      if (uVar23 < 0x58) {\n                    /* WARNING: Could not recover jumptable at 0x00015220. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();\n        return iVar6;\n      }\n      psVar32 = psVar32 + -uVar22;\n      puVar13 = puVar13 + uVar22 * -0xe;\n      iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;\n      iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);\n      puStack_66c = auStack_5b0;\n      goto LAB_00015adc;\n    }\n    if (iStack_670 == 3) {\n      if ((int)puVar29 < 1) {\n        iVar9 = 1;\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }\n    }\n    ppuVar16 = (uint **)0xffffffa3;\n    while ((((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0))) {\n      iVar9 = 1;\n      psVar27 = psVar32;\n      if (psVar32 == asStack_578) goto LAB_00015278;\n      psVar32 = psVar32 + -1;\n      puVar25 = (uint *)(int)*psVar32;\n      puVar13 = puVar13 + -0xe;\n    }\n    puVar13 = puVar13 + 0xe;\n    in_t0 = apuStack_5b8;\n    apuStack_5e8[3] = puStack_630;\n    apuStack_5e8[2] = puStack_65c;\n    iStack_5d8 = iStack_660;\n    ppuVar21 = apuStack_5e8;\n    puVar31 = puVar13;\n    do {\n      puVar19 = puVar31;\n      ppuVar11 = ppuVar21;\n      ppuVar21 = ppuVar11 + 4;\n      puVar20 = ppuVar11[1];\n      puVar17 = ppuVar11[2];\n      puVar31 = ppuVar11[3];\n      *puVar19 = (uint)*ppuVar11;\n      puVar19[1] = (uint)puVar20;\n      puVar19[2] = (uint)puVar17;\n      puVar19[3] = (uint)puVar31;\n      puVar31 = puVar19 + 4;\n    } while (ppuVar21 != in_t0);\n    ppuVar16 = (uint **)0x3;\n    puVar31 = ppuVar11[5];\n    iStack_670 = 3;\n    puVar19[4] = (uint)*ppuVar21;\n    puVar19[5] = (uint)puVar31;\n    goto LAB_00015014;\n  }\n  goto LAB_00014f50;\nLAB_00015528:\n  puVar29 = (uint *)((int)puVar17 >> 0x1f);\n  bVar2 = false;\n  if (puVar29 == in_t2) {\n    in_t2 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2);\n    ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n  }\n  else {\n    ppuVar28 = (uint **)(ZEXT48(in_t2) * 10);\n    unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20);\n    in_t6 = (int)puVar17 * 4;\n    puStack_674 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)puVar17 * 10);\n    psVar27 = unaff_s6;\n    if ((int)in_t2 < 0) {\n      psVar27 = unaff_s6 + -5;\n    }\n    ppuVar16 = (uint **)((int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2));\n    if ((int)ppuVar16 >> 0x1f != (uint)(ppuVar16 < ppuVar28) + (int)psVar27) {\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n    }\n  }\n  puVar29 = (uint *)((int)puVar17 * 10);\n  ppuVar28 = in_t4;\n  if (bVar2) goto LAB_00017ad0;\n  goto LAB_000153f8;\nLAB_00017ad0:\n  uVar15 = 2;\n  puVar29 = (uint *)0x3f;\n  puVar19 = (uint *)((int)puVar31 + 2);\n  goto LAB_00014f74;\n  while( true ) {\n    if (bVar12 == 0x28) {\n      iVar9 = iVar9 + 1;\n    }\n    else if (bVar12 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }\n    if (iVar9 == 0) break;\nLAB_000157a8:\n    ppuVar16 = ppuVar21;\n    ppuVar21 = (uint **)((int)ppuVar16 + 1);\n    *puVar14 = ppuVar21;\n    bVar12 = *(byte *)ppuVar16;\n    if (bVar12 == 0) goto LAB_000152b8;\n  }\n  bVar12 = *(byte *)((int)ppuVar16 + 1);\n  goto LAB_000152f0;\ncode_r0x00016f40:\n  puVar25 = puVar13 + 4;\n  puVar13 = puVar13 + -0x2a;\n  psVar32 = psVar27 + -3;\n  iVar10 = 0xe;\n  puVar14[0xc] = *puVar25;\n  iVar9 = -0x5d;\nLAB_00015adc:\n  puVar13 = puVar13 + 0xe;\n  puStack_5a8 = in_t2;\n  in_t2 = auStack_580;\n  uStack_5a4 = in_t3;\n  apsStack_5a0[1] = (short *)puStack_674;\n  apsStack_5a0[0] = unaff_s6;\n  ppuStack_594 = ppuVar28;\n  ppuStack_598 = in_t0;\n  uStack_58c = in_t5;\n  ppuStack_590 = in_t4;\n  uStack_588 = uVar18;\n  uStack_584 = in_t6;\n  auStack_580[0] = in_t8;\n  puVar25 = puStack_66c;\n  puVar31 = puVar13;\n  do {\n    puVar17 = puVar31;\n    puVar19 = puVar25;\n    in_t0 = (uint **)*puVar19;\n    puVar25 = puVar19 + 4;\n    uVar23 = puVar19[1];\n    uVar22 = puVar19[2];\n    uVar15 = puVar19[3];\n    *puVar17 = (uint)in_t0;\n    puVar17[1] = uVar23;\n    puVar17[2] = uVar22;\n    puVar17[3] = uVar15;\n    puVar31 = puVar17 + 4;\n  } while (puVar25 != in_t2);\n  ppuVar16 = (uint **)(int)*psVar32;\n  uVar15 = puVar19[5];\n  pbVar26 = (byte *)((int)ppuVar16 + iVar9);\n  puVar17[4] = *puVar25;\n  puVar17[5] = uVar15;\n  if ((pbVar26 < (byte *)0x71) && ((uint **)(int)(char)pbVar26[iVar30] == ppuVar16)) {\n    puVar25 = (uint *)(uint)pbVar26[iVar8];\n  }\n  else {\n    puVar25 = (uint *)(int)*(char *)(iVar10 + iVar6 + 0x6338);\n  }\n  goto LAB_00015014;\n}\n\n" comment (function_definition "int FUN_00014998(undefined4 param_1,int param_2)\n\n{\n  char cVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int *piVar7;\n  int iVar8;\n  int iVar9;\n  byte bVar12;\n  int iVar10;\n  uint **ppuVar11;\n  uint *puVar13;\n  undefined4 *puVar14;\n  uint uVar15;\n  uint **ppuVar16;\n  uint *puVar17;\n  uint uVar18;\n  uint *puVar19;\n  uint *puVar20;\n  uint **ppuVar21;\n  uint uVar22;\n  uint uVar23;\n  uint **in_t0;\n  uint uVar24;\n  uint *in_t2;\n  uint in_t3;\n  uint **in_t4;\n  uint in_t5;\n  uint in_t6;\n  uint *puVar25;\n  byte *pbVar26;\n  short *psVar27;\n  uint **ppuVar28;\n  uint *puVar29;\n  int iVar30;\n  undefined *unaff_s4;\n  uint *puVar31;\n  short *psVar32;\n  short *unaff_s6;\n  uint in_t8;\n  undefined *puVar33;\n  code *pcVar34;\n  uint *puStack_674;\n  int iStack_670;\n  uint *puStack_66c;\n  int iStack_660;\n  uint *puStack_65c;\n  uint *puStack_630;\n  uint *apuStack_5e8 [4];\n  int iStack_5d8;\n  uint *apuStack_5b8 [2];\n  uint auStack_5b0 [2];\n  uint *puStack_5a8;\n  uint uStack_5a4;\n  short *apsStack_5a0 [2];\n  uint **ppuStack_598;\n  uint **ppuStack_594;\n  uint **ppuStack_590;\n  uint uStack_58c;\n  uint uStack_588;\n  uint uStack_584;\n  uint auStack_580 [2];\n  short asStack_578 [19];\n  short sStack_552;\n  uint auStack_550 [279];\n  byte abStack_f1 [21];\n  int iStack_dc;\n  int iStack_d8;\n  uint **ppuStack_d4;\n  undefined *puStack_d0;\n  undefined *puStack_cc;\n  undefined *puStack_c8;\n  undefined1 auStack_80 [100];\n  int local_1c;\n  \n  puVar3 = PTR___stack_chk_guard_00038350;\n  local_1c = *(int *)PTR___stack_chk_guard_00038350;\n  uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x50a0,5);\n  FUN_00014188(uVar5,param_1);\n  puVar4 = PTR_stderr_00038360;\n  if (*(int *)(param_2 + 0x9c) == 0) {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb4) != *(char *)(param_2 + 0xbb)) goto LAB_00014a30;\nLAB_00014c7c:\n    uVar18 = 0;\n  }\n  else {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb6) == '\0') {\n      in_t3 = *(uint *)(param_2 + 0x3c);\n      in_t2 = *(uint **)(param_2 + 0x38);\n      in_t0 = *(uint ***)(param_2 + 0x28);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      *(undefined1 *)(param_2 + 0xb6) = 1;\n      if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar18 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) goto LAB_00014c7c;\nLAB_00014a30:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);\n    in_t0 = *(uint ***)(param_2 + 0x28);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n    uVar18 = 1;\n    ppuVar28 = *(uint ***)puVar4;\n    *(undefined1 *)(param_2 + 0xbb) = *(undefined1 *)(param_2 + 0xb4);\n  }\nLAB_00014a80:\n  if ((*(int *)(param_2 + 0xac) == 0) || (*(char *)(param_2 + 0xb9) != '\0')) {\n    if ((*(int *)(param_2 + 0xa0) != 0) && (*(char *)(param_2 + 0xb7) == '\0')) {\n      if (uVar18 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);\n      uVar5 = FUN_00014838(param_2,auStack_80);\n      in_t0 = *(uint ***)(param_2 + 8);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar18 = 1;\n      *(undefined1 *)(param_2 + 0xb7) = 1;\n    }\n  }\n  else {\n    in_t3 = *(uint *)(param_2 + 0x54);\n    in_t2 = *(uint **)(param_2 + 0x50);\n    in_t0 = *(uint ***)(param_2 + 0x48);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168);\n    if (*(int *)(param_2 + 0x5c) != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }\n    ppuVar28 = *(uint ***)puVar4;\n    if (*(int *)(param_2 + 0x1c) == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    *(undefined1 *)(param_2 + 0xb9) = 1;\n    if (*(int *)(param_2 + 0xa0) == 0) {\n      uVar18 = 1;\n    }\n    else {\n      uVar18 = (uint)*(byte *)(param_2 + 0xb7);\n      if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }\n  }\n  if ((*(int *)(param_2 + 0xa4) == 0) || (*(char *)(param_2 + 0xb8) != '\0')) {\n    if ((*(int *)(param_2 + 0xb0) == 0) ||\n       (unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0')) {\n      if (*(char *)(param_2 + 0x98) == '\0') goto LAB_00014bb0;\n      param_2 = *(int *)(param_2 + 0x58);\n      unaff_s4 = (undefined *)(param_2 >> 0x1f);\n      if (uVar18 != 0) goto LAB_00014d8c;\n      goto LAB_00014c1c;\n    }\n    unaff_s4 = PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5130;\nLAB_00014d38:\n    uVar5 = FUN_00013f30(*(undefined4 *)(param_2 + 0x18),auStack_80);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n    *(undefined1 *)(param_2 + 0xba) = 1;\n    if (*(char *)(param_2 + 0x98) != '\0') {\n      param_2 = *(int *)(param_2 + 0x58);\n      ppuVar28 = *(uint ***)puVar4;\n      goto LAB_00014d88;\n    }\n  }\n  else {\n    (*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac,*(undefined4 *)(param_2 + 0x14));\n    *(undefined1 *)(param_2 + 0xb8) = 1;\n    if (*(int *)(param_2 + 0xb0) == 0) {\n      cVar1 = *(char *)(param_2 + 0x98);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (*(char *)(param_2 + 0xba) == '\0') {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = *(char *)(param_2 + 0x98);\n    }\n    if (cVar1 == '\0') goto LAB_00014bb0;\n    param_2 = *(int *)(param_2 + 0x58);\nLAB_00014d88:\n    unaff_s4 = (undefined *)(param_2 >> 0x1f);\nLAB_00014d8c:\n    (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n    ppuVar28 = *(uint ***)puVar4;\nLAB_00014c1c:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n  }\n  ppuVar28 = *(uint ***)puVar4;\nLAB_00014bb0:\n  puVar14 = (undefined4 *)&DAT_0000000a;\n  ppuVar21 = ppuVar28;\n  (*(code *)PTR_fputc_00038298)();\n  iVar6 = *(int *)puVar3;\n  if (local_1c == iVar6) {\n    return iVar6;\n  }\n  puVar33 = PTR___stack_chk_fail_00038334;\n  (*(code *)PTR___stack_chk_fail_00038334)();\n  piVar7 = *(int **)(puVar33 + 0x234a4);\n  uVar18 = 0xfffffffe;\n  puStack_cc = puVar3;\n  puVar31 = (uint *)&DAT_00000026;\n  iStack_dc = *piVar7;\n  iVar6 = *(int *)(puVar33 + 0x23270);\n  puStack_c8 = unaff_s4;\n  puStack_d0 = puVar4;\n  puVar13 = auStack_550;\n  ppuStack_d4 = ppuVar28;\n  puVar29 = (uint *)0xfffffffe;\n  iVar30 = *(int *)(puVar33 + 0x23270) + 0x6250;\n  iStack_d8 = param_2;\n  puVar25 = (uint *)0x0;\n  iVar8 = *(int *)(puVar33 + 0x23270) + 0x62c4;\n  asStack_578[0] = 0;\n  iStack_670 = 0;\n  psVar32 = asStack_578;\nLAB_00014f50:\n  ppuVar28 = (uint **)0x800000;\n  puVar19 = puVar31;\n  if (puVar29 == (uint *)0xfffffffe) {\n    ppuVar21 = (uint **)*puVar14;\n    in_t2 = (uint *)0x1;\n    ppuVar28 = (uint **)0x80001f;\n    in_t4 = (uint **)0x2d;\n    bVar12 = *(byte *)ppuVar21;\n    in_t5 = 0x2b;\n    in_t6 = 0x28;\n    uVar18 = 0x29;\nLAB_000152f0:\n    in_t0 = (uint **)(int)(char)bVar12;\n    uVar15 = (uint)bVar12;\nLAB_000152f4:\n    uVar22 = uVar15 - 9;\n    ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n    if (ppuVar16 == (uint **)0x0) goto LAB_000153a8;\nLAB_00015308:\n    ppuVar11 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f);\n    while (ppuVar11 != (uint **)0x0) {\n      ppuVar21 = (uint **)((int)ppuVar21 + 1);\n      *puVar14 = ppuVar21;\n      in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n      uVar15 = (uint)*(byte *)ppuVar21;\n      ppuVar16 = (uint **)(uVar15 - 9);\n      if ((uint **)0x17 < ppuVar16) goto LAB_000153a8;\n      ppuVar16 = (uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f);\n      ppuVar11 = ppuVar16;\n    }\nLAB_00015344:\n    in_t3 = 0xffffffff;\n    if (uVar15 == 0x2d) goto LAB_00015358;\n    if (uVar15 == 0x2b) goto LAB_00015354;\n    if ((0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))\n       ) {\n      pbVar26 = (byte *)*puVar14;\n      ppuVar16 = (uint **)(abStack_f1 + 1);\n      in_t0 = (uint **)(abStack_f1 + 0x14);\n      ppuVar28 = (uint **)&DAT_0000002e;\n      ppuVar21 = ppuVar16;\n      do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        *puVar14 = pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));\n      *(byte *)ppuVar21 = 0;\n      ppuVar21 = ppuVar16;\n      bVar12 = abStack_f1[1];\n      while (bVar12 != 0) {\n        if (bVar12 - 0x61 < 0x1a) {\n          bVar12 = bVar12 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar12;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar12 = *(byte *)ppuVar21;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);\n      do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16);\n      if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);\n      do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      iVar9 = *(int *)(puVar33 + 0x2326c);\n      ppuVar21 = ppuVar16;\n      iVar10 = FUN_00014388(puVar14);\n      unaff_s6 = asStack_578;\n      if (iVar10 != 0) {\n        puVar29 = *(uint **)(iVar10 + 4);\n        apuStack_5e8[1] = *(uint **)(iVar10 + 8);\n        apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);\n      iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n      if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        ppuVar16 = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);\n      ppuVar11 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);\n      ppuVar21 = ppuVar11;\n      psVar27 = unaff_s6;\n      do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);\n      pbVar26 = (byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1));\n      if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar11 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);\n      pcVar34 = *(code **)(puVar33 + 0x234c8);\n      do {\n        iVar10 = (*pcVar34)(ppuVar16);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);\n      if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar11 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }\n      if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = ppuVar16;\n        ppuVar11 = ppuVar16;\n        bVar12 = abStack_f1[1];\n        do {\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        } while (bVar12 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }\n      ppuVar21 = *(uint ***)(puVar33 + 0x23270);\n      if (*(char *)((int)puVar14 + 0xb5) == '\0') goto LAB_00017ae0;\n      uVar5 = (**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5);\n      puVar29 = (uint *)0x3f;\n      FUN_00014188(uVar5);\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n      goto LAB_00014f74;\n    }\n    iVar9 = 0;\n    if (uVar15 == 0x28) {\n      ppuVar21 = (uint **)*puVar14;\n      goto LAB_000157a8;\n    }\n    *puVar14 = (byte *)((int)ppuVar21 + 1);\n    puVar29 = (uint *)(uint)*(byte *)ppuVar21;\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if (puVar29 != (uint *)0x0) goto LAB_0001558c;\n    uVar15 = 0;\n    goto LAB_00014f74;\n  }\nLAB_00014f5c:\n  ppuVar16 = ppuVar21;\n  if ((int)puVar29 < 1) {\nLAB_000152b8:\n    uVar15 = 0;\n    puVar29 = (uint *)0x0;\n  }\n  else {\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if ((int)puVar29 < 0x116) {\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }\n    else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }\n  }\n  goto LAB_00014f74;\nLAB_00015354:\n  do {\n    in_t3 = 1;\nLAB_00015358:\n    while( true ) {\n      ppuVar21 = (uint **)*puVar14;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n      if (ppuVar16 != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }\n    in_t3 = 0;\n  } while (uVar15 == 0x2b);\n  ppuVar21 = (uint **)*puVar14;\nLAB_000153dc:\n  ppuVar16 = (uint **)0x0;\n  puVar29 = (uint *)0x0;\n  in_t5 = 0xffffffff;\n  uVar18 = 0x30;\n  in_t8 = 10;\n  ppuVar28 = ppuVar21;\nLAB_000153f8:\n  if (in_t3 == 0xffffffff) {\n    uVar22 = 0x30 - uVar15;\n  }\n  uVar15 = (int)uVar22 >> 0x1f;\n  puVar17 = (uint *)((int)puVar29 + uVar22);\n  in_t2 = (uint *)((int)ppuVar16 + (puVar17 < puVar29) + uVar15);\n  in_t4 = (uint **)((uint)in_t2 ^ uVar15);\n  ppuVar16 = (uint **)((uint)in_t4 & ~((uint)ppuVar16 ^ uVar15));\n  if ((int)ppuVar16 < 0) goto LAB_00017ad0;\n  uVar15 = (uint)*(byte *)((int)ppuVar28 + 1);\n  uVar22 = uVar15 - 0x30;\n  in_t4 = (uint **)((int)ppuVar28 + 1);\n  if (uVar22 < 10) goto LAB_00015528;\n  ppuVar16 = (uint **)0xfffffffd;\n  if (((*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c) ||\n     (puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29)) {\n    *puVar14 = in_t4;\n    uVar15 = 0x13;\n    apuStack_5e8[0] = (uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_);\n    puVar29 = (uint *)0x112;\n    if (in_t3 == 0) {\n      uVar15 = 0x14;\n    }\n    iStack_660 = (int)in_t4 - (int)ppuVar21;\n    if (in_t3 == 0) {\n      puVar29 = (uint *)0x113;\n    }\n    puVar19 = (uint *)((int)puVar31 + uVar15);\n    puStack_65c = in_t2;\n    puStack_630 = puVar17;\n    goto LAB_00014f74;\n  }\n  in_t2 = (uint *)((int)in_t2 + (uint)(puVar17 + -0x20000000 < puVar17));\n  iVar9 = 8;\n  ppuVar21 = ppuVar16;\n  if (in_t2 != (uint *)0x0) goto LAB_00017ae0;\n  in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 3);\n  ppuVar28 = (uint **)((int)ppuVar28 + 3);\n  ppuVar21 = in_t0 + -0xc;\n  ppuVar16 = (uint **)((int)puVar29 * 4);\n  do {\n    puVar29 = (uint *)((int)((int)ppuVar16 + (int)puVar29) * 2);\n    if (ppuVar21 < &DAT_0000000a) {\n      in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);\n      puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n      ppuVar21 = in_t0 + -0xc;\n    }\n    iVar9 = iVar9 + -1;\n    ppuVar16 = (uint **)((int)puVar29 << 2);\n  } while (iVar9 != 0);\n  in_t2 = puVar17;\n  if (in_t3 == 0xffffffff) {\n    ppuVar11 = in_t0;\n    if (ppuVar21 < &DAT_0000000a) {\n      do {\n        if (ppuVar11 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar11 = ppuVar16;\n      } while (ppuVar16 + -0xc <= &DAT_00000009);\n    }\nLAB_00015c20:\n    if (puVar29 != (uint *)0x0) {\n      in_t2 = (uint *)((int)puVar17 + -1);\n      ppuVar21 = ppuVar16;\n      if (puVar17 == (uint *)0x80000000) {\nLAB_00017ae0:\n        ppuVar16 = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }\n    uVar15 = 0x15;\n    apuStack_5e8[1] = puVar29;\n    apuStack_5e8[0] = in_t2;\n    puVar29 = (uint *)0x114;\n    *puVar14 = ppuVar28;\n    puVar19 = (uint *)((int)puVar31 + 0x15);\n    goto LAB_00014f74;\n  }\n  if (ppuVar21 < &DAT_0000000a) {\nLAB_000154dc:\n    do {\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    } while ((int)(char)*(byte *)ppuVar28 - 0x30U < 10);\n    if (in_t3 == 0xffffffff) goto LAB_00015c20;\n  }\n  apuStack_5e8[0] = puVar17;\n  uVar15 = 0x16;\n  apuStack_5e8[1] = puVar29;\n  puVar29 = (uint *)0x115;\n  *puVar14 = ppuVar28;\n  if (in_t3 != 0) {\n    uVar15 = 0x15;\n    puVar29 = (uint *)0x114;\n  }\n  puVar19 = (uint *)((int)puVar31 + uVar15);\nLAB_00014f74:\n  psVar27 = psVar32;\n  if ((uint *)0x70 < puVar19) goto LAB_0001504c;\n  iVar9 = *(int *)(puVar33 + 0x23270);\n  if ((int)(char)*(byte *)((int)puVar19 + iVar30) != uVar15) goto LAB_00015050;\n  puVar25 = (uint *)(uint)*(byte *)((int)puVar19 + iVar8);\n  if (puVar25 == (uint *)0x0) {\n    puStack_66c = auStack_5b0;\n    puVar25 = puVar13 + 0xe;\n    puVar31 = puStack_66c;\n    do {\n      puVar17 = puVar31;\n      puVar19 = puVar25;\n      puVar25 = puVar19 + 4;\n      uVar22 = puVar19[1];\n      uVar15 = puVar19[2];\n      uVar18 = puVar19[3];\n      *puVar17 = *puVar19;\n      puVar17[1] = uVar22;\n      puVar17[2] = uVar15;\n      puVar17[3] = uVar18;\n      puVar31 = puVar17 + 4;\n    } while (puVar25 != puVar13 + 0x1a);\n    uVar18 = puVar19[5];\n    iVar10 = -0x1c;\n    puVar17[4] = *puVar25;\n    puVar17[5] = uVar18;\n    puStack_674 = (uint *)puVar13[0x13];\n    in_t3 = puVar13[0x11];\n    in_t2 = (uint *)puVar13[0x10];\n    unaff_s6 = (short *)puVar13[0x12];\n    ppuVar28 = (uint **)puVar13[0x15];\n    in_t0 = (uint **)puVar13[0x14];\n    in_t5 = puVar13[0x17];\n    in_t4 = (uint **)puVar13[0x16];\n    uVar18 = puVar13[0x18];\n    in_t6 = puVar13[0x19];\n    in_t8 = puVar13[0x1a];\n    iVar9 = 0;\n    goto LAB_00015adc;\n  }\n  if (iStack_670 != 0) {\n    iStack_670 = iStack_670 + -1;\n  }\n  puVar13 = puVar13 + 0xe;\n  in_t0 = apuStack_5b8;\n  apuStack_5e8[3] = puStack_630;\n  apuStack_5e8[2] = puStack_65c;\n  iStack_5d8 = iStack_660;\n  ppuVar21 = apuStack_5e8;\n  puVar29 = puVar13;\n  do {\n    puVar31 = puVar29;\n    ppuVar11 = ppuVar21;\n    ppuVar21 = ppuVar11 + 4;\n    puVar19 = ppuVar11[1];\n    ppuVar16 = (uint **)ppuVar11[2];\n    puVar29 = ppuVar11[3];\n    *puVar31 = (uint)*ppuVar11;\n    puVar31[1] = (uint)puVar19;\n    puVar31[2] = (uint)ppuVar16;\n    puVar31[3] = (uint)puVar29;\n    puVar29 = puVar31 + 4;\n  } while (ppuVar21 != in_t0);\n  puVar29 = (uint *)0xfffffffe;\n  puVar19 = ppuVar11[5];\n  puVar31[4] = (uint)*ppuVar21;\n  puVar31[5] = (uint)puVar19;\nLAB_00015014:\n  psVar27 = psVar32 + 1;\n  psVar32[1] = (short)puVar25;\n  if (&sStack_552 <= psVar27) {\n    iVar9 = 2;\nLAB_00015278:\n    do {\n      if (iStack_dc == *piVar7) {\n        return iVar9;\n      }\n      iVar9 = iStack_dc;\n      uVar5 = (**(code **)(puVar33 + 0x23488))();\n      bVar2 = ppuVar16 == (uint **)0x0;\n      puVar14[0x10] = uVar5;\n      puVar14[0x11] = iVar9;\n      if (!bVar2) {\n        ppuVar16 = (uint **)puVar13[3];\n        if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }\n        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];\n        puVar14[0xb] = -(int)ppuVar16;\n        if (!bVar2) goto code_r0x00016f40;\n      }\n      iVar9 = 1;\n    } while( true );\n  }\n  if (puVar25 == (uint *)0xc) {\n    iVar9 = 0;\n    goto LAB_00015278;\n  }\n  puVar31 = (uint *)(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4);\n  ppuVar21 = ppuVar16;\n  psVar32 = psVar27;\n  if (puVar31 == (uint *)0xffffffa3) {\nLAB_0001504c:\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    psVar32 = psVar27;\nLAB_00015050:\n    uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370);\n    if (uVar15 != 0) {\n      uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);\n      puVar19 = puVar13 + (1 - uVar22) * 0xe;\n      puVar25 = puVar19;\n      puVar31 = auStack_5b0;\n      do {\n        puVar20 = puVar31;\n        puVar17 = puVar25;\n        puVar25 = puVar17 + 4;\n        uVar24 = puVar17[1];\n        uVar23 = puVar17[2];\n        uVar18 = puVar17[3];\n        *puVar20 = *puVar17;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar18;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);\n      uVar18 = puVar17[5];\n      uVar23 = uVar15 - 4 & 0xff;\n      puVar20[4] = *puVar25;\n      puVar20[5] = uVar18;\n      puStack_674 = (uint *)puVar19[5];\n      in_t3 = puVar19[3];\n      in_t2 = (uint *)puVar19[2];\n      unaff_s6 = (short *)puVar19[4];\n      ppuVar28 = (uint **)puVar19[7];\n      in_t0 = (uint **)puVar19[6];\n      in_t5 = puVar19[9];\n      in_t4 = (uint **)puVar19[8];\n      uVar18 = puVar19[10];\n      in_t6 = puVar19[0xb];\n      in_t8 = puVar19[0xc];\n      if (uVar23 < 0x58) {\n                    /* WARNING: Could not recover jumptable at 0x00015220. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();\n        return iVar6;\n      }\n      psVar32 = psVar32 + -uVar22;\n      puVar13 = puVar13 + uVar22 * -0xe;\n      iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;\n      iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);\n      puStack_66c = auStack_5b0;\n      goto LAB_00015adc;\n    }\n    if (iStack_670 == 3) {\n      if ((int)puVar29 < 1) {\n        iVar9 = 1;\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }\n    }\n    ppuVar16 = (uint **)0xffffffa3;\n    while ((((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0))) {\n      iVar9 = 1;\n      psVar27 = psVar32;\n      if (psVar32 == asStack_578) goto LAB_00015278;\n      psVar32 = psVar32 + -1;\n      puVar25 = (uint *)(int)*psVar32;\n      puVar13 = puVar13 + -0xe;\n    }\n    puVar13 = puVar13 + 0xe;\n    in_t0 = apuStack_5b8;\n    apuStack_5e8[3] = puStack_630;\n    apuStack_5e8[2] = puStack_65c;\n    iStack_5d8 = iStack_660;\n    ppuVar21 = apuStack_5e8;\n    puVar31 = puVar13;\n    do {\n      puVar19 = puVar31;\n      ppuVar11 = ppuVar21;\n      ppuVar21 = ppuVar11 + 4;\n      puVar20 = ppuVar11[1];\n      puVar17 = ppuVar11[2];\n      puVar31 = ppuVar11[3];\n      *puVar19 = (uint)*ppuVar11;\n      puVar19[1] = (uint)puVar20;\n      puVar19[2] = (uint)puVar17;\n      puVar19[3] = (uint)puVar31;\n      puVar31 = puVar19 + 4;\n    } while (ppuVar21 != in_t0);\n    ppuVar16 = (uint **)0x3;\n    puVar31 = ppuVar11[5];\n    iStack_670 = 3;\n    puVar19[4] = (uint)*ppuVar21;\n    puVar19[5] = (uint)puVar31;\n    goto LAB_00015014;\n  }\n  goto LAB_00014f50;\nLAB_00015528:\n  puVar29 = (uint *)((int)puVar17 >> 0x1f);\n  bVar2 = false;\n  if (puVar29 == in_t2) {\n    in_t2 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2);\n    ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n  }\n  else {\n    ppuVar28 = (uint **)(ZEXT48(in_t2) * 10);\n    unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20);\n    in_t6 = (int)puVar17 * 4;\n    puStack_674 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)puVar17 * 10);\n    psVar27 = unaff_s6;\n    if ((int)in_t2 < 0) {\n      psVar27 = unaff_s6 + -5;\n    }\n    ppuVar16 = (uint **)((int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2));\n    if ((int)ppuVar16 >> 0x1f != (uint)(ppuVar16 < ppuVar28) + (int)psVar27) {\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n    }\n  }\n  puVar29 = (uint *)((int)puVar17 * 10);\n  ppuVar28 = in_t4;\n  if (bVar2) goto LAB_00017ad0;\n  goto LAB_000153f8;\nLAB_00017ad0:\n  uVar15 = 2;\n  puVar29 = (uint *)0x3f;\n  puVar19 = (uint *)((int)puVar31 + 2);\n  goto LAB_00014f74;\n  while( true ) {\n    if (bVar12 == 0x28) {\n      iVar9 = iVar9 + 1;\n    }\n    else if (bVar12 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }\n    if (iVar9 == 0) break;\nLAB_000157a8:\n    ppuVar16 = ppuVar21;\n    ppuVar21 = (uint **)((int)ppuVar16 + 1);\n    *puVar14 = ppuVar21;\n    bVar12 = *(byte *)ppuVar16;\n    if (bVar12 == 0) goto LAB_000152b8;\n  }\n  bVar12 = *(byte *)((int)ppuVar16 + 1);\n  goto LAB_000152f0;\ncode_r0x00016f40:\n  puVar25 = puVar13 + 4;\n  puVar13 = puVar13 + -0x2a;\n  psVar32 = psVar27 + -3;\n  iVar10 = 0xe;\n  puVar14[0xc] = *puVar25;\n  iVar9 = -0x5d;\nLAB_00015adc:\n  puVar13 = puVar13 + 0xe;\n  puStack_5a8 = in_t2;\n  in_t2 = auStack_580;\n  uStack_5a4 = in_t3;\n  apsStack_5a0[1] = (short *)puStack_674;\n  apsStack_5a0[0] = unaff_s6;\n  ppuStack_594 = ppuVar28;\n  ppuStack_598 = in_t0;\n  uStack_58c = in_t5;\n  ppuStack_590 = in_t4;\n  uStack_588 = uVar18;\n  uStack_584 = in_t6;\n  auStack_580[0] = in_t8;\n  puVar25 = puStack_66c;\n  puVar31 = puVar13;\n  do {\n    puVar17 = puVar31;\n    puVar19 = puVar25;\n    in_t0 = (uint **)*puVar19;\n    puVar25 = puVar19 + 4;\n    uVar23 = puVar19[1];\n    uVar22 = puVar19[2];\n    uVar15 = puVar19[3];\n    *puVar17 = (uint)in_t0;\n    puVar17[1] = uVar23;\n    puVar17[2] = uVar22;\n    puVar17[3] = uVar15;\n    puVar31 = puVar17 + 4;\n  } while (puVar25 != in_t2);\n  ppuVar16 = (uint **)(int)*psVar32;\n  uVar15 = puVar19[5];\n  pbVar26 = (byte *)((int)ppuVar16 + iVar9);\n  puVar17[4] = *puVar25;\n  puVar17[5] = uVar15;\n  if ((pbVar26 < (byte *)0x71) && ((uint **)(int)(char)pbVar26[iVar30] == ppuVar16)) {\n    puVar25 = (uint *)(uint)pbVar26[iVar8];\n  }\n  else {\n    puVar25 = (uint *)(int)*(char *)(iVar10 + iVar6 + 0x6338);\n  }\n  goto LAB_00015014;\n}" primitive_type (function_declarator "FUN_00014998(undefined4 param_1,int param_2)" identifier (parameter_list "(undefined4 param_1,int param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int *piVar7;\n  int iVar8;\n  int iVar9;\n  byte bVar12;\n  int iVar10;\n  uint **ppuVar11;\n  uint *puVar13;\n  undefined4 *puVar14;\n  uint uVar15;\n  uint **ppuVar16;\n  uint *puVar17;\n  uint uVar18;\n  uint *puVar19;\n  uint *puVar20;\n  uint **ppuVar21;\n  uint uVar22;\n  uint uVar23;\n  uint **in_t0;\n  uint uVar24;\n  uint *in_t2;\n  uint in_t3;\n  uint **in_t4;\n  uint in_t5;\n  uint in_t6;\n  uint *puVar25;\n  byte *pbVar26;\n  short *psVar27;\n  uint **ppuVar28;\n  uint *puVar29;\n  int iVar30;\n  undefined *unaff_s4;\n  uint *puVar31;\n  short *psVar32;\n  short *unaff_s6;\n  uint in_t8;\n  undefined *puVar33;\n  code *pcVar34;\n  uint *puStack_674;\n  int iStack_670;\n  uint *puStack_66c;\n  int iStack_660;\n  uint *puStack_65c;\n  uint *puStack_630;\n  uint *apuStack_5e8 [4];\n  int iStack_5d8;\n  uint *apuStack_5b8 [2];\n  uint auStack_5b0 [2];\n  uint *puStack_5a8;\n  uint uStack_5a4;\n  short *apsStack_5a0 [2];\n  uint **ppuStack_598;\n  uint **ppuStack_594;\n  uint **ppuStack_590;\n  uint uStack_58c;\n  uint uStack_588;\n  uint uStack_584;\n  uint auStack_580 [2];\n  short asStack_578 [19];\n  short sStack_552;\n  uint auStack_550 [279];\n  byte abStack_f1 [21];\n  int iStack_dc;\n  int iStack_d8;\n  uint **ppuStack_d4;\n  undefined *puStack_d0;\n  undefined *puStack_cc;\n  undefined *puStack_c8;\n  undefined1 auStack_80 [100];\n  int local_1c;\n  \n  puVar3 = PTR___stack_chk_guard_00038350;\n  local_1c = *(int *)PTR___stack_chk_guard_00038350;\n  uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x50a0,5);\n  FUN_00014188(uVar5,param_1);\n  puVar4 = PTR_stderr_00038360;\n  if (*(int *)(param_2 + 0x9c) == 0) {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb4) != *(char *)(param_2 + 0xbb)) goto LAB_00014a30;\nLAB_00014c7c:\n    uVar18 = 0;\n  }\n  else {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb6) == '\0') {\n      in_t3 = *(uint *)(param_2 + 0x3c);\n      in_t2 = *(uint **)(param_2 + 0x38);\n      in_t0 = *(uint ***)(param_2 + 0x28);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      *(undefined1 *)(param_2 + 0xb6) = 1;\n      if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar18 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) goto LAB_00014c7c;\nLAB_00014a30:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);\n    in_t0 = *(uint ***)(param_2 + 0x28);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n    uVar18 = 1;\n    ppuVar28 = *(uint ***)puVar4;\n    *(undefined1 *)(param_2 + 0xbb) = *(undefined1 *)(param_2 + 0xb4);\n  }\nLAB_00014a80:\n  if ((*(int *)(param_2 + 0xac) == 0) || (*(char *)(param_2 + 0xb9) != '\0')) {\n    if ((*(int *)(param_2 + 0xa0) != 0) && (*(char *)(param_2 + 0xb7) == '\0')) {\n      if (uVar18 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);\n      uVar5 = FUN_00014838(param_2,auStack_80);\n      in_t0 = *(uint ***)(param_2 + 8);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar18 = 1;\n      *(undefined1 *)(param_2 + 0xb7) = 1;\n    }\n  }\n  else {\n    in_t3 = *(uint *)(param_2 + 0x54);\n    in_t2 = *(uint **)(param_2 + 0x50);\n    in_t0 = *(uint ***)(param_2 + 0x48);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168);\n    if (*(int *)(param_2 + 0x5c) != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }\n    ppuVar28 = *(uint ***)puVar4;\n    if (*(int *)(param_2 + 0x1c) == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    *(undefined1 *)(param_2 + 0xb9) = 1;\n    if (*(int *)(param_2 + 0xa0) == 0) {\n      uVar18 = 1;\n    }\n    else {\n      uVar18 = (uint)*(byte *)(param_2 + 0xb7);\n      if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }\n  }\n  if ((*(int *)(param_2 + 0xa4) == 0) || (*(char *)(param_2 + 0xb8) != '\0')) {\n    if ((*(int *)(param_2 + 0xb0) == 0) ||\n       (unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0')) {\n      if (*(char *)(param_2 + 0x98) == '\0') goto LAB_00014bb0;\n      param_2 = *(int *)(param_2 + 0x58);\n      unaff_s4 = (undefined *)(param_2 >> 0x1f);\n      if (uVar18 != 0) goto LAB_00014d8c;\n      goto LAB_00014c1c;\n    }\n    unaff_s4 = PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5130;\nLAB_00014d38:\n    uVar5 = FUN_00013f30(*(undefined4 *)(param_2 + 0x18),auStack_80);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n    *(undefined1 *)(param_2 + 0xba) = 1;\n    if (*(char *)(param_2 + 0x98) != '\0') {\n      param_2 = *(int *)(param_2 + 0x58);\n      ppuVar28 = *(uint ***)puVar4;\n      goto LAB_00014d88;\n    }\n  }\n  else {\n    (*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac,*(undefined4 *)(param_2 + 0x14));\n    *(undefined1 *)(param_2 + 0xb8) = 1;\n    if (*(int *)(param_2 + 0xb0) == 0) {\n      cVar1 = *(char *)(param_2 + 0x98);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (*(char *)(param_2 + 0xba) == '\0') {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = *(char *)(param_2 + 0x98);\n    }\n    if (cVar1 == '\0') goto LAB_00014bb0;\n    param_2 = *(int *)(param_2 + 0x58);\nLAB_00014d88:\n    unaff_s4 = (undefined *)(param_2 >> 0x1f);\nLAB_00014d8c:\n    (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n    ppuVar28 = *(uint ***)puVar4;\nLAB_00014c1c:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n  }\n  ppuVar28 = *(uint ***)puVar4;\nLAB_00014bb0:\n  puVar14 = (undefined4 *)&DAT_0000000a;\n  ppuVar21 = ppuVar28;\n  (*(code *)PTR_fputc_00038298)();\n  iVar6 = *(int *)puVar3;\n  if (local_1c == iVar6) {\n    return iVar6;\n  }\n  puVar33 = PTR___stack_chk_fail_00038334;\n  (*(code *)PTR___stack_chk_fail_00038334)();\n  piVar7 = *(int **)(puVar33 + 0x234a4);\n  uVar18 = 0xfffffffe;\n  puStack_cc = puVar3;\n  puVar31 = (uint *)&DAT_00000026;\n  iStack_dc = *piVar7;\n  iVar6 = *(int *)(puVar33 + 0x23270);\n  puStack_c8 = unaff_s4;\n  puStack_d0 = puVar4;\n  puVar13 = auStack_550;\n  ppuStack_d4 = ppuVar28;\n  puVar29 = (uint *)0xfffffffe;\n  iVar30 = *(int *)(puVar33 + 0x23270) + 0x6250;\n  iStack_d8 = param_2;\n  puVar25 = (uint *)0x0;\n  iVar8 = *(int *)(puVar33 + 0x23270) + 0x62c4;\n  asStack_578[0] = 0;\n  iStack_670 = 0;\n  psVar32 = asStack_578;\nLAB_00014f50:\n  ppuVar28 = (uint **)0x800000;\n  puVar19 = puVar31;\n  if (puVar29 == (uint *)0xfffffffe) {\n    ppuVar21 = (uint **)*puVar14;\n    in_t2 = (uint *)0x1;\n    ppuVar28 = (uint **)0x80001f;\n    in_t4 = (uint **)0x2d;\n    bVar12 = *(byte *)ppuVar21;\n    in_t5 = 0x2b;\n    in_t6 = 0x28;\n    uVar18 = 0x29;\nLAB_000152f0:\n    in_t0 = (uint **)(int)(char)bVar12;\n    uVar15 = (uint)bVar12;\nLAB_000152f4:\n    uVar22 = uVar15 - 9;\n    ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n    if (ppuVar16 == (uint **)0x0) goto LAB_000153a8;\nLAB_00015308:\n    ppuVar11 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f);\n    while (ppuVar11 != (uint **)0x0) {\n      ppuVar21 = (uint **)((int)ppuVar21 + 1);\n      *puVar14 = ppuVar21;\n      in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n      uVar15 = (uint)*(byte *)ppuVar21;\n      ppuVar16 = (uint **)(uVar15 - 9);\n      if ((uint **)0x17 < ppuVar16) goto LAB_000153a8;\n      ppuVar16 = (uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f);\n      ppuVar11 = ppuVar16;\n    }\nLAB_00015344:\n    in_t3 = 0xffffffff;\n    if (uVar15 == 0x2d) goto LAB_00015358;\n    if (uVar15 == 0x2b) goto LAB_00015354;\n    if ((0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))\n       ) {\n      pbVar26 = (byte *)*puVar14;\n      ppuVar16 = (uint **)(abStack_f1 + 1);\n      in_t0 = (uint **)(abStack_f1 + 0x14);\n      ppuVar28 = (uint **)&DAT_0000002e;\n      ppuVar21 = ppuVar16;\n      do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        *puVar14 = pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));\n      *(byte *)ppuVar21 = 0;\n      ppuVar21 = ppuVar16;\n      bVar12 = abStack_f1[1];\n      while (bVar12 != 0) {\n        if (bVar12 - 0x61 < 0x1a) {\n          bVar12 = bVar12 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar12;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar12 = *(byte *)ppuVar21;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);\n      do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16);\n      if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);\n      do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      iVar9 = *(int *)(puVar33 + 0x2326c);\n      ppuVar21 = ppuVar16;\n      iVar10 = FUN_00014388(puVar14);\n      unaff_s6 = asStack_578;\n      if (iVar10 != 0) {\n        puVar29 = *(uint **)(iVar10 + 4);\n        apuStack_5e8[1] = *(uint **)(iVar10 + 8);\n        apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);\n      iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n      if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        ppuVar16 = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);\n      ppuVar11 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);\n      ppuVar21 = ppuVar11;\n      psVar27 = unaff_s6;\n      do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);\n      pbVar26 = (byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1));\n      if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar11 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);\n      pcVar34 = *(code **)(puVar33 + 0x234c8);\n      do {\n        iVar10 = (*pcVar34)(ppuVar16);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);\n      if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar11 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }\n      if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = ppuVar16;\n        ppuVar11 = ppuVar16;\n        bVar12 = abStack_f1[1];\n        do {\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        } while (bVar12 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }\n      ppuVar21 = *(uint ***)(puVar33 + 0x23270);\n      if (*(char *)((int)puVar14 + 0xb5) == '\0') goto LAB_00017ae0;\n      uVar5 = (**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5);\n      puVar29 = (uint *)0x3f;\n      FUN_00014188(uVar5);\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n      goto LAB_00014f74;\n    }\n    iVar9 = 0;\n    if (uVar15 == 0x28) {\n      ppuVar21 = (uint **)*puVar14;\n      goto LAB_000157a8;\n    }\n    *puVar14 = (byte *)((int)ppuVar21 + 1);\n    puVar29 = (uint *)(uint)*(byte *)ppuVar21;\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if (puVar29 != (uint *)0x0) goto LAB_0001558c;\n    uVar15 = 0;\n    goto LAB_00014f74;\n  }\nLAB_00014f5c:\n  ppuVar16 = ppuVar21;\n  if ((int)puVar29 < 1) {\nLAB_000152b8:\n    uVar15 = 0;\n    puVar29 = (uint *)0x0;\n  }\n  else {\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if ((int)puVar29 < 0x116) {\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }\n    else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }\n  }\n  goto LAB_00014f74;\nLAB_00015354:\n  do {\n    in_t3 = 1;\nLAB_00015358:\n    while( true ) {\n      ppuVar21 = (uint **)*puVar14;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n      if (ppuVar16 != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }\n    in_t3 = 0;\n  } while (uVar15 == 0x2b);\n  ppuVar21 = (uint **)*puVar14;\nLAB_000153dc:\n  ppuVar16 = (uint **)0x0;\n  puVar29 = (uint *)0x0;\n  in_t5 = 0xffffffff;\n  uVar18 = 0x30;\n  in_t8 = 10;\n  ppuVar28 = ppuVar21;\nLAB_000153f8:\n  if (in_t3 == 0xffffffff) {\n    uVar22 = 0x30 - uVar15;\n  }\n  uVar15 = (int)uVar22 >> 0x1f;\n  puVar17 = (uint *)((int)puVar29 + uVar22);\n  in_t2 = (uint *)((int)ppuVar16 + (puVar17 < puVar29) + uVar15);\n  in_t4 = (uint **)((uint)in_t2 ^ uVar15);\n  ppuVar16 = (uint **)((uint)in_t4 & ~((uint)ppuVar16 ^ uVar15));\n  if ((int)ppuVar16 < 0) goto LAB_00017ad0;\n  uVar15 = (uint)*(byte *)((int)ppuVar28 + 1);\n  uVar22 = uVar15 - 0x30;\n  in_t4 = (uint **)((int)ppuVar28 + 1);\n  if (uVar22 < 10) goto LAB_00015528;\n  ppuVar16 = (uint **)0xfffffffd;\n  if (((*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c) ||\n     (puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29)) {\n    *puVar14 = in_t4;\n    uVar15 = 0x13;\n    apuStack_5e8[0] = (uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_);\n    puVar29 = (uint *)0x112;\n    if (in_t3 == 0) {\n      uVar15 = 0x14;\n    }\n    iStack_660 = (int)in_t4 - (int)ppuVar21;\n    if (in_t3 == 0) {\n      puVar29 = (uint *)0x113;\n    }\n    puVar19 = (uint *)((int)puVar31 + uVar15);\n    puStack_65c = in_t2;\n    puStack_630 = puVar17;\n    goto LAB_00014f74;\n  }\n  in_t2 = (uint *)((int)in_t2 + (uint)(puVar17 + -0x20000000 < puVar17));\n  iVar9 = 8;\n  ppuVar21 = ppuVar16;\n  if (in_t2 != (uint *)0x0) goto LAB_00017ae0;\n  in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 3);\n  ppuVar28 = (uint **)((int)ppuVar28 + 3);\n  ppuVar21 = in_t0 + -0xc;\n  ppuVar16 = (uint **)((int)puVar29 * 4);\n  do {\n    puVar29 = (uint *)((int)((int)ppuVar16 + (int)puVar29) * 2);\n    if (ppuVar21 < &DAT_0000000a) {\n      in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);\n      puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n      ppuVar21 = in_t0 + -0xc;\n    }\n    iVar9 = iVar9 + -1;\n    ppuVar16 = (uint **)((int)puVar29 << 2);\n  } while (iVar9 != 0);\n  in_t2 = puVar17;\n  if (in_t3 == 0xffffffff) {\n    ppuVar11 = in_t0;\n    if (ppuVar21 < &DAT_0000000a) {\n      do {\n        if (ppuVar11 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar11 = ppuVar16;\n      } while (ppuVar16 + -0xc <= &DAT_00000009);\n    }\nLAB_00015c20:\n    if (puVar29 != (uint *)0x0) {\n      in_t2 = (uint *)((int)puVar17 + -1);\n      ppuVar21 = ppuVar16;\n      if (puVar17 == (uint *)0x80000000) {\nLAB_00017ae0:\n        ppuVar16 = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }\n    uVar15 = 0x15;\n    apuStack_5e8[1] = puVar29;\n    apuStack_5e8[0] = in_t2;\n    puVar29 = (uint *)0x114;\n    *puVar14 = ppuVar28;\n    puVar19 = (uint *)((int)puVar31 + 0x15);\n    goto LAB_00014f74;\n  }\n  if (ppuVar21 < &DAT_0000000a) {\nLAB_000154dc:\n    do {\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    } while ((int)(char)*(byte *)ppuVar28 - 0x30U < 10);\n    if (in_t3 == 0xffffffff) goto LAB_00015c20;\n  }\n  apuStack_5e8[0] = puVar17;\n  uVar15 = 0x16;\n  apuStack_5e8[1] = puVar29;\n  puVar29 = (uint *)0x115;\n  *puVar14 = ppuVar28;\n  if (in_t3 != 0) {\n    uVar15 = 0x15;\n    puVar29 = (uint *)0x114;\n  }\n  puVar19 = (uint *)((int)puVar31 + uVar15);\nLAB_00014f74:\n  psVar27 = psVar32;\n  if ((uint *)0x70 < puVar19) goto LAB_0001504c;\n  iVar9 = *(int *)(puVar33 + 0x23270);\n  if ((int)(char)*(byte *)((int)puVar19 + iVar30) != uVar15) goto LAB_00015050;\n  puVar25 = (uint *)(uint)*(byte *)((int)puVar19 + iVar8);\n  if (puVar25 == (uint *)0x0) {\n    puStack_66c = auStack_5b0;\n    puVar25 = puVar13 + 0xe;\n    puVar31 = puStack_66c;\n    do {\n      puVar17 = puVar31;\n      puVar19 = puVar25;\n      puVar25 = puVar19 + 4;\n      uVar22 = puVar19[1];\n      uVar15 = puVar19[2];\n      uVar18 = puVar19[3];\n      *puVar17 = *puVar19;\n      puVar17[1] = uVar22;\n      puVar17[2] = uVar15;\n      puVar17[3] = uVar18;\n      puVar31 = puVar17 + 4;\n    } while (puVar25 != puVar13 + 0x1a);\n    uVar18 = puVar19[5];\n    iVar10 = -0x1c;\n    puVar17[4] = *puVar25;\n    puVar17[5] = uVar18;\n    puStack_674 = (uint *)puVar13[0x13];\n    in_t3 = puVar13[0x11];\n    in_t2 = (uint *)puVar13[0x10];\n    unaff_s6 = (short *)puVar13[0x12];\n    ppuVar28 = (uint **)puVar13[0x15];\n    in_t0 = (uint **)puVar13[0x14];\n    in_t5 = puVar13[0x17];\n    in_t4 = (uint **)puVar13[0x16];\n    uVar18 = puVar13[0x18];\n    in_t6 = puVar13[0x19];\n    in_t8 = puVar13[0x1a];\n    iVar9 = 0;\n    goto LAB_00015adc;\n  }\n  if (iStack_670 != 0) {\n    iStack_670 = iStack_670 + -1;\n  }\n  puVar13 = puVar13 + 0xe;\n  in_t0 = apuStack_5b8;\n  apuStack_5e8[3] = puStack_630;\n  apuStack_5e8[2] = puStack_65c;\n  iStack_5d8 = iStack_660;\n  ppuVar21 = apuStack_5e8;\n  puVar29 = puVar13;\n  do {\n    puVar31 = puVar29;\n    ppuVar11 = ppuVar21;\n    ppuVar21 = ppuVar11 + 4;\n    puVar19 = ppuVar11[1];\n    ppuVar16 = (uint **)ppuVar11[2];\n    puVar29 = ppuVar11[3];\n    *puVar31 = (uint)*ppuVar11;\n    puVar31[1] = (uint)puVar19;\n    puVar31[2] = (uint)ppuVar16;\n    puVar31[3] = (uint)puVar29;\n    puVar29 = puVar31 + 4;\n  } while (ppuVar21 != in_t0);\n  puVar29 = (uint *)0xfffffffe;\n  puVar19 = ppuVar11[5];\n  puVar31[4] = (uint)*ppuVar21;\n  puVar31[5] = (uint)puVar19;\nLAB_00015014:\n  psVar27 = psVar32 + 1;\n  psVar32[1] = (short)puVar25;\n  if (&sStack_552 <= psVar27) {\n    iVar9 = 2;\nLAB_00015278:\n    do {\n      if (iStack_dc == *piVar7) {\n        return iVar9;\n      }\n      iVar9 = iStack_dc;\n      uVar5 = (**(code **)(puVar33 + 0x23488))();\n      bVar2 = ppuVar16 == (uint **)0x0;\n      puVar14[0x10] = uVar5;\n      puVar14[0x11] = iVar9;\n      if (!bVar2) {\n        ppuVar16 = (uint **)puVar13[3];\n        if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }\n        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];\n        puVar14[0xb] = -(int)ppuVar16;\n        if (!bVar2) goto code_r0x00016f40;\n      }\n      iVar9 = 1;\n    } while( true );\n  }\n  if (puVar25 == (uint *)0xc) {\n    iVar9 = 0;\n    goto LAB_00015278;\n  }\n  puVar31 = (uint *)(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4);\n  ppuVar21 = ppuVar16;\n  psVar32 = psVar27;\n  if (puVar31 == (uint *)0xffffffa3) {\nLAB_0001504c:\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    psVar32 = psVar27;\nLAB_00015050:\n    uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370);\n    if (uVar15 != 0) {\n      uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);\n      puVar19 = puVar13 + (1 - uVar22) * 0xe;\n      puVar25 = puVar19;\n      puVar31 = auStack_5b0;\n      do {\n        puVar20 = puVar31;\n        puVar17 = puVar25;\n        puVar25 = puVar17 + 4;\n        uVar24 = puVar17[1];\n        uVar23 = puVar17[2];\n        uVar18 = puVar17[3];\n        *puVar20 = *puVar17;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar18;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);\n      uVar18 = puVar17[5];\n      uVar23 = uVar15 - 4 & 0xff;\n      puVar20[4] = *puVar25;\n      puVar20[5] = uVar18;\n      puStack_674 = (uint *)puVar19[5];\n      in_t3 = puVar19[3];\n      in_t2 = (uint *)puVar19[2];\n      unaff_s6 = (short *)puVar19[4];\n      ppuVar28 = (uint **)puVar19[7];\n      in_t0 = (uint **)puVar19[6];\n      in_t5 = puVar19[9];\n      in_t4 = (uint **)puVar19[8];\n      uVar18 = puVar19[10];\n      in_t6 = puVar19[0xb];\n      in_t8 = puVar19[0xc];\n      if (uVar23 < 0x58) {\n                    /* WARNING: Could not recover jumptable at 0x00015220. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();\n        return iVar6;\n      }\n      psVar32 = psVar32 + -uVar22;\n      puVar13 = puVar13 + uVar22 * -0xe;\n      iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;\n      iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);\n      puStack_66c = auStack_5b0;\n      goto LAB_00015adc;\n    }\n    if (iStack_670 == 3) {\n      if ((int)puVar29 < 1) {\n        iVar9 = 1;\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }\n    }\n    ppuVar16 = (uint **)0xffffffa3;\n    while ((((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0))) {\n      iVar9 = 1;\n      psVar27 = psVar32;\n      if (psVar32 == asStack_578) goto LAB_00015278;\n      psVar32 = psVar32 + -1;\n      puVar25 = (uint *)(int)*psVar32;\n      puVar13 = puVar13 + -0xe;\n    }\n    puVar13 = puVar13 + 0xe;\n    in_t0 = apuStack_5b8;\n    apuStack_5e8[3] = puStack_630;\n    apuStack_5e8[2] = puStack_65c;\n    iStack_5d8 = iStack_660;\n    ppuVar21 = apuStack_5e8;\n    puVar31 = puVar13;\n    do {\n      puVar19 = puVar31;\n      ppuVar11 = ppuVar21;\n      ppuVar21 = ppuVar11 + 4;\n      puVar20 = ppuVar11[1];\n      puVar17 = ppuVar11[2];\n      puVar31 = ppuVar11[3];\n      *puVar19 = (uint)*ppuVar11;\n      puVar19[1] = (uint)puVar20;\n      puVar19[2] = (uint)puVar17;\n      puVar19[3] = (uint)puVar31;\n      puVar31 = puVar19 + 4;\n    } while (ppuVar21 != in_t0);\n    ppuVar16 = (uint **)0x3;\n    puVar31 = ppuVar11[5];\n    iStack_670 = 3;\n    puVar19[4] = (uint)*ppuVar21;\n    puVar19[5] = (uint)puVar31;\n    goto LAB_00015014;\n  }\n  goto LAB_00014f50;\nLAB_00015528:\n  puVar29 = (uint *)((int)puVar17 >> 0x1f);\n  bVar2 = false;\n  if (puVar29 == in_t2) {\n    in_t2 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2);\n    ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n  }\n  else {\n    ppuVar28 = (uint **)(ZEXT48(in_t2) * 10);\n    unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20);\n    in_t6 = (int)puVar17 * 4;\n    puStack_674 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)puVar17 * 10);\n    psVar27 = unaff_s6;\n    if ((int)in_t2 < 0) {\n      psVar27 = unaff_s6 + -5;\n    }\n    ppuVar16 = (uint **)((int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2));\n    if ((int)ppuVar16 >> 0x1f != (uint)(ppuVar16 < ppuVar28) + (int)psVar27) {\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n    }\n  }\n  puVar29 = (uint *)((int)puVar17 * 10);\n  ppuVar28 = in_t4;\n  if (bVar2) goto LAB_00017ad0;\n  goto LAB_000153f8;\nLAB_00017ad0:\n  uVar15 = 2;\n  puVar29 = (uint *)0x3f;\n  puVar19 = (uint *)((int)puVar31 + 2);\n  goto LAB_00014f74;\n  while( true ) {\n    if (bVar12 == 0x28) {\n      iVar9 = iVar9 + 1;\n    }\n    else if (bVar12 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }\n    if (iVar9 == 0) break;\nLAB_000157a8:\n    ppuVar16 = ppuVar21;\n    ppuVar21 = (uint **)((int)ppuVar16 + 1);\n    *puVar14 = ppuVar21;\n    bVar12 = *(byte *)ppuVar16;\n    if (bVar12 == 0) goto LAB_000152b8;\n  }\n  bVar12 = *(byte *)((int)ppuVar16 + 1);\n  goto LAB_000152f0;\ncode_r0x00016f40:\n  puVar25 = puVar13 + 4;\n  puVar13 = puVar13 + -0x2a;\n  psVar32 = psVar27 + -3;\n  iVar10 = 0xe;\n  puVar14[0xc] = *puVar25;\n  iVar9 = -0x5d;\nLAB_00015adc:\n  puVar13 = puVar13 + 0xe;\n  puStack_5a8 = in_t2;\n  in_t2 = auStack_580;\n  uStack_5a4 = in_t3;\n  apsStack_5a0[1] = (short *)puStack_674;\n  apsStack_5a0[0] = unaff_s6;\n  ppuStack_594 = ppuVar28;\n  ppuStack_598 = in_t0;\n  uStack_58c = in_t5;\n  ppuStack_590 = in_t4;\n  uStack_588 = uVar18;\n  uStack_584 = in_t6;\n  auStack_580[0] = in_t8;\n  puVar25 = puStack_66c;\n  puVar31 = puVar13;\n  do {\n    puVar17 = puVar31;\n    puVar19 = puVar25;\n    in_t0 = (uint **)*puVar19;\n    puVar25 = puVar19 + 4;\n    uVar23 = puVar19[1];\n    uVar22 = puVar19[2];\n    uVar15 = puVar19[3];\n    *puVar17 = (uint)in_t0;\n    puVar17[1] = uVar23;\n    puVar17[2] = uVar22;\n    puVar17[3] = uVar15;\n    puVar31 = puVar17 + 4;\n  } while (puVar25 != in_t2);\n  ppuVar16 = (uint **)(int)*psVar32;\n  uVar15 = puVar19[5];\n  pbVar26 = (byte *)((int)ppuVar16 + iVar9);\n  puVar17[4] = *puVar25;\n  puVar17[5] = uVar15;\n  if ((pbVar26 < (byte *)0x71) && ((uint **)(int)(char)pbVar26[iVar30] == ppuVar16)) {\n    puVar25 = (uint *)(uint)pbVar26[iVar8];\n  }\n  else {\n    puVar25 = (uint *)(int)*(char *)(iVar10 + iVar6 + 0x6338);\n  }\n  goto LAB_00015014;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "byte bVar12;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint **ppuVar11;" type_identifier (pointer_declarator "**ppuVar11" * (pointer_declarator "*ppuVar11" * identifier)) ;) (declaration "uint *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint **ppuVar16;" type_identifier (pointer_declarator "**ppuVar16" * (pointer_declarator "*ppuVar16" * identifier)) ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "uint *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "uint **ppuVar21;" type_identifier (pointer_declarator "**ppuVar21" * (pointer_declarator "*ppuVar21" * identifier)) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "uint **in_t0;" type_identifier (pointer_declarator "**in_t0" * (pointer_declarator "*in_t0" * identifier)) ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "uint *in_t2;" type_identifier (pointer_declarator "*in_t2" * identifier) ;) (declaration "uint in_t3;" type_identifier identifier ;) (declaration "uint **in_t4;" type_identifier (pointer_declarator "**in_t4" * (pointer_declarator "*in_t4" * identifier)) ;) (declaration "uint in_t5;" type_identifier identifier ;) (declaration "uint in_t6;" type_identifier identifier ;) (declaration "uint *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "byte *pbVar26;" type_identifier (pointer_declarator "*pbVar26" * identifier) ;) (declaration "short *psVar27;" (sized_type_specifier "short" short) (pointer_declarator "*psVar27" * identifier) ;) (declaration "uint **ppuVar28;" type_identifier (pointer_declarator "**ppuVar28" * (pointer_declarator "*ppuVar28" * identifier)) ;) (declaration "uint *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "undefined *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "uint *puVar31;" type_identifier (pointer_declarator "*puVar31" * identifier) ;) (declaration "short *psVar32;" (sized_type_specifier "short" short) (pointer_declarator "*psVar32" * identifier) ;) (declaration "short *unaff_s6;" (sized_type_specifier "short" short) (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "uint in_t8;" type_identifier identifier ;) (declaration "undefined *puVar33;" type_identifier (pointer_declarator "*puVar33" * identifier) ;) (declaration "code *pcVar34;" type_identifier (pointer_declarator "*pcVar34" * identifier) ;) (declaration "uint *puStack_674;" type_identifier (pointer_declarator "*puStack_674" * identifier) ;) (declaration "int iStack_670;" primitive_type identifier ;) (declaration "uint *puStack_66c;" type_identifier (pointer_declarator "*puStack_66c" * identifier) ;) (declaration "int iStack_660;" primitive_type identifier ;) (declaration "uint *puStack_65c;" type_identifier (pointer_declarator "*puStack_65c" * identifier) ;) (declaration "uint *puStack_630;" type_identifier (pointer_declarator "*puStack_630" * identifier) ;) (declaration "uint *apuStack_5e8 [4];" type_identifier (pointer_declarator "*apuStack_5e8 [4]" * (array_declarator "apuStack_5e8 [4]" identifier [ number_literal ])) ;) (declaration "int iStack_5d8;" primitive_type identifier ;) (declaration "uint *apuStack_5b8 [2];" type_identifier (pointer_declarator "*apuStack_5b8 [2]" * (array_declarator "apuStack_5b8 [2]" identifier [ number_literal ])) ;) (declaration "uint auStack_5b0 [2];" type_identifier (array_declarator "auStack_5b0 [2]" identifier [ number_literal ]) ;) (declaration "uint *puStack_5a8;" type_identifier (pointer_declarator "*puStack_5a8" * identifier) ;) (declaration "uint uStack_5a4;" type_identifier identifier ;) (declaration "short *apsStack_5a0 [2];" (sized_type_specifier "short" short) (pointer_declarator "*apsStack_5a0 [2]" * (array_declarator "apsStack_5a0 [2]" identifier [ number_literal ])) ;) (declaration "uint **ppuStack_598;" type_identifier (pointer_declarator "**ppuStack_598" * (pointer_declarator "*ppuStack_598" * identifier)) ;) (declaration "uint **ppuStack_594;" type_identifier (pointer_declarator "**ppuStack_594" * (pointer_declarator "*ppuStack_594" * identifier)) ;) (declaration "uint **ppuStack_590;" type_identifier (pointer_declarator "**ppuStack_590" * (pointer_declarator "*ppuStack_590" * identifier)) ;) (declaration "uint uStack_58c;" type_identifier identifier ;) (declaration "uint uStack_588;" type_identifier identifier ;) (declaration "uint uStack_584;" type_identifier identifier ;) (declaration "uint auStack_580 [2];" type_identifier (array_declarator "auStack_580 [2]" identifier [ number_literal ]) ;) (declaration "short asStack_578 [19];" (sized_type_specifier "short" short) (array_declarator "asStack_578 [19]" identifier [ number_literal ]) ;) (declaration "short sStack_552;" (sized_type_specifier "short" short) identifier ;) (declaration "uint auStack_550 [279];" type_identifier (array_declarator "auStack_550 [279]" identifier [ number_literal ]) ;) (declaration "byte abStack_f1 [21];" type_identifier (array_declarator "abStack_f1 [21]" identifier [ number_literal ]) ;) (declaration "int iStack_dc;" primitive_type identifier ;) (declaration "int iStack_d8;" primitive_type identifier ;) (declaration "uint **ppuStack_d4;" type_identifier (pointer_declarator "**ppuStack_d4" * (pointer_declarator "*ppuStack_d4" * identifier)) ;) (declaration "undefined *puStack_d0;" type_identifier (pointer_declarator "*puStack_d0" * identifier) ;) (declaration "undefined *puStack_cc;" type_identifier (pointer_declarator "*puStack_cc" * identifier) ;) (declaration "undefined *puStack_c8;" type_identifier (pointer_declarator "*puStack_c8" * identifier) ;) (declaration "undefined1 auStack_80 [100];" type_identifier (array_declarator "auStack_80 [100]" identifier [ number_literal ]) ;) (declaration "int local_1c;" primitive_type identifier ;) (expression_statement "puVar3 = PTR___stack_chk_guard_00038350;" (assignment_expression "puVar3 = PTR___stack_chk_guard_00038350" identifier = identifier) ;) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_00038350;" (assignment_expression "local_1c = *(int *)PTR___stack_chk_guard_00038350" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00038350" * (cast_expression "(int *)PTR___stack_chk_guard_00038350" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x50a0,5);" (assignment_expression "uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x50a0,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x50a0,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00038338)" ( (pointer_expression "*(code *)PTR_dcgettext_00038338" * (cast_expression "(code *)PTR_dcgettext_00038338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_LAB_0003811c + 0x50a0,5)" ( number_literal , (binary_expression "PTR_LAB_0003811c + 0x50a0" identifier + number_literal) , number_literal )))) ;) (expression_statement "FUN_00014188(uVar5,param_1);" (call_expression "FUN_00014188(uVar5,param_1)" identifier (argument_list "(uVar5,param_1)" ( identifier , identifier ))) ;) (expression_statement "puVar4 = PTR_stderr_00038360;" (assignment_expression "puVar4 = PTR_stderr_00038360" identifier = identifier) ;) (if_statement "if (*(int *)(param_2 + 0x9c) == 0) {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb4) != *(char *)(param_2 + 0xbb)) goto LAB_00014a30;\nLAB_00014c7c:\n    uVar18 = 0;\n  }\n  else {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb6) == '\0') {\n      in_t3 = *(uint *)(param_2 + 0x3c);\n      in_t2 = *(uint **)(param_2 + 0x38);\n      in_t0 = *(uint ***)(param_2 + 0x28);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      *(undefined1 *)(param_2 + 0xb6) = 1;\n      if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar18 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) goto LAB_00014c7c;\nLAB_00014a30:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);\n    in_t0 = *(uint ***)(param_2 + 0x28);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n    uVar18 = 1;\n    ppuVar28 = *(uint ***)puVar4;\n    *(undefined1 *)(param_2 + 0xbb) = *(undefined1 *)(param_2 + 0xb4);\n  }" if (parenthesized_expression "(*(int *)(param_2 + 0x9c) == 0)" ( (binary_expression "*(int *)(param_2 + 0x9c) == 0" (pointer_expression "*(int *)(param_2 + 0x9c)" * (cast_expression "(int *)(param_2 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x9c)" ( (binary_expression "param_2 + 0x9c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb4) != *(char *)(param_2 + 0xbb)) goto LAB_00014a30;\nLAB_00014c7c:\n    uVar18 = 0;\n  }" { (expression_statement "ppuVar28 = *(uint ***)PTR_stderr_00038360;" (assignment_expression "ppuVar28 = *(uint ***)PTR_stderr_00038360" identifier = (pointer_expression "*(uint ***)PTR_stderr_00038360" * (cast_expression "(uint ***)PTR_stderr_00038360" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (if_statement "if (*(char *)(param_2 + 0xb4) != *(char *)(param_2 + 0xbb)) goto LAB_00014a30;" if (parenthesized_expression "(*(char *)(param_2 + 0xb4) != *(char *)(param_2 + 0xbb))" ( (binary_expression "*(char *)(param_2 + 0xb4) != *(char *)(param_2 + 0xbb)" (pointer_expression "*(char *)(param_2 + 0xb4)" * (cast_expression "(char *)(param_2 + 0xb4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb4)" ( (binary_expression "param_2 + 0xb4" identifier + number_literal) )))) != (pointer_expression "*(char *)(param_2 + 0xbb)" * (cast_expression "(char *)(param_2 + 0xbb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xbb)" ( (binary_expression "param_2 + 0xbb" identifier + number_literal) ))))) )) (goto_statement "goto LAB_00014a30;" goto statement_identifier ;)) (labeled_statement "LAB_00014c7c:\n    uVar18 = 0;" statement_identifier : (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;)) }) (else_clause "else {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb6) == '\0') {\n      in_t3 = *(uint *)(param_2 + 0x3c);\n      in_t2 = *(uint **)(param_2 + 0x38);\n      in_t0 = *(uint ***)(param_2 + 0x28);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      *(undefined1 *)(param_2 + 0xb6) = 1;\n      if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar18 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) goto LAB_00014c7c;\nLAB_00014a30:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);\n    in_t0 = *(uint ***)(param_2 + 0x28);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n    uVar18 = 1;\n    ppuVar28 = *(uint ***)puVar4;\n    *(undefined1 *)(param_2 + 0xbb) = *(undefined1 *)(param_2 + 0xb4);\n  }" else (compound_statement "{\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb6) == '\0') {\n      in_t3 = *(uint *)(param_2 + 0x3c);\n      in_t2 = *(uint **)(param_2 + 0x38);\n      in_t0 = *(uint ***)(param_2 + 0x28);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      *(undefined1 *)(param_2 + 0xb6) = 1;\n      if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar18 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) goto LAB_00014c7c;\nLAB_00014a30:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);\n    in_t0 = *(uint ***)(param_2 + 0x28);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n    uVar18 = 1;\n    ppuVar28 = *(uint ***)puVar4;\n    *(undefined1 *)(param_2 + 0xbb) = *(undefined1 *)(param_2 + 0xb4);\n  }" { (expression_statement "ppuVar28 = *(uint ***)PTR_stderr_00038360;" (assignment_expression "ppuVar28 = *(uint ***)PTR_stderr_00038360" identifier = (pointer_expression "*(uint ***)PTR_stderr_00038360" * (cast_expression "(uint ***)PTR_stderr_00038360" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (if_statement "if (*(char *)(param_2 + 0xb6) == '\0') {\n      in_t3 = *(uint *)(param_2 + 0x3c);\n      in_t2 = *(uint **)(param_2 + 0x38);\n      in_t0 = *(uint ***)(param_2 + 0x28);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      *(undefined1 *)(param_2 + 0xb6) = 1;\n      if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar18 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) goto LAB_00014c7c;" if (parenthesized_expression "(*(char *)(param_2 + 0xb6) == '\0')" ( (binary_expression "*(char *)(param_2 + 0xb6) == '\0'" (pointer_expression "*(char *)(param_2 + 0xb6)" * (cast_expression "(char *)(param_2 + 0xb6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb6)" ( (binary_expression "param_2 + 0xb6" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      in_t3 = *(uint *)(param_2 + 0x3c);\n      in_t2 = *(uint **)(param_2 + 0x38);\n      in_t0 = *(uint ***)(param_2 + 0x28);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      *(undefined1 *)(param_2 + 0xb6) = 1;\n      if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar18 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }" { (expression_statement "in_t3 = *(uint *)(param_2 + 0x3c);" (assignment_expression "in_t3 = *(uint *)(param_2 + 0x3c)" identifier = (pointer_expression "*(uint *)(param_2 + 0x3c)" * (cast_expression "(uint *)(param_2 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3c)" ( (binary_expression "param_2 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "in_t2 = *(uint **)(param_2 + 0x38);" (assignment_expression "in_t2 = *(uint **)(param_2 + 0x38)" identifier = (pointer_expression "*(uint **)(param_2 + 0x38)" * (cast_expression "(uint **)(param_2 + 0x38)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x38)" ( (binary_expression "param_2 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "in_t0 = *(uint ***)(param_2 + 0x28);" (assignment_expression "in_t0 = *(uint ***)(param_2 + 0x28)" identifier = (pointer_expression "*(uint ***)(param_2 + 0x28)" * (cast_expression "(uint ***)(param_2 + 0x28)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);" (call_expression "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" ( (pointer_expression "*(code *)PTR___fprintf_chk_00038280" * (cast_expression "(code *)PTR___fprintf_chk_00038280" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppuVar28,1,PTR_LAB_0003811c + 0x5138)" ( identifier , number_literal , (binary_expression "PTR_LAB_0003811c + 0x5138" identifier + number_literal) ))) ;) (expression_statement "*(undefined1 *)(param_2 + 0xb6) = 1;" (assignment_expression "*(undefined1 *)(param_2 + 0xb6) = 1" (pointer_expression "*(undefined1 *)(param_2 + 0xb6)" * (cast_expression "(undefined1 *)(param_2 + 0xb6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb6)" ( (binary_expression "param_2 + 0xb6" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar18 = 1;\n        goto LAB_00014a80;\n      }" if (parenthesized_expression "(*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb))" ( (binary_expression "*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)" (pointer_expression "*(char *)(param_2 + 0xb4)" * (cast_expression "(char *)(param_2 + 0xb4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb4)" ( (binary_expression "param_2 + 0xb4" identifier + number_literal) )))) == (pointer_expression "*(char *)(param_2 + 0xbb)" * (cast_expression "(char *)(param_2 + 0xbb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xbb)" ( (binary_expression "param_2 + 0xbb" identifier + number_literal) ))))) )) (compound_statement "{\n        ppuVar28 = *(uint ***)puVar4;\n        uVar18 = 1;\n        goto LAB_00014a80;\n      }" { (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00014a80;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);" (call_expression "(*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4)" (parenthesized_expression "(*(code *)PTR_fputc_00038298)" ( (pointer_expression "*(code *)PTR_fputc_00038298" * (cast_expression "(code *)PTR_fputc_00038298" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x20,*(undefined4 *)puVar4)" ( number_literal , (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) }) (else_clause "else if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) goto LAB_00014c7c;" else (if_statement "if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) goto LAB_00014c7c;" if (parenthesized_expression "(*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb))" ( (binary_expression "*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)" (pointer_expression "*(char *)(param_2 + 0xb4)" * (cast_expression "(char *)(param_2 + 0xb4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb4)" ( (binary_expression "param_2 + 0xb4" identifier + number_literal) )))) == (pointer_expression "*(char *)(param_2 + 0xbb)" * (cast_expression "(char *)(param_2 + 0xbb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xbb)" ( (binary_expression "param_2 + 0xbb" identifier + number_literal) ))))) )) (goto_statement "goto LAB_00014c7c;" goto statement_identifier ;)))) (labeled_statement "LAB_00014a30:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);" statement_identifier : (expression_statement "uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);" (assignment_expression "uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00038338)" ( (pointer_expression "*(code *)PTR_dcgettext_00038338" * (cast_expression "(code *)PTR_dcgettext_00038338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_LAB_0003811c + 0x5158,5)" ( number_literal , (binary_expression "PTR_LAB_0003811c + 0x5158" identifier + number_literal) , number_literal )))) ;)) (expression_statement "in_t0 = *(uint ***)(param_2 + 0x28);" (assignment_expression "in_t0 = *(uint ***)(param_2 + 0x28)" identifier = (pointer_expression "*(uint ***)(param_2 + 0x28)" * (cast_expression "(uint ***)(param_2 + 0x28)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);" (call_expression "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" ( (pointer_expression "*(code *)PTR___fprintf_chk_00038280" * (cast_expression "(code *)PTR___fprintf_chk_00038280" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppuVar28,1,uVar5)" ( identifier , number_literal , identifier ))) ;) (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" identifier = number_literal) ;) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (expression_statement "*(undefined1 *)(param_2 + 0xbb) = *(undefined1 *)(param_2 + 0xb4);" (assignment_expression "*(undefined1 *)(param_2 + 0xbb) = *(undefined1 *)(param_2 + 0xb4)" (pointer_expression "*(undefined1 *)(param_2 + 0xbb)" * (cast_expression "(undefined1 *)(param_2 + 0xbb)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xbb)" ( (binary_expression "param_2 + 0xbb" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(param_2 + 0xb4)" * (cast_expression "(undefined1 *)(param_2 + 0xb4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb4)" ( (binary_expression "param_2 + 0xb4" identifier + number_literal) ))))) ;) }))) (labeled_statement "LAB_00014a80:\n  if ((*(int *)(param_2 + 0xac) == 0) || (*(char *)(param_2 + 0xb9) != '\0')) {\n    if ((*(int *)(param_2 + 0xa0) != 0) && (*(char *)(param_2 + 0xb7) == '\0')) {\n      if (uVar18 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);\n      uVar5 = FUN_00014838(param_2,auStack_80);\n      in_t0 = *(uint ***)(param_2 + 8);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar18 = 1;\n      *(undefined1 *)(param_2 + 0xb7) = 1;\n    }\n  }\n  else {\n    in_t3 = *(uint *)(param_2 + 0x54);\n    in_t2 = *(uint **)(param_2 + 0x50);\n    in_t0 = *(uint ***)(param_2 + 0x48);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168);\n    if (*(int *)(param_2 + 0x5c) != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }\n    ppuVar28 = *(uint ***)puVar4;\n    if (*(int *)(param_2 + 0x1c) == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    *(undefined1 *)(param_2 + 0xb9) = 1;\n    if (*(int *)(param_2 + 0xa0) == 0) {\n      uVar18 = 1;\n    }\n    else {\n      uVar18 = (uint)*(byte *)(param_2 + 0xb7);\n      if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }\n  }" statement_identifier : (if_statement "if ((*(int *)(param_2 + 0xac) == 0) || (*(char *)(param_2 + 0xb9) != '\0')) {\n    if ((*(int *)(param_2 + 0xa0) != 0) && (*(char *)(param_2 + 0xb7) == '\0')) {\n      if (uVar18 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);\n      uVar5 = FUN_00014838(param_2,auStack_80);\n      in_t0 = *(uint ***)(param_2 + 8);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar18 = 1;\n      *(undefined1 *)(param_2 + 0xb7) = 1;\n    }\n  }\n  else {\n    in_t3 = *(uint *)(param_2 + 0x54);\n    in_t2 = *(uint **)(param_2 + 0x50);\n    in_t0 = *(uint ***)(param_2 + 0x48);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168);\n    if (*(int *)(param_2 + 0x5c) != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }\n    ppuVar28 = *(uint ***)puVar4;\n    if (*(int *)(param_2 + 0x1c) == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    *(undefined1 *)(param_2 + 0xb9) = 1;\n    if (*(int *)(param_2 + 0xa0) == 0) {\n      uVar18 = 1;\n    }\n    else {\n      uVar18 = (uint)*(byte *)(param_2 + 0xb7);\n      if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }\n  }" if (parenthesized_expression "((*(int *)(param_2 + 0xac) == 0) || (*(char *)(param_2 + 0xb9) != '\0'))" ( (binary_expression "(*(int *)(param_2 + 0xac) == 0) || (*(char *)(param_2 + 0xb9) != '\0')" (parenthesized_expression "(*(int *)(param_2 + 0xac) == 0)" ( (binary_expression "*(int *)(param_2 + 0xac) == 0" (pointer_expression "*(int *)(param_2 + 0xac)" * (cast_expression "(int *)(param_2 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xac)" ( (binary_expression "param_2 + 0xac" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(char *)(param_2 + 0xb9) != '\0')" ( (binary_expression "*(char *)(param_2 + 0xb9) != '\0'" (pointer_expression "*(char *)(param_2 + 0xb9)" * (cast_expression "(char *)(param_2 + 0xb9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb9)" ( (binary_expression "param_2 + 0xb9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    if ((*(int *)(param_2 + 0xa0) != 0) && (*(char *)(param_2 + 0xb7) == '\0')) {\n      if (uVar18 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);\n      uVar5 = FUN_00014838(param_2,auStack_80);\n      in_t0 = *(uint ***)(param_2 + 8);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar18 = 1;\n      *(undefined1 *)(param_2 + 0xb7) = 1;\n    }\n  }" { (if_statement "if ((*(int *)(param_2 + 0xa0) != 0) && (*(char *)(param_2 + 0xb7) == '\0')) {\n      if (uVar18 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);\n      uVar5 = FUN_00014838(param_2,auStack_80);\n      in_t0 = *(uint ***)(param_2 + 8);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar18 = 1;\n      *(undefined1 *)(param_2 + 0xb7) = 1;\n    }" if (parenthesized_expression "((*(int *)(param_2 + 0xa0) != 0) && (*(char *)(param_2 + 0xb7) == '\0'))" ( (binary_expression "(*(int *)(param_2 + 0xa0) != 0) && (*(char *)(param_2 + 0xb7) == '\0')" (parenthesized_expression "(*(int *)(param_2 + 0xa0) != 0)" ( (binary_expression "*(int *)(param_2 + 0xa0) != 0" (pointer_expression "*(int *)(param_2 + 0xa0)" * (cast_expression "(int *)(param_2 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xa0)" ( (binary_expression "param_2 + 0xa0" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(char *)(param_2 + 0xb7) == '\0')" ( (binary_expression "*(char *)(param_2 + 0xb7) == '\0'" (pointer_expression "*(char *)(param_2 + 0xb7)" * (cast_expression "(char *)(param_2 + 0xb7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb7)" ( (binary_expression "param_2 + 0xb7" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      if (uVar18 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);\n      uVar5 = FUN_00014838(param_2,auStack_80);\n      in_t0 = *(uint ***)(param_2 + 8);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar18 = 1;\n      *(undefined1 *)(param_2 + 0xb7) = 1;\n    }" { (if_statement "if (uVar18 != 0) goto LAB_00014d08;" if (parenthesized_expression "(uVar18 != 0)" ( (binary_expression "uVar18 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00014d08;" goto statement_identifier ;)) (labeled_statement "LAB_00014ab8:\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);" statement_identifier : (expression_statement "unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);" (assignment_expression "unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5)" identifier = (cast_expression "(undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00038338)" ( (pointer_expression "*(code *)PTR_dcgettext_00038338" * (cast_expression "(code *)PTR_dcgettext_00038338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_LAB_0003811c + 0x518c,5)" ( number_literal , (binary_expression "PTR_LAB_0003811c + 0x518c" identifier + number_literal) , number_literal ))))) ;)) (expression_statement "uVar5 = FUN_00014838(param_2,auStack_80);" (assignment_expression "uVar5 = FUN_00014838(param_2,auStack_80)" identifier = (call_expression "FUN_00014838(param_2,auStack_80)" identifier (argument_list "(param_2,auStack_80)" ( identifier , identifier )))) ;) (expression_statement "in_t0 = *(uint ***)(param_2 + 8);" (assignment_expression "in_t0 = *(uint ***)(param_2 + 8)" identifier = (pointer_expression "*(uint ***)(param_2 + 8)" * (cast_expression "(uint ***)(param_2 + 8)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);" (call_expression "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" ( (pointer_expression "*(code *)PTR___fprintf_chk_00038280" * (cast_expression "(code *)PTR___fprintf_chk_00038280" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppuVar28,1,unaff_s4,uVar5)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" identifier = number_literal) ;) (expression_statement "*(undefined1 *)(param_2 + 0xb7) = 1;" (assignment_expression "*(undefined1 *)(param_2 + 0xb7) = 1" (pointer_expression "*(undefined1 *)(param_2 + 0xb7)" * (cast_expression "(undefined1 *)(param_2 + 0xb7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb7)" ( (binary_expression "param_2 + 0xb7" identifier + number_literal) )))) = number_literal) ;) })) }) (else_clause "else {\n    in_t3 = *(uint *)(param_2 + 0x54);\n    in_t2 = *(uint **)(param_2 + 0x50);\n    in_t0 = *(uint ***)(param_2 + 0x48);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168);\n    if (*(int *)(param_2 + 0x5c) != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }\n    ppuVar28 = *(uint ***)puVar4;\n    if (*(int *)(param_2 + 0x1c) == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    *(undefined1 *)(param_2 + 0xb9) = 1;\n    if (*(int *)(param_2 + 0xa0) == 0) {\n      uVar18 = 1;\n    }\n    else {\n      uVar18 = (uint)*(byte *)(param_2 + 0xb7);\n      if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }\n  }" else (compound_statement "{\n    in_t3 = *(uint *)(param_2 + 0x54);\n    in_t2 = *(uint **)(param_2 + 0x50);\n    in_t0 = *(uint ***)(param_2 + 0x48);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168);\n    if (*(int *)(param_2 + 0x5c) != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }\n    ppuVar28 = *(uint ***)puVar4;\n    if (*(int *)(param_2 + 0x1c) == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    *(undefined1 *)(param_2 + 0xb9) = 1;\n    if (*(int *)(param_2 + 0xa0) == 0) {\n      uVar18 = 1;\n    }\n    else {\n      uVar18 = (uint)*(byte *)(param_2 + 0xb7);\n      if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }\n  }" { (expression_statement "in_t3 = *(uint *)(param_2 + 0x54);" (assignment_expression "in_t3 = *(uint *)(param_2 + 0x54)" identifier = (pointer_expression "*(uint *)(param_2 + 0x54)" * (cast_expression "(uint *)(param_2 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "in_t2 = *(uint **)(param_2 + 0x50);" (assignment_expression "in_t2 = *(uint **)(param_2 + 0x50)" identifier = (pointer_expression "*(uint **)(param_2 + 0x50)" * (cast_expression "(uint **)(param_2 + 0x50)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x50)" ( (binary_expression "param_2 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "in_t0 = *(uint ***)(param_2 + 0x48);" (assignment_expression "in_t0 = *(uint ***)(param_2 + 0x48)" identifier = (pointer_expression "*(uint ***)(param_2 + 0x48)" * (cast_expression "(uint ***)(param_2 + 0x48)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(param_2 + 0x48)" ( (binary_expression "param_2 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168);" (call_expression "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" ( (pointer_expression "*(code *)PTR___fprintf_chk_00038280" * (cast_expression "(code *)PTR___fprintf_chk_00038280" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168)" ( identifier , number_literal , (binary_expression "PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168" (binary_expression "PTR_LAB_0003811c + (uVar18 ^ 1)" identifier + (parenthesized_expression "(uVar18 ^ 1)" ( (binary_expression "uVar18 ^ 1" identifier ^ number_literal) ))) + number_literal) ))) ;) (if_statement "if (*(int *)(param_2 + 0x5c) != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }" if (parenthesized_expression "(*(int *)(param_2 + 0x5c) != 0)" ( (binary_expression "*(int *)(param_2 + 0x5c) != 0" (pointer_expression "*(int *)(param_2 + 0x5c)" * (cast_expression "(int *)(param_2 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x5c)" ( (binary_expression "param_2 + 0x5c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }" { (expression_statement "(*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);" (call_expression "(*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" ( (pointer_expression "*(code *)PTR___fprintf_chk_00038280" * (cast_expression "(code *)PTR___fprintf_chk_00038280" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180)" ( (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , (binary_expression "PTR_LAB_0003811c + 0x5180" identifier + number_literal) ))) ;) })) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (if_statement "if (*(int *)(param_2 + 0x1c) == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }" if (parenthesized_expression "(*(int *)(param_2 + 0x1c) == 1)" ( (binary_expression "*(int *)(param_2 + 0x1c) == 1" (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }" { (expression_statement "(*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);" (call_expression "(*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28)" (parenthesized_expression "(*(code *)PTR_fwrite_00038324)" ( (pointer_expression "*(code *)PTR_fwrite_00038324" * (cast_expression "(code *)PTR_fwrite_00038324" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28)" ( (binary_expression "PTR_LAB_0003811c + 0x5188" identifier + number_literal) , number_literal , number_literal , identifier ))) ;) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) })) (expression_statement "*(undefined1 *)(param_2 + 0xb9) = 1;" (assignment_expression "*(undefined1 *)(param_2 + 0xb9) = 1" (pointer_expression "*(undefined1 *)(param_2 + 0xb9)" * (cast_expression "(undefined1 *)(param_2 + 0xb9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb9)" ( (binary_expression "param_2 + 0xb9" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(int *)(param_2 + 0xa0) == 0) {\n      uVar18 = 1;\n    }\n    else {\n      uVar18 = (uint)*(byte *)(param_2 + 0xb7);\n      if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }" if (parenthesized_expression "(*(int *)(param_2 + 0xa0) == 0)" ( (binary_expression "*(int *)(param_2 + 0xa0) == 0" (pointer_expression "*(int *)(param_2 + 0xa0)" * (cast_expression "(int *)(param_2 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xa0)" ( (binary_expression "param_2 + 0xa0" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      uVar18 = 1;\n    }" { (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      uVar18 = (uint)*(byte *)(param_2 + 0xb7);\n      if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }" else (compound_statement "{\n      uVar18 = (uint)*(byte *)(param_2 + 0xb7);\n      if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }" { (expression_statement "uVar18 = (uint)*(byte *)(param_2 + 0xb7);" (assignment_expression "uVar18 = (uint)*(byte *)(param_2 + 0xb7)" identifier = (binary_expression "(uint)*(byte *)(param_2 + 0xb7)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(param_2 + 0xb7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb7)" ( (binary_expression "param_2 + 0xb7" identifier + number_literal) ))))) ;) (if_statement "if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }" if (parenthesized_expression "(uVar18 == 0)" ( (binary_expression "uVar18 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }" { (labeled_statement "LAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);" statement_identifier : (expression_statement "(*(code *)PTR_fputc_00038298)(0x20,ppuVar28);" (call_expression "(*(code *)PTR_fputc_00038298)(0x20,ppuVar28)" (parenthesized_expression "(*(code *)PTR_fputc_00038298)" ( (pointer_expression "*(code *)PTR_fputc_00038298" * (cast_expression "(code *)PTR_fputc_00038298" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x20,ppuVar28)" ( number_literal , identifier ))) ;)) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (goto_statement "goto LAB_00014ab8;" goto statement_identifier ;) })) }))) })))) (if_statement "if ((*(int *)(param_2 + 0xa4) == 0) || (*(char *)(param_2 + 0xb8) != '\0')) {\n    if ((*(int *)(param_2 + 0xb0) == 0) ||\n       (unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0')) {\n      if (*(char *)(param_2 + 0x98) == '\0') goto LAB_00014bb0;\n      param_2 = *(int *)(param_2 + 0x58);\n      unaff_s4 = (undefined *)(param_2 >> 0x1f);\n      if (uVar18 != 0) goto LAB_00014d8c;\n      goto LAB_00014c1c;\n    }\n    unaff_s4 = PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5130;\nLAB_00014d38:\n    uVar5 = FUN_00013f30(*(undefined4 *)(param_2 + 0x18),auStack_80);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n    *(undefined1 *)(param_2 + 0xba) = 1;\n    if (*(char *)(param_2 + 0x98) != '\0') {\n      param_2 = *(int *)(param_2 + 0x58);\n      ppuVar28 = *(uint ***)puVar4;\n      goto LAB_00014d88;\n    }\n  }\n  else {\n    (*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac,*(undefined4 *)(param_2 + 0x14));\n    *(undefined1 *)(param_2 + 0xb8) = 1;\n    if (*(int *)(param_2 + 0xb0) == 0) {\n      cVar1 = *(char *)(param_2 + 0x98);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (*(char *)(param_2 + 0xba) == '\0') {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = *(char *)(param_2 + 0x98);\n    }\n    if (cVar1 == '\0') goto LAB_00014bb0;\n    param_2 = *(int *)(param_2 + 0x58);\nLAB_00014d88:\n    unaff_s4 = (undefined *)(param_2 >> 0x1f);\nLAB_00014d8c:\n    (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n    ppuVar28 = *(uint ***)puVar4;\nLAB_00014c1c:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n  }" if (parenthesized_expression "((*(int *)(param_2 + 0xa4) == 0) || (*(char *)(param_2 + 0xb8) != '\0'))" ( (binary_expression "(*(int *)(param_2 + 0xa4) == 0) || (*(char *)(param_2 + 0xb8) != '\0')" (parenthesized_expression "(*(int *)(param_2 + 0xa4) == 0)" ( (binary_expression "*(int *)(param_2 + 0xa4) == 0" (pointer_expression "*(int *)(param_2 + 0xa4)" * (cast_expression "(int *)(param_2 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xa4)" ( (binary_expression "param_2 + 0xa4" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(char *)(param_2 + 0xb8) != '\0')" ( (binary_expression "*(char *)(param_2 + 0xb8) != '\0'" (pointer_expression "*(char *)(param_2 + 0xb8)" * (cast_expression "(char *)(param_2 + 0xb8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb8)" ( (binary_expression "param_2 + 0xb8" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    if ((*(int *)(param_2 + 0xb0) == 0) ||\n       (unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0')) {\n      if (*(char *)(param_2 + 0x98) == '\0') goto LAB_00014bb0;\n      param_2 = *(int *)(param_2 + 0x58);\n      unaff_s4 = (undefined *)(param_2 >> 0x1f);\n      if (uVar18 != 0) goto LAB_00014d8c;\n      goto LAB_00014c1c;\n    }\n    unaff_s4 = PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5130;\nLAB_00014d38:\n    uVar5 = FUN_00013f30(*(undefined4 *)(param_2 + 0x18),auStack_80);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n    *(undefined1 *)(param_2 + 0xba) = 1;\n    if (*(char *)(param_2 + 0x98) != '\0') {\n      param_2 = *(int *)(param_2 + 0x58);\n      ppuVar28 = *(uint ***)puVar4;\n      goto LAB_00014d88;\n    }\n  }" { (if_statement "if ((*(int *)(param_2 + 0xb0) == 0) ||\n       (unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0')) {\n      if (*(char *)(param_2 + 0x98) == '\0') goto LAB_00014bb0;\n      param_2 = *(int *)(param_2 + 0x58);\n      unaff_s4 = (undefined *)(param_2 >> 0x1f);\n      if (uVar18 != 0) goto LAB_00014d8c;\n      goto LAB_00014c1c;\n    }" if (parenthesized_expression "((*(int *)(param_2 + 0xb0) == 0) ||\n       (unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0'))" ( (binary_expression "(*(int *)(param_2 + 0xb0) == 0) ||\n       (unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0')" (parenthesized_expression "(*(int *)(param_2 + 0xb0) == 0)" ( (binary_expression "*(int *)(param_2 + 0xb0) == 0" (pointer_expression "*(int *)(param_2 + 0xb0)" * (cast_expression "(int *)(param_2 + 0xb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb0)" ( (binary_expression "param_2 + 0xb0" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0')" ( (comma_expression "unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0'" (assignment_expression "unaff_s4 = PTR_LAB_0003811c" identifier = identifier) , (binary_expression "*(char *)(param_2 + 0xba) != '\0'" (pointer_expression "*(char *)(param_2 + 0xba)" * (cast_expression "(char *)(param_2 + 0xba)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xba)" ( (binary_expression "param_2 + 0xba" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n      if (*(char *)(param_2 + 0x98) == '\0') goto LAB_00014bb0;\n      param_2 = *(int *)(param_2 + 0x58);\n      unaff_s4 = (undefined *)(param_2 >> 0x1f);\n      if (uVar18 != 0) goto LAB_00014d8c;\n      goto LAB_00014c1c;\n    }" { (if_statement "if (*(char *)(param_2 + 0x98) == '\0') goto LAB_00014bb0;" if (parenthesized_expression "(*(char *)(param_2 + 0x98) == '\0')" ( (binary_expression "*(char *)(param_2 + 0x98) == '\0'" (pointer_expression "*(char *)(param_2 + 0x98)" * (cast_expression "(char *)(param_2 + 0x98)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x98)" ( (binary_expression "param_2 + 0x98" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00014bb0;" goto statement_identifier ;)) (expression_statement "param_2 = *(int *)(param_2 + 0x58);" (assignment_expression "param_2 = *(int *)(param_2 + 0x58)" identifier = (pointer_expression "*(int *)(param_2 + 0x58)" * (cast_expression "(int *)(param_2 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x58)" ( (binary_expression "param_2 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "unaff_s4 = (undefined *)(param_2 >> 0x1f);" (assignment_expression "unaff_s4 = (undefined *)(param_2 >> 0x1f)" identifier = (cast_expression "(undefined *)(param_2 >> 0x1f)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 >> 0x1f)" ( (binary_expression "param_2 >> 0x1f" identifier >> number_literal) )))) ;) (if_statement "if (uVar18 != 0) goto LAB_00014d8c;" if (parenthesized_expression "(uVar18 != 0)" ( (binary_expression "uVar18 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00014d8c;" goto statement_identifier ;)) (goto_statement "goto LAB_00014c1c;" goto statement_identifier ;) })) (expression_statement "unaff_s4 = PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5130;" (assignment_expression "unaff_s4 = PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5130" identifier = (binary_expression "PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5130" (binary_expression "PTR_LAB_0003811c + (uVar18 ^ 1)" identifier + (parenthesized_expression "(uVar18 ^ 1)" ( (binary_expression "uVar18 ^ 1" identifier ^ number_literal) ))) + number_literal)) ;) (labeled_statement "LAB_00014d38:\n    uVar5 = FUN_00013f30(*(undefined4 *)(param_2 + 0x18),auStack_80);" statement_identifier : (expression_statement "uVar5 = FUN_00013f30(*(undefined4 *)(param_2 + 0x18),auStack_80);" (assignment_expression "uVar5 = FUN_00013f30(*(undefined4 *)(param_2 + 0x18),auStack_80)" identifier = (call_expression "FUN_00013f30(*(undefined4 *)(param_2 + 0x18),auStack_80)" identifier (argument_list "(*(undefined4 *)(param_2 + 0x18),auStack_80)" ( (pointer_expression "*(undefined4 *)(param_2 + 0x18)" * (cast_expression "(undefined4 *)(param_2 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) )))) , identifier )))) ;)) (expression_statement "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);" (call_expression "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" ( (pointer_expression "*(code *)PTR___fprintf_chk_00038280" * (cast_expression "(code *)PTR___fprintf_chk_00038280" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppuVar28,1,unaff_s4,uVar5)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "*(undefined1 *)(param_2 + 0xba) = 1;" (assignment_expression "*(undefined1 *)(param_2 + 0xba) = 1" (pointer_expression "*(undefined1 *)(param_2 + 0xba)" * (cast_expression "(undefined1 *)(param_2 + 0xba)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xba)" ( (binary_expression "param_2 + 0xba" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(char *)(param_2 + 0x98) != '\0') {\n      param_2 = *(int *)(param_2 + 0x58);\n      ppuVar28 = *(uint ***)puVar4;\n      goto LAB_00014d88;\n    }" if (parenthesized_expression "(*(char *)(param_2 + 0x98) != '\0')" ( (binary_expression "*(char *)(param_2 + 0x98) != '\0'" (pointer_expression "*(char *)(param_2 + 0x98)" * (cast_expression "(char *)(param_2 + 0x98)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x98)" ( (binary_expression "param_2 + 0x98" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      param_2 = *(int *)(param_2 + 0x58);\n      ppuVar28 = *(uint ***)puVar4;\n      goto LAB_00014d88;\n    }" { (expression_statement "param_2 = *(int *)(param_2 + 0x58);" (assignment_expression "param_2 = *(int *)(param_2 + 0x58)" identifier = (pointer_expression "*(int *)(param_2 + 0x58)" * (cast_expression "(int *)(param_2 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x58)" ( (binary_expression "param_2 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (goto_statement "goto LAB_00014d88;" goto statement_identifier ;) })) }) (else_clause "else {\n    (*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac,*(undefined4 *)(param_2 + 0x14));\n    *(undefined1 *)(param_2 + 0xb8) = 1;\n    if (*(int *)(param_2 + 0xb0) == 0) {\n      cVar1 = *(char *)(param_2 + 0x98);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (*(char *)(param_2 + 0xba) == '\0') {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = *(char *)(param_2 + 0x98);\n    }\n    if (cVar1 == '\0') goto LAB_00014bb0;\n    param_2 = *(int *)(param_2 + 0x58);\nLAB_00014d88:\n    unaff_s4 = (undefined *)(param_2 >> 0x1f);\nLAB_00014d8c:\n    (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n    ppuVar28 = *(uint ***)puVar4;\nLAB_00014c1c:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n  }" else (compound_statement "{\n    (*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac,*(undefined4 *)(param_2 + 0x14));\n    *(undefined1 *)(param_2 + 0xb8) = 1;\n    if (*(int *)(param_2 + 0xb0) == 0) {\n      cVar1 = *(char *)(param_2 + 0x98);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (*(char *)(param_2 + 0xba) == '\0') {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = *(char *)(param_2 + 0x98);\n    }\n    if (cVar1 == '\0') goto LAB_00014bb0;\n    param_2 = *(int *)(param_2 + 0x58);\nLAB_00014d88:\n    unaff_s4 = (undefined *)(param_2 >> 0x1f);\nLAB_00014d8c:\n    (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n    ppuVar28 = *(uint ***)puVar4;\nLAB_00014c1c:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n  }" { (expression_statement "(*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac,*(undefined4 *)(param_2 + 0x14));" (call_expression "(*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac,*(undefined4 *)(param_2 + 0x14))" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" ( (pointer_expression "*(code *)PTR___fprintf_chk_00038280" * (cast_expression "(code *)PTR___fprintf_chk_00038280" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac,*(undefined4 *)(param_2 + 0x14))" ( identifier , number_literal , (binary_expression "PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac" (binary_expression "PTR_LAB_0003811c + (uVar18 ^ 1)" identifier + (parenthesized_expression "(uVar18 ^ 1)" ( (binary_expression "uVar18 ^ 1" identifier ^ number_literal) ))) + number_literal) , (pointer_expression "*(undefined4 *)(param_2 + 0x14)" * (cast_expression "(undefined4 *)(param_2 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x14)" ( (binary_expression "param_2 + 0x14" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined1 *)(param_2 + 0xb8) = 1;" (assignment_expression "*(undefined1 *)(param_2 + 0xb8) = 1" (pointer_expression "*(undefined1 *)(param_2 + 0xb8)" * (cast_expression "(undefined1 *)(param_2 + 0xb8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb8)" ( (binary_expression "param_2 + 0xb8" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(int *)(param_2 + 0xb0) == 0) {\n      cVar1 = *(char *)(param_2 + 0x98);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (*(char *)(param_2 + 0xba) == '\0') {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = *(char *)(param_2 + 0x98);\n    }" if (parenthesized_expression "(*(int *)(param_2 + 0xb0) == 0)" ( (binary_expression "*(int *)(param_2 + 0xb0) == 0" (pointer_expression "*(int *)(param_2 + 0xb0)" * (cast_expression "(int *)(param_2 + 0xb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb0)" ( (binary_expression "param_2 + 0xb0" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      cVar1 = *(char *)(param_2 + 0x98);\n      ppuVar28 = *(uint ***)puVar4;\n    }" { (expression_statement "cVar1 = *(char *)(param_2 + 0x98);" (assignment_expression "cVar1 = *(char *)(param_2 + 0x98)" identifier = (pointer_expression "*(char *)(param_2 + 0x98)" * (cast_expression "(char *)(param_2 + 0x98)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x98)" ( (binary_expression "param_2 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) }) (else_clause "else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (*(char *)(param_2 + 0xba) == '\0') {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = *(char *)(param_2 + 0x98);\n    }" else (compound_statement "{\n      ppuVar28 = *(uint ***)puVar4;\n      if (*(char *)(param_2 + 0xba) == '\0') {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = *(char *)(param_2 + 0x98);\n    }" { (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (if_statement "if (*(char *)(param_2 + 0xba) == '\0') {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }" if (parenthesized_expression "(*(char *)(param_2 + 0xba) == '\0')" ( (binary_expression "*(char *)(param_2 + 0xba) == '\0'" (pointer_expression "*(char *)(param_2 + 0xba)" * (cast_expression "(char *)(param_2 + 0xba)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xba)" ( (binary_expression "param_2 + 0xba" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }" { (expression_statement "unaff_s4 = PTR_LAB_0003811c + 0x5130;" (assignment_expression "unaff_s4 = PTR_LAB_0003811c + 0x5130" identifier = (binary_expression "PTR_LAB_0003811c + 0x5130" identifier + number_literal)) ;) (goto_statement "goto LAB_00014d38;" goto statement_identifier ;) })) (expression_statement "cVar1 = *(char *)(param_2 + 0x98);" (assignment_expression "cVar1 = *(char *)(param_2 + 0x98)" identifier = (pointer_expression "*(char *)(param_2 + 0x98)" * (cast_expression "(char *)(param_2 + 0x98)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x98)" ( (binary_expression "param_2 + 0x98" identifier + number_literal) ))))) ;) }))) (if_statement "if (cVar1 == '\0') goto LAB_00014bb0;" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00014bb0;" goto statement_identifier ;)) (expression_statement "param_2 = *(int *)(param_2 + 0x58);" (assignment_expression "param_2 = *(int *)(param_2 + 0x58)" identifier = (pointer_expression "*(int *)(param_2 + 0x58)" * (cast_expression "(int *)(param_2 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x58)" ( (binary_expression "param_2 + 0x58" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00014d88:\n    unaff_s4 = (undefined *)(param_2 >> 0x1f);" statement_identifier : (expression_statement "unaff_s4 = (undefined *)(param_2 >> 0x1f);" (assignment_expression "unaff_s4 = (undefined *)(param_2 >> 0x1f)" identifier = (cast_expression "(undefined *)(param_2 >> 0x1f)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 >> 0x1f)" ( (binary_expression "param_2 >> 0x1f" identifier >> number_literal) )))) ;)) (labeled_statement "LAB_00014d8c:\n    (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);" statement_identifier : (expression_statement "(*(code *)PTR_fputc_00038298)(0x20,ppuVar28);" (call_expression "(*(code *)PTR_fputc_00038298)(0x20,ppuVar28)" (parenthesized_expression "(*(code *)PTR_fputc_00038298)" ( (pointer_expression "*(code *)PTR_fputc_00038298" * (cast_expression "(code *)PTR_fputc_00038298" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x20,ppuVar28)" ( number_literal , identifier ))) ;)) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (labeled_statement "LAB_00014c1c:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);" statement_identifier : (expression_statement "uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);" (assignment_expression "uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00038338)" ( (pointer_expression "*(code *)PTR_dcgettext_00038338" * (cast_expression "(code *)PTR_dcgettext_00038338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_LAB_0003811c + 0x51b8,5)" ( number_literal , (binary_expression "PTR_LAB_0003811c + 0x51b8" identifier + number_literal) , number_literal )))) ;)) (expression_statement "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);" (call_expression "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" ( (pointer_expression "*(code *)PTR___fprintf_chk_00038280" * (cast_expression "(code *)PTR___fprintf_chk_00038280" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppuVar28,1,uVar5)" ( identifier , number_literal , identifier ))) ;) }))) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (labeled_statement "LAB_00014bb0:\n  puVar14 = (undefined4 *)&DAT_0000000a;" statement_identifier : (expression_statement "puVar14 = (undefined4 *)&DAT_0000000a;" (assignment_expression "puVar14 = (undefined4 *)&DAT_0000000a" identifier = (cast_expression "(undefined4 *)&DAT_0000000a" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000000a" & identifier))) ;)) (expression_statement "ppuVar21 = ppuVar28;" (assignment_expression "ppuVar21 = ppuVar28" identifier = identifier) ;) (expression_statement "(*(code *)PTR_fputc_00038298)();" (call_expression "(*(code *)PTR_fputc_00038298)()" (parenthesized_expression "(*(code *)PTR_fputc_00038298)" ( (pointer_expression "*(code *)PTR_fputc_00038298" * (cast_expression "(code *)PTR_fputc_00038298" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar6 = *(int *)puVar3;" (assignment_expression "iVar6 = *(int *)puVar3" identifier = (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (local_1c == iVar6) {\n    return iVar6;\n  }" if (parenthesized_expression "(local_1c == iVar6)" ( (binary_expression "local_1c == iVar6" identifier == identifier) )) (compound_statement "{\n    return iVar6;\n  }" { (return_statement "return iVar6;" return identifier ;) })) (expression_statement "puVar33 = PTR___stack_chk_fail_00038334;" (assignment_expression "puVar33 = PTR___stack_chk_fail_00038334" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00038334)();" (call_expression "(*(code *)PTR___stack_chk_fail_00038334)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00038334)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00038334" * (cast_expression "(code *)PTR___stack_chk_fail_00038334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar7 = *(int **)(puVar33 + 0x234a4);" (assignment_expression "piVar7 = *(int **)(puVar33 + 0x234a4)" identifier = (pointer_expression "*(int **)(puVar33 + 0x234a4)" * (cast_expression "(int **)(puVar33 + 0x234a4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x234a4)" ( (binary_expression "puVar33 + 0x234a4" identifier + number_literal) ))))) ;) (expression_statement "uVar18 = 0xfffffffe;" (assignment_expression "uVar18 = 0xfffffffe" identifier = number_literal) ;) (expression_statement "puStack_cc = puVar3;" (assignment_expression "puStack_cc = puVar3" identifier = identifier) ;) (expression_statement "puVar31 = (uint *)&DAT_00000026;" (assignment_expression "puVar31 = (uint *)&DAT_00000026" identifier = (cast_expression "(uint *)&DAT_00000026" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000026" & identifier))) ;) (expression_statement "iStack_dc = *piVar7;" (assignment_expression "iStack_dc = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "iVar6 = *(int *)(puVar33 + 0x23270);" (assignment_expression "iVar6 = *(int *)(puVar33 + 0x23270)" identifier = (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) ;) (expression_statement "puStack_c8 = unaff_s4;" (assignment_expression "puStack_c8 = unaff_s4" identifier = identifier) ;) (expression_statement "puStack_d0 = puVar4;" (assignment_expression "puStack_d0 = puVar4" identifier = identifier) ;) (expression_statement "puVar13 = auStack_550;" (assignment_expression "puVar13 = auStack_550" identifier = identifier) ;) (expression_statement "ppuStack_d4 = ppuVar28;" (assignment_expression "ppuStack_d4 = ppuVar28" identifier = identifier) ;) (expression_statement "puVar29 = (uint *)0xfffffffe;" (assignment_expression "puVar29 = (uint *)0xfffffffe" identifier = (cast_expression "(uint *)0xfffffffe" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar30 = *(int *)(puVar33 + 0x23270) + 0x6250;" (assignment_expression "iVar30 = *(int *)(puVar33 + 0x23270) + 0x6250" identifier = (binary_expression "*(int *)(puVar33 + 0x23270) + 0x6250" (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iStack_d8 = param_2;" (assignment_expression "iStack_d8 = param_2" identifier = identifier) ;) (expression_statement "puVar25 = (uint *)0x0;" (assignment_expression "puVar25 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar8 = *(int *)(puVar33 + 0x23270) + 0x62c4;" (assignment_expression "iVar8 = *(int *)(puVar33 + 0x23270) + 0x62c4" identifier = (binary_expression "*(int *)(puVar33 + 0x23270) + 0x62c4" (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "asStack_578[0] = 0;" (assignment_expression "asStack_578[0] = 0" (subscript_expression "asStack_578[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iStack_670 = 0;" (assignment_expression "iStack_670 = 0" identifier = number_literal) ;) (expression_statement "psVar32 = asStack_578;" (assignment_expression "psVar32 = asStack_578" identifier = identifier) ;) (labeled_statement "LAB_00014f50:\n  ppuVar28 = (uint **)0x800000;" statement_identifier : (expression_statement "ppuVar28 = (uint **)0x800000;" (assignment_expression "ppuVar28 = (uint **)0x800000" identifier = (cast_expression "(uint **)0x800000" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;)) (expression_statement "puVar19 = puVar31;" (assignment_expression "puVar19 = puVar31" identifier = identifier) ;) (if_statement "if (puVar29 == (uint *)0xfffffffe) {\n    ppuVar21 = (uint **)*puVar14;\n    in_t2 = (uint *)0x1;\n    ppuVar28 = (uint **)0x80001f;\n    in_t4 = (uint **)0x2d;\n    bVar12 = *(byte *)ppuVar21;\n    in_t5 = 0x2b;\n    in_t6 = 0x28;\n    uVar18 = 0x29;\nLAB_000152f0:\n    in_t0 = (uint **)(int)(char)bVar12;\n    uVar15 = (uint)bVar12;\nLAB_000152f4:\n    uVar22 = uVar15 - 9;\n    ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n    if (ppuVar16 == (uint **)0x0) goto LAB_000153a8;\nLAB_00015308:\n    ppuVar11 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f);\n    while (ppuVar11 != (uint **)0x0) {\n      ppuVar21 = (uint **)((int)ppuVar21 + 1);\n      *puVar14 = ppuVar21;\n      in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n      uVar15 = (uint)*(byte *)ppuVar21;\n      ppuVar16 = (uint **)(uVar15 - 9);\n      if ((uint **)0x17 < ppuVar16) goto LAB_000153a8;\n      ppuVar16 = (uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f);\n      ppuVar11 = ppuVar16;\n    }\nLAB_00015344:\n    in_t3 = 0xffffffff;\n    if (uVar15 == 0x2d) goto LAB_00015358;\n    if (uVar15 == 0x2b) goto LAB_00015354;\n    if ((0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))\n       ) {\n      pbVar26 = (byte *)*puVar14;\n      ppuVar16 = (uint **)(abStack_f1 + 1);\n      in_t0 = (uint **)(abStack_f1 + 0x14);\n      ppuVar28 = (uint **)&DAT_0000002e;\n      ppuVar21 = ppuVar16;\n      do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        *puVar14 = pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));\n      *(byte *)ppuVar21 = 0;\n      ppuVar21 = ppuVar16;\n      bVar12 = abStack_f1[1];\n      while (bVar12 != 0) {\n        if (bVar12 - 0x61 < 0x1a) {\n          bVar12 = bVar12 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar12;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar12 = *(byte *)ppuVar21;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);\n      do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16);\n      if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);\n      do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      iVar9 = *(int *)(puVar33 + 0x2326c);\n      ppuVar21 = ppuVar16;\n      iVar10 = FUN_00014388(puVar14);\n      unaff_s6 = asStack_578;\n      if (iVar10 != 0) {\n        puVar29 = *(uint **)(iVar10 + 4);\n        apuStack_5e8[1] = *(uint **)(iVar10 + 8);\n        apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);\n      iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n      if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        ppuVar16 = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);\n      ppuVar11 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);\n      ppuVar21 = ppuVar11;\n      psVar27 = unaff_s6;\n      do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);\n      pbVar26 = (byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1));\n      if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar11 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);\n      pcVar34 = *(code **)(puVar33 + 0x234c8);\n      do {\n        iVar10 = (*pcVar34)(ppuVar16);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);\n      if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar11 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }\n      if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = ppuVar16;\n        ppuVar11 = ppuVar16;\n        bVar12 = abStack_f1[1];\n        do {\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        } while (bVar12 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }\n      ppuVar21 = *(uint ***)(puVar33 + 0x23270);\n      if (*(char *)((int)puVar14 + 0xb5) == '\0') goto LAB_00017ae0;\n      uVar5 = (**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5);\n      puVar29 = (uint *)0x3f;\n      FUN_00014188(uVar5);\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n      goto LAB_00014f74;\n    }\n    iVar9 = 0;\n    if (uVar15 == 0x28) {\n      ppuVar21 = (uint **)*puVar14;\n      goto LAB_000157a8;\n    }\n    *puVar14 = (byte *)((int)ppuVar21 + 1);\n    puVar29 = (uint *)(uint)*(byte *)ppuVar21;\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if (puVar29 != (uint *)0x0) goto LAB_0001558c;\n    uVar15 = 0;\n    goto LAB_00014f74;\n  }" if (parenthesized_expression "(puVar29 == (uint *)0xfffffffe)" ( (binary_expression "puVar29 == (uint *)0xfffffffe" identifier == (cast_expression "(uint *)0xfffffffe" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    ppuVar21 = (uint **)*puVar14;\n    in_t2 = (uint *)0x1;\n    ppuVar28 = (uint **)0x80001f;\n    in_t4 = (uint **)0x2d;\n    bVar12 = *(byte *)ppuVar21;\n    in_t5 = 0x2b;\n    in_t6 = 0x28;\n    uVar18 = 0x29;\nLAB_000152f0:\n    in_t0 = (uint **)(int)(char)bVar12;\n    uVar15 = (uint)bVar12;\nLAB_000152f4:\n    uVar22 = uVar15 - 9;\n    ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n    if (ppuVar16 == (uint **)0x0) goto LAB_000153a8;\nLAB_00015308:\n    ppuVar11 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f);\n    while (ppuVar11 != (uint **)0x0) {\n      ppuVar21 = (uint **)((int)ppuVar21 + 1);\n      *puVar14 = ppuVar21;\n      in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n      uVar15 = (uint)*(byte *)ppuVar21;\n      ppuVar16 = (uint **)(uVar15 - 9);\n      if ((uint **)0x17 < ppuVar16) goto LAB_000153a8;\n      ppuVar16 = (uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f);\n      ppuVar11 = ppuVar16;\n    }\nLAB_00015344:\n    in_t3 = 0xffffffff;\n    if (uVar15 == 0x2d) goto LAB_00015358;\n    if (uVar15 == 0x2b) goto LAB_00015354;\n    if ((0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))\n       ) {\n      pbVar26 = (byte *)*puVar14;\n      ppuVar16 = (uint **)(abStack_f1 + 1);\n      in_t0 = (uint **)(abStack_f1 + 0x14);\n      ppuVar28 = (uint **)&DAT_0000002e;\n      ppuVar21 = ppuVar16;\n      do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        *puVar14 = pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));\n      *(byte *)ppuVar21 = 0;\n      ppuVar21 = ppuVar16;\n      bVar12 = abStack_f1[1];\n      while (bVar12 != 0) {\n        if (bVar12 - 0x61 < 0x1a) {\n          bVar12 = bVar12 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar12;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar12 = *(byte *)ppuVar21;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);\n      do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16);\n      if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);\n      do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      iVar9 = *(int *)(puVar33 + 0x2326c);\n      ppuVar21 = ppuVar16;\n      iVar10 = FUN_00014388(puVar14);\n      unaff_s6 = asStack_578;\n      if (iVar10 != 0) {\n        puVar29 = *(uint **)(iVar10 + 4);\n        apuStack_5e8[1] = *(uint **)(iVar10 + 8);\n        apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);\n      iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n      if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        ppuVar16 = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);\n      ppuVar11 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);\n      ppuVar21 = ppuVar11;\n      psVar27 = unaff_s6;\n      do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);\n      pbVar26 = (byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1));\n      if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar11 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);\n      pcVar34 = *(code **)(puVar33 + 0x234c8);\n      do {\n        iVar10 = (*pcVar34)(ppuVar16);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);\n      if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar11 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }\n      if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = ppuVar16;\n        ppuVar11 = ppuVar16;\n        bVar12 = abStack_f1[1];\n        do {\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        } while (bVar12 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }\n      ppuVar21 = *(uint ***)(puVar33 + 0x23270);\n      if (*(char *)((int)puVar14 + 0xb5) == '\0') goto LAB_00017ae0;\n      uVar5 = (**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5);\n      puVar29 = (uint *)0x3f;\n      FUN_00014188(uVar5);\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n      goto LAB_00014f74;\n    }\n    iVar9 = 0;\n    if (uVar15 == 0x28) {\n      ppuVar21 = (uint **)*puVar14;\n      goto LAB_000157a8;\n    }\n    *puVar14 = (byte *)((int)ppuVar21 + 1);\n    puVar29 = (uint *)(uint)*(byte *)ppuVar21;\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if (puVar29 != (uint *)0x0) goto LAB_0001558c;\n    uVar15 = 0;\n    goto LAB_00014f74;\n  }" { (expression_statement "ppuVar21 = (uint **)*puVar14;" (assignment_expression "ppuVar21 = (uint **)*puVar14" identifier = (cast_expression "(uint **)*puVar14" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar14" * identifier))) ;) (expression_statement "in_t2 = (uint *)0x1;" (assignment_expression "in_t2 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppuVar28 = (uint **)0x80001f;" (assignment_expression "ppuVar28 = (uint **)0x80001f" identifier = (cast_expression "(uint **)0x80001f" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "in_t4 = (uint **)0x2d;" (assignment_expression "in_t4 = (uint **)0x2d" identifier = (cast_expression "(uint **)0x2d" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "bVar12 = *(byte *)ppuVar21;" (assignment_expression "bVar12 = *(byte *)ppuVar21" identifier = (pointer_expression "*(byte *)ppuVar21" * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "in_t5 = 0x2b;" (assignment_expression "in_t5 = 0x2b" identifier = number_literal) ;) (expression_statement "in_t6 = 0x28;" (assignment_expression "in_t6 = 0x28" identifier = number_literal) ;) (expression_statement "uVar18 = 0x29;" (assignment_expression "uVar18 = 0x29" identifier = number_literal) ;) (labeled_statement "LAB_000152f0:\n    in_t0 = (uint **)(int)(char)bVar12;" statement_identifier : (expression_statement "in_t0 = (uint **)(int)(char)bVar12;" (assignment_expression "in_t0 = (uint **)(int)(char)bVar12" identifier = (cast_expression "(uint **)(int)(char)bVar12" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)(char)bVar12" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar12" ( (type_descriptor "char" primitive_type) ) identifier)))) ;)) (expression_statement "uVar15 = (uint)bVar12;" (assignment_expression "uVar15 = (uint)bVar12" identifier = (cast_expression "(uint)bVar12" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (labeled_statement "LAB_000152f4:\n    uVar22 = uVar15 - 9;" statement_identifier : (expression_statement "uVar22 = uVar15 - 9;" (assignment_expression "uVar22 = uVar15 - 9" identifier = (binary_expression "uVar15 - 9" identifier - number_literal)) ;)) (expression_statement "ppuVar16 = (uint **)(uint)(uVar22 < 0x18);" (assignment_expression "ppuVar16 = (uint **)(uint)(uVar22 < 0x18)" identifier = (cast_expression "(uint **)(uint)(uVar22 < 0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(uint)(uVar22 < 0x18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar22 < 0x18)" ( (binary_expression "uVar22 < 0x18" identifier < number_literal) ))))) ;) (if_statement "if (ppuVar16 == (uint **)0x0) goto LAB_000153a8;" if (parenthesized_expression "(ppuVar16 == (uint **)0x0)" ( (binary_expression "ppuVar16 == (uint **)0x0" identifier == (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_000153a8;" goto statement_identifier ;)) (labeled_statement "LAB_00015308:\n    ppuVar11 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f);" statement_identifier : (expression_statement "ppuVar11 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f);" (assignment_expression "ppuVar11 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f)" identifier = (cast_expression "(uint **)(1 << (uVar22 & 0x1f) & 0x80001f)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(1 << (uVar22 & 0x1f) & 0x80001f)" ( (binary_expression "1 << (uVar22 & 0x1f) & 0x80001f" (binary_expression "1 << (uVar22 & 0x1f)" number_literal << (parenthesized_expression "(uVar22 & 0x1f)" ( (binary_expression "uVar22 & 0x1f" identifier & number_literal) ))) & number_literal) )))) ;)) (while_statement "while (ppuVar11 != (uint **)0x0) {\n      ppuVar21 = (uint **)((int)ppuVar21 + 1);\n      *puVar14 = ppuVar21;\n      in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n      uVar15 = (uint)*(byte *)ppuVar21;\n      ppuVar16 = (uint **)(uVar15 - 9);\n      if ((uint **)0x17 < ppuVar16) goto LAB_000153a8;\n      ppuVar16 = (uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f);\n      ppuVar11 = ppuVar16;\n    }" while (parenthesized_expression "(ppuVar11 != (uint **)0x0)" ( (binary_expression "ppuVar11 != (uint **)0x0" identifier != (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n      ppuVar21 = (uint **)((int)ppuVar21 + 1);\n      *puVar14 = ppuVar21;\n      in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n      uVar15 = (uint)*(byte *)ppuVar21;\n      ppuVar16 = (uint **)(uVar15 - 9);\n      if ((uint **)0x17 < ppuVar16) goto LAB_000153a8;\n      ppuVar16 = (uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f);\n      ppuVar11 = ppuVar16;\n    }" { (expression_statement "ppuVar21 = (uint **)((int)ppuVar21 + 1);" (assignment_expression "ppuVar21 = (uint **)((int)ppuVar21 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar21 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar21 + 1)" ( (binary_expression "(int)ppuVar21 + 1" (cast_expression "(int)ppuVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*puVar14 = ppuVar21;" (assignment_expression "*puVar14 = ppuVar21" (pointer_expression "*puVar14" * identifier) = identifier) ;) (expression_statement "in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;" (assignment_expression "in_t0 = (uint **)(int)(char)*(byte *)ppuVar21" identifier = (cast_expression "(uint **)(int)(char)*(byte *)ppuVar21" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)(char)*(byte *)ppuVar21" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)ppuVar21" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)ppuVar21" * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))))) ;) (expression_statement "uVar15 = (uint)*(byte *)ppuVar21;" (assignment_expression "uVar15 = (uint)*(byte *)ppuVar21" identifier = (binary_expression "(uint)*(byte *)ppuVar21" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "ppuVar16 = (uint **)(uVar15 - 9);" (assignment_expression "ppuVar16 = (uint **)(uVar15 - 9)" identifier = (cast_expression "(uint **)(uVar15 - 9)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar15 - 9)" ( (binary_expression "uVar15 - 9" identifier - number_literal) )))) ;) (if_statement "if ((uint **)0x17 < ppuVar16) goto LAB_000153a8;" if (parenthesized_expression "((uint **)0x17 < ppuVar16)" ( (binary_expression "(uint **)0x17 < ppuVar16" (cast_expression "(uint **)0x17" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) < identifier) )) (goto_statement "goto LAB_000153a8;" goto statement_identifier ;)) (expression_statement "ppuVar16 = (uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f);" (assignment_expression "ppuVar16 = (uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f)" identifier = (cast_expression "(uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f)" ( (binary_expression "1 << ((uint)ppuVar16 & 0x1f) & 0x80001f" (binary_expression "1 << ((uint)ppuVar16 & 0x1f)" number_literal << (parenthesized_expression "((uint)ppuVar16 & 0x1f)" ( (binary_expression "(uint)ppuVar16 & 0x1f" (cast_expression "(uint)ppuVar16" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) & number_literal) )))) ;) (expression_statement "ppuVar11 = ppuVar16;" (assignment_expression "ppuVar11 = ppuVar16" identifier = identifier) ;) })) (labeled_statement "LAB_00015344:\n    in_t3 = 0xffffffff;" statement_identifier : (expression_statement "in_t3 = 0xffffffff;" (assignment_expression "in_t3 = 0xffffffff" identifier = number_literal) ;)) (if_statement "if (uVar15 == 0x2d) goto LAB_00015358;" if (parenthesized_expression "(uVar15 == 0x2d)" ( (binary_expression "uVar15 == 0x2d" identifier == number_literal) )) (goto_statement "goto LAB_00015358;" goto statement_identifier ;)) (if_statement "if (uVar15 == 0x2b) goto LAB_00015354;" if (parenthesized_expression "(uVar15 == 0x2b)" ( (binary_expression "uVar15 == 0x2b" identifier == number_literal) )) (goto_statement "goto LAB_00015354;" goto statement_identifier ;)) (if_statement "if ((0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))\n       ) {\n      pbVar26 = (byte *)*puVar14;\n      ppuVar16 = (uint **)(abStack_f1 + 1);\n      in_t0 = (uint **)(abStack_f1 + 0x14);\n      ppuVar28 = (uint **)&DAT_0000002e;\n      ppuVar21 = ppuVar16;\n      do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        *puVar14 = pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));\n      *(byte *)ppuVar21 = 0;\n      ppuVar21 = ppuVar16;\n      bVar12 = abStack_f1[1];\n      while (bVar12 != 0) {\n        if (bVar12 - 0x61 < 0x1a) {\n          bVar12 = bVar12 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar12;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar12 = *(byte *)ppuVar21;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);\n      do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16);\n      if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);\n      do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      iVar9 = *(int *)(puVar33 + 0x2326c);\n      ppuVar21 = ppuVar16;\n      iVar10 = FUN_00014388(puVar14);\n      unaff_s6 = asStack_578;\n      if (iVar10 != 0) {\n        puVar29 = *(uint **)(iVar10 + 4);\n        apuStack_5e8[1] = *(uint **)(iVar10 + 8);\n        apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);\n      iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n      if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        ppuVar16 = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);\n      ppuVar11 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);\n      ppuVar21 = ppuVar11;\n      psVar27 = unaff_s6;\n      do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);\n      pbVar26 = (byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1));\n      if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar11 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);\n      pcVar34 = *(code **)(puVar33 + 0x234c8);\n      do {\n        iVar10 = (*pcVar34)(ppuVar16);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);\n      if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar11 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }\n      if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = ppuVar16;\n        ppuVar11 = ppuVar16;\n        bVar12 = abStack_f1[1];\n        do {\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        } while (bVar12 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }\n      ppuVar21 = *(uint ***)(puVar33 + 0x23270);\n      if (*(char *)((int)puVar14 + 0xb5) == '\0') goto LAB_00017ae0;\n      uVar5 = (**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5);\n      puVar29 = (uint *)0x3f;\n      FUN_00014188(uVar5);\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n      goto LAB_00014f74;\n    }" if (parenthesized_expression "((0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))\n       )" ( (binary_expression "(0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))" (parenthesized_expression "(0x40 < (int)in_t0)" ( (binary_expression "0x40 < (int)in_t0" number_literal < (cast_expression "(int)in_t0" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))" ( (parenthesized_expression "((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a))" ( (binary_expression "(int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)" (binary_expression "(int)in_t0 < 0x5b" (cast_expression "(int)in_t0" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) || (parenthesized_expression "(((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)" ( (binary_expression "((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a" (parenthesized_expression "((uint)((int)in_t0 + -0x61) & 0xff)" ( (binary_expression "(uint)((int)in_t0 + -0x61) & 0xff" (call_expression "(uint)((int)in_t0 + -0x61)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)in_t0 + -0x61)" ( (binary_expression "(int)in_t0 + -0x61" (cast_expression "(int)in_t0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) & number_literal) )) < number_literal) ))) )) ))) )) (compound_statement "{\n      pbVar26 = (byte *)*puVar14;\n      ppuVar16 = (uint **)(abStack_f1 + 1);\n      in_t0 = (uint **)(abStack_f1 + 0x14);\n      ppuVar28 = (uint **)&DAT_0000002e;\n      ppuVar21 = ppuVar16;\n      do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        *puVar14 = pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));\n      *(byte *)ppuVar21 = 0;\n      ppuVar21 = ppuVar16;\n      bVar12 = abStack_f1[1];\n      while (bVar12 != 0) {\n        if (bVar12 - 0x61 < 0x1a) {\n          bVar12 = bVar12 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar12;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar12 = *(byte *)ppuVar21;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);\n      do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16);\n      if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);\n      do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      iVar9 = *(int *)(puVar33 + 0x2326c);\n      ppuVar21 = ppuVar16;\n      iVar10 = FUN_00014388(puVar14);\n      unaff_s6 = asStack_578;\n      if (iVar10 != 0) {\n        puVar29 = *(uint **)(iVar10 + 4);\n        apuStack_5e8[1] = *(uint **)(iVar10 + 8);\n        apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);\n      iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n      if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        ppuVar16 = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);\n      ppuVar11 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);\n      ppuVar21 = ppuVar11;\n      psVar27 = unaff_s6;\n      do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);\n      pbVar26 = (byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1));\n      if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar11 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);\n      pcVar34 = *(code **)(puVar33 + 0x234c8);\n      do {\n        iVar10 = (*pcVar34)(ppuVar16);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);\n      if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar11 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }\n      if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = ppuVar16;\n        ppuVar11 = ppuVar16;\n        bVar12 = abStack_f1[1];\n        do {\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        } while (bVar12 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }\n      ppuVar21 = *(uint ***)(puVar33 + 0x23270);\n      if (*(char *)((int)puVar14 + 0xb5) == '\0') goto LAB_00017ae0;\n      uVar5 = (**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5);\n      puVar29 = (uint *)0x3f;\n      FUN_00014188(uVar5);\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n      goto LAB_00014f74;\n    }" { (expression_statement "pbVar26 = (byte *)*puVar14;" (assignment_expression "pbVar26 = (byte *)*puVar14" identifier = (cast_expression "(byte *)*puVar14" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar14" * identifier))) ;) (expression_statement "ppuVar16 = (uint **)(abStack_f1 + 1);" (assignment_expression "ppuVar16 = (uint **)(abStack_f1 + 1)" identifier = (cast_expression "(uint **)(abStack_f1 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(abStack_f1 + 1)" ( (binary_expression "abStack_f1 + 1" identifier + number_literal) )))) ;) (expression_statement "in_t0 = (uint **)(abStack_f1 + 0x14);" (assignment_expression "in_t0 = (uint **)(abStack_f1 + 0x14)" identifier = (cast_expression "(uint **)(abStack_f1 + 0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(abStack_f1 + 0x14)" ( (binary_expression "abStack_f1 + 0x14" identifier + number_literal) )))) ;) (expression_statement "ppuVar28 = (uint **)&DAT_0000002e;" (assignment_expression "ppuVar28 = (uint **)&DAT_0000002e" identifier = (cast_expression "(uint **)&DAT_0000002e" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_0000002e" & identifier))) ;) (expression_statement "ppuVar21 = ppuVar16;" (assignment_expression "ppuVar21 = ppuVar16" identifier = identifier) ;) (do_statement "do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        *puVar14 = pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));" do (compound_statement "{\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        *puVar14 = pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      }" { (expression_statement "pbVar26 = pbVar26 + 1;" (assignment_expression "pbVar26 = pbVar26 + 1" identifier = (binary_expression "pbVar26 + 1" identifier + number_literal)) ;) (if_statement "if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }" if (parenthesized_expression "(ppuVar21 < in_t0)" ( (binary_expression "ppuVar21 < in_t0" identifier < identifier) )) (compound_statement "{\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }" { (expression_statement "*(byte *)ppuVar21 = (byte)uVar15;" (assignment_expression "*(byte *)ppuVar21 = (byte)uVar15" (pointer_expression "*(byte *)ppuVar21" * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(byte)uVar15" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "ppuVar21 = (uint **)((int)ppuVar21 + 1);" (assignment_expression "ppuVar21 = (uint **)((int)ppuVar21 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar21 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar21 + 1)" ( (binary_expression "(int)ppuVar21 + 1" (cast_expression "(int)ppuVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "*puVar14 = pbVar26;" (assignment_expression "*puVar14 = pbVar26" (pointer_expression "*puVar14" * identifier) = identifier) ;) (expression_statement "iVar9 = (int)(char)*pbVar26;" (assignment_expression "iVar9 = (int)(char)*pbVar26" identifier = (cast_expression "(int)(char)*pbVar26" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar26" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar26" * identifier)))) ;) (expression_statement "uVar15 = (uint)*pbVar26;" (assignment_expression "uVar15 = (uint)*pbVar26" identifier = (binary_expression "(uint)*pbVar26" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) }) while (parenthesized_expression "(((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e))" ( (binary_expression "((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e)" (parenthesized_expression "((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a))))" ( (binary_expression "(0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))" (parenthesized_expression "(0x40 < iVar9)" ( (binary_expression "0x40 < iVar9" number_literal < identifier) )) && (parenthesized_expression "((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))" ( (parenthesized_expression "(iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a))" ( (binary_expression "iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)" (binary_expression "iVar9 < 0x5b" identifier < number_literal) || (parenthesized_expression "((iVar9 - 0x61U & 0xff) < 0x1a)" ( (binary_expression "(iVar9 - 0x61U & 0xff) < 0x1a" (parenthesized_expression "(iVar9 - 0x61U & 0xff)" ( (binary_expression "iVar9 - 0x61U & 0xff" (binary_expression "iVar9 - 0x61U" identifier - number_literal) & number_literal) )) < number_literal) ))) )) ))) )) || (parenthesized_expression "(uVar15 == 0x2e)" ( (binary_expression "uVar15 == 0x2e" identifier == number_literal) ))) )) ;) (expression_statement "*(byte *)ppuVar21 = 0;" (assignment_expression "*(byte *)ppuVar21 = 0" (pointer_expression "*(byte *)ppuVar21" * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "ppuVar21 = ppuVar16;" (assignment_expression "ppuVar21 = ppuVar16" identifier = identifier) ;) (expression_statement "bVar12 = abStack_f1[1];" (assignment_expression "bVar12 = abStack_f1[1]" identifier = (subscript_expression "abStack_f1[1]" identifier [ number_literal ])) ;) (while_statement "while (bVar12 != 0) {\n        if (bVar12 - 0x61 < 0x1a) {\n          bVar12 = bVar12 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar12;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar12 = *(byte *)ppuVar21;\n      }" while (parenthesized_expression "(bVar12 != 0)" ( (binary_expression "bVar12 != 0" identifier != number_literal) )) (compound_statement "{\n        if (bVar12 - 0x61 < 0x1a) {\n          bVar12 = bVar12 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar12;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar12 = *(byte *)ppuVar21;\n      }" { (if_statement "if (bVar12 - 0x61 < 0x1a) {\n          bVar12 = bVar12 - 0x20;\n        }" if (parenthesized_expression "(bVar12 - 0x61 < 0x1a)" ( (binary_expression "bVar12 - 0x61 < 0x1a" (binary_expression "bVar12 - 0x61" identifier - number_literal) < number_literal) )) (compound_statement "{\n          bVar12 = bVar12 - 0x20;\n        }" { (expression_statement "bVar12 = bVar12 - 0x20;" (assignment_expression "bVar12 = bVar12 - 0x20" identifier = (binary_expression "bVar12 - 0x20" identifier - number_literal)) ;) })) (expression_statement "*(byte *)ppuVar21 = bVar12;" (assignment_expression "*(byte *)ppuVar21 = bVar12" (pointer_expression "*(byte *)ppuVar21" * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "ppuVar21 = (uint **)((int)ppuVar21 + 1);" (assignment_expression "ppuVar21 = (uint **)((int)ppuVar21 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar21 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar21 + 1)" ( (binary_expression "(int)ppuVar21 + 1" (cast_expression "(int)ppuVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar12 = *(byte *)ppuVar21;" (assignment_expression "bVar12 = *(byte *)ppuVar21" identifier = (pointer_expression "*(byte *)ppuVar21" * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) })) (expression_statement "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);" (assignment_expression "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98)" identifier = (cast_expression "(short *)(*(int *)(puVar33 + 0x23268) + 0x7f98)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23268) + 0x7f98)" ( (binary_expression "*(int *)(puVar33 + 0x23268) + 0x7f98" (pointer_expression "*(int *)(puVar33 + 0x23268)" * (cast_expression "(int *)(puVar33 + 0x23268)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23268)" ( (binary_expression "puVar33 + 0x23268" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);" (assignment_expression "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0)" identifier = (cast_expression "(uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23270) + 0x51d0)" ( (binary_expression "*(int *)(puVar33 + 0x23270) + 0x51d0" (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);" do (compound_statement "{\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      }" { (expression_statement "iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);" (assignment_expression "iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16)" identifier = (call_expression "(**(code **)(puVar33 + 0x234c8))(ppuVar16)" (parenthesized_expression "(**(code **)(puVar33 + 0x234c8))" ( (pointer_expression "**(code **)(puVar33 + 0x234c8)" * (pointer_expression "*(code **)(puVar33 + 0x234c8)" * (cast_expression "(code **)(puVar33 + 0x234c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x234c8)" ( (binary_expression "puVar33 + 0x234c8" identifier + number_literal) ))))) )) (argument_list "(ppuVar16)" ( identifier )))) ;) (expression_statement "puStack_674 = puVar25;" (assignment_expression "puStack_674 = puVar25" identifier = identifier) ;) (if_statement "if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }" { (labeled_statement "LAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);" statement_identifier : (expression_statement "puVar29 = *(uint **)(unaff_s6 + 2);" (assignment_expression "puVar29 = *(uint **)(unaff_s6 + 2)" identifier = (pointer_expression "*(uint **)(unaff_s6 + 2)" * (cast_expression "(uint **)(unaff_s6 + 2)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s6 + 2)" ( (binary_expression "unaff_s6 + 2" identifier + number_literal) ))))) ;)) (expression_statement "apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);" (assignment_expression "apuStack_5e8[1] = *(uint **)(unaff_s6 + 4)" (subscript_expression "apuStack_5e8[1]" identifier [ number_literal ]) = (pointer_expression "*(uint **)(unaff_s6 + 4)" * (cast_expression "(uint **)(unaff_s6 + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s6 + 4)" ( (binary_expression "unaff_s6 + 4" identifier + number_literal) ))))) ;) (expression_statement "apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);" (assignment_expression "apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f)" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = (cast_expression "(uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*(uint **)(unaff_s6 + 4) >> 0x1f)" ( (binary_expression "(int)*(uint **)(unaff_s6 + 4) >> 0x1f" (cast_expression "(int)*(uint **)(unaff_s6 + 4)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint **)(unaff_s6 + 4)" * (cast_expression "(uint **)(unaff_s6 + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s6 + 4)" ( (binary_expression "unaff_s6 + 4" identifier + number_literal) ))))) >> number_literal) )))) ;) (goto_statement "goto LAB_00014f5c;" goto statement_identifier ;) })) (expression_statement "unaff_s6 = unaff_s6 + 6;" (assignment_expression "unaff_s6 = unaff_s6 + 6" identifier = (binary_expression "unaff_s6 + 6" identifier + number_literal)) ;) (expression_statement "ppuVar21 = *(uint ***)unaff_s6;" (assignment_expression "ppuVar21 = *(uint ***)unaff_s6" identifier = (pointer_expression "*(uint ***)unaff_s6" * (cast_expression "(uint ***)unaff_s6" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) }) while (parenthesized_expression "(ppuVar21 != (uint **)0x0)" ( (binary_expression "ppuVar21 != (uint **)0x0" identifier != (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) ;) (expression_statement "puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16);" (assignment_expression "puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16)" identifier = (cast_expression "(uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar33 + 0x23438))(ppuVar16)" (parenthesized_expression "(**(code **)(puVar33 + 0x23438))" ( (pointer_expression "**(code **)(puVar33 + 0x23438)" * (pointer_expression "*(code **)(puVar33 + 0x23438)" * (cast_expression "(code **)(puVar33 + 0x23438)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x23438)" ( (binary_expression "puVar33 + 0x23438" identifier + number_literal) ))))) )) (argument_list "(ppuVar16)" ( identifier ))))) ;) (if_statement "if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }" if (parenthesized_expression "(puStack_674 == (uint *)0x3)" ( (binary_expression "puStack_674 == (uint *)0x3" identifier == (cast_expression "(uint *)0x3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        bVar2 = true;\n      }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) }) (else_clause "else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }" else (if_statement "if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }" if (parenthesized_expression "(puStack_674 == (uint *)0x4)" ( (binary_expression "puStack_674 == (uint *)0x4" identifier == (cast_expression "(uint *)0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        bVar2 = abStack_f1[4] == '.';\n      }" { (expression_statement "bVar2 = abStack_f1[4] == '.';" (assignment_expression "bVar2 = abStack_f1[4] == '.'" identifier = (binary_expression "abStack_f1[4] == '.'" (subscript_expression "abStack_f1[4]" identifier [ number_literal ]) == (char_literal "'.'" ' character '))) ;) }) (else_clause "else {\n        bVar2 = false;\n      }" else (compound_statement "{\n        bVar2 = false;\n      }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) }))))) (expression_statement "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);" (assignment_expression "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c)" identifier = (cast_expression "(short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23268) + 0x7e6c)" ( (binary_expression "*(int *)(puVar33 + 0x23268) + 0x7e6c" (pointer_expression "*(int *)(puVar33 + 0x23268)" * (cast_expression "(int *)(puVar33 + 0x23268)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23268)" ( (binary_expression "puVar33 + 0x23268" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);" (assignment_expression "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4)" identifier = (cast_expression "(uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23270) + 0x51d4)" ( (binary_expression "*(int *)(puVar33 + 0x23270) + 0x51d4" (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);" do (compound_statement "{\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      }" { (if_statement "if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }" { (expression_statement "iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);" (assignment_expression "iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3)" identifier = (call_expression "(**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3)" (parenthesized_expression "(**(code **)(puVar33 + 0x233c8))" ( (pointer_expression "**(code **)(puVar33 + 0x233c8)" * (pointer_expression "*(code **)(puVar33 + 0x233c8)" * (cast_expression "(code **)(puVar33 + 0x233c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x233c8)" ( (binary_expression "puVar33 + 0x233c8" identifier + number_literal) ))))) )) (argument_list "(ppuVar16,ppuVar21,3)" ( identifier , identifier , number_literal )))) ;) }) (else_clause "else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }" else (compound_statement "{\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }" { (expression_statement "iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);" (assignment_expression "iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16)" identifier = (call_expression "(**(code **)(puVar33 + 0x234c8))(ppuVar16)" (parenthesized_expression "(**(code **)(puVar33 + 0x234c8))" ( (pointer_expression "**(code **)(puVar33 + 0x234c8)" * (pointer_expression "*(code **)(puVar33 + 0x234c8)" * (cast_expression "(code **)(puVar33 + 0x234c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x234c8)" ( (binary_expression "puVar33 + 0x234c8" identifier + number_literal) ))))) )) (argument_list "(ppuVar16)" ( identifier )))) ;) }))) (expression_statement "puStack_66c = puVar25;" (assignment_expression "puStack_66c = puVar25" identifier = identifier) ;) (if_statement "if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }" { (expression_statement "puVar29 = *(uint **)(unaff_s6 + 2);" (assignment_expression "puVar29 = *(uint **)(unaff_s6 + 2)" identifier = (pointer_expression "*(uint **)(unaff_s6 + 2)" * (cast_expression "(uint **)(unaff_s6 + 2)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s6 + 2)" ( (binary_expression "unaff_s6 + 2" identifier + number_literal) ))))) ;) (expression_statement "apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);" (assignment_expression "apuStack_5e8[1] = *(uint **)(unaff_s6 + 4)" (subscript_expression "apuStack_5e8[1]" identifier [ number_literal ]) = (pointer_expression "*(uint **)(unaff_s6 + 4)" * (cast_expression "(uint **)(unaff_s6 + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s6 + 4)" ( (binary_expression "unaff_s6 + 4" identifier + number_literal) ))))) ;) (expression_statement "apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);" (assignment_expression "apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f)" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = (cast_expression "(uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*(uint **)(unaff_s6 + 4) >> 0x1f)" ( (binary_expression "(int)*(uint **)(unaff_s6 + 4) >> 0x1f" (cast_expression "(int)*(uint **)(unaff_s6 + 4)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint **)(unaff_s6 + 4)" * (cast_expression "(uint **)(unaff_s6 + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s6 + 4)" ( (binary_expression "unaff_s6 + 4" identifier + number_literal) ))))) >> number_literal) )))) ;) (goto_statement "goto LAB_00014f5c;" goto statement_identifier ;) })) (expression_statement "unaff_s6 = unaff_s6 + 6;" (assignment_expression "unaff_s6 = unaff_s6 + 6" identifier = (binary_expression "unaff_s6 + 6" identifier + number_literal)) ;) (expression_statement "ppuVar21 = *(uint ***)unaff_s6;" (assignment_expression "ppuVar21 = *(uint ***)unaff_s6" identifier = (pointer_expression "*(uint ***)unaff_s6" * (cast_expression "(uint ***)unaff_s6" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) }) while (parenthesized_expression "(ppuVar21 != (uint **)0x0)" ( (binary_expression "ppuVar21 != (uint **)0x0" identifier != (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) ;) (expression_statement "iVar9 = *(int *)(puVar33 + 0x2326c);" (assignment_expression "iVar9 = *(int *)(puVar33 + 0x2326c)" identifier = (pointer_expression "*(int *)(puVar33 + 0x2326c)" * (cast_expression "(int *)(puVar33 + 0x2326c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x2326c)" ( (binary_expression "puVar33 + 0x2326c" identifier + number_literal) ))))) ;) (expression_statement "ppuVar21 = ppuVar16;" (assignment_expression "ppuVar21 = ppuVar16" identifier = identifier) ;) (expression_statement "iVar10 = FUN_00014388(puVar14);" (assignment_expression "iVar10 = FUN_00014388(puVar14)" identifier = (call_expression "FUN_00014388(puVar14)" identifier (argument_list "(puVar14)" ( identifier )))) ;) (expression_statement "unaff_s6 = asStack_578;" (assignment_expression "unaff_s6 = asStack_578" identifier = identifier) ;) (if_statement "if (iVar10 != 0) {\n        puVar29 = *(uint **)(iVar10 + 4);\n        apuStack_5e8[1] = *(uint **)(iVar10 + 8);\n        apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n        puVar29 = *(uint **)(iVar10 + 4);\n        apuStack_5e8[1] = *(uint **)(iVar10 + 8);\n        apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }" { (expression_statement "puVar29 = *(uint **)(iVar10 + 4);" (assignment_expression "puVar29 = *(uint **)(iVar10 + 4)" identifier = (pointer_expression "*(uint **)(iVar10 + 4)" * (cast_expression "(uint **)(iVar10 + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 4)" ( (binary_expression "iVar10 + 4" identifier + number_literal) ))))) ;) (expression_statement "apuStack_5e8[1] = *(uint **)(iVar10 + 8);" (assignment_expression "apuStack_5e8[1] = *(uint **)(iVar10 + 8)" (subscript_expression "apuStack_5e8[1]" identifier [ number_literal ]) = (pointer_expression "*(uint **)(iVar10 + 8)" * (cast_expression "(uint **)(iVar10 + 8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) ;) (expression_statement "apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);" (assignment_expression "apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f)" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = (cast_expression "(uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*(uint **)(iVar10 + 8) >> 0x1f)" ( (binary_expression "(int)*(uint **)(iVar10 + 8) >> 0x1f" (cast_expression "(int)*(uint **)(iVar10 + 8)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint **)(iVar10 + 8)" * (cast_expression "(uint **)(iVar10 + 8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) >> number_literal) )))) ;) (expression_statement "puStack_66c = (uint *)0x0;" (assignment_expression "puStack_66c = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00014f5c;" goto statement_identifier ;) })) (expression_statement "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);" (assignment_expression "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0)" identifier = (cast_expression "(uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23270) + 0x51f0)" ( (binary_expression "*(int *)(puVar33 + 0x23270) + 0x51f0" (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);" (assignment_expression "iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16)" identifier = (call_expression "(**(code **)(puVar33 + 0x234c8))(ppuVar16)" (parenthesized_expression "(**(code **)(puVar33 + 0x234c8))" ( (pointer_expression "**(code **)(puVar33 + 0x234c8)" * (pointer_expression "*(code **)(puVar33 + 0x234c8)" * (cast_expression "(code **)(puVar33 + 0x234c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x234c8)" ( (binary_expression "puVar33 + 0x234c8" identifier + number_literal) ))))) )) (argument_list "(ppuVar16)" ( identifier )))) ;) (if_statement "if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        ppuVar16 = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        ppuVar16 = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }" { (expression_statement "puVar29 = (uint *)0x103;" (assignment_expression "puVar29 = (uint *)0x103" identifier = (cast_expression "(uint *)0x103" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "apuStack_5e8[1] = (uint *)0x0;" (assignment_expression "apuStack_5e8[1] = (uint *)0x0" (subscript_expression "apuStack_5e8[1]" identifier [ number_literal ]) = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "apuStack_5e8[0] = (uint *)0x0;" (assignment_expression "apuStack_5e8[0] = (uint *)0x0" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);" statement_identifier : (expression_statement "iVar9 = *(int *)(puVar33 + 0x23270);" (assignment_expression "iVar9 = *(int *)(puVar33 + 0x23270)" identifier = (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) ;)) (expression_statement "ppuVar16 = ppuVar21;" (assignment_expression "ppuVar16 = ppuVar21" identifier = identifier) ;) (expression_statement "puStack_66c = puVar31;" (assignment_expression "puStack_66c = puVar31" identifier = identifier) ;) (goto_statement "goto LAB_0001558c;" goto statement_identifier ;) })) (expression_statement "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);" (assignment_expression "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8)" identifier = (cast_expression "(short *)(*(int *)(puVar33 + 0x23268) + 0x7de8)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23268) + 0x7de8)" ( (binary_expression "*(int *)(puVar33 + 0x23268) + 0x7de8" (pointer_expression "*(int *)(puVar33 + 0x23268)" * (cast_expression "(int *)(puVar33 + 0x23268)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23268)" ( (binary_expression "puVar33 + 0x23268" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "ppuVar11 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);" (assignment_expression "ppuVar11 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc)" identifier = (cast_expression "(uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23270) + 0x51dc)" ( (binary_expression "*(int *)(puVar33 + 0x23270) + 0x51dc" (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "ppuVar21 = ppuVar11;" (assignment_expression "ppuVar21 = ppuVar11" identifier = identifier) ;) (expression_statement "psVar27 = unaff_s6;" (assignment_expression "psVar27 = unaff_s6" identifier = identifier) ;) (do_statement "do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);" do (compound_statement "{\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      }" { (expression_statement "iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);" (assignment_expression "iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16)" identifier = (call_expression "(**(code **)(puVar33 + 0x234c8))(ppuVar16)" (parenthesized_expression "(**(code **)(puVar33 + 0x234c8))" ( (pointer_expression "**(code **)(puVar33 + 0x234c8)" * (pointer_expression "*(code **)(puVar33 + 0x234c8)" * (cast_expression "(code **)(puVar33 + 0x234c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x234c8)" ( (binary_expression "puVar33 + 0x234c8" identifier + number_literal) ))))) )) (argument_list "(ppuVar16)" ( identifier )))) ;) (if_statement "if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }" { (expression_statement "puVar29 = *(uint **)(psVar27 + 2);" (assignment_expression "puVar29 = *(uint **)(psVar27 + 2)" identifier = (pointer_expression "*(uint **)(psVar27 + 2)" * (cast_expression "(uint **)(psVar27 + 2)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(psVar27 + 2)" ( (binary_expression "psVar27 + 2" identifier + number_literal) ))))) ;) (expression_statement "apuStack_5e8[1] = *(uint **)(psVar27 + 4);" (assignment_expression "apuStack_5e8[1] = *(uint **)(psVar27 + 4)" (subscript_expression "apuStack_5e8[1]" identifier [ number_literal ]) = (pointer_expression "*(uint **)(psVar27 + 4)" * (cast_expression "(uint **)(psVar27 + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(psVar27 + 4)" ( (binary_expression "psVar27 + 4" identifier + number_literal) ))))) ;) (expression_statement "apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);" (assignment_expression "apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f)" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = (cast_expression "(uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*(uint **)(psVar27 + 4) >> 0x1f)" ( (binary_expression "(int)*(uint **)(psVar27 + 4) >> 0x1f" (cast_expression "(int)*(uint **)(psVar27 + 4)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint **)(psVar27 + 4)" * (cast_expression "(uint **)(psVar27 + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(psVar27 + 4)" ( (binary_expression "psVar27 + 4" identifier + number_literal) ))))) >> number_literal) )))) ;) (goto_statement "goto LAB_00014f5c;" goto statement_identifier ;) })) (expression_statement "psVar27 = psVar27 + 6;" (assignment_expression "psVar27 = psVar27 + 6" identifier = (binary_expression "psVar27 + 6" identifier + number_literal)) ;) (expression_statement "ppuVar21 = *(uint ***)psVar27;" (assignment_expression "ppuVar21 = *(uint ***)psVar27" identifier = (pointer_expression "*(uint ***)psVar27" * (cast_expression "(uint ***)psVar27" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) }) while (parenthesized_expression "(ppuVar21 != (uint **)0x0)" ( (binary_expression "ppuVar21 != (uint **)0x0" identifier != (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) ;) (expression_statement "pbVar26 = (byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1));" (assignment_expression "pbVar26 = (byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1))" identifier = (cast_expression "(byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar16 + (int)((int)puStack_674 + -1))" ( (binary_expression "(int)ppuVar16 + (int)((int)puStack_674 + -1)" (cast_expression "(int)ppuVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)((int)puStack_674 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)puStack_674 + -1)" ( (binary_expression "(int)puStack_674 + -1" (cast_expression "(int)puStack_674" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (if_statement "if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar11 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }" if (parenthesized_expression "(*pbVar26 == 0x53)" ( (binary_expression "*pbVar26 == 0x53" (pointer_expression "*pbVar26" * identifier) == number_literal) )) (compound_statement "{\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar11 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }" { (expression_statement "*pbVar26 = 0;" (assignment_expression "*pbVar26 = 0" (pointer_expression "*pbVar26" * identifier) = number_literal) ;) (expression_statement "pcVar34 = *(code **)(puVar33 + 0x234c8);" (assignment_expression "pcVar34 = *(code **)(puVar33 + 0x234c8)" identifier = (pointer_expression "*(code **)(puVar33 + 0x234c8)" * (cast_expression "(code **)(puVar33 + 0x234c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x234c8)" ( (binary_expression "puVar33 + 0x234c8" identifier + number_literal) ))))) ;) (do_statement "do {\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar11 != (uint **)0x0);" do (compound_statement "{\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        }" { (expression_statement "iVar10 = (*pcVar34)(ppuVar16);" (assignment_expression "iVar10 = (*pcVar34)(ppuVar16)" identifier = (call_expression "(*pcVar34)(ppuVar16)" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "(ppuVar16)" ( identifier )))) ;) (expression_statement "ppuVar21 = ppuVar11;" (assignment_expression "ppuVar21 = ppuVar11" identifier = identifier) ;) (expression_statement "puStack_66c = puVar31;" (assignment_expression "puStack_66c = puVar31" identifier = identifier) ;) (if_statement "if (iVar10 == 0) goto LAB_00015708;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00015708;" goto statement_identifier ;)) (expression_statement "unaff_s6 = unaff_s6 + 6;" (assignment_expression "unaff_s6 = unaff_s6 + 6" identifier = (binary_expression "unaff_s6 + 6" identifier + number_literal)) ;) (expression_statement "ppuVar11 = *(uint ***)unaff_s6;" (assignment_expression "ppuVar11 = *(uint ***)unaff_s6" identifier = (pointer_expression "*(uint ***)unaff_s6" * (cast_expression "(uint ***)unaff_s6" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (expression_statement "pcVar34 = *(code **)(puVar33 + 0x234c8);" (assignment_expression "pcVar34 = *(code **)(puVar33 + 0x234c8)" identifier = (pointer_expression "*(code **)(puVar33 + 0x234c8)" * (cast_expression "(code **)(puVar33 + 0x234c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x234c8)" ( (binary_expression "puVar33 + 0x234c8" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(ppuVar11 != (uint **)0x0)" ( (binary_expression "ppuVar11 != (uint **)0x0" identifier != (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) ;) (expression_statement "*pbVar26 = 0x53;" (assignment_expression "*pbVar26 = 0x53" (pointer_expression "*pbVar26" * identifier) = number_literal) ;) })) (expression_statement "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);" (assignment_expression "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec)" identifier = (cast_expression "(short *)(*(int *)(puVar33 + 0x23268) + 0x7cec)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23268) + 0x7cec)" ( (binary_expression "*(int *)(puVar33 + 0x23268) + 0x7cec" (pointer_expression "*(int *)(puVar33 + 0x23268)" * (cast_expression "(int *)(puVar33 + 0x23268)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23268)" ( (binary_expression "puVar33 + 0x23268" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);" (assignment_expression "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4)" identifier = (cast_expression "(uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23270) + 0x51e4)" ( (binary_expression "*(int *)(puVar33 + 0x23270) + 0x51e4" (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcVar34 = *(code **)(puVar33 + 0x234c8);" (assignment_expression "pcVar34 = *(code **)(puVar33 + 0x234c8)" identifier = (pointer_expression "*(code **)(puVar33 + 0x234c8)" * (cast_expression "(code **)(puVar33 + 0x234c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x234c8)" ( (binary_expression "puVar33 + 0x234c8" identifier + number_literal) ))))) ;) (do_statement "do {\n        iVar10 = (*pcVar34)(ppuVar16);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);" do (compound_statement "{\n        iVar10 = (*pcVar34)(ppuVar16);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      }" { (expression_statement "iVar10 = (*pcVar34)(ppuVar16);" (assignment_expression "iVar10 = (*pcVar34)(ppuVar16)" identifier = (call_expression "(*pcVar34)(ppuVar16)" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "(ppuVar16)" ( identifier )))) ;) (expression_statement "puStack_66c = puVar31;" (assignment_expression "puStack_66c = puVar31" identifier = identifier) ;) (if_statement "if (iVar10 == 0) goto LAB_00015708;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00015708;" goto statement_identifier ;)) (expression_statement "unaff_s6 = unaff_s6 + 6;" (assignment_expression "unaff_s6 = unaff_s6 + 6" identifier = (binary_expression "unaff_s6 + 6" identifier + number_literal)) ;) (expression_statement "ppuVar21 = *(uint ***)unaff_s6;" (assignment_expression "ppuVar21 = *(uint ***)unaff_s6" identifier = (pointer_expression "*(uint ***)unaff_s6" * (cast_expression "(uint ***)unaff_s6" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (expression_statement "pcVar34 = *(code **)(puVar33 + 0x234c8);" (assignment_expression "pcVar34 = *(code **)(puVar33 + 0x234c8)" identifier = (pointer_expression "*(code **)(puVar33 + 0x234c8)" * (cast_expression "(code **)(puVar33 + 0x234c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x234c8)" ( (binary_expression "puVar33 + 0x234c8" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(ppuVar21 != (uint **)0x0)" ( (binary_expression "ppuVar21 != (uint **)0x0" identifier != (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) ;) (if_statement "if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar11 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }" if (parenthesized_expression "(puStack_674 == (uint *)0x1)" ( (binary_expression "puStack_674 == (uint *)0x1" identifier == (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar11 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }" { (expression_statement "ppuVar21 = *(uint ***)(puVar33 + 0x23268);" (assignment_expression "ppuVar21 = *(uint ***)(puVar33 + 0x23268)" identifier = (pointer_expression "*(uint ***)(puVar33 + 0x23268)" * (cast_expression "(uint ***)(puVar33 + 0x23268)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar33 + 0x23268)" ( (binary_expression "puVar33 + 0x23268" identifier + number_literal) ))))) ;) (if_statement "if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }" if (parenthesized_expression "(abStack_f1[1] == 0x41)" ( (binary_expression "abStack_f1[1] == 0x41" (subscript_expression "abStack_f1[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }" { (expression_statement "puVar29 = (uint *)0x111;" (assignment_expression "puVar29 = (uint *)0x111" identifier = (cast_expression "(uint *)0x111" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "apuStack_5e8[1] = (uint *)0xfffff1f0;" (assignment_expression "apuStack_5e8[1] = (uint *)0xfffff1f0" (subscript_expression "apuStack_5e8[1]" identifier [ number_literal ]) = (cast_expression "(uint *)0xfffff1f0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "apuStack_5e8[0] = (uint *)0xffffffff;" (assignment_expression "apuStack_5e8[0] = (uint *)0xffffffff" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = (cast_expression "(uint *)0xffffffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00015588;" goto statement_identifier ;) })) (expression_statement "ppuVar11 = ppuVar21 + 0x1e51;" (assignment_expression "ppuVar11 = ppuVar21 + 0x1e51" identifier = (binary_expression "ppuVar21 + 0x1e51" identifier + number_literal)) ;) (while_statement "while( true ) {\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }" { (expression_statement "ppuVar21 = ppuVar11;" (assignment_expression "ppuVar21 = ppuVar11" identifier = identifier) ;) (if_statement "if (ppuVar21[3] == (uint *)0x0) break;" if (parenthesized_expression "(ppuVar21[3] == (uint *)0x0)" ( (binary_expression "ppuVar21[3] == (uint *)0x0" (subscript_expression "ppuVar21[3]" identifier [ number_literal ]) == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "ppuVar11 = ppuVar21 + 3;" (assignment_expression "ppuVar11 = ppuVar21 + 3" identifier = (binary_expression "ppuVar21 + 3" identifier + number_literal)) ;) (if_statement "if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }" if (parenthesized_expression "(*(byte *)ppuVar21[3] == abStack_f1[1])" ( (binary_expression "*(byte *)ppuVar21[3] == abStack_f1[1]" (pointer_expression "*(byte *)ppuVar21[3]" * (cast_expression "(byte *)ppuVar21[3]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppuVar21[3]" identifier [ number_literal ]))) == (subscript_expression "abStack_f1[1]" identifier [ number_literal ])) )) (compound_statement "{\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }" { (expression_statement "puVar29 = ppuVar21[4];" (assignment_expression "puVar29 = ppuVar21[4]" identifier = (subscript_expression "ppuVar21[4]" identifier [ number_literal ])) ;) (expression_statement "apuStack_5e8[1] = ppuVar21[5];" (assignment_expression "apuStack_5e8[1] = ppuVar21[5]" (subscript_expression "apuStack_5e8[1]" identifier [ number_literal ]) = (subscript_expression "ppuVar21[5]" identifier [ number_literal ])) ;) (expression_statement "apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);" (assignment_expression "apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f)" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = (cast_expression "(uint *)((int)ppuVar21[5] >> 0x1f)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar21[5] >> 0x1f)" ( (binary_expression "(int)ppuVar21[5] >> 0x1f" (cast_expression "(int)ppuVar21[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppuVar21[5]" identifier [ number_literal ])) >> number_literal) )))) ;) (goto_statement "goto LAB_00014f5c;" goto statement_identifier ;) })) })) })) (if_statement "if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = ppuVar16;\n        ppuVar11 = ppuVar16;\n        bVar12 = abStack_f1[1];\n        do {\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        } while (bVar12 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }" if (parenthesized_expression "(abStack_f1[1] != 0)" ( (binary_expression "abStack_f1[1] != 0" (subscript_expression "abStack_f1[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        bVar2 = false;\n        ppuVar21 = ppuVar16;\n        ppuVar11 = ppuVar16;\n        bVar12 = abStack_f1[1];\n        do {\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        } while (bVar12 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "ppuVar21 = ppuVar16;" (assignment_expression "ppuVar21 = ppuVar16" identifier = identifier) ;) (expression_statement "ppuVar11 = ppuVar16;" (assignment_expression "ppuVar11 = ppuVar16" identifier = identifier) ;) (expression_statement "bVar12 = abStack_f1[1];" (assignment_expression "bVar12 = abStack_f1[1]" identifier = (subscript_expression "abStack_f1[1]" identifier [ number_literal ])) ;) (do_statement "do {\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        } while (bVar12 != 0);" do (compound_statement "{\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        }" { (if_statement "if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }" if (parenthesized_expression "(bVar12 == 0x2e)" ( (binary_expression "bVar12 == 0x2e" identifier == number_literal) )) (compound_statement "{\n            bVar2 = true;\n          }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) }) (else_clause "else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }" else (compound_statement "{\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }" { (expression_statement "ppuVar21 = (uint **)((int)ppuVar21 + 1);" (assignment_expression "ppuVar21 = (uint **)((int)ppuVar21 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar21 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar21 + 1)" ( (binary_expression "(int)ppuVar21 + 1" (cast_expression "(int)ppuVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) (expression_statement "ppuVar11 = (uint **)((int)ppuVar11 + 1);" (assignment_expression "ppuVar11 = (uint **)((int)ppuVar11 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar11 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar11 + 1)" ( (binary_expression "(int)ppuVar11 + 1" (cast_expression "(int)ppuVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar12 = *(byte *)ppuVar11;" (assignment_expression "bVar12 = *(byte *)ppuVar11" identifier = (pointer_expression "*(byte *)ppuVar11" * (cast_expression "(byte *)ppuVar11" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(byte *)ppuVar21 = bVar12;" (assignment_expression "*(byte *)ppuVar21 = bVar12" (pointer_expression "*(byte *)ppuVar21" * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) }) while (parenthesized_expression "(bVar12 != 0)" ( (binary_expression "bVar12 != 0" identifier != number_literal) )) ;) (expression_statement "puStack_674 = puVar31;" (assignment_expression "puStack_674 = puVar31" identifier = identifier) ;) (if_statement "if ((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }" if (parenthesized_expression "((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0))" ( (binary_expression "(bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)" (parenthesized_expression "(bVar2)" ( identifier )) && (parenthesized_expression "(ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)" ( (comma_expression "ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0" (assignment_expression "ppuVar21 = ppuVar16" identifier = identifier) , (comma_expression "iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0" (assignment_expression "iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14)" identifier = (call_expression "(*(code *)(iVar9 + 0x4388))(puVar14)" (parenthesized_expression "(*(code *)(iVar9 + 0x4388))" ( (pointer_expression "*(code *)(iVar9 + 0x4388)" * (cast_expression "(code *)(iVar9 + 0x4388)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4388)" ( (binary_expression "iVar9 + 0x4388" identifier + number_literal) )))) )) (argument_list "(puVar14)" ( identifier )))) , (binary_expression "iVar9 != 0" identifier != number_literal))) ))) )) (compound_statement "{\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }" { (expression_statement "puVar29 = *(uint **)(iVar9 + 4);" (assignment_expression "puVar29 = *(uint **)(iVar9 + 4)" identifier = (pointer_expression "*(uint **)(iVar9 + 4)" * (cast_expression "(uint **)(iVar9 + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) ))))) ;) (expression_statement "apuStack_5e8[1] = *(uint **)(iVar9 + 8);" (assignment_expression "apuStack_5e8[1] = *(uint **)(iVar9 + 8)" (subscript_expression "apuStack_5e8[1]" identifier [ number_literal ]) = (pointer_expression "*(uint **)(iVar9 + 8)" * (cast_expression "(uint **)(iVar9 + 8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) ))))) ;) (expression_statement "apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);" (assignment_expression "apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f)" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = (cast_expression "(uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*(uint **)(iVar9 + 8) >> 0x1f)" ( (binary_expression "(int)*(uint **)(iVar9 + 8) >> 0x1f" (cast_expression "(int)*(uint **)(iVar9 + 8)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint **)(iVar9 + 8)" * (cast_expression "(uint **)(iVar9 + 8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) ))))) >> number_literal) )))) ;) (goto_statement "goto LAB_00014f5c;" goto statement_identifier ;) })) })) (expression_statement "ppuVar21 = *(uint ***)(puVar33 + 0x23270);" (assignment_expression "ppuVar21 = *(uint ***)(puVar33 + 0x23270)" identifier = (pointer_expression "*(uint ***)(puVar33 + 0x23270)" * (cast_expression "(uint ***)(puVar33 + 0x23270)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)((int)puVar14 + 0xb5) == '\0') goto LAB_00017ae0;" if (parenthesized_expression "(*(char *)((int)puVar14 + 0xb5) == '\0')" ( (binary_expression "*(char *)((int)puVar14 + 0xb5) == '\0'" (pointer_expression "*(char *)((int)puVar14 + 0xb5)" * (cast_expression "(char *)((int)puVar14 + 0xb5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + 0xb5)" ( (binary_expression "(int)puVar14 + 0xb5" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00017ae0;" goto statement_identifier ;)) (expression_statement "uVar5 = (**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5);" (assignment_expression "uVar5 = (**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5)" identifier = (call_expression "(**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5)" (parenthesized_expression "(**(code **)(puVar33 + 0x2348c))" ( (pointer_expression "**(code **)(puVar33 + 0x2348c)" * (pointer_expression "*(code **)(puVar33 + 0x2348c)" * (cast_expression "(code **)(puVar33 + 0x2348c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x2348c)" ( (binary_expression "puVar33 + 0x2348c" identifier + number_literal) ))))) )) (argument_list "(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5)" ( number_literal , (binary_expression "*(uint ***)(puVar33 + 0x23270) + 0x147d" (pointer_expression "*(uint ***)(puVar33 + 0x23270)" * (cast_expression "(uint ***)(puVar33 + 0x23270)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "puVar29 = (uint *)0x3f;" (assignment_expression "puVar29 = (uint *)0x3f" identifier = (cast_expression "(uint *)0x3f" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_00014188(uVar5);" (call_expression "FUN_00014188(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "uVar15 = 2;" (assignment_expression "uVar15 = 2" identifier = number_literal) ;) (expression_statement "puVar19 = (uint *)((int)puVar31 + 2);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + 2)" identifier = (cast_expression "(uint *)((int)puVar31 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar31 + 2)" ( (binary_expression "(int)puVar31 + 2" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (goto_statement "goto LAB_00014f74;" goto statement_identifier ;) })) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (if_statement "if (uVar15 == 0x28) {\n      ppuVar21 = (uint **)*puVar14;\n      goto LAB_000157a8;\n    }" if (parenthesized_expression "(uVar15 == 0x28)" ( (binary_expression "uVar15 == 0x28" identifier == number_literal) )) (compound_statement "{\n      ppuVar21 = (uint **)*puVar14;\n      goto LAB_000157a8;\n    }" { (expression_statement "ppuVar21 = (uint **)*puVar14;" (assignment_expression "ppuVar21 = (uint **)*puVar14" identifier = (cast_expression "(uint **)*puVar14" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar14" * identifier))) ;) (goto_statement "goto LAB_000157a8;" goto statement_identifier ;) })) (expression_statement "*puVar14 = (byte *)((int)ppuVar21 + 1);" (assignment_expression "*puVar14 = (byte *)((int)ppuVar21 + 1)" (pointer_expression "*puVar14" * identifier) = (cast_expression "(byte *)((int)ppuVar21 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar21 + 1)" ( (binary_expression "(int)ppuVar21 + 1" (cast_expression "(int)ppuVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar29 = (uint *)(uint)*(byte *)ppuVar21;" (assignment_expression "puVar29 = (uint *)(uint)*(byte *)ppuVar21" identifier = (binary_expression "(uint *)(uint)*(byte *)ppuVar21" (cast_expression "(uint *)(uint)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar9 = *(int *)(puVar33 + 0x23270);" (assignment_expression "iVar9 = *(int *)(puVar33 + 0x23270)" identifier = (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) ;) (if_statement "if (puVar29 != (uint *)0x0) goto LAB_0001558c;" if (parenthesized_expression "(puVar29 != (uint *)0x0)" ( (binary_expression "puVar29 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001558c;" goto statement_identifier ;)) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00014f74;" goto statement_identifier ;) })) (labeled_statement "LAB_00014f5c:\n  ppuVar16 = ppuVar21;" statement_identifier : (expression_statement "ppuVar16 = ppuVar21;" (assignment_expression "ppuVar16 = ppuVar21" identifier = identifier) ;)) (if_statement "if ((int)puVar29 < 1) {\nLAB_000152b8:\n    uVar15 = 0;\n    puVar29 = (uint *)0x0;\n  }\n  else {\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if ((int)puVar29 < 0x116) {\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }\n    else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }\n  }" if (parenthesized_expression "((int)puVar29 < 1)" ( (binary_expression "(int)puVar29 < 1" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\nLAB_000152b8:\n    uVar15 = 0;\n    puVar29 = (uint *)0x0;\n  }" { (labeled_statement "LAB_000152b8:\n    uVar15 = 0;" statement_identifier : (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;)) (expression_statement "puVar29 = (uint *)0x0;" (assignment_expression "puVar29 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if ((int)puVar29 < 0x116) {\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }\n    else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }\n  }" else (compound_statement "{\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if ((int)puVar29 < 0x116) {\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }\n    else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }\n  }" { (expression_statement "iVar9 = *(int *)(puVar33 + 0x23270);" (assignment_expression "iVar9 = *(int *)(puVar33 + 0x23270)" identifier = (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) ;) (if_statement "if ((int)puVar29 < 0x116) {\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }\n    else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }" if (parenthesized_expression "((int)puVar29 < 0x116)" ( (binary_expression "(int)puVar29 < 0x116" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }" { (labeled_statement "LAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);" statement_identifier : (expression_statement "uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);" (assignment_expression "uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458)" identifier = (binary_expression "(uint)*(byte *)((int)puVar29 + iVar9 + 0x6458)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)puVar29 + iVar9 + 0x6458)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + iVar9 + 0x6458)" ( (binary_expression "(int)puVar29 + iVar9 + 0x6458" (binary_expression "(int)puVar29 + iVar9" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;)) (expression_statement "puVar19 = (uint *)((int)puVar31 + uVar15);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + uVar15)" identifier = (cast_expression "(uint *)((int)puVar31 + uVar15)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar31 + uVar15)" ( (binary_expression "(int)puVar31 + uVar15" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }" else (compound_statement "{\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }" { (expression_statement "uVar15 = 2;" (assignment_expression "uVar15 = 2" identifier = number_literal) ;) (expression_statement "puVar19 = (uint *)((int)puVar31 + 2);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + 2)" identifier = (cast_expression "(uint *)((int)puVar31 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar31 + 2)" ( (binary_expression "(int)puVar31 + 2" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) }))) (goto_statement "goto LAB_00014f74;" goto statement_identifier ;) (labeled_statement "LAB_00015354:\n  do {\n    in_t3 = 1;\nLAB_00015358:\n    while( true ) {\n      ppuVar21 = (uint **)*puVar14;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n      if (ppuVar16 != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }\n    in_t3 = 0;\n  } while (uVar15 == 0x2b);" statement_identifier : (do_statement "do {\n    in_t3 = 1;\nLAB_00015358:\n    while( true ) {\n      ppuVar21 = (uint **)*puVar14;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n      if (ppuVar16 != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }\n    in_t3 = 0;\n  } while (uVar15 == 0x2b);" do (compound_statement "{\n    in_t3 = 1;\nLAB_00015358:\n    while( true ) {\n      ppuVar21 = (uint **)*puVar14;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n      if (ppuVar16 != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }\n    in_t3 = 0;\n  }" { (expression_statement "in_t3 = 1;" (assignment_expression "in_t3 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00015358:\n    while( true ) {\n      ppuVar21 = (uint **)*puVar14;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n      if (ppuVar16 != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }" statement_identifier : (while_statement "while( true ) {\n      ppuVar21 = (uint **)*puVar14;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n      if (ppuVar16 != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      ppuVar21 = (uint **)*puVar14;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n      if (ppuVar16 != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }" { (expression_statement "ppuVar21 = (uint **)*puVar14;" (assignment_expression "ppuVar21 = (uint **)*puVar14" identifier = (cast_expression "(uint **)*puVar14" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar14" * identifier))) ;) (do_statement "do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);" do (compound_statement "{\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      }" { (expression_statement "ppuVar21 = (uint **)((int)ppuVar21 + 1);" (assignment_expression "ppuVar21 = (uint **)((int)ppuVar21 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar21 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar21 + 1)" ( (binary_expression "(int)ppuVar21 + 1" (cast_expression "(int)ppuVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*puVar14 = ppuVar21;" (assignment_expression "*puVar14 = ppuVar21" (pointer_expression "*puVar14" * identifier) = identifier) ;) (expression_statement "in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;" (assignment_expression "in_t0 = (uint **)(int)(char)*(byte *)ppuVar21" identifier = (cast_expression "(uint **)(int)(char)*(byte *)ppuVar21" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)(char)*(byte *)ppuVar21" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)ppuVar21" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)ppuVar21" * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))))) ;) (expression_statement "uVar15 = (uint)*(byte *)ppuVar21;" (assignment_expression "uVar15 = (uint)*(byte *)ppuVar21" identifier = (binary_expression "(uint)*(byte *)ppuVar21" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "in_t8 = (uint)(uVar15 - 9 < 0x18);" (assignment_expression "in_t8 = (uint)(uVar15 - 9 < 0x18)" identifier = (call_expression "(uint)(uVar15 - 9 < 0x18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar15 - 9 < 0x18)" ( (binary_expression "uVar15 - 9 < 0x18" (binary_expression "uVar15 - 9" identifier - number_literal) < number_literal) )))) ;) (if_statement "if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }" if (parenthesized_expression "(in_t8 == 0)" ( (binary_expression "in_t8 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }" { (expression_statement "uVar22 = uVar15 - 0x30;" (assignment_expression "uVar22 = uVar15 - 0x30" identifier = (binary_expression "uVar15 - 0x30" identifier - number_literal)) ;) (if_statement "if (9 < uVar22) goto LAB_000152f4;" if (parenthesized_expression "(9 < uVar22)" ( (binary_expression "9 < uVar22" number_literal < identifier) )) (goto_statement "goto LAB_000152f4;" goto statement_identifier ;)) (goto_statement "goto LAB_000153dc;" goto statement_identifier ;) })) }) while (parenthesized_expression "((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0)" ( (binary_expression "(1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0" (parenthesized_expression "(1 << (uVar15 - 9 & 0x1f) & 0x80001fU)" ( (binary_expression "1 << (uVar15 - 9 & 0x1f) & 0x80001fU" (binary_expression "1 << (uVar15 - 9 & 0x1f)" number_literal << (parenthesized_expression "(uVar15 - 9 & 0x1f)" ( (binary_expression "uVar15 - 9 & 0x1f" (binary_expression "uVar15 - 9" identifier - number_literal) & number_literal) ))) & number_literal) )) != number_literal) )) ;) (expression_statement "uVar22 = uVar15 - 9;" (assignment_expression "uVar22 = uVar15 - 9" identifier = (binary_expression "uVar15 - 9" identifier - number_literal)) ;) (expression_statement "ppuVar16 = (uint **)(uint)(uVar22 < 0x18);" (assignment_expression "ppuVar16 = (uint **)(uint)(uVar22 < 0x18)" identifier = (cast_expression "(uint **)(uint)(uVar22 < 0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(uint)(uVar22 < 0x18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar22 < 0x18)" ( (binary_expression "uVar22 < 0x18" identifier < number_literal) ))))) ;) (if_statement "if (ppuVar16 != (uint **)0x0) goto LAB_00015308;" if (parenthesized_expression "(ppuVar16 != (uint **)0x0)" ( (binary_expression "ppuVar16 != (uint **)0x0" identifier != (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_00015308;" goto statement_identifier ;)) (labeled_statement "LAB_000153a8:\n      uVar22 = uVar15 - 0x30;" statement_identifier : (expression_statement "uVar22 = uVar15 - 0x30;" (assignment_expression "uVar22 = uVar15 - 0x30" identifier = (binary_expression "uVar15 - 0x30" identifier - number_literal)) ;)) (if_statement "if (9 < uVar22) goto LAB_00015344;" if (parenthesized_expression "(9 < uVar22)" ( (binary_expression "9 < uVar22" number_literal < identifier) )) (goto_statement "goto LAB_00015344;" goto statement_identifier ;)) (if_statement "if (uVar15 != 0x2d) break;" if (parenthesized_expression "(uVar15 != 0x2d)" ( (binary_expression "uVar15 != 0x2d" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "in_t3 = 0xffffffff;" (assignment_expression "in_t3 = 0xffffffff" identifier = number_literal) ;) }))) (expression_statement "in_t3 = 0;" (assignment_expression "in_t3 = 0" identifier = number_literal) ;) }) while (parenthesized_expression "(uVar15 == 0x2b)" ( (binary_expression "uVar15 == 0x2b" identifier == number_literal) )) ;)) (expression_statement "ppuVar21 = (uint **)*puVar14;" (assignment_expression "ppuVar21 = (uint **)*puVar14" identifier = (cast_expression "(uint **)*puVar14" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar14" * identifier))) ;) (labeled_statement "LAB_000153dc:\n  ppuVar16 = (uint **)0x0;" statement_identifier : (expression_statement "ppuVar16 = (uint **)0x0;" (assignment_expression "ppuVar16 = (uint **)0x0" identifier = (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;)) (expression_statement "puVar29 = (uint *)0x0;" (assignment_expression "puVar29 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "in_t5 = 0xffffffff;" (assignment_expression "in_t5 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar18 = 0x30;" (assignment_expression "uVar18 = 0x30" identifier = number_literal) ;) (expression_statement "in_t8 = 10;" (assignment_expression "in_t8 = 10" identifier = number_literal) ;) (expression_statement "ppuVar28 = ppuVar21;" (assignment_expression "ppuVar28 = ppuVar21" identifier = identifier) ;) (labeled_statement "LAB_000153f8:\n  if (in_t3 == 0xffffffff) {\n    uVar22 = 0x30 - uVar15;\n  }" statement_identifier : (if_statement "if (in_t3 == 0xffffffff) {\n    uVar22 = 0x30 - uVar15;\n  }" if (parenthesized_expression "(in_t3 == 0xffffffff)" ( (binary_expression "in_t3 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n    uVar22 = 0x30 - uVar15;\n  }" { (expression_statement "uVar22 = 0x30 - uVar15;" (assignment_expression "uVar22 = 0x30 - uVar15" identifier = (binary_expression "0x30 - uVar15" number_literal - identifier)) ;) }))) (expression_statement "uVar15 = (int)uVar22 >> 0x1f;" (assignment_expression "uVar15 = (int)uVar22 >> 0x1f" identifier = (binary_expression "(int)uVar22 >> 0x1f" (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "puVar17 = (uint *)((int)puVar29 + uVar22);" (assignment_expression "puVar17 = (uint *)((int)puVar29 + uVar22)" identifier = (cast_expression "(uint *)((int)puVar29 + uVar22)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + uVar22)" ( (binary_expression "(int)puVar29 + uVar22" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "in_t2 = (uint *)((int)ppuVar16 + (puVar17 < puVar29) + uVar15);" (assignment_expression "in_t2 = (uint *)((int)ppuVar16 + (puVar17 < puVar29) + uVar15)" identifier = (cast_expression "(uint *)((int)ppuVar16 + (puVar17 < puVar29) + uVar15)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar16 + (puVar17 < puVar29) + uVar15)" ( (binary_expression "(int)ppuVar16 + (puVar17 < puVar29) + uVar15" (binary_expression "(int)ppuVar16 + (puVar17 < puVar29)" (cast_expression "(int)ppuVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(puVar17 < puVar29)" ( (binary_expression "puVar17 < puVar29" identifier < identifier) ))) + identifier) )))) ;) (expression_statement "in_t4 = (uint **)((uint)in_t2 ^ uVar15);" (assignment_expression "in_t4 = (uint **)((uint)in_t2 ^ uVar15)" identifier = (cast_expression "(uint **)((uint)in_t2 ^ uVar15)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((uint)in_t2 ^ uVar15)" ( (binary_expression "(uint)in_t2 ^ uVar15" (cast_expression "(uint)in_t2" ( (type_descriptor "uint" type_identifier) ) identifier) ^ identifier) )))) ;) (expression_statement "ppuVar16 = (uint **)((uint)in_t4 & ~((uint)ppuVar16 ^ uVar15));" (assignment_expression "ppuVar16 = (uint **)((uint)in_t4 & ~((uint)ppuVar16 ^ uVar15))" identifier = (cast_expression "(uint **)((uint)in_t4 & ~((uint)ppuVar16 ^ uVar15))" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((uint)in_t4 & ~((uint)ppuVar16 ^ uVar15))" ( (binary_expression "(uint)in_t4 & ~((uint)ppuVar16 ^ uVar15)" (cast_expression "(uint)in_t4" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "~((uint)ppuVar16 ^ uVar15)" ~ (parenthesized_expression "((uint)ppuVar16 ^ uVar15)" ( (binary_expression "(uint)ppuVar16 ^ uVar15" (cast_expression "(uint)ppuVar16" ( (type_descriptor "uint" type_identifier) ) identifier) ^ identifier) )))) )))) ;) (if_statement "if ((int)ppuVar16 < 0) goto LAB_00017ad0;" if (parenthesized_expression "((int)ppuVar16 < 0)" ( (binary_expression "(int)ppuVar16 < 0" (cast_expression "(int)ppuVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00017ad0;" goto statement_identifier ;)) (expression_statement "uVar15 = (uint)*(byte *)((int)ppuVar28 + 1);" (assignment_expression "uVar15 = (uint)*(byte *)((int)ppuVar28 + 1)" identifier = (binary_expression "(uint)*(byte *)((int)ppuVar28 + 1)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)ppuVar28 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar28 + 1)" ( (binary_expression "(int)ppuVar28 + 1" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar22 = uVar15 - 0x30;" (assignment_expression "uVar22 = uVar15 - 0x30" identifier = (binary_expression "uVar15 - 0x30" identifier - number_literal)) ;) (expression_statement "in_t4 = (uint **)((int)ppuVar28 + 1);" (assignment_expression "in_t4 = (uint **)((int)ppuVar28 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar28 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar28 + 1)" ( (binary_expression "(int)ppuVar28 + 1" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (uVar22 < 10) goto LAB_00015528;" if (parenthesized_expression "(uVar22 < 10)" ( (binary_expression "uVar22 < 10" identifier < number_literal) )) (goto_statement "goto LAB_00015528;" goto statement_identifier ;)) (expression_statement "ppuVar16 = (uint **)0xfffffffd;" (assignment_expression "ppuVar16 = (uint **)0xfffffffd" identifier = (cast_expression "(uint **)0xfffffffd" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (if_statement "if (((*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c) ||\n     (puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29)) {\n    *puVar14 = in_t4;\n    uVar15 = 0x13;\n    apuStack_5e8[0] = (uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_);\n    puVar29 = (uint *)0x112;\n    if (in_t3 == 0) {\n      uVar15 = 0x14;\n    }\n    iStack_660 = (int)in_t4 - (int)ppuVar21;\n    if (in_t3 == 0) {\n      puVar29 = (uint *)0x113;\n    }\n    puVar19 = (uint *)((int)puVar31 + uVar15);\n    puStack_65c = in_t2;\n    puStack_630 = puVar17;\n    goto LAB_00014f74;\n  }" if (parenthesized_expression "(((*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c) ||\n     (puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29))" ( (binary_expression "((*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c) ||\n     (puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29)" (parenthesized_expression "((*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c)" ( (binary_expression "(*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c" (parenthesized_expression "(*(byte *)((int)ppuVar28 + 1) & 0xfd)" ( (binary_expression "*(byte *)((int)ppuVar28 + 1) & 0xfd" (pointer_expression "*(byte *)((int)ppuVar28 + 1)" * (cast_expression "(byte *)((int)ppuVar28 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar28 + 1)" ( (binary_expression "(int)ppuVar28 + 1" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "(puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29)" ( (comma_expression "puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29" (assignment_expression "puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30)" identifier = (cast_expression "(uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((char)*(byte *)((int)ppuVar28 + 2) + -0x30)" ( (binary_expression "(char)*(byte *)((int)ppuVar28 + 2) + -0x30" (cast_expression "(char)*(byte *)((int)ppuVar28 + 2)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((int)ppuVar28 + 2)" * (cast_expression "(byte *)((int)ppuVar28 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar28 + 2)" ( (binary_expression "(int)ppuVar28 + 2" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) + number_literal) )))) , (binary_expression "&DAT_00000009 < puVar29" (pointer_expression "&DAT_00000009" & identifier) < identifier)) ))) )) (compound_statement "{\n    *puVar14 = in_t4;\n    uVar15 = 0x13;\n    apuStack_5e8[0] = (uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_);\n    puVar29 = (uint *)0x112;\n    if (in_t3 == 0) {\n      uVar15 = 0x14;\n    }\n    iStack_660 = (int)in_t4 - (int)ppuVar21;\n    if (in_t3 == 0) {\n      puVar29 = (uint *)0x113;\n    }\n    puVar19 = (uint *)((int)puVar31 + uVar15);\n    puStack_65c = in_t2;\n    puStack_630 = puVar17;\n    goto LAB_00014f74;\n  }" { (expression_statement "*puVar14 = in_t4;" (assignment_expression "*puVar14 = in_t4" (pointer_expression "*puVar14" * identifier) = identifier) ;) (expression_statement "uVar15 = 0x13;" (assignment_expression "uVar15 = 0x13" identifier = number_literal) ;) (expression_statement "apuStack_5e8[0] = (uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_);" (assignment_expression "apuStack_5e8[0] = (uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_)" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = (cast_expression "(uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_)" identifier (argument_list "((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_)" ( (call_expression "(byte)(in_t3 >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(in_t3 >> 0x1f)" ( (binary_expression "in_t3 >> 0x1f" identifier >> number_literal) ))) , (field_expression "apuStack_5e8[0]._1_3_" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) . field_identifier) ))))) ;) (expression_statement "puVar29 = (uint *)0x112;" (assignment_expression "puVar29 = (uint *)0x112" identifier = (cast_expression "(uint *)0x112" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (in_t3 == 0) {\n      uVar15 = 0x14;\n    }" if (parenthesized_expression "(in_t3 == 0)" ( (binary_expression "in_t3 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar15 = 0x14;\n    }" { (expression_statement "uVar15 = 0x14;" (assignment_expression "uVar15 = 0x14" identifier = number_literal) ;) })) (expression_statement "iStack_660 = (int)in_t4 - (int)ppuVar21;" (assignment_expression "iStack_660 = (int)in_t4 - (int)ppuVar21" identifier = (binary_expression "(int)in_t4 - (int)ppuVar21" (cast_expression "(int)in_t4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppuVar21" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (in_t3 == 0) {\n      puVar29 = (uint *)0x113;\n    }" if (parenthesized_expression "(in_t3 == 0)" ( (binary_expression "in_t3 == 0" identifier == number_literal) )) (compound_statement "{\n      puVar29 = (uint *)0x113;\n    }" { (expression_statement "puVar29 = (uint *)0x113;" (assignment_expression "puVar29 = (uint *)0x113" identifier = (cast_expression "(uint *)0x113" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "puVar19 = (uint *)((int)puVar31 + uVar15);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + uVar15)" identifier = (cast_expression "(uint *)((int)puVar31 + uVar15)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar31 + uVar15)" ( (binary_expression "(int)puVar31 + uVar15" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "puStack_65c = in_t2;" (assignment_expression "puStack_65c = in_t2" identifier = identifier) ;) (expression_statement "puStack_630 = puVar17;" (assignment_expression "puStack_630 = puVar17" identifier = identifier) ;) (goto_statement "goto LAB_00014f74;" goto statement_identifier ;) })) (expression_statement "in_t2 = (uint *)((int)in_t2 + (uint)(puVar17 + -0x20000000 < puVar17));" (assignment_expression "in_t2 = (uint *)((int)in_t2 + (uint)(puVar17 + -0x20000000 < puVar17))" identifier = (cast_expression "(uint *)((int)in_t2 + (uint)(puVar17 + -0x20000000 < puVar17))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_t2 + (uint)(puVar17 + -0x20000000 < puVar17))" ( (binary_expression "(int)in_t2 + (uint)(puVar17 + -0x20000000 < puVar17)" (cast_expression "(int)in_t2" ( (type_descriptor "int" primitive_type) ) identifier) + (call_expression "(uint)(puVar17 + -0x20000000 < puVar17)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar17 + -0x20000000 < puVar17)" ( (binary_expression "puVar17 + -0x20000000 < puVar17" (binary_expression "puVar17 + -0x20000000" identifier + number_literal) < identifier) )))) )))) ;) (expression_statement "iVar9 = 8;" (assignment_expression "iVar9 = 8" identifier = number_literal) ;) (expression_statement "ppuVar21 = ppuVar16;" (assignment_expression "ppuVar21 = ppuVar16" identifier = identifier) ;) (if_statement "if (in_t2 != (uint *)0x0) goto LAB_00017ae0;" if (parenthesized_expression "(in_t2 != (uint *)0x0)" ( (binary_expression "in_t2 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00017ae0;" goto statement_identifier ;)) (expression_statement "in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 3);" (assignment_expression "in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 3)" identifier = (cast_expression "(uint **)(int)(char)*(byte *)((int)ppuVar28 + 3)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)(char)*(byte *)((int)ppuVar28 + 3)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)((int)ppuVar28 + 3)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((int)ppuVar28 + 3)" * (cast_expression "(byte *)((int)ppuVar28 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar28 + 3)" ( (binary_expression "(int)ppuVar28 + 3" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))))) ;) (expression_statement "ppuVar28 = (uint **)((int)ppuVar28 + 3);" (assignment_expression "ppuVar28 = (uint **)((int)ppuVar28 + 3)" identifier = (cast_expression "(uint **)((int)ppuVar28 + 3)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar28 + 3)" ( (binary_expression "(int)ppuVar28 + 3" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "ppuVar21 = in_t0 + -0xc;" (assignment_expression "ppuVar21 = in_t0 + -0xc" identifier = (binary_expression "in_t0 + -0xc" identifier + number_literal)) ;) (expression_statement "ppuVar16 = (uint **)((int)puVar29 * 4);" (assignment_expression "ppuVar16 = (uint **)((int)puVar29 * 4)" identifier = (cast_expression "(uint **)((int)puVar29 * 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar29 * 4)" ( (binary_expression "(int)puVar29 * 4" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (do_statement "do {\n    puVar29 = (uint *)((int)((int)ppuVar16 + (int)puVar29) * 2);\n    if (ppuVar21 < &DAT_0000000a) {\n      in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);\n      puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n      ppuVar21 = in_t0 + -0xc;\n    }\n    iVar9 = iVar9 + -1;\n    ppuVar16 = (uint **)((int)puVar29 << 2);\n  } while (iVar9 != 0);" do (compound_statement "{\n    puVar29 = (uint *)((int)((int)ppuVar16 + (int)puVar29) * 2);\n    if (ppuVar21 < &DAT_0000000a) {\n      in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);\n      puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n      ppuVar21 = in_t0 + -0xc;\n    }\n    iVar9 = iVar9 + -1;\n    ppuVar16 = (uint **)((int)puVar29 << 2);\n  }" { (expression_statement "puVar29 = (uint *)((int)((int)ppuVar16 + (int)puVar29) * 2);" (assignment_expression "puVar29 = (uint *)((int)((int)ppuVar16 + (int)puVar29) * 2)" identifier = (cast_expression "(uint *)((int)((int)ppuVar16 + (int)puVar29) * 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)((int)ppuVar16 + (int)puVar29) * 2)" ( (binary_expression "(int)((int)ppuVar16 + (int)puVar29) * 2" (cast_expression "(int)((int)ppuVar16 + (int)puVar29)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)ppuVar16 + (int)puVar29)" ( (binary_expression "(int)ppuVar16 + (int)puVar29" (cast_expression "(int)ppuVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier)) ))) * number_literal) )))) ;) (if_statement "if (ppuVar21 < &DAT_0000000a) {\n      in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);\n      puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n      ppuVar21 = in_t0 + -0xc;\n    }" if (parenthesized_expression "(ppuVar21 < &DAT_0000000a)" ( (binary_expression "ppuVar21 < &DAT_0000000a" identifier < (pointer_expression "&DAT_0000000a" & identifier)) )) (compound_statement "{\n      in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);\n      puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n      ppuVar21 = in_t0 + -0xc;\n    }" { (expression_statement "in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);" (assignment_expression "in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1)" identifier = (cast_expression "(uint **)(int)(char)*(byte *)((int)ppuVar28 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)(char)*(byte *)((int)ppuVar28 + 1)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)((int)ppuVar28 + 1)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((int)ppuVar28 + 1)" * (cast_expression "(byte *)((int)ppuVar28 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar28 + 1)" ( (binary_expression "(int)ppuVar28 + 1" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))))) ;) (expression_statement "puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);" (assignment_expression "puVar29 = (uint *)((int)puVar29 + (int)ppuVar21)" identifier = (cast_expression "(uint *)((int)puVar29 + (int)ppuVar21)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + (int)ppuVar21)" ( (binary_expression "(int)puVar29 + (int)ppuVar21" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)ppuVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "ppuVar28 = (uint **)((int)ppuVar28 + 1);" (assignment_expression "ppuVar28 = (uint **)((int)ppuVar28 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar28 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar28 + 1)" ( (binary_expression "(int)ppuVar28 + 1" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "ppuVar21 = in_t0 + -0xc;" (assignment_expression "ppuVar21 = in_t0 + -0xc" identifier = (binary_expression "in_t0 + -0xc" identifier + number_literal)) ;) })) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "ppuVar16 = (uint **)((int)puVar29 << 2);" (assignment_expression "ppuVar16 = (uint **)((int)puVar29 << 2)" identifier = (cast_expression "(uint **)((int)puVar29 << 2)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar29 << 2)" ( (binary_expression "(int)puVar29 << 2" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) }) while (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) ;) (expression_statement "in_t2 = puVar17;" (assignment_expression "in_t2 = puVar17" identifier = identifier) ;) (if_statement "if (in_t3 == 0xffffffff) {\n    ppuVar11 = in_t0;\n    if (ppuVar21 < &DAT_0000000a) {\n      do {\n        if (ppuVar11 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar11 = ppuVar16;\n      } while (ppuVar16 + -0xc <= &DAT_00000009);\n    }\nLAB_00015c20:\n    if (puVar29 != (uint *)0x0) {\n      in_t2 = (uint *)((int)puVar17 + -1);\n      ppuVar21 = ppuVar16;\n      if (puVar17 == (uint *)0x80000000) {\nLAB_00017ae0:\n        ppuVar16 = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }\n    uVar15 = 0x15;\n    apuStack_5e8[1] = puVar29;\n    apuStack_5e8[0] = in_t2;\n    puVar29 = (uint *)0x114;\n    *puVar14 = ppuVar28;\n    puVar19 = (uint *)((int)puVar31 + 0x15);\n    goto LAB_00014f74;\n  }" if (parenthesized_expression "(in_t3 == 0xffffffff)" ( (binary_expression "in_t3 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n    ppuVar11 = in_t0;\n    if (ppuVar21 < &DAT_0000000a) {\n      do {\n        if (ppuVar11 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar11 = ppuVar16;\n      } while (ppuVar16 + -0xc <= &DAT_00000009);\n    }\nLAB_00015c20:\n    if (puVar29 != (uint *)0x0) {\n      in_t2 = (uint *)((int)puVar17 + -1);\n      ppuVar21 = ppuVar16;\n      if (puVar17 == (uint *)0x80000000) {\nLAB_00017ae0:\n        ppuVar16 = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }\n    uVar15 = 0x15;\n    apuStack_5e8[1] = puVar29;\n    apuStack_5e8[0] = in_t2;\n    puVar29 = (uint *)0x114;\n    *puVar14 = ppuVar28;\n    puVar19 = (uint *)((int)puVar31 + 0x15);\n    goto LAB_00014f74;\n  }" { (expression_statement "ppuVar11 = in_t0;" (assignment_expression "ppuVar11 = in_t0" identifier = identifier) ;) (if_statement "if (ppuVar21 < &DAT_0000000a) {\n      do {\n        if (ppuVar11 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar11 = ppuVar16;\n      } while (ppuVar16 + -0xc <= &DAT_00000009);\n    }" if (parenthesized_expression "(ppuVar21 < &DAT_0000000a)" ( (binary_expression "ppuVar21 < &DAT_0000000a" identifier < (pointer_expression "&DAT_0000000a" & identifier)) )) (compound_statement "{\n      do {\n        if (ppuVar11 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar11 = ppuVar16;\n      } while (ppuVar16 + -0xc <= &DAT_00000009);\n    }" { (do_statement "do {\n        if (ppuVar11 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar11 = ppuVar16;\n      } while (ppuVar16 + -0xc <= &DAT_00000009);" do (compound_statement "{\n        if (ppuVar11 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar11 = ppuVar16;\n      }" { (if_statement "if (ppuVar11 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }" if (parenthesized_expression "(ppuVar11 != (uint **)0x30)" ( (binary_expression "ppuVar11 != (uint **)0x30" identifier != (cast_expression "(uint **)0x30" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }" { (expression_statement "puVar29 = (uint *)((int)puVar29 + 1);" (assignment_expression "puVar29 = (uint *)((int)puVar29 + 1)" identifier = (cast_expression "(uint *)((int)puVar29 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + 1)" ( (binary_expression "(int)puVar29 + 1" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;" if (parenthesized_expression "((int)(char)*(byte *)ppuVar28 - 0x30U < 10)" ( (binary_expression "(int)(char)*(byte *)ppuVar28 - 0x30U < 10" (binary_expression "(int)(char)*(byte *)ppuVar28 - 0x30U" (cast_expression "(int)(char)*(byte *)ppuVar28" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)ppuVar28" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)ppuVar28" * (cast_expression "(byte *)ppuVar28" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) - number_literal) < number_literal) )) (goto_statement "goto LAB_000154dc;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "ppuVar28 = (uint **)((int)ppuVar28 + 1);" (assignment_expression "ppuVar28 = (uint **)((int)ppuVar28 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar28 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar28 + 1)" ( (binary_expression "(int)ppuVar28 + 1" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;" (assignment_expression "ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28" identifier = (cast_expression "(uint **)(int)(char)*(byte *)ppuVar28" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)(char)*(byte *)ppuVar28" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)ppuVar28" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)ppuVar28" * (cast_expression "(byte *)ppuVar28" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))))) ;) (expression_statement "ppuVar11 = ppuVar16;" (assignment_expression "ppuVar11 = ppuVar16" identifier = identifier) ;) }) while (parenthesized_expression "(ppuVar16 + -0xc <= &DAT_00000009)" ( (binary_expression "ppuVar16 + -0xc <= &DAT_00000009" (binary_expression "ppuVar16 + -0xc" identifier + number_literal) <= (pointer_expression "&DAT_00000009" & identifier)) )) ;) })) (labeled_statement "LAB_00015c20:\n    if (puVar29 != (uint *)0x0) {\n      in_t2 = (uint *)((int)puVar17 + -1);\n      ppuVar21 = ppuVar16;\n      if (puVar17 == (uint *)0x80000000) {\nLAB_00017ae0:\n        ppuVar16 = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }" statement_identifier : (if_statement "if (puVar29 != (uint *)0x0) {\n      in_t2 = (uint *)((int)puVar17 + -1);\n      ppuVar21 = ppuVar16;\n      if (puVar17 == (uint *)0x80000000) {\nLAB_00017ae0:\n        ppuVar16 = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }" if (parenthesized_expression "(puVar29 != (uint *)0x0)" ( (binary_expression "puVar29 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      in_t2 = (uint *)((int)puVar17 + -1);\n      ppuVar21 = ppuVar16;\n      if (puVar17 == (uint *)0x80000000) {\nLAB_00017ae0:\n        ppuVar16 = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }" { (expression_statement "in_t2 = (uint *)((int)puVar17 + -1);" (assignment_expression "in_t2 = (uint *)((int)puVar17 + -1)" identifier = (cast_expression "(uint *)((int)puVar17 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + -1)" ( (binary_expression "(int)puVar17 + -1" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "ppuVar21 = ppuVar16;" (assignment_expression "ppuVar21 = ppuVar16" identifier = identifier) ;) (if_statement "if (puVar17 == (uint *)0x80000000) {\nLAB_00017ae0:\n        ppuVar16 = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }" if (parenthesized_expression "(puVar17 == (uint *)0x80000000)" ( (binary_expression "puVar17 == (uint *)0x80000000" identifier == (cast_expression "(uint *)0x80000000" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00017ae0:\n        ppuVar16 = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }" { (labeled_statement "LAB_00017ae0:\n        ppuVar16 = ppuVar21;" statement_identifier : (expression_statement "ppuVar16 = ppuVar21;" (assignment_expression "ppuVar16 = ppuVar21" identifier = identifier) ;)) (expression_statement "uVar15 = 2;" (assignment_expression "uVar15 = 2" identifier = number_literal) ;) (expression_statement "puVar29 = (uint *)0x3f;" (assignment_expression "puVar29 = (uint *)0x3f" identifier = (cast_expression "(uint *)0x3f" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar19 = (uint *)((int)puVar31 + 2);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + 2)" identifier = (cast_expression "(uint *)((int)puVar31 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar31 + 2)" ( (binary_expression "(int)puVar31 + 2" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (goto_statement "goto LAB_00014f74;" goto statement_identifier ;) })) (expression_statement "puVar29 = (uint *)(1000000000 - (int)puVar29);" (assignment_expression "puVar29 = (uint *)(1000000000 - (int)puVar29)" identifier = (cast_expression "(uint *)(1000000000 - (int)puVar29)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(1000000000 - (int)puVar29)" ( (binary_expression "1000000000 - (int)puVar29" number_literal - (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }))) (expression_statement "uVar15 = 0x15;" (assignment_expression "uVar15 = 0x15" identifier = number_literal) ;) (expression_statement "apuStack_5e8[1] = puVar29;" (assignment_expression "apuStack_5e8[1] = puVar29" (subscript_expression "apuStack_5e8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "apuStack_5e8[0] = in_t2;" (assignment_expression "apuStack_5e8[0] = in_t2" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar29 = (uint *)0x114;" (assignment_expression "puVar29 = (uint *)0x114" identifier = (cast_expression "(uint *)0x114" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*puVar14 = ppuVar28;" (assignment_expression "*puVar14 = ppuVar28" (pointer_expression "*puVar14" * identifier) = identifier) ;) (expression_statement "puVar19 = (uint *)((int)puVar31 + 0x15);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + 0x15)" identifier = (cast_expression "(uint *)((int)puVar31 + 0x15)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar31 + 0x15)" ( (binary_expression "(int)puVar31 + 0x15" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (goto_statement "goto LAB_00014f74;" goto statement_identifier ;) })) (if_statement "if (ppuVar21 < &DAT_0000000a) {\nLAB_000154dc:\n    do {\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    } while ((int)(char)*(byte *)ppuVar28 - 0x30U < 10);\n    if (in_t3 == 0xffffffff) goto LAB_00015c20;\n  }" if (parenthesized_expression "(ppuVar21 < &DAT_0000000a)" ( (binary_expression "ppuVar21 < &DAT_0000000a" identifier < (pointer_expression "&DAT_0000000a" & identifier)) )) (compound_statement "{\nLAB_000154dc:\n    do {\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    } while ((int)(char)*(byte *)ppuVar28 - 0x30U < 10);\n    if (in_t3 == 0xffffffff) goto LAB_00015c20;\n  }" { (labeled_statement "LAB_000154dc:\n    do {\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    } while ((int)(char)*(byte *)ppuVar28 - 0x30U < 10);" statement_identifier : (do_statement "do {\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    } while ((int)(char)*(byte *)ppuVar28 - 0x30U < 10);" do (compound_statement "{\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    }" { (expression_statement "ppuVar28 = (uint **)((int)ppuVar28 + 1);" (assignment_expression "ppuVar28 = (uint **)((int)ppuVar28 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar28 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar28 + 1)" ( (binary_expression "(int)ppuVar28 + 1" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((int)(char)*(byte *)ppuVar28 - 0x30U < 10)" ( (binary_expression "(int)(char)*(byte *)ppuVar28 - 0x30U < 10" (binary_expression "(int)(char)*(byte *)ppuVar28 - 0x30U" (cast_expression "(int)(char)*(byte *)ppuVar28" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)ppuVar28" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)ppuVar28" * (cast_expression "(byte *)ppuVar28" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) - number_literal) < number_literal) )) ;)) (if_statement "if (in_t3 == 0xffffffff) goto LAB_00015c20;" if (parenthesized_expression "(in_t3 == 0xffffffff)" ( (binary_expression "in_t3 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_00015c20;" goto statement_identifier ;)) })) (expression_statement "apuStack_5e8[0] = puVar17;" (assignment_expression "apuStack_5e8[0] = puVar17" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar15 = 0x16;" (assignment_expression "uVar15 = 0x16" identifier = number_literal) ;) (expression_statement "apuStack_5e8[1] = puVar29;" (assignment_expression "apuStack_5e8[1] = puVar29" (subscript_expression "apuStack_5e8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar29 = (uint *)0x115;" (assignment_expression "puVar29 = (uint *)0x115" identifier = (cast_expression "(uint *)0x115" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*puVar14 = ppuVar28;" (assignment_expression "*puVar14 = ppuVar28" (pointer_expression "*puVar14" * identifier) = identifier) ;) (if_statement "if (in_t3 != 0) {\n    uVar15 = 0x15;\n    puVar29 = (uint *)0x114;\n  }" if (parenthesized_expression "(in_t3 != 0)" ( (binary_expression "in_t3 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar15 = 0x15;\n    puVar29 = (uint *)0x114;\n  }" { (expression_statement "uVar15 = 0x15;" (assignment_expression "uVar15 = 0x15" identifier = number_literal) ;) (expression_statement "puVar29 = (uint *)0x114;" (assignment_expression "puVar29 = (uint *)0x114" identifier = (cast_expression "(uint *)0x114" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "puVar19 = (uint *)((int)puVar31 + uVar15);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + uVar15)" identifier = (cast_expression "(uint *)((int)puVar31 + uVar15)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar31 + uVar15)" ( (binary_expression "(int)puVar31 + uVar15" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (labeled_statement "LAB_00014f74:\n  psVar27 = psVar32;" statement_identifier : (expression_statement "psVar27 = psVar32;" (assignment_expression "psVar27 = psVar32" identifier = identifier) ;)) (if_statement "if ((uint *)0x70 < puVar19) goto LAB_0001504c;" if (parenthesized_expression "((uint *)0x70 < puVar19)" ( (binary_expression "(uint *)0x70 < puVar19" (cast_expression "(uint *)0x70" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (goto_statement "goto LAB_0001504c;" goto statement_identifier ;)) (expression_statement "iVar9 = *(int *)(puVar33 + 0x23270);" (assignment_expression "iVar9 = *(int *)(puVar33 + 0x23270)" identifier = (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) ;) (if_statement "if ((int)(char)*(byte *)((int)puVar19 + iVar30) != uVar15) goto LAB_00015050;" if (parenthesized_expression "((int)(char)*(byte *)((int)puVar19 + iVar30) != uVar15)" ( (binary_expression "(int)(char)*(byte *)((int)puVar19 + iVar30) != uVar15" (cast_expression "(int)(char)*(byte *)((int)puVar19 + iVar30)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)((int)puVar19 + iVar30)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((int)puVar19 + iVar30)" * (cast_expression "(byte *)((int)puVar19 + iVar30)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + iVar30)" ( (binary_expression "(int)puVar19 + iVar30" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))))) != identifier) )) (goto_statement "goto LAB_00015050;" goto statement_identifier ;)) (expression_statement "puVar25 = (uint *)(uint)*(byte *)((int)puVar19 + iVar8);" (assignment_expression "puVar25 = (uint *)(uint)*(byte *)((int)puVar19 + iVar8)" identifier = (binary_expression "(uint *)(uint)*(byte *)((int)puVar19 + iVar8)" (cast_expression "(uint *)(uint)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)((int)puVar19 + iVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + iVar8)" ( (binary_expression "(int)puVar19 + iVar8" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (if_statement "if (puVar25 == (uint *)0x0) {\n    puStack_66c = auStack_5b0;\n    puVar25 = puVar13 + 0xe;\n    puVar31 = puStack_66c;\n    do {\n      puVar17 = puVar31;\n      puVar19 = puVar25;\n      puVar25 = puVar19 + 4;\n      uVar22 = puVar19[1];\n      uVar15 = puVar19[2];\n      uVar18 = puVar19[3];\n      *puVar17 = *puVar19;\n      puVar17[1] = uVar22;\n      puVar17[2] = uVar15;\n      puVar17[3] = uVar18;\n      puVar31 = puVar17 + 4;\n    } while (puVar25 != puVar13 + 0x1a);\n    uVar18 = puVar19[5];\n    iVar10 = -0x1c;\n    puVar17[4] = *puVar25;\n    puVar17[5] = uVar18;\n    puStack_674 = (uint *)puVar13[0x13];\n    in_t3 = puVar13[0x11];\n    in_t2 = (uint *)puVar13[0x10];\n    unaff_s6 = (short *)puVar13[0x12];\n    ppuVar28 = (uint **)puVar13[0x15];\n    in_t0 = (uint **)puVar13[0x14];\n    in_t5 = puVar13[0x17];\n    in_t4 = (uint **)puVar13[0x16];\n    uVar18 = puVar13[0x18];\n    in_t6 = puVar13[0x19];\n    in_t8 = puVar13[0x1a];\n    iVar9 = 0;\n    goto LAB_00015adc;\n  }" if (parenthesized_expression "(puVar25 == (uint *)0x0)" ( (binary_expression "puVar25 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puStack_66c = auStack_5b0;\n    puVar25 = puVar13 + 0xe;\n    puVar31 = puStack_66c;\n    do {\n      puVar17 = puVar31;\n      puVar19 = puVar25;\n      puVar25 = puVar19 + 4;\n      uVar22 = puVar19[1];\n      uVar15 = puVar19[2];\n      uVar18 = puVar19[3];\n      *puVar17 = *puVar19;\n      puVar17[1] = uVar22;\n      puVar17[2] = uVar15;\n      puVar17[3] = uVar18;\n      puVar31 = puVar17 + 4;\n    } while (puVar25 != puVar13 + 0x1a);\n    uVar18 = puVar19[5];\n    iVar10 = -0x1c;\n    puVar17[4] = *puVar25;\n    puVar17[5] = uVar18;\n    puStack_674 = (uint *)puVar13[0x13];\n    in_t3 = puVar13[0x11];\n    in_t2 = (uint *)puVar13[0x10];\n    unaff_s6 = (short *)puVar13[0x12];\n    ppuVar28 = (uint **)puVar13[0x15];\n    in_t0 = (uint **)puVar13[0x14];\n    in_t5 = puVar13[0x17];\n    in_t4 = (uint **)puVar13[0x16];\n    uVar18 = puVar13[0x18];\n    in_t6 = puVar13[0x19];\n    in_t8 = puVar13[0x1a];\n    iVar9 = 0;\n    goto LAB_00015adc;\n  }" { (expression_statement "puStack_66c = auStack_5b0;" (assignment_expression "puStack_66c = auStack_5b0" identifier = identifier) ;) (expression_statement "puVar25 = puVar13 + 0xe;" (assignment_expression "puVar25 = puVar13 + 0xe" identifier = (binary_expression "puVar13 + 0xe" identifier + number_literal)) ;) (expression_statement "puVar31 = puStack_66c;" (assignment_expression "puVar31 = puStack_66c" identifier = identifier) ;) (do_statement "do {\n      puVar17 = puVar31;\n      puVar19 = puVar25;\n      puVar25 = puVar19 + 4;\n      uVar22 = puVar19[1];\n      uVar15 = puVar19[2];\n      uVar18 = puVar19[3];\n      *puVar17 = *puVar19;\n      puVar17[1] = uVar22;\n      puVar17[2] = uVar15;\n      puVar17[3] = uVar18;\n      puVar31 = puVar17 + 4;\n    } while (puVar25 != puVar13 + 0x1a);" do (compound_statement "{\n      puVar17 = puVar31;\n      puVar19 = puVar25;\n      puVar25 = puVar19 + 4;\n      uVar22 = puVar19[1];\n      uVar15 = puVar19[2];\n      uVar18 = puVar19[3];\n      *puVar17 = *puVar19;\n      puVar17[1] = uVar22;\n      puVar17[2] = uVar15;\n      puVar17[3] = uVar18;\n      puVar31 = puVar17 + 4;\n    }" { (expression_statement "puVar17 = puVar31;" (assignment_expression "puVar17 = puVar31" identifier = identifier) ;) (expression_statement "puVar19 = puVar25;" (assignment_expression "puVar19 = puVar25" identifier = identifier) ;) (expression_statement "puVar25 = puVar19 + 4;" (assignment_expression "puVar25 = puVar19 + 4" identifier = (binary_expression "puVar19 + 4" identifier + number_literal)) ;) (expression_statement "uVar22 = puVar19[1];" (assignment_expression "uVar22 = puVar19[1]" identifier = (subscript_expression "puVar19[1]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = puVar19[2];" (assignment_expression "uVar15 = puVar19[2]" identifier = (subscript_expression "puVar19[2]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = puVar19[3];" (assignment_expression "uVar18 = puVar19[3]" identifier = (subscript_expression "puVar19[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar17 = *puVar19;" (assignment_expression "*puVar17 = *puVar19" (pointer_expression "*puVar17" * identifier) = (pointer_expression "*puVar19" * identifier)) ;) (expression_statement "puVar17[1] = uVar22;" (assignment_expression "puVar17[1] = uVar22" (subscript_expression "puVar17[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[2] = uVar15;" (assignment_expression "puVar17[2] = uVar15" (subscript_expression "puVar17[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[3] = uVar18;" (assignment_expression "puVar17[3] = uVar18" (subscript_expression "puVar17[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar31 = puVar17 + 4;" (assignment_expression "puVar31 = puVar17 + 4" identifier = (binary_expression "puVar17 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar25 != puVar13 + 0x1a)" ( (binary_expression "puVar25 != puVar13 + 0x1a" identifier != (binary_expression "puVar13 + 0x1a" identifier + number_literal)) )) ;) (expression_statement "uVar18 = puVar19[5];" (assignment_expression "uVar18 = puVar19[5]" identifier = (subscript_expression "puVar19[5]" identifier [ number_literal ])) ;) (expression_statement "iVar10 = -0x1c;" (assignment_expression "iVar10 = -0x1c" identifier = number_literal) ;) (expression_statement "puVar17[4] = *puVar25;" (assignment_expression "puVar17[4] = *puVar25" (subscript_expression "puVar17[4]" identifier [ number_literal ]) = (pointer_expression "*puVar25" * identifier)) ;) (expression_statement "puVar17[5] = uVar18;" (assignment_expression "puVar17[5] = uVar18" (subscript_expression "puVar17[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puStack_674 = (uint *)puVar13[0x13];" (assignment_expression "puStack_674 = (uint *)puVar13[0x13]" identifier = (cast_expression "(uint *)puVar13[0x13]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[0x13]" identifier [ number_literal ]))) ;) (expression_statement "in_t3 = puVar13[0x11];" (assignment_expression "in_t3 = puVar13[0x11]" identifier = (subscript_expression "puVar13[0x11]" identifier [ number_literal ])) ;) (expression_statement "in_t2 = (uint *)puVar13[0x10];" (assignment_expression "in_t2 = (uint *)puVar13[0x10]" identifier = (cast_expression "(uint *)puVar13[0x10]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[0x10]" identifier [ number_literal ]))) ;) (expression_statement "unaff_s6 = (short *)puVar13[0x12];" (assignment_expression "unaff_s6 = (short *)puVar13[0x12]" identifier = (cast_expression "(short *)puVar13[0x12]" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[0x12]" identifier [ number_literal ]))) ;) (expression_statement "ppuVar28 = (uint **)puVar13[0x15];" (assignment_expression "ppuVar28 = (uint **)puVar13[0x15]" identifier = (cast_expression "(uint **)puVar13[0x15]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar13[0x15]" identifier [ number_literal ]))) ;) (expression_statement "in_t0 = (uint **)puVar13[0x14];" (assignment_expression "in_t0 = (uint **)puVar13[0x14]" identifier = (cast_expression "(uint **)puVar13[0x14]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar13[0x14]" identifier [ number_literal ]))) ;) (expression_statement "in_t5 = puVar13[0x17];" (assignment_expression "in_t5 = puVar13[0x17]" identifier = (subscript_expression "puVar13[0x17]" identifier [ number_literal ])) ;) (expression_statement "in_t4 = (uint **)puVar13[0x16];" (assignment_expression "in_t4 = (uint **)puVar13[0x16]" identifier = (cast_expression "(uint **)puVar13[0x16]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar13[0x16]" identifier [ number_literal ]))) ;) (expression_statement "uVar18 = puVar13[0x18];" (assignment_expression "uVar18 = puVar13[0x18]" identifier = (subscript_expression "puVar13[0x18]" identifier [ number_literal ])) ;) (expression_statement "in_t6 = puVar13[0x19];" (assignment_expression "in_t6 = puVar13[0x19]" identifier = (subscript_expression "puVar13[0x19]" identifier [ number_literal ])) ;) (expression_statement "in_t8 = puVar13[0x1a];" (assignment_expression "in_t8 = puVar13[0x1a]" identifier = (subscript_expression "puVar13[0x1a]" identifier [ number_literal ])) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00015adc;" goto statement_identifier ;) })) (if_statement "if (iStack_670 != 0) {\n    iStack_670 = iStack_670 + -1;\n  }" if (parenthesized_expression "(iStack_670 != 0)" ( (binary_expression "iStack_670 != 0" identifier != number_literal) )) (compound_statement "{\n    iStack_670 = iStack_670 + -1;\n  }" { (expression_statement "iStack_670 = iStack_670 + -1;" (assignment_expression "iStack_670 = iStack_670 + -1" identifier = (binary_expression "iStack_670 + -1" identifier + number_literal)) ;) })) (expression_statement "puVar13 = puVar13 + 0xe;" (assignment_expression "puVar13 = puVar13 + 0xe" identifier = (binary_expression "puVar13 + 0xe" identifier + number_literal)) ;) (expression_statement "in_t0 = apuStack_5b8;" (assignment_expression "in_t0 = apuStack_5b8" identifier = identifier) ;) (expression_statement "apuStack_5e8[3] = puStack_630;" (assignment_expression "apuStack_5e8[3] = puStack_630" (subscript_expression "apuStack_5e8[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "apuStack_5e8[2] = puStack_65c;" (assignment_expression "apuStack_5e8[2] = puStack_65c" (subscript_expression "apuStack_5e8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iStack_5d8 = iStack_660;" (assignment_expression "iStack_5d8 = iStack_660" identifier = identifier) ;) (expression_statement "ppuVar21 = apuStack_5e8;" (assignment_expression "ppuVar21 = apuStack_5e8" identifier = identifier) ;) (expression_statement "puVar29 = puVar13;" (assignment_expression "puVar29 = puVar13" identifier = identifier) ;) (do_statement "do {\n    puVar31 = puVar29;\n    ppuVar11 = ppuVar21;\n    ppuVar21 = ppuVar11 + 4;\n    puVar19 = ppuVar11[1];\n    ppuVar16 = (uint **)ppuVar11[2];\n    puVar29 = ppuVar11[3];\n    *puVar31 = (uint)*ppuVar11;\n    puVar31[1] = (uint)puVar19;\n    puVar31[2] = (uint)ppuVar16;\n    puVar31[3] = (uint)puVar29;\n    puVar29 = puVar31 + 4;\n  } while (ppuVar21 != in_t0);" do (compound_statement "{\n    puVar31 = puVar29;\n    ppuVar11 = ppuVar21;\n    ppuVar21 = ppuVar11 + 4;\n    puVar19 = ppuVar11[1];\n    ppuVar16 = (uint **)ppuVar11[2];\n    puVar29 = ppuVar11[3];\n    *puVar31 = (uint)*ppuVar11;\n    puVar31[1] = (uint)puVar19;\n    puVar31[2] = (uint)ppuVar16;\n    puVar31[3] = (uint)puVar29;\n    puVar29 = puVar31 + 4;\n  }" { (expression_statement "puVar31 = puVar29;" (assignment_expression "puVar31 = puVar29" identifier = identifier) ;) (expression_statement "ppuVar11 = ppuVar21;" (assignment_expression "ppuVar11 = ppuVar21" identifier = identifier) ;) (expression_statement "ppuVar21 = ppuVar11 + 4;" (assignment_expression "ppuVar21 = ppuVar11 + 4" identifier = (binary_expression "ppuVar11 + 4" identifier + number_literal)) ;) (expression_statement "puVar19 = ppuVar11[1];" (assignment_expression "puVar19 = ppuVar11[1]" identifier = (subscript_expression "ppuVar11[1]" identifier [ number_literal ])) ;) (expression_statement "ppuVar16 = (uint **)ppuVar11[2];" (assignment_expression "ppuVar16 = (uint **)ppuVar11[2]" identifier = (cast_expression "(uint **)ppuVar11[2]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "ppuVar11[2]" identifier [ number_literal ]))) ;) (expression_statement "puVar29 = ppuVar11[3];" (assignment_expression "puVar29 = ppuVar11[3]" identifier = (subscript_expression "ppuVar11[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar31 = (uint)*ppuVar11;" (assignment_expression "*puVar31 = (uint)*ppuVar11" (pointer_expression "*puVar31" * identifier) = (binary_expression "(uint)*ppuVar11" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puVar31[1] = (uint)puVar19;" (assignment_expression "puVar31[1] = (uint)puVar19" (subscript_expression "puVar31[1]" identifier [ number_literal ]) = (cast_expression "(uint)puVar19" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar31[2] = (uint)ppuVar16;" (assignment_expression "puVar31[2] = (uint)ppuVar16" (subscript_expression "puVar31[2]" identifier [ number_literal ]) = (cast_expression "(uint)ppuVar16" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar31[3] = (uint)puVar29;" (assignment_expression "puVar31[3] = (uint)puVar29" (subscript_expression "puVar31[3]" identifier [ number_literal ]) = (cast_expression "(uint)puVar29" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar29 = puVar31 + 4;" (assignment_expression "puVar29 = puVar31 + 4" identifier = (binary_expression "puVar31 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppuVar21 != in_t0)" ( (binary_expression "ppuVar21 != in_t0" identifier != identifier) )) ;) (expression_statement "puVar29 = (uint *)0xfffffffe;" (assignment_expression "puVar29 = (uint *)0xfffffffe" identifier = (cast_expression "(uint *)0xfffffffe" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar19 = ppuVar11[5];" (assignment_expression "puVar19 = ppuVar11[5]" identifier = (subscript_expression "ppuVar11[5]" identifier [ number_literal ])) ;) (expression_statement "puVar31[4] = (uint)*ppuVar21;" (assignment_expression "puVar31[4] = (uint)*ppuVar21" (subscript_expression "puVar31[4]" identifier [ number_literal ]) = (binary_expression "(uint)*ppuVar21" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puVar31[5] = (uint)puVar19;" (assignment_expression "puVar31[5] = (uint)puVar19" (subscript_expression "puVar31[5]" identifier [ number_literal ]) = (cast_expression "(uint)puVar19" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (labeled_statement "LAB_00015014:\n  psVar27 = psVar32 + 1;" statement_identifier : (expression_statement "psVar27 = psVar32 + 1;" (assignment_expression "psVar27 = psVar32 + 1" identifier = (binary_expression "psVar32 + 1" identifier + number_literal)) ;)) (expression_statement "psVar32[1] = (short)puVar25;" (assignment_expression "psVar32[1] = (short)puVar25" (subscript_expression "psVar32[1]" identifier [ number_literal ]) = (cast_expression "(short)puVar25" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (if_statement "if (&sStack_552 <= psVar27) {\n    iVar9 = 2;\nLAB_00015278:\n    do {\n      if (iStack_dc == *piVar7) {\n        return iVar9;\n      }\n      iVar9 = iStack_dc;\n      uVar5 = (**(code **)(puVar33 + 0x23488))();\n      bVar2 = ppuVar16 == (uint **)0x0;\n      puVar14[0x10] = uVar5;\n      puVar14[0x11] = iVar9;\n      if (!bVar2) {\n        ppuVar16 = (uint **)puVar13[3];\n        if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }\n        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];\n        puVar14[0xb] = -(int)ppuVar16;\n        if (!bVar2) goto code_r0x00016f40;\n      }\n      iVar9 = 1;\n    } while( true );\n  }" if (parenthesized_expression "(&sStack_552 <= psVar27)" ( (binary_expression "&sStack_552 <= psVar27" (pointer_expression "&sStack_552" & identifier) <= identifier) )) (compound_statement "{\n    iVar9 = 2;\nLAB_00015278:\n    do {\n      if (iStack_dc == *piVar7) {\n        return iVar9;\n      }\n      iVar9 = iStack_dc;\n      uVar5 = (**(code **)(puVar33 + 0x23488))();\n      bVar2 = ppuVar16 == (uint **)0x0;\n      puVar14[0x10] = uVar5;\n      puVar14[0x11] = iVar9;\n      if (!bVar2) {\n        ppuVar16 = (uint **)puVar13[3];\n        if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }\n        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];\n        puVar14[0xb] = -(int)ppuVar16;\n        if (!bVar2) goto code_r0x00016f40;\n      }\n      iVar9 = 1;\n    } while( true );\n  }" { (expression_statement "iVar9 = 2;" (assignment_expression "iVar9 = 2" identifier = number_literal) ;) (labeled_statement "LAB_00015278:\n    do {\n      if (iStack_dc == *piVar7) {\n        return iVar9;\n      }\n      iVar9 = iStack_dc;\n      uVar5 = (**(code **)(puVar33 + 0x23488))();\n      bVar2 = ppuVar16 == (uint **)0x0;\n      puVar14[0x10] = uVar5;\n      puVar14[0x11] = iVar9;\n      if (!bVar2) {\n        ppuVar16 = (uint **)puVar13[3];\n        if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }\n        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];\n        puVar14[0xb] = -(int)ppuVar16;\n        if (!bVar2) goto code_r0x00016f40;\n      }\n      iVar9 = 1;\n    } while( true );" statement_identifier : (do_statement "do {\n      if (iStack_dc == *piVar7) {\n        return iVar9;\n      }\n      iVar9 = iStack_dc;\n      uVar5 = (**(code **)(puVar33 + 0x23488))();\n      bVar2 = ppuVar16 == (uint **)0x0;\n      puVar14[0x10] = uVar5;\n      puVar14[0x11] = iVar9;\n      if (!bVar2) {\n        ppuVar16 = (uint **)puVar13[3];\n        if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }\n        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];\n        puVar14[0xb] = -(int)ppuVar16;\n        if (!bVar2) goto code_r0x00016f40;\n      }\n      iVar9 = 1;\n    } while( true );" do (compound_statement "{\n      if (iStack_dc == *piVar7) {\n        return iVar9;\n      }\n      iVar9 = iStack_dc;\n      uVar5 = (**(code **)(puVar33 + 0x23488))();\n      bVar2 = ppuVar16 == (uint **)0x0;\n      puVar14[0x10] = uVar5;\n      puVar14[0x11] = iVar9;\n      if (!bVar2) {\n        ppuVar16 = (uint **)puVar13[3];\n        if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }\n        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];\n        puVar14[0xb] = -(int)ppuVar16;\n        if (!bVar2) goto code_r0x00016f40;\n      }\n      iVar9 = 1;\n    }" { (if_statement "if (iStack_dc == *piVar7) {\n        return iVar9;\n      }" if (parenthesized_expression "(iStack_dc == *piVar7)" ( (binary_expression "iStack_dc == *piVar7" identifier == (pointer_expression "*piVar7" * identifier)) )) (compound_statement "{\n        return iVar9;\n      }" { (return_statement "return iVar9;" return identifier ;) })) (expression_statement "iVar9 = iStack_dc;" (assignment_expression "iVar9 = iStack_dc" identifier = identifier) ;) (expression_statement "uVar5 = (**(code **)(puVar33 + 0x23488))();" (assignment_expression "uVar5 = (**(code **)(puVar33 + 0x23488))()" identifier = (call_expression "(**(code **)(puVar33 + 0x23488))()" (parenthesized_expression "(**(code **)(puVar33 + 0x23488))" ( (pointer_expression "**(code **)(puVar33 + 0x23488)" * (pointer_expression "*(code **)(puVar33 + 0x23488)" * (cast_expression "(code **)(puVar33 + 0x23488)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x23488)" ( (binary_expression "puVar33 + 0x23488" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "bVar2 = ppuVar16 == (uint **)0x0;" (assignment_expression "bVar2 = ppuVar16 == (uint **)0x0" identifier = (binary_expression "ppuVar16 == (uint **)0x0" identifier == (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) ;) (expression_statement "puVar14[0x10] = uVar5;" (assignment_expression "puVar14[0x10] = uVar5" (subscript_expression "puVar14[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[0x11] = iVar9;" (assignment_expression "puVar14[0x11] = iVar9" (subscript_expression "puVar14[0x11]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (!bVar2) {\n        ppuVar16 = (uint **)puVar13[3];\n        if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }\n        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];\n        puVar14[0xb] = -(int)ppuVar16;\n        if (!bVar2) goto code_r0x00016f40;\n      }" if (parenthesized_expression "(!bVar2)" ( (unary_expression "!bVar2" ! identifier) )) (compound_statement "{\n        ppuVar16 = (uint **)puVar13[3];\n        if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }\n        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];\n        puVar14[0xb] = -(int)ppuVar16;\n        if (!bVar2) goto code_r0x00016f40;\n      }" { (expression_statement "ppuVar16 = (uint **)puVar13[3];" (assignment_expression "ppuVar16 = (uint **)puVar13[3]" identifier = (cast_expression "(uint **)puVar13[3]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar13[3]" identifier [ number_literal ]))) ;) (if_statement "if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }" if (parenthesized_expression "(puVar13[2] == 0x80000000)" ( (binary_expression "puVar13[2] == 0x80000000" (subscript_expression "puVar13[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }" { (expression_statement "bVar2 = ppuVar16 == (uint **)0x0;" (assignment_expression "bVar2 = ppuVar16 == (uint **)0x0" identifier = (binary_expression "ppuVar16 == (uint **)0x0" identifier == (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) ;) })) (expression_statement "puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];" (assignment_expression "puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2]" (subscript_expression "puVar14[10]" identifier [ number_literal ]) = (binary_expression "-(uint)(-(int)ppuVar16 != 0) - puVar13[2]" (unary_expression "-(uint)(-(int)ppuVar16 != 0)" - (call_expression "(uint)(-(int)ppuVar16 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(-(int)ppuVar16 != 0)" ( (binary_expression "-(int)ppuVar16 != 0" (unary_expression "-(int)ppuVar16" - (cast_expression "(int)ppuVar16" ( (type_descriptor "int" primitive_type) ) identifier)) != number_literal) )))) - (subscript_expression "puVar13[2]" identifier [ number_literal ]))) ;) (expression_statement "puVar14[0xb] = -(int)ppuVar16;" (assignment_expression "puVar14[0xb] = -(int)ppuVar16" (subscript_expression "puVar14[0xb]" identifier [ number_literal ]) = (unary_expression "-(int)ppuVar16" - (cast_expression "(int)ppuVar16" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (!bVar2) goto code_r0x00016f40;" if (parenthesized_expression "(!bVar2)" ( (unary_expression "!bVar2" ! identifier) )) (goto_statement "goto code_r0x00016f40;" goto statement_identifier ;)) })) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (if_statement "if (puVar25 == (uint *)0xc) {\n    iVar9 = 0;\n    goto LAB_00015278;\n  }" if (parenthesized_expression "(puVar25 == (uint *)0xc)" ( (binary_expression "puVar25 == (uint *)0xc" identifier == (cast_expression "(uint *)0xc" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar9 = 0;\n    goto LAB_00015278;\n  }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00015278;" goto statement_identifier ;) })) (expression_statement "puVar31 = (uint *)(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4);" (assignment_expression "puVar31 = (uint *)(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" identifier = (cast_expression "(uint *)(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" * (cast_expression "(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" ( (binary_expression "(int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4" (binary_expression "(int)puVar25 + *(int *)(puVar33 + 0x23270)" (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) + number_literal) )))))))) ;) (expression_statement "ppuVar21 = ppuVar16;" (assignment_expression "ppuVar21 = ppuVar16" identifier = identifier) ;) (expression_statement "psVar32 = psVar27;" (assignment_expression "psVar32 = psVar27" identifier = identifier) ;) (if_statement "if (puVar31 == (uint *)0xffffffa3) {\nLAB_0001504c:\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    psVar32 = psVar27;\nLAB_00015050:\n    uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370);\n    if (uVar15 != 0) {\n      uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);\n      puVar19 = puVar13 + (1 - uVar22) * 0xe;\n      puVar25 = puVar19;\n      puVar31 = auStack_5b0;\n      do {\n        puVar20 = puVar31;\n        puVar17 = puVar25;\n        puVar25 = puVar17 + 4;\n        uVar24 = puVar17[1];\n        uVar23 = puVar17[2];\n        uVar18 = puVar17[3];\n        *puVar20 = *puVar17;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar18;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);\n      uVar18 = puVar17[5];\n      uVar23 = uVar15 - 4 & 0xff;\n      puVar20[4] = *puVar25;\n      puVar20[5] = uVar18;\n      puStack_674 = (uint *)puVar19[5];\n      in_t3 = puVar19[3];\n      in_t2 = (uint *)puVar19[2];\n      unaff_s6 = (short *)puVar19[4];\n      ppuVar28 = (uint **)puVar19[7];\n      in_t0 = (uint **)puVar19[6];\n      in_t5 = puVar19[9];\n      in_t4 = (uint **)puVar19[8];\n      uVar18 = puVar19[10];\n      in_t6 = puVar19[0xb];\n      in_t8 = puVar19[0xc];\n      if (uVar23 < 0x58) {\n                    /* WARNING: Could not recover jumptable at 0x00015220. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();\n        return iVar6;\n      }\n      psVar32 = psVar32 + -uVar22;\n      puVar13 = puVar13 + uVar22 * -0xe;\n      iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;\n      iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);\n      puStack_66c = auStack_5b0;\n      goto LAB_00015adc;\n    }\n    if (iStack_670 == 3) {\n      if ((int)puVar29 < 1) {\n        iVar9 = 1;\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }\n    }\n    ppuVar16 = (uint **)0xffffffa3;\n    while ((((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0))) {\n      iVar9 = 1;\n      psVar27 = psVar32;\n      if (psVar32 == asStack_578) goto LAB_00015278;\n      psVar32 = psVar32 + -1;\n      puVar25 = (uint *)(int)*psVar32;\n      puVar13 = puVar13 + -0xe;\n    }\n    puVar13 = puVar13 + 0xe;\n    in_t0 = apuStack_5b8;\n    apuStack_5e8[3] = puStack_630;\n    apuStack_5e8[2] = puStack_65c;\n    iStack_5d8 = iStack_660;\n    ppuVar21 = apuStack_5e8;\n    puVar31 = puVar13;\n    do {\n      puVar19 = puVar31;\n      ppuVar11 = ppuVar21;\n      ppuVar21 = ppuVar11 + 4;\n      puVar20 = ppuVar11[1];\n      puVar17 = ppuVar11[2];\n      puVar31 = ppuVar11[3];\n      *puVar19 = (uint)*ppuVar11;\n      puVar19[1] = (uint)puVar20;\n      puVar19[2] = (uint)puVar17;\n      puVar19[3] = (uint)puVar31;\n      puVar31 = puVar19 + 4;\n    } while (ppuVar21 != in_t0);\n    ppuVar16 = (uint **)0x3;\n    puVar31 = ppuVar11[5];\n    iStack_670 = 3;\n    puVar19[4] = (uint)*ppuVar21;\n    puVar19[5] = (uint)puVar31;\n    goto LAB_00015014;\n  }" if (parenthesized_expression "(puVar31 == (uint *)0xffffffa3)" ( (binary_expression "puVar31 == (uint *)0xffffffa3" identifier == (cast_expression "(uint *)0xffffffa3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0001504c:\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    psVar32 = psVar27;\nLAB_00015050:\n    uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370);\n    if (uVar15 != 0) {\n      uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);\n      puVar19 = puVar13 + (1 - uVar22) * 0xe;\n      puVar25 = puVar19;\n      puVar31 = auStack_5b0;\n      do {\n        puVar20 = puVar31;\n        puVar17 = puVar25;\n        puVar25 = puVar17 + 4;\n        uVar24 = puVar17[1];\n        uVar23 = puVar17[2];\n        uVar18 = puVar17[3];\n        *puVar20 = *puVar17;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar18;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);\n      uVar18 = puVar17[5];\n      uVar23 = uVar15 - 4 & 0xff;\n      puVar20[4] = *puVar25;\n      puVar20[5] = uVar18;\n      puStack_674 = (uint *)puVar19[5];\n      in_t3 = puVar19[3];\n      in_t2 = (uint *)puVar19[2];\n      unaff_s6 = (short *)puVar19[4];\n      ppuVar28 = (uint **)puVar19[7];\n      in_t0 = (uint **)puVar19[6];\n      in_t5 = puVar19[9];\n      in_t4 = (uint **)puVar19[8];\n      uVar18 = puVar19[10];\n      in_t6 = puVar19[0xb];\n      in_t8 = puVar19[0xc];\n      if (uVar23 < 0x58) {\n                    /* WARNING: Could not recover jumptable at 0x00015220. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();\n        return iVar6;\n      }\n      psVar32 = psVar32 + -uVar22;\n      puVar13 = puVar13 + uVar22 * -0xe;\n      iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;\n      iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);\n      puStack_66c = auStack_5b0;\n      goto LAB_00015adc;\n    }\n    if (iStack_670 == 3) {\n      if ((int)puVar29 < 1) {\n        iVar9 = 1;\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }\n    }\n    ppuVar16 = (uint **)0xffffffa3;\n    while ((((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0))) {\n      iVar9 = 1;\n      psVar27 = psVar32;\n      if (psVar32 == asStack_578) goto LAB_00015278;\n      psVar32 = psVar32 + -1;\n      puVar25 = (uint *)(int)*psVar32;\n      puVar13 = puVar13 + -0xe;\n    }\n    puVar13 = puVar13 + 0xe;\n    in_t0 = apuStack_5b8;\n    apuStack_5e8[3] = puStack_630;\n    apuStack_5e8[2] = puStack_65c;\n    iStack_5d8 = iStack_660;\n    ppuVar21 = apuStack_5e8;\n    puVar31 = puVar13;\n    do {\n      puVar19 = puVar31;\n      ppuVar11 = ppuVar21;\n      ppuVar21 = ppuVar11 + 4;\n      puVar20 = ppuVar11[1];\n      puVar17 = ppuVar11[2];\n      puVar31 = ppuVar11[3];\n      *puVar19 = (uint)*ppuVar11;\n      puVar19[1] = (uint)puVar20;\n      puVar19[2] = (uint)puVar17;\n      puVar19[3] = (uint)puVar31;\n      puVar31 = puVar19 + 4;\n    } while (ppuVar21 != in_t0);\n    ppuVar16 = (uint **)0x3;\n    puVar31 = ppuVar11[5];\n    iStack_670 = 3;\n    puVar19[4] = (uint)*ppuVar21;\n    puVar19[5] = (uint)puVar31;\n    goto LAB_00015014;\n  }" { (labeled_statement "LAB_0001504c:\n    iVar9 = *(int *)(puVar33 + 0x23270);" statement_identifier : (expression_statement "iVar9 = *(int *)(puVar33 + 0x23270);" (assignment_expression "iVar9 = *(int *)(puVar33 + 0x23270)" identifier = (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) ;)) (expression_statement "psVar32 = psVar27;" (assignment_expression "psVar32 = psVar27" identifier = identifier) ;) (labeled_statement "LAB_00015050:\n    uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370);" statement_identifier : (expression_statement "uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370);" (assignment_expression "uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370)" identifier = (binary_expression "(uint)*(byte *)((int)puVar25 + iVar9 + 0x6370)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)puVar25 + iVar9 + 0x6370)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar25 + iVar9 + 0x6370)" ( (binary_expression "(int)puVar25 + iVar9 + 0x6370" (binary_expression "(int)puVar25 + iVar9" (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;)) (if_statement "if (uVar15 != 0) {\n      uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);\n      puVar19 = puVar13 + (1 - uVar22) * 0xe;\n      puVar25 = puVar19;\n      puVar31 = auStack_5b0;\n      do {\n        puVar20 = puVar31;\n        puVar17 = puVar25;\n        puVar25 = puVar17 + 4;\n        uVar24 = puVar17[1];\n        uVar23 = puVar17[2];\n        uVar18 = puVar17[3];\n        *puVar20 = *puVar17;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar18;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);\n      uVar18 = puVar17[5];\n      uVar23 = uVar15 - 4 & 0xff;\n      puVar20[4] = *puVar25;\n      puVar20[5] = uVar18;\n      puStack_674 = (uint *)puVar19[5];\n      in_t3 = puVar19[3];\n      in_t2 = (uint *)puVar19[2];\n      unaff_s6 = (short *)puVar19[4];\n      ppuVar28 = (uint **)puVar19[7];\n      in_t0 = (uint **)puVar19[6];\n      in_t5 = puVar19[9];\n      in_t4 = (uint **)puVar19[8];\n      uVar18 = puVar19[10];\n      in_t6 = puVar19[0xb];\n      in_t8 = puVar19[0xc];\n      if (uVar23 < 0x58) {\n                    /* WARNING: Could not recover jumptable at 0x00015220. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();\n        return iVar6;\n      }\n      psVar32 = psVar32 + -uVar22;\n      puVar13 = puVar13 + uVar22 * -0xe;\n      iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;\n      iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);\n      puStack_66c = auStack_5b0;\n      goto LAB_00015adc;\n    }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);\n      puVar19 = puVar13 + (1 - uVar22) * 0xe;\n      puVar25 = puVar19;\n      puVar31 = auStack_5b0;\n      do {\n        puVar20 = puVar31;\n        puVar17 = puVar25;\n        puVar25 = puVar17 + 4;\n        uVar24 = puVar17[1];\n        uVar23 = puVar17[2];\n        uVar18 = puVar17[3];\n        *puVar20 = *puVar17;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar18;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);\n      uVar18 = puVar17[5];\n      uVar23 = uVar15 - 4 & 0xff;\n      puVar20[4] = *puVar25;\n      puVar20[5] = uVar18;\n      puStack_674 = (uint *)puVar19[5];\n      in_t3 = puVar19[3];\n      in_t2 = (uint *)puVar19[2];\n      unaff_s6 = (short *)puVar19[4];\n      ppuVar28 = (uint **)puVar19[7];\n      in_t0 = (uint **)puVar19[6];\n      in_t5 = puVar19[9];\n      in_t4 = (uint **)puVar19[8];\n      uVar18 = puVar19[10];\n      in_t6 = puVar19[0xb];\n      in_t8 = puVar19[0xc];\n      if (uVar23 < 0x58) {\n                    /* WARNING: Could not recover jumptable at 0x00015220. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();\n        return iVar6;\n      }\n      psVar32 = psVar32 + -uVar22;\n      puVar13 = puVar13 + uVar22 * -0xe;\n      iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;\n      iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);\n      puStack_66c = auStack_5b0;\n      goto LAB_00015adc;\n    }" { (expression_statement "uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);" (assignment_expression "uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198)" identifier = (binary_expression "(uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198)" ( (binary_expression "uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198" (binary_expression "uVar15 + *(int *)(puVar33 + 0x23270)" identifier + (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "puVar19 = puVar13 + (1 - uVar22) * 0xe;" (assignment_expression "puVar19 = puVar13 + (1 - uVar22) * 0xe" identifier = (binary_expression "puVar13 + (1 - uVar22) * 0xe" identifier + (binary_expression "(1 - uVar22) * 0xe" (parenthesized_expression "(1 - uVar22)" ( (binary_expression "1 - uVar22" number_literal - identifier) )) * number_literal))) ;) (expression_statement "puVar25 = puVar19;" (assignment_expression "puVar25 = puVar19" identifier = identifier) ;) (expression_statement "puVar31 = auStack_5b0;" (assignment_expression "puVar31 = auStack_5b0" identifier = identifier) ;) (do_statement "do {\n        puVar20 = puVar31;\n        puVar17 = puVar25;\n        puVar25 = puVar17 + 4;\n        uVar24 = puVar17[1];\n        uVar23 = puVar17[2];\n        uVar18 = puVar17[3];\n        *puVar20 = *puVar17;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar18;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);" do (compound_statement "{\n        puVar20 = puVar31;\n        puVar17 = puVar25;\n        puVar25 = puVar17 + 4;\n        uVar24 = puVar17[1];\n        uVar23 = puVar17[2];\n        uVar18 = puVar17[3];\n        *puVar20 = *puVar17;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar18;\n        puVar31 = puVar20 + 4;\n      }" { (expression_statement "puVar20 = puVar31;" (assignment_expression "puVar20 = puVar31" identifier = identifier) ;) (expression_statement "puVar17 = puVar25;" (assignment_expression "puVar17 = puVar25" identifier = identifier) ;) (expression_statement "puVar25 = puVar17 + 4;" (assignment_expression "puVar25 = puVar17 + 4" identifier = (binary_expression "puVar17 + 4" identifier + number_literal)) ;) (expression_statement "uVar24 = puVar17[1];" (assignment_expression "uVar24 = puVar17[1]" identifier = (subscript_expression "puVar17[1]" identifier [ number_literal ])) ;) (expression_statement "uVar23 = puVar17[2];" (assignment_expression "uVar23 = puVar17[2]" identifier = (subscript_expression "puVar17[2]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = puVar17[3];" (assignment_expression "uVar18 = puVar17[3]" identifier = (subscript_expression "puVar17[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar20 = *puVar17;" (assignment_expression "*puVar20 = *puVar17" (pointer_expression "*puVar20" * identifier) = (pointer_expression "*puVar17" * identifier)) ;) (expression_statement "puVar20[1] = uVar24;" (assignment_expression "puVar20[1] = uVar24" (subscript_expression "puVar20[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar20[2] = uVar23;" (assignment_expression "puVar20[2] = uVar23" (subscript_expression "puVar20[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar20[3] = uVar18;" (assignment_expression "puVar20[3] = uVar18" (subscript_expression "puVar20[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar31 = puVar20 + 4;" (assignment_expression "puVar31 = puVar20 + 4" identifier = (binary_expression "puVar20 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar25 != puVar19 + 0xc)" ( (binary_expression "puVar25 != puVar19 + 0xc" identifier != (binary_expression "puVar19 + 0xc" identifier + number_literal)) )) ;) (expression_statement "uVar18 = puVar17[5];" (assignment_expression "uVar18 = puVar17[5]" identifier = (subscript_expression "puVar17[5]" identifier [ number_literal ])) ;) (expression_statement "uVar23 = uVar15 - 4 & 0xff;" (assignment_expression "uVar23 = uVar15 - 4 & 0xff" identifier = (binary_expression "uVar15 - 4 & 0xff" (binary_expression "uVar15 - 4" identifier - number_literal) & number_literal)) ;) (expression_statement "puVar20[4] = *puVar25;" (assignment_expression "puVar20[4] = *puVar25" (subscript_expression "puVar20[4]" identifier [ number_literal ]) = (pointer_expression "*puVar25" * identifier)) ;) (expression_statement "puVar20[5] = uVar18;" (assignment_expression "puVar20[5] = uVar18" (subscript_expression "puVar20[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puStack_674 = (uint *)puVar19[5];" (assignment_expression "puStack_674 = (uint *)puVar19[5]" identifier = (cast_expression "(uint *)puVar19[5]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar19[5]" identifier [ number_literal ]))) ;) (expression_statement "in_t3 = puVar19[3];" (assignment_expression "in_t3 = puVar19[3]" identifier = (subscript_expression "puVar19[3]" identifier [ number_literal ])) ;) (expression_statement "in_t2 = (uint *)puVar19[2];" (assignment_expression "in_t2 = (uint *)puVar19[2]" identifier = (cast_expression "(uint *)puVar19[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar19[2]" identifier [ number_literal ]))) ;) (expression_statement "unaff_s6 = (short *)puVar19[4];" (assignment_expression "unaff_s6 = (short *)puVar19[4]" identifier = (cast_expression "(short *)puVar19[4]" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar19[4]" identifier [ number_literal ]))) ;) (expression_statement "ppuVar28 = (uint **)puVar19[7];" (assignment_expression "ppuVar28 = (uint **)puVar19[7]" identifier = (cast_expression "(uint **)puVar19[7]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar19[7]" identifier [ number_literal ]))) ;) (expression_statement "in_t0 = (uint **)puVar19[6];" (assignment_expression "in_t0 = (uint **)puVar19[6]" identifier = (cast_expression "(uint **)puVar19[6]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar19[6]" identifier [ number_literal ]))) ;) (expression_statement "in_t5 = puVar19[9];" (assignment_expression "in_t5 = puVar19[9]" identifier = (subscript_expression "puVar19[9]" identifier [ number_literal ])) ;) (expression_statement "in_t4 = (uint **)puVar19[8];" (assignment_expression "in_t4 = (uint **)puVar19[8]" identifier = (cast_expression "(uint **)puVar19[8]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar19[8]" identifier [ number_literal ]))) ;) (expression_statement "uVar18 = puVar19[10];" (assignment_expression "uVar18 = puVar19[10]" identifier = (subscript_expression "puVar19[10]" identifier [ number_literal ])) ;) (expression_statement "in_t6 = puVar19[0xb];" (assignment_expression "in_t6 = puVar19[0xb]" identifier = (subscript_expression "puVar19[0xb]" identifier [ number_literal ])) ;) (expression_statement "in_t8 = puVar19[0xc];" (assignment_expression "in_t8 = puVar19[0xc]" identifier = (subscript_expression "puVar19[0xc]" identifier [ number_literal ])) ;) (if_statement "if (uVar23 < 0x58) {\n                    /* WARNING: Could not recover jumptable at 0x00015220. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();\n        return iVar6;\n      }" if (parenthesized_expression "(uVar23 < 0x58)" ( (binary_expression "uVar23 < 0x58" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00015220. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();\n        return iVar6;\n      }" { comment comment (expression_statement "iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();" (assignment_expression "iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))()" identifier = (call_expression "(*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))()" (parenthesized_expression "(*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))" ( (pointer_expression "*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234)" * (cast_expression "(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234)" ( (binary_expression "puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234" (binary_expression "puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4)" * (cast_expression "(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4)" ( (binary_expression "*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4" (binary_expression "*(int *)(puVar33 + 0x23270) + 0x5f80" (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) )))) + number_literal) + (binary_expression "uVar23 * 4" identifier * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar6;" return identifier ;) })) (expression_statement "psVar32 = psVar32 + -uVar22;" (assignment_expression "psVar32 = psVar32 + -uVar22" identifier = (binary_expression "psVar32 + -uVar22" identifier + (unary_expression "-uVar22" - identifier))) ;) (expression_statement "puVar13 = puVar13 + uVar22 * -0xe;" (assignment_expression "puVar13 = puVar13 + uVar22 * -0xe" identifier = (binary_expression "puVar13 + uVar22 * -0xe" identifier + (binary_expression "uVar22 * -0xe" identifier * number_literal))) ;) (expression_statement "iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;" (assignment_expression "iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c" identifier = (binary_expression "*(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c" (pointer_expression "*(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15)" * (cast_expression "(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15)" ( (binary_expression "*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15" (binary_expression "*(int *)(puVar33 + 0x23270) + 0x61f4" (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) )))) + number_literal) + identifier) )))) - number_literal)) ;) (expression_statement "iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);" (assignment_expression "iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354)" identifier = (cast_expression "(int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354)" * (cast_expression "(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354)" ( (binary_expression "iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354" (binary_expression "iVar10 + *(int *)(puVar33 + 0x23270)" identifier + (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) + number_literal) )))))) ;) (expression_statement "puStack_66c = auStack_5b0;" (assignment_expression "puStack_66c = auStack_5b0" identifier = identifier) ;) (goto_statement "goto LAB_00015adc;" goto statement_identifier ;) })) (if_statement "if (iStack_670 == 3) {\n      if ((int)puVar29 < 1) {\n        iVar9 = 1;\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }\n    }" if (parenthesized_expression "(iStack_670 == 3)" ( (binary_expression "iStack_670 == 3" identifier == number_literal) )) (compound_statement "{\n      if ((int)puVar29 < 1) {\n        iVar9 = 1;\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }\n    }" { (if_statement "if ((int)puVar29 < 1) {\n        iVar9 = 1;\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }" if (parenthesized_expression "((int)puVar29 < 1)" ( (binary_expression "(int)puVar29 < 1" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        iVar9 = 1;\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }" { (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (expression_statement "psVar27 = psVar32;" (assignment_expression "psVar27 = psVar32" identifier = identifier) ;) (if_statement "if (puVar29 == (uint *)0x0) goto LAB_00015278;" if (parenthesized_expression "(puVar29 == (uint *)0x0)" ( (binary_expression "puVar29 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00015278;" goto statement_identifier ;)) }) (else_clause "else {\n        puVar29 = (uint *)0xfffffffe;\n      }" else (compound_statement "{\n        puVar29 = (uint *)0xfffffffe;\n      }" { (expression_statement "puVar29 = (uint *)0xfffffffe;" (assignment_expression "puVar29 = (uint *)0xfffffffe" identifier = (cast_expression "(uint *)0xfffffffe" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) })) (expression_statement "ppuVar16 = (uint **)0xffffffa3;" (assignment_expression "ppuVar16 = (uint **)0xffffffa3" identifier = (cast_expression "(uint **)0xffffffa3" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (while_statement "while ((((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0))) {\n      iVar9 = 1;\n      psVar27 = psVar32;\n      if (psVar32 == asStack_578) goto LAB_00015278;\n      psVar32 = psVar32 + -1;\n      puVar25 = (uint *)(int)*psVar32;\n      puVar13 = puVar13 + -0xe;\n    }" while (parenthesized_expression "((((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0)))" ( (parenthesized_expression "(((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0))" ( (binary_expression "((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0)" (parenthesized_expression "((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01'))" ( (binary_expression "(iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')" (parenthesized_expression "(iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15))" ( (comma_expression "iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)" (assignment_expression "iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" identifier = (cast_expression "(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" * (cast_expression "(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" ( (binary_expression "(int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4" (binary_expression "(int)puVar25 + *(int *)(puVar33 + 0x23270)" (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) + number_literal) ))))))) , (comma_expression "uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)" (assignment_expression "uVar15 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) , (binary_expression "iVar9 == -0x5d || (0x70 < uVar15)" (binary_expression "iVar9 == -0x5d" identifier == number_literal) || (parenthesized_expression "(0x70 < uVar15)" ( (binary_expression "0x70 < uVar15" number_literal < identifier) ))))) )) || (parenthesized_expression "(*(char *)(uVar15 + iVar30) != '\x01')" ( (binary_expression "*(char *)(uVar15 + iVar30) != '\x01'" (pointer_expression "*(char *)(uVar15 + iVar30)" * (cast_expression "(char *)(uVar15 + iVar30)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar15 + iVar30)" ( (binary_expression "uVar15 + iVar30" identifier + identifier) )))) != (char_literal "'\x01'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0)" ( (comma_expression "puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0" (assignment_expression "puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8)" identifier = (binary_expression "(uint *)(uint)*(byte *)(uVar15 + iVar8)" (cast_expression "(uint *)(uint)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(uVar15 + iVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar15 + iVar8)" ( (binary_expression "uVar15 + iVar8" identifier + identifier) ))))) , (binary_expression "puVar25 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) )) (compound_statement "{\n      iVar9 = 1;\n      psVar27 = psVar32;\n      if (psVar32 == asStack_578) goto LAB_00015278;\n      psVar32 = psVar32 + -1;\n      puVar25 = (uint *)(int)*psVar32;\n      puVar13 = puVar13 + -0xe;\n    }" { (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (expression_statement "psVar27 = psVar32;" (assignment_expression "psVar27 = psVar32" identifier = identifier) ;) (if_statement "if (psVar32 == asStack_578) goto LAB_00015278;" if (parenthesized_expression "(psVar32 == asStack_578)" ( (binary_expression "psVar32 == asStack_578" identifier == identifier) )) (goto_statement "goto LAB_00015278;" goto statement_identifier ;)) (expression_statement "psVar32 = psVar32 + -1;" (assignment_expression "psVar32 = psVar32 + -1" identifier = (binary_expression "psVar32 + -1" identifier + number_literal)) ;) (expression_statement "puVar25 = (uint *)(int)*psVar32;" (assignment_expression "puVar25 = (uint *)(int)*psVar32" identifier = (cast_expression "(uint *)(int)*psVar32" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*psVar32" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*psVar32" * identifier)))) ;) (expression_statement "puVar13 = puVar13 + -0xe;" (assignment_expression "puVar13 = puVar13 + -0xe" identifier = (binary_expression "puVar13 + -0xe" identifier + number_literal)) ;) })) (expression_statement "puVar13 = puVar13 + 0xe;" (assignment_expression "puVar13 = puVar13 + 0xe" identifier = (binary_expression "puVar13 + 0xe" identifier + number_literal)) ;) (expression_statement "in_t0 = apuStack_5b8;" (assignment_expression "in_t0 = apuStack_5b8" identifier = identifier) ;) (expression_statement "apuStack_5e8[3] = puStack_630;" (assignment_expression "apuStack_5e8[3] = puStack_630" (subscript_expression "apuStack_5e8[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "apuStack_5e8[2] = puStack_65c;" (assignment_expression "apuStack_5e8[2] = puStack_65c" (subscript_expression "apuStack_5e8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iStack_5d8 = iStack_660;" (assignment_expression "iStack_5d8 = iStack_660" identifier = identifier) ;) (expression_statement "ppuVar21 = apuStack_5e8;" (assignment_expression "ppuVar21 = apuStack_5e8" identifier = identifier) ;) (expression_statement "puVar31 = puVar13;" (assignment_expression "puVar31 = puVar13" identifier = identifier) ;) (do_statement "do {\n      puVar19 = puVar31;\n      ppuVar11 = ppuVar21;\n      ppuVar21 = ppuVar11 + 4;\n      puVar20 = ppuVar11[1];\n      puVar17 = ppuVar11[2];\n      puVar31 = ppuVar11[3];\n      *puVar19 = (uint)*ppuVar11;\n      puVar19[1] = (uint)puVar20;\n      puVar19[2] = (uint)puVar17;\n      puVar19[3] = (uint)puVar31;\n      puVar31 = puVar19 + 4;\n    } while (ppuVar21 != in_t0);" do (compound_statement "{\n      puVar19 = puVar31;\n      ppuVar11 = ppuVar21;\n      ppuVar21 = ppuVar11 + 4;\n      puVar20 = ppuVar11[1];\n      puVar17 = ppuVar11[2];\n      puVar31 = ppuVar11[3];\n      *puVar19 = (uint)*ppuVar11;\n      puVar19[1] = (uint)puVar20;\n      puVar19[2] = (uint)puVar17;\n      puVar19[3] = (uint)puVar31;\n      puVar31 = puVar19 + 4;\n    }" { (expression_statement "puVar19 = puVar31;" (assignment_expression "puVar19 = puVar31" identifier = identifier) ;) (expression_statement "ppuVar11 = ppuVar21;" (assignment_expression "ppuVar11 = ppuVar21" identifier = identifier) ;) (expression_statement "ppuVar21 = ppuVar11 + 4;" (assignment_expression "ppuVar21 = ppuVar11 + 4" identifier = (binary_expression "ppuVar11 + 4" identifier + number_literal)) ;) (expression_statement "puVar20 = ppuVar11[1];" (assignment_expression "puVar20 = ppuVar11[1]" identifier = (subscript_expression "ppuVar11[1]" identifier [ number_literal ])) ;) (expression_statement "puVar17 = ppuVar11[2];" (assignment_expression "puVar17 = ppuVar11[2]" identifier = (subscript_expression "ppuVar11[2]" identifier [ number_literal ])) ;) (expression_statement "puVar31 = ppuVar11[3];" (assignment_expression "puVar31 = ppuVar11[3]" identifier = (subscript_expression "ppuVar11[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar19 = (uint)*ppuVar11;" (assignment_expression "*puVar19 = (uint)*ppuVar11" (pointer_expression "*puVar19" * identifier) = (binary_expression "(uint)*ppuVar11" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puVar19[1] = (uint)puVar20;" (assignment_expression "puVar19[1] = (uint)puVar20" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = (cast_expression "(uint)puVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar19[2] = (uint)puVar17;" (assignment_expression "puVar19[2] = (uint)puVar17" (subscript_expression "puVar19[2]" identifier [ number_literal ]) = (cast_expression "(uint)puVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar19[3] = (uint)puVar31;" (assignment_expression "puVar19[3] = (uint)puVar31" (subscript_expression "puVar19[3]" identifier [ number_literal ]) = (cast_expression "(uint)puVar31" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar31 = puVar19 + 4;" (assignment_expression "puVar31 = puVar19 + 4" identifier = (binary_expression "puVar19 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppuVar21 != in_t0)" ( (binary_expression "ppuVar21 != in_t0" identifier != identifier) )) ;) (expression_statement "ppuVar16 = (uint **)0x3;" (assignment_expression "ppuVar16 = (uint **)0x3" identifier = (cast_expression "(uint **)0x3" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "puVar31 = ppuVar11[5];" (assignment_expression "puVar31 = ppuVar11[5]" identifier = (subscript_expression "ppuVar11[5]" identifier [ number_literal ])) ;) (expression_statement "iStack_670 = 3;" (assignment_expression "iStack_670 = 3" identifier = number_literal) ;) (expression_statement "puVar19[4] = (uint)*ppuVar21;" (assignment_expression "puVar19[4] = (uint)*ppuVar21" (subscript_expression "puVar19[4]" identifier [ number_literal ]) = (binary_expression "(uint)*ppuVar21" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puVar19[5] = (uint)puVar31;" (assignment_expression "puVar19[5] = (uint)puVar31" (subscript_expression "puVar19[5]" identifier [ number_literal ]) = (cast_expression "(uint)puVar31" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_00015014;" goto statement_identifier ;) })) (goto_statement "goto LAB_00014f50;" goto statement_identifier ;) (labeled_statement "LAB_00015528:\n  puVar29 = (uint *)((int)puVar17 >> 0x1f);" statement_identifier : (expression_statement "puVar29 = (uint *)((int)puVar17 >> 0x1f);" (assignment_expression "puVar29 = (uint *)((int)puVar17 >> 0x1f)" identifier = (cast_expression "(uint *)((int)puVar17 >> 0x1f)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 >> 0x1f)" ( (binary_expression "(int)puVar17 >> 0x1f" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;)) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (if_statement "if (puVar29 == in_t2) {\n    in_t2 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2);\n    ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n  }\n  else {\n    ppuVar28 = (uint **)(ZEXT48(in_t2) * 10);\n    unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20);\n    in_t6 = (int)puVar17 * 4;\n    puStack_674 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)puVar17 * 10);\n    psVar27 = unaff_s6;\n    if ((int)in_t2 < 0) {\n      psVar27 = unaff_s6 + -5;\n    }\n    ppuVar16 = (uint **)((int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2));\n    if ((int)ppuVar16 >> 0x1f != (uint)(ppuVar16 < ppuVar28) + (int)psVar27) {\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n    }\n  }" if (parenthesized_expression "(puVar29 == in_t2)" ( (binary_expression "puVar29 == in_t2" identifier == identifier) )) (compound_statement "{\n    in_t2 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2);\n    ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n  }" { (expression_statement "in_t2 = (uint *)((uint)puVar17 >> 0x1e);" (assignment_expression "in_t2 = (uint *)((uint)puVar17 >> 0x1e)" identifier = (cast_expression "(uint *)((uint)puVar17 >> 0x1e)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)puVar17 >> 0x1e)" ( (binary_expression "(uint)puVar17 >> 0x1e" (cast_expression "(uint)puVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "in_t0 = (uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2);" (assignment_expression "in_t0 = (uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2)" identifier = (cast_expression "(uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2)" ( (binary_expression "(int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2" (cast_expression "(int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2))" ( (binary_expression "(int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)" (binary_expression "(int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4))" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (call_expression "(uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4))" ( (binary_expression "(uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)" (call_expression "(uint)((int)puVar17 * 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar17 * 5)" ( (binary_expression "(int)puVar17 * 5" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) < (call_expression "(uint)((int)puVar17 * 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar17 * 4)" ( (binary_expression "(int)puVar17 * 4" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) )))) + (parenthesized_expression "((uint)in_t2 | (int)puVar29 << 2)" ( (binary_expression "(uint)in_t2 | (int)puVar29 << 2" (cast_expression "(uint)in_t2" ( (type_descriptor "uint" type_identifier) ) identifier) | (binary_expression "(int)puVar29 << 2" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ))) ))) * number_literal) )))) ;) (expression_statement "ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);" (assignment_expression "ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0)" identifier = (cast_expression "(uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0)" ( (binary_expression "(uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0" (binary_expression "(uint)((int)puVar17 * 5) >> 0x1f" (call_expression "(uint)((int)puVar17 * 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar17 * 5)" ( (binary_expression "(int)puVar17 * 5" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) >> number_literal) | (cast_expression "(uint)in_t0" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) }) (else_clause "else {\n    ppuVar28 = (uint **)(ZEXT48(in_t2) * 10);\n    unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20);\n    in_t6 = (int)puVar17 * 4;\n    puStack_674 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)puVar17 * 10);\n    psVar27 = unaff_s6;\n    if ((int)in_t2 < 0) {\n      psVar27 = unaff_s6 + -5;\n    }\n    ppuVar16 = (uint **)((int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2));\n    if ((int)ppuVar16 >> 0x1f != (uint)(ppuVar16 < ppuVar28) + (int)psVar27) {\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n    }\n  }" else (compound_statement "{\n    ppuVar28 = (uint **)(ZEXT48(in_t2) * 10);\n    unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20);\n    in_t6 = (int)puVar17 * 4;\n    puStack_674 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)puVar17 * 10);\n    psVar27 = unaff_s6;\n    if ((int)in_t2 < 0) {\n      psVar27 = unaff_s6 + -5;\n    }\n    ppuVar16 = (uint **)((int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2));\n    if ((int)ppuVar16 >> 0x1f != (uint)(ppuVar16 < ppuVar28) + (int)psVar27) {\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n    }\n  }" { (expression_statement "ppuVar28 = (uint **)(ZEXT48(in_t2) * 10);" (assignment_expression "ppuVar28 = (uint **)(ZEXT48(in_t2) * 10)" identifier = (cast_expression "(uint **)(ZEXT48(in_t2) * 10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(ZEXT48(in_t2) * 10)" ( (binary_expression "ZEXT48(in_t2) * 10" (call_expression "ZEXT48(in_t2)" identifier (argument_list "(in_t2)" ( identifier ))) * number_literal) )))) ;) (expression_statement "unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20);" (assignment_expression "unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20)" identifier = (cast_expression "(short *)(ZEXT48(in_t2) * 10 >> 0x20)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ZEXT48(in_t2) * 10 >> 0x20)" ( (binary_expression "ZEXT48(in_t2) * 10 >> 0x20" (binary_expression "ZEXT48(in_t2) * 10" (call_expression "ZEXT48(in_t2)" identifier (argument_list "(in_t2)" ( identifier ))) * number_literal) >> number_literal) )))) ;) (expression_statement "in_t6 = (int)puVar17 * 4;" (assignment_expression "in_t6 = (int)puVar17 * 4" identifier = (binary_expression "(int)puVar17 * 4" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "puStack_674 = (uint *)((uint)puVar17 >> 0x1e);" (assignment_expression "puStack_674 = (uint *)((uint)puVar17 >> 0x1e)" identifier = (cast_expression "(uint *)((uint)puVar17 >> 0x1e)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)puVar17 >> 0x1e)" ( (binary_expression "(uint)puVar17 >> 0x1e" (cast_expression "(uint)puVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "in_t0 = (uint **)((int)puVar17 * 10);" (assignment_expression "in_t0 = (uint **)((int)puVar17 * 10)" identifier = (cast_expression "(uint **)((int)puVar17 * 10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar17 * 10)" ( (binary_expression "(int)puVar17 * 10" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "psVar27 = unaff_s6;" (assignment_expression "psVar27 = unaff_s6" identifier = identifier) ;) (if_statement "if ((int)in_t2 < 0) {\n      psVar27 = unaff_s6 + -5;\n    }" if (parenthesized_expression "((int)in_t2 < 0)" ( (binary_expression "(int)in_t2 < 0" (cast_expression "(int)in_t2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      psVar27 = unaff_s6 + -5;\n    }" { (expression_statement "psVar27 = unaff_s6 + -5;" (assignment_expression "psVar27 = unaff_s6 + -5" identifier = (binary_expression "unaff_s6 + -5" identifier + number_literal)) ;) })) (expression_statement "ppuVar16 = (uint **)((int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2));" (assignment_expression "ppuVar16 = (uint **)((int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2))" identifier = (cast_expression "(uint **)((int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2))" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2))" ( (binary_expression "(int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2)" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2)" ( (binary_expression "(uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2" (binary_expression "(uint)((int)puVar17 * 5) >> 0x1f" (call_expression "(uint)((int)puVar17 * 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar17 * 5)" ( (binary_expression "(int)puVar17 * 5" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) >> number_literal) | (binary_expression "(int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2" (cast_expression "(int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6))" ( (binary_expression "(int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)" (cast_expression "(int)puStack_674" ( (type_descriptor "int" primitive_type) ) identifier) + (call_expression "(uint)((uint)((int)puVar17 * 5) < in_t6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)((int)puVar17 * 5) < in_t6)" ( (binary_expression "(uint)((int)puVar17 * 5) < in_t6" (call_expression "(uint)((int)puVar17 * 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar17 * 5)" ( (binary_expression "(int)puVar17 * 5" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) < identifier) )))) ))) * number_literal)) ))) )))) ;) (if_statement "if ((int)ppuVar16 >> 0x1f != (uint)(ppuVar16 < ppuVar28) + (int)psVar27) {\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n    }" if (parenthesized_expression "((int)ppuVar16 >> 0x1f != (uint)(ppuVar16 < ppuVar28) + (int)psVar27)" ( (binary_expression "(int)ppuVar16 >> 0x1f != (uint)(ppuVar16 < ppuVar28) + (int)psVar27" (binary_expression "(int)ppuVar16 >> 0x1f" (cast_expression "(int)ppuVar16" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) != (binary_expression "(uint)(ppuVar16 < ppuVar28) + (int)psVar27" (call_expression "(uint)(ppuVar16 < ppuVar28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ppuVar16 < ppuVar28)" ( (binary_expression "ppuVar16 < ppuVar28" identifier < identifier) ))) + (cast_expression "(int)psVar27" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n    }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);" (assignment_expression "in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2)" identifier = (cast_expression "(uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2)" ( (binary_expression "(int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2" (cast_expression "(int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4))" ( (binary_expression "(int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)" (binary_expression "(int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6)" (cast_expression "(int)in_t2" ( (type_descriptor "int" primitive_type) ) identifier) + (call_expression "(uint)((uint)((int)puVar17 * 5) < in_t6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)((int)puVar17 * 5) < in_t6)" ( (binary_expression "(uint)((int)puVar17 * 5) < in_t6" (call_expression "(uint)((int)puVar17 * 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar17 * 5)" ( (binary_expression "(int)puVar17 * 5" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) < identifier) )))) + (parenthesized_expression "((uint)puStack_674 | (int)in_t2 * 4)" ( (binary_expression "(uint)puStack_674 | (int)in_t2 * 4" (cast_expression "(uint)puStack_674" ( (type_descriptor "uint" type_identifier) ) identifier) | (binary_expression "(int)in_t2 * 4" (cast_expression "(int)in_t2" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))) ))) * number_literal) )))) ;) (expression_statement "ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);" (assignment_expression "ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0)" identifier = (cast_expression "(uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0)" ( (binary_expression "(uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0" (binary_expression "(uint)((int)puVar17 * 5) >> 0x1f" (call_expression "(uint)((int)puVar17 * 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar17 * 5)" ( (binary_expression "(int)puVar17 * 5" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) >> number_literal) | (cast_expression "(uint)in_t0" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) })) }))) (expression_statement "puVar29 = (uint *)((int)puVar17 * 10);" (assignment_expression "puVar29 = (uint *)((int)puVar17 * 10)" identifier = (cast_expression "(uint *)((int)puVar17 * 10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 * 10)" ( (binary_expression "(int)puVar17 * 10" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "ppuVar28 = in_t4;" (assignment_expression "ppuVar28 = in_t4" identifier = identifier) ;) (if_statement "if (bVar2) goto LAB_00017ad0;" if (parenthesized_expression "(bVar2)" ( identifier )) (goto_statement "goto LAB_00017ad0;" goto statement_identifier ;)) (goto_statement "goto LAB_000153f8;" goto statement_identifier ;) (labeled_statement "LAB_00017ad0:\n  uVar15 = 2;" statement_identifier : (expression_statement "uVar15 = 2;" (assignment_expression "uVar15 = 2" identifier = number_literal) ;)) (expression_statement "puVar29 = (uint *)0x3f;" (assignment_expression "puVar29 = (uint *)0x3f" identifier = (cast_expression "(uint *)0x3f" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar19 = (uint *)((int)puVar31 + 2);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + 2)" identifier = (cast_expression "(uint *)((int)puVar31 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar31 + 2)" ( (binary_expression "(int)puVar31 + 2" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (goto_statement "goto LAB_00014f74;" goto statement_identifier ;) (while_statement "while( true ) {\n    if (bVar12 == 0x28) {\n      iVar9 = iVar9 + 1;\n    }\n    else if (bVar12 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }\n    if (iVar9 == 0) break;\nLAB_000157a8:\n    ppuVar16 = ppuVar21;\n    ppuVar21 = (uint **)((int)ppuVar16 + 1);\n    *puVar14 = ppuVar21;\n    bVar12 = *(byte *)ppuVar16;\n    if (bVar12 == 0) goto LAB_000152b8;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (bVar12 == 0x28) {\n      iVar9 = iVar9 + 1;\n    }\n    else if (bVar12 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }\n    if (iVar9 == 0) break;\nLAB_000157a8:\n    ppuVar16 = ppuVar21;\n    ppuVar21 = (uint **)((int)ppuVar16 + 1);\n    *puVar14 = ppuVar21;\n    bVar12 = *(byte *)ppuVar16;\n    if (bVar12 == 0) goto LAB_000152b8;\n  }" { (if_statement "if (bVar12 == 0x28) {\n      iVar9 = iVar9 + 1;\n    }\n    else if (bVar12 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }" if (parenthesized_expression "(bVar12 == 0x28)" ( (binary_expression "bVar12 == 0x28" identifier == number_literal) )) (compound_statement "{\n      iVar9 = iVar9 + 1;\n    }" { (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) }) (else_clause "else if (bVar12 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }" else (if_statement "if (bVar12 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }" if (parenthesized_expression "(bVar12 == 0x29)" ( (binary_expression "bVar12 == 0x29" identifier == number_literal) )) (compound_statement "{\n      iVar9 = iVar9 + -1;\n    }" { (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) })))) (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_000157a8:\n    ppuVar16 = ppuVar21;" statement_identifier : (expression_statement "ppuVar16 = ppuVar21;" (assignment_expression "ppuVar16 = ppuVar21" identifier = identifier) ;)) (expression_statement "ppuVar21 = (uint **)((int)ppuVar16 + 1);" (assignment_expression "ppuVar21 = (uint **)((int)ppuVar16 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar16 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar16 + 1)" ( (binary_expression "(int)ppuVar16 + 1" (cast_expression "(int)ppuVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*puVar14 = ppuVar21;" (assignment_expression "*puVar14 = ppuVar21" (pointer_expression "*puVar14" * identifier) = identifier) ;) (expression_statement "bVar12 = *(byte *)ppuVar16;" (assignment_expression "bVar12 = *(byte *)ppuVar16" identifier = (pointer_expression "*(byte *)ppuVar16" * (cast_expression "(byte *)ppuVar16" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (bVar12 == 0) goto LAB_000152b8;" if (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000152b8;" goto statement_identifier ;)) })) (expression_statement "bVar12 = *(byte *)((int)ppuVar16 + 1);" (assignment_expression "bVar12 = *(byte *)((int)ppuVar16 + 1)" identifier = (pointer_expression "*(byte *)((int)ppuVar16 + 1)" * (cast_expression "(byte *)((int)ppuVar16 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar16 + 1)" ( (binary_expression "(int)ppuVar16 + 1" (cast_expression "(int)ppuVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_000152f0;" goto statement_identifier ;) (labeled_statement "code_r0x00016f40:\n  puVar25 = puVar13 + 4;" statement_identifier : (expression_statement "puVar25 = puVar13 + 4;" (assignment_expression "puVar25 = puVar13 + 4" identifier = (binary_expression "puVar13 + 4" identifier + number_literal)) ;)) (expression_statement "puVar13 = puVar13 + -0x2a;" (assignment_expression "puVar13 = puVar13 + -0x2a" identifier = (binary_expression "puVar13 + -0x2a" identifier + number_literal)) ;) (expression_statement "psVar32 = psVar27 + -3;" (assignment_expression "psVar32 = psVar27 + -3" identifier = (binary_expression "psVar27 + -3" identifier + number_literal)) ;) (expression_statement "iVar10 = 0xe;" (assignment_expression "iVar10 = 0xe" identifier = number_literal) ;) (expression_statement "puVar14[0xc] = *puVar25;" (assignment_expression "puVar14[0xc] = *puVar25" (subscript_expression "puVar14[0xc]" identifier [ number_literal ]) = (pointer_expression "*puVar25" * identifier)) ;) (expression_statement "iVar9 = -0x5d;" (assignment_expression "iVar9 = -0x5d" identifier = number_literal) ;) (labeled_statement "LAB_00015adc:\n  puVar13 = puVar13 + 0xe;" statement_identifier : (expression_statement "puVar13 = puVar13 + 0xe;" (assignment_expression "puVar13 = puVar13 + 0xe" identifier = (binary_expression "puVar13 + 0xe" identifier + number_literal)) ;)) (expression_statement "puStack_5a8 = in_t2;" (assignment_expression "puStack_5a8 = in_t2" identifier = identifier) ;) (expression_statement "in_t2 = auStack_580;" (assignment_expression "in_t2 = auStack_580" identifier = identifier) ;) (expression_statement "uStack_5a4 = in_t3;" (assignment_expression "uStack_5a4 = in_t3" identifier = identifier) ;) (expression_statement "apsStack_5a0[1] = (short *)puStack_674;" (assignment_expression "apsStack_5a0[1] = (short *)puStack_674" (subscript_expression "apsStack_5a0[1]" identifier [ number_literal ]) = (cast_expression "(short *)puStack_674" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "apsStack_5a0[0] = unaff_s6;" (assignment_expression "apsStack_5a0[0] = unaff_s6" (subscript_expression "apsStack_5a0[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppuStack_594 = ppuVar28;" (assignment_expression "ppuStack_594 = ppuVar28" identifier = identifier) ;) (expression_statement "ppuStack_598 = in_t0;" (assignment_expression "ppuStack_598 = in_t0" identifier = identifier) ;) (expression_statement "uStack_58c = in_t5;" (assignment_expression "uStack_58c = in_t5" identifier = identifier) ;) (expression_statement "ppuStack_590 = in_t4;" (assignment_expression "ppuStack_590 = in_t4" identifier = identifier) ;) (expression_statement "uStack_588 = uVar18;" (assignment_expression "uStack_588 = uVar18" identifier = identifier) ;) (expression_statement "uStack_584 = in_t6;" (assignment_expression "uStack_584 = in_t6" identifier = identifier) ;) (expression_statement "auStack_580[0] = in_t8;" (assignment_expression "auStack_580[0] = in_t8" (subscript_expression "auStack_580[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar25 = puStack_66c;" (assignment_expression "puVar25 = puStack_66c" identifier = identifier) ;) (expression_statement "puVar31 = puVar13;" (assignment_expression "puVar31 = puVar13" identifier = identifier) ;) (do_statement "do {\n    puVar17 = puVar31;\n    puVar19 = puVar25;\n    in_t0 = (uint **)*puVar19;\n    puVar25 = puVar19 + 4;\n    uVar23 = puVar19[1];\n    uVar22 = puVar19[2];\n    uVar15 = puVar19[3];\n    *puVar17 = (uint)in_t0;\n    puVar17[1] = uVar23;\n    puVar17[2] = uVar22;\n    puVar17[3] = uVar15;\n    puVar31 = puVar17 + 4;\n  } while (puVar25 != in_t2);" do (compound_statement "{\n    puVar17 = puVar31;\n    puVar19 = puVar25;\n    in_t0 = (uint **)*puVar19;\n    puVar25 = puVar19 + 4;\n    uVar23 = puVar19[1];\n    uVar22 = puVar19[2];\n    uVar15 = puVar19[3];\n    *puVar17 = (uint)in_t0;\n    puVar17[1] = uVar23;\n    puVar17[2] = uVar22;\n    puVar17[3] = uVar15;\n    puVar31 = puVar17 + 4;\n  }" { (expression_statement "puVar17 = puVar31;" (assignment_expression "puVar17 = puVar31" identifier = identifier) ;) (expression_statement "puVar19 = puVar25;" (assignment_expression "puVar19 = puVar25" identifier = identifier) ;) (expression_statement "in_t0 = (uint **)*puVar19;" (assignment_expression "in_t0 = (uint **)*puVar19" identifier = (cast_expression "(uint **)*puVar19" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar19" * identifier))) ;) (expression_statement "puVar25 = puVar19 + 4;" (assignment_expression "puVar25 = puVar19 + 4" identifier = (binary_expression "puVar19 + 4" identifier + number_literal)) ;) (expression_statement "uVar23 = puVar19[1];" (assignment_expression "uVar23 = puVar19[1]" identifier = (subscript_expression "puVar19[1]" identifier [ number_literal ])) ;) (expression_statement "uVar22 = puVar19[2];" (assignment_expression "uVar22 = puVar19[2]" identifier = (subscript_expression "puVar19[2]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = puVar19[3];" (assignment_expression "uVar15 = puVar19[3]" identifier = (subscript_expression "puVar19[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar17 = (uint)in_t0;" (assignment_expression "*puVar17 = (uint)in_t0" (pointer_expression "*puVar17" * identifier) = (cast_expression "(uint)in_t0" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar17[1] = uVar23;" (assignment_expression "puVar17[1] = uVar23" (subscript_expression "puVar17[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[2] = uVar22;" (assignment_expression "puVar17[2] = uVar22" (subscript_expression "puVar17[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[3] = uVar15;" (assignment_expression "puVar17[3] = uVar15" (subscript_expression "puVar17[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar31 = puVar17 + 4;" (assignment_expression "puVar31 = puVar17 + 4" identifier = (binary_expression "puVar17 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar25 != in_t2)" ( (binary_expression "puVar25 != in_t2" identifier != identifier) )) ;) (expression_statement "ppuVar16 = (uint **)(int)*psVar32;" (assignment_expression "ppuVar16 = (uint **)(int)*psVar32" identifier = (cast_expression "(uint **)(int)*psVar32" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)*psVar32" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*psVar32" * identifier)))) ;) (expression_statement "uVar15 = puVar19[5];" (assignment_expression "uVar15 = puVar19[5]" identifier = (subscript_expression "puVar19[5]" identifier [ number_literal ])) ;) (expression_statement "pbVar26 = (byte *)((int)ppuVar16 + iVar9);" (assignment_expression "pbVar26 = (byte *)((int)ppuVar16 + iVar9)" identifier = (cast_expression "(byte *)((int)ppuVar16 + iVar9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar16 + iVar9)" ( (binary_expression "(int)ppuVar16 + iVar9" (cast_expression "(int)ppuVar16" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "puVar17[4] = *puVar25;" (assignment_expression "puVar17[4] = *puVar25" (subscript_expression "puVar17[4]" identifier [ number_literal ]) = (pointer_expression "*puVar25" * identifier)) ;) (expression_statement "puVar17[5] = uVar15;" (assignment_expression "puVar17[5] = uVar15" (subscript_expression "puVar17[5]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((pbVar26 < (byte *)0x71) && ((uint **)(int)(char)pbVar26[iVar30] == ppuVar16)) {\n    puVar25 = (uint *)(uint)pbVar26[iVar8];\n  }\n  else {\n    puVar25 = (uint *)(int)*(char *)(iVar10 + iVar6 + 0x6338);\n  }" if (parenthesized_expression "((pbVar26 < (byte *)0x71) && ((uint **)(int)(char)pbVar26[iVar30] == ppuVar16))" ( (binary_expression "(pbVar26 < (byte *)0x71) && ((uint **)(int)(char)pbVar26[iVar30] == ppuVar16)" (parenthesized_expression "(pbVar26 < (byte *)0x71)" ( (binary_expression "pbVar26 < (byte *)0x71" identifier < (cast_expression "(byte *)0x71" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((uint **)(int)(char)pbVar26[iVar30] == ppuVar16)" ( (binary_expression "(uint **)(int)(char)pbVar26[iVar30] == ppuVar16" (cast_expression "(uint **)(int)(char)pbVar26[iVar30]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)(char)pbVar26[iVar30]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar26[iVar30]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar26[iVar30]" identifier [ identifier ])))) == identifier) ))) )) (compound_statement "{\n    puVar25 = (uint *)(uint)pbVar26[iVar8];\n  }" { (expression_statement "puVar25 = (uint *)(uint)pbVar26[iVar8];" (assignment_expression "puVar25 = (uint *)(uint)pbVar26[iVar8]" identifier = (cast_expression "(uint *)(uint)pbVar26[iVar8]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)pbVar26[iVar8]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar26[iVar8]" identifier [ identifier ])))) ;) }) (else_clause "else {\n    puVar25 = (uint *)(int)*(char *)(iVar10 + iVar6 + 0x6338);\n  }" else (compound_statement "{\n    puVar25 = (uint *)(int)*(char *)(iVar10 + iVar6 + 0x6338);\n  }" { (expression_statement "puVar25 = (uint *)(int)*(char *)(iVar10 + iVar6 + 0x6338);" (assignment_expression "puVar25 = (uint *)(int)*(char *)(iVar10 + iVar6 + 0x6338)" identifier = (cast_expression "(uint *)(int)*(char *)(iVar10 + iVar6 + 0x6338)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*(char *)(iVar10 + iVar6 + 0x6338)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar10 + iVar6 + 0x6338)" * (cast_expression "(char *)(iVar10 + iVar6 + 0x6338)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + iVar6 + 0x6338)" ( (binary_expression "iVar10 + iVar6 + 0x6338" (binary_expression "iVar10 + iVar6" identifier + identifier) + number_literal) ))))))) ;) }))) (goto_statement "goto LAB_00015014;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nvoid debug_print_current_time(char *item,parser_control *pc)\n\n{\n  char cVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  int *piVar8;\n  int iVar9;\n  byte bVar13;\n  int iVar10;\n  table *ptVar11;\n  uint **ppuVar12;\n  uint *puVar14;\n  parser_control *pc_00;\n  uint uVar15;\n  uint **name;\n  uint *puVar16;\n  uint uVar17;\n  int iVar18;\n  uint *puVar19;\n  uint *puVar20;\n  uint **ppuVar21;\n  uint uVar22;\n  uint uVar23;\n  uint **in_t0;\n  uint uVar24;\n  uint *in_t2;\n  uint in_t3;\n  uint **in_t4;\n  uint in_t5;\n  uint in_t6;\n  uint *puVar25;\n  byte *pbVar26;\n  short *psVar27;\n  uint **ppuVar28;\n  uint *puVar29;\n  int iVar30;\n  undefined *unaff_s4;\n  uint *puVar31;\n  short *psVar32;\n  short *unaff_s6;\n  uint in_t8;\n  undefined *puVar33;\n  code *pcVar34;\n  uint *puStack_674;\n  int iStack_670;\n  uint *puStack_66c;\n  int iStack_660;\n  uint *puStack_65c;\n  uint *puStack_630;\n  uint *apuStack_5e8 [4];\n  int iStack_5d8;\n  uint *apuStack_5b8 [2];\n  uint auStack_5b0 [2];\n  uint *puStack_5a8;\n  uint uStack_5a4;\n  short *apsStack_5a0 [2];\n  uint **ppuStack_598;\n  uint **ppuStack_594;\n  uint **ppuStack_590;\n  uint uStack_58c;\n  uint uStack_588;\n  uint uStack_584;\n  uint auStack_580 [2];\n  short asStack_578 [19];\n  short sStack_552;\n  uint auStack_550 [279];\n  byte abStack_f1 [21];\n  int iStack_dc;\n  parser_control *ppStack_d8;\n  uint **ppuStack_d4;\n  undefined *puStack_d0;\n  undefined *puStack_cc;\n  undefined *puStack_c8;\n  char tmp [100];\n  \n  puVar3 = PTR___stack_chk_guard_00038350;\n  iVar5 = *(int *)PTR___stack_chk_guard_00038350;\n  pcVar6 = (char *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x50a0,5);\n  dbg_printf(pcVar6,item);\n  puVar4 = PTR_stderr_00038360;\n  if (pc->dates_seen == 0) {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (pc->year_seen != pc->debug_year_seen) goto LAB_00014a30;\nLAB_00014c7c:\n    uVar17 = 0;\n  }\n  else {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (pc->debug_dates_seen == false) {\n      in_t3 = (uint)pc->month;\n      in_t2 = *(uint **)&pc->month;\n      in_t0 = *(uint ***)&(pc->year).value;\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      pc->debug_dates_seen = true;\n      if (pc->year_seen == pc->debug_year_seen) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar17 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else if (pc->year_seen == pc->debug_year_seen) goto LAB_00014c7c;\nLAB_00014a30:\n    uVar7 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);\n    in_t0 = *(uint ***)&(pc->year).value;\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar7);\n    uVar17 = 1;\n    ppuVar28 = *(uint ***)puVar4;\n    pc->debug_year_seen = pc->year_seen;\n  }\nLAB_00014a80:\n  if ((pc->times_seen == 0) || (pc->debug_times_seen != false)) {\n    if ((pc->days_seen != 0) && (pc->debug_days_seen == false)) {\n      if (uVar17 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      iVar18 = 5;\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c);\n      pcVar6 = str_days(pc,tmp,iVar18);\n      in_t0 = *(uint ***)&pc->day_ordinal;\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,pcVar6);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar17 = 1;\n      pc->debug_days_seen = true;\n    }\n  }\n  else {\n    in_t3 = (uint)pc->minutes;\n    in_t2 = *(uint **)&pc->minutes;\n    in_t0 = *(uint ***)&pc->hour;\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar17 ^ 1) + 0x5168);\n    if ((pc->seconds).tv_nsec != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }\n    ppuVar28 = *(uint ***)puVar4;\n    if (pc->meridian == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    pc->debug_times_seen = true;\n    if (pc->days_seen == 0) {\n      uVar17 = 1;\n    }\n    else {\n      uVar17 = (uint)pc->debug_days_seen;\n      if (uVar17 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }\n  }\n  if ((pc->local_zones_seen == 0) || (pc->debug_local_zones_seen != false)) {\n    if ((pc->zones_seen == 0) || (unaff_s4 = PTR_LAB_0003811c, pc->debug_zones_seen != false)) {\n      if (pc->timespec_seen == false) goto LAB_00014bb0;\n      pc = (parser_control *)(pc->seconds).tv_sec;\n      unaff_s4 = (undefined *)((int)pc >> 0x1f);\n      if (uVar17 != 0) goto LAB_00014d8c;\n      goto LAB_00014c1c;\n    }\n    unaff_s4 = PTR_LAB_0003811c + (uVar17 ^ 1) + 0x5130;\nLAB_00014d38:\n    pcVar6 = time_zone_str(pc->time_zone,tmp);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,pcVar6);\n    pc->debug_zones_seen = true;\n    if (pc->timespec_seen != false) {\n      pc = (parser_control *)(pc->seconds).tv_sec;\n      ppuVar28 = *(uint ***)puVar4;\n      goto LAB_00014d88;\n    }\n  }\n  else {\n    (*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar17 ^ 1) + 0x51ac,pc->local_isdst);\n    pc->debug_local_zones_seen = true;\n    if (pc->zones_seen == 0) {\n      cVar1 = pc->timespec_seen;\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (pc->debug_zones_seen == false) {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = pc->timespec_seen;\n    }\n    if (cVar1 == '\0') goto LAB_00014bb0;\n    pc = (parser_control *)(pc->seconds).tv_sec;\nLAB_00014d88:\n    unaff_s4 = (undefined *)((int)pc >> 0x1f);\nLAB_00014d8c:\n    (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n    ppuVar28 = *(uint ***)puVar4;\nLAB_00014c1c:\n    uVar7 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar7);\n  }\n  ppuVar28 = *(uint ***)puVar4;\nLAB_00014bb0:\n  pc_00 = (parser_control *)&DAT_0000000a;\n  ppuVar21 = ppuVar28;\n  (*(code *)PTR_fputc_00038298)();\n  if (iVar5 == *(int *)puVar3) {\n    return;\n  }\n  puVar33 = PTR___stack_chk_fail_00038334;\n  (*(code *)PTR___stack_chk_fail_00038334)();\n  piVar8 = *(int **)(puVar33 + 0x234a4);\n  uVar17 = 0xfffffffe;\n  puStack_cc = puVar3;\n  puVar31 = (uint *)&DAT_00000026;\n  iStack_dc = *piVar8;\n  iVar5 = *(int *)(puVar33 + 0x23270);\n  puStack_c8 = unaff_s4;\n  puStack_d0 = puVar4;\n  puVar14 = auStack_550;\n  ppuStack_d4 = ppuVar28;\n  puVar29 = (uint *)0xfffffffe;\n  iVar30 = *(int *)(puVar33 + 0x23270) + 0x6250;\n  ppStack_d8 = pc;\n  puVar25 = (uint *)0x0;\n  iVar18 = *(int *)(puVar33 + 0x23270) + 0x62c4;\n  asStack_578[0] = 0;\n  iStack_670 = 0;\n  psVar32 = asStack_578;\nLAB_00014f50:\n  ppuVar28 = (uint **)0x800000;\n  puVar19 = puVar31;\n  if (puVar29 == (uint *)0xfffffffe) {\n    ppuVar21 = (uint **)pc_00->input;\n    in_t2 = (uint *)0x1;\n    ppuVar28 = (uint **)0x80001f;\n    in_t4 = (uint **)0x2d;\n    bVar13 = *(byte *)ppuVar21;\n    in_t5 = 0x2b;\n    in_t6 = 0x28;\n    uVar17 = 0x29;\nLAB_000152f0:\n    in_t0 = (uint **)(int)(char)bVar13;\n    uVar15 = (uint)bVar13;\nLAB_000152f4:\n    uVar22 = uVar15 - 9;\n    name = (uint **)(uint)(uVar22 < 0x18);\n    if (name == (uint **)0x0) goto LAB_000153a8;\nLAB_00015308:\n    ppuVar12 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f);\n    while (ppuVar12 != (uint **)0x0) {\n      ppuVar21 = (uint **)((int)ppuVar21 + 1);\n      pc_00->input = (char *)ppuVar21;\n      in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n      uVar15 = (uint)*(byte *)ppuVar21;\n      name = (uint **)(uVar15 - 9);\n      if ((uint **)0x17 < name) goto LAB_000153a8;\n      name = (uint **)(1 << ((uint)name & 0x1f) & 0x80001f);\n      ppuVar12 = name;\n    }\nLAB_00015344:\n    in_t3 = 0xffffffff;\n    if (uVar15 == 0x2d) goto LAB_00015358;\n    if (uVar15 == 0x2b) goto LAB_00015354;\n    if ((0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))\n       ) {\n      pbVar26 = (byte *)pc_00->input;\n      name = (uint **)(abStack_f1 + 1);\n      in_t0 = (uint **)(abStack_f1 + 0x14);\n      ppuVar28 = (uint **)&DAT_0000002e;\n      ppuVar21 = name;\n      do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        pc_00->input = (char *)pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));\n      *(byte *)ppuVar21 = 0;\n      ppuVar21 = name;\n      bVar13 = abStack_f1[1];\n      while (bVar13 != 0) {\n        if (bVar13 - 0x61 < 0x1a) {\n          bVar13 = bVar13 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar13;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar13 = *(byte *)ppuVar21;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);\n      do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(name);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(name);\n      if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);\n      do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(name,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(name);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      iVar9 = *(int *)(puVar33 + 0x2326c);\n      ppuVar21 = name;\n      ptVar11 = lookup_zone(pc_00,(char *)name);\n      unaff_s6 = asStack_578;\n      if (ptVar11 != (table *)0x0) {\n        puVar29 = (uint *)ptVar11->type;\n        apuStack_5e8[1] = (uint *)ptVar11->value;\n        apuStack_5e8[0] = (uint *)(ptVar11->value >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);\n      iVar10 = (**(code **)(puVar33 + 0x234c8))(name);\n      if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        name = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);\n      ppuVar12 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);\n      ppuVar21 = ppuVar12;\n      psVar27 = unaff_s6;\n      do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(name);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);\n      pbVar26 = (byte *)((int)name + (int)((int)puStack_674 + -1));\n      if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(name);\n          ppuVar21 = ppuVar12;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar12 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar12 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);\n      pcVar34 = *(code **)(puVar33 + 0x234c8);\n      do {\n        iVar10 = (*pcVar34)(name);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);\n      if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar12 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar12;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar12 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }\n      if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = name;\n        ppuVar12 = name;\n        bVar13 = abStack_f1[1];\n        do {\n          if (bVar13 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar12 = (uint **)((int)ppuVar12 + 1);\n          bVar13 = *(byte *)ppuVar12;\n          *(byte *)ppuVar21 = bVar13;\n        } while (bVar13 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = name, iVar9 = (*(code *)(&DAT_00004388 + iVar9))(pc_00), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }\n      ppuVar21 = *(uint ***)(puVar33 + 0x23270);\n      if (pc_00->parse_datetime_debug == false) goto LAB_00017ae0;\n      pcVar6 = (char *)(**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5)\n      ;\n      puVar29 = (uint *)0x3f;\n      dbg_printf(pcVar6);\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n      goto LAB_00014f74;\n    }\n    iVar9 = 0;\n    if (uVar15 == 0x28) {\n      ppuVar21 = (uint **)pc_00->input;\n      goto LAB_000157a8;\n    }\n    pc_00->input = (char *)((int)ppuVar21 + 1);\n    puVar29 = (uint *)(uint)*(byte *)ppuVar21;\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if (puVar29 != (uint *)0x0) goto LAB_0001558c;\n    uVar15 = 0;\n    goto LAB_00014f74;\n  }\nLAB_00014f5c:\n  name = ppuVar21;\n  if ((int)puVar29 < 1) {\nLAB_000152b8:\n    uVar15 = 0;\n    puVar29 = (uint *)0x0;\n  }\n  else {\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if ((int)puVar29 < 0x116) {\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }\n    else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }\n  }\n  goto LAB_00014f74;\nLAB_00015354:\n  do {\n    in_t3 = 1;\nLAB_00015358:\n    while( true ) {\n      ppuVar21 = (uint **)pc_00->input;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        pc_00->input = (char *)ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      name = (uint **)(uint)(uVar22 < 0x18);\n      if (name != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }\n    in_t3 = 0;\n  } while (uVar15 == 0x2b);\n  ppuVar21 = (uint **)pc_00->input;\nLAB_000153dc:\n  name = (uint **)0x0;\n  puVar29 = (uint *)0x0;\n  in_t5 = 0xffffffff;\n  uVar17 = 0x30;\n  in_t8 = 10;\n  ppuVar28 = ppuVar21;\nLAB_000153f8:\n  if (in_t3 == 0xffffffff) {\n    uVar22 = 0x30 - uVar15;\n  }\n  uVar15 = (int)uVar22 >> 0x1f;\n  puVar16 = (uint *)((int)puVar29 + uVar22);\n  in_t2 = (uint *)((int)name + (puVar16 < puVar29) + uVar15);\n  in_t4 = (uint **)((uint)in_t2 ^ uVar15);\n  name = (uint **)((uint)in_t4 & ~((uint)name ^ uVar15));\n  if ((int)name < 0) goto LAB_00017ad0;\n  uVar15 = (uint)*(byte *)((int)ppuVar28 + 1);\n  uVar22 = uVar15 - 0x30;\n  in_t4 = (uint **)((int)ppuVar28 + 1);\n  if (uVar22 < 10) goto LAB_00015528;\n  name = (uint **)0xfffffffd;\n  if (((*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c) ||\n     (puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29)) {\n    pc_00->input = (char *)in_t4;\n    uVar15 = 0x13;\n    apuStack_5e8[0] = (uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_);\n    puVar29 = (uint *)0x112;\n    if (in_t3 == 0) {\n      uVar15 = 0x14;\n    }\n    iStack_660 = (int)in_t4 - (int)ppuVar21;\n    if (in_t3 == 0) {\n      puVar29 = (uint *)0x113;\n    }\n    puVar19 = (uint *)((int)puVar31 + uVar15);\n    puStack_65c = in_t2;\n    puStack_630 = puVar16;\n    goto LAB_00014f74;\n  }\n  in_t2 = (uint *)((int)in_t2 + (uint)(puVar16 + -0x20000000 < puVar16));\n  iVar9 = 8;\n  ppuVar21 = name;\n  if (in_t2 != (uint *)0x0) goto LAB_00017ae0;\n  in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 3);\n  ppuVar28 = (uint **)((int)ppuVar28 + 3);\n  ppuVar21 = in_t0 + -0xc;\n  name = (uint **)((int)puVar29 * 4);\n  do {\n    puVar29 = (uint *)((int)((int)name + (int)puVar29) * 2);\n    if (ppuVar21 < &DAT_0000000a) {\n      in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);\n      puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n      ppuVar21 = in_t0 + -0xc;\n    }\n    iVar9 = iVar9 + -1;\n    name = (uint **)((int)puVar29 << 2);\n  } while (iVar9 != 0);\n  in_t2 = puVar16;\n  if (in_t3 == 0xffffffff) {\n    ppuVar12 = in_t0;\n    if (ppuVar21 < &DAT_0000000a) {\n      do {\n        if (ppuVar12 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        name = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar12 = name;\n      } while (name + -0xc <= &DAT_00000009);\n    }\nLAB_00015c20:\n    if (puVar29 != (uint *)0x0) {\n      in_t2 = (uint *)((int)puVar16 + -1);\n      ppuVar21 = name;\n      if (puVar16 == (uint *)0x80000000) {\nLAB_00017ae0:\n        name = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }\n    uVar15 = 0x15;\n    apuStack_5e8[1] = puVar29;\n    apuStack_5e8[0] = in_t2;\n    puVar29 = (uint *)0x114;\n    pc_00->input = (char *)ppuVar28;\n    puVar19 = (uint *)((int)puVar31 + 0x15);\n    goto LAB_00014f74;\n  }\n  if (ppuVar21 < &DAT_0000000a) {\nLAB_000154dc:\n    do {\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    } while ((int)(char)*(byte *)ppuVar28 - 0x30U < 10);\n    if (in_t3 == 0xffffffff) goto LAB_00015c20;\n  }\n  apuStack_5e8[0] = puVar16;\n  uVar15 = 0x16;\n  apuStack_5e8[1] = puVar29;\n  puVar29 = (uint *)0x115;\n  pc_00->input = (char *)ppuVar28;\n  if (in_t3 != 0) {\n    uVar15 = 0x15;\n    puVar29 = (uint *)0x114;\n  }\n  puVar19 = (uint *)((int)puVar31 + uVar15);\nLAB_00014f74:\n  psVar27 = psVar32;\n  if ((uint *)0x70 < puVar19) goto LAB_0001504c;\n  iVar9 = *(int *)(puVar33 + 0x23270);\n  if ((int)(char)*(byte *)((int)puVar19 + iVar30) != uVar15) goto LAB_00015050;\n  puVar25 = (uint *)(uint)*(byte *)((int)puVar19 + iVar18);\n  if (puVar25 == (uint *)0x0) {\n    puStack_66c = auStack_5b0;\n    puVar25 = puVar14 + 0xe;\n    puVar31 = puStack_66c;\n    do {\n      puVar16 = puVar31;\n      puVar19 = puVar25;\n      puVar25 = puVar19 + 4;\n      uVar22 = puVar19[1];\n      uVar15 = puVar19[2];\n      uVar17 = puVar19[3];\n      *puVar16 = *puVar19;\n      puVar16[1] = uVar22;\n      puVar16[2] = uVar15;\n      puVar16[3] = uVar17;\n      puVar31 = puVar16 + 4;\n    } while (puVar25 != puVar14 + 0x1a);\n    uVar17 = puVar19[5];\n    iVar10 = -0x1c;\n    puVar16[4] = *puVar25;\n    puVar16[5] = uVar17;\n    puStack_674 = (uint *)puVar14[0x13];\n    in_t3 = puVar14[0x11];\n    in_t2 = (uint *)puVar14[0x10];\n    unaff_s6 = (short *)puVar14[0x12];\n    ppuVar28 = (uint **)puVar14[0x15];\n    in_t0 = (uint **)puVar14[0x14];\n    in_t5 = puVar14[0x17];\n    in_t4 = (uint **)puVar14[0x16];\n    uVar17 = puVar14[0x18];\n    in_t6 = puVar14[0x19];\n    in_t8 = puVar14[0x1a];\n    iVar9 = 0;\n    goto LAB_00015adc;\n  }\n  if (iStack_670 != 0) {\n    iStack_670 = iStack_670 + -1;\n  }\n  puVar14 = puVar14 + 0xe;\n  in_t0 = apuStack_5b8;\n  apuStack_5e8[3] = puStack_630;\n  apuStack_5e8[2] = puStack_65c;\n  iStack_5d8 = iStack_660;\n  ppuVar21 = apuStack_5e8;\n  puVar29 = puVar14;\n  do {\n    puVar31 = puVar29;\n    ppuVar12 = ppuVar21;\n    ppuVar21 = ppuVar12 + 4;\n    puVar19 = ppuVar12[1];\n    name = (uint **)ppuVar12[2];\n    puVar29 = ppuVar12[3];\n    *puVar31 = (uint)*ppuVar12;\n    puVar31[1] = (uint)puVar19;\n    puVar31[2] = (uint)name;\n    puVar31[3] = (uint)puVar29;\n    puVar29 = puVar31 + 4;\n  } while (ppuVar21 != in_t0);\n  puVar29 = (uint *)0xfffffffe;\n  puVar19 = ppuVar12[5];\n  puVar31[4] = (uint)*ppuVar21;\n  puVar31[5] = (uint)puVar19;\n  do {\n    while( true ) {\n      psVar27 = psVar32 + 1;\n      psVar32[1] = (short)puVar25;\n      if ((psVar27 < &sStack_552) && (puVar25 != (uint *)0xc)) break;\nLAB_00015278:\n      do {\n        do {\n          if (iStack_dc == *piVar8) {\n            return;\n          }\n          iVar9 = iStack_dc;\n          uVar7 = (**(code **)(puVar33 + 0x23488))();\n          bVar2 = name == (uint **)0x0;\n          *(undefined4 *)&pc_00->day = uVar7;\n          *(int *)((int)&pc_00->day + 4) = iVar9;\n        } while (bVar2);\n        name = (uint **)puVar14[3];\n        if (puVar14[2] == 0x80000000) {\n          bVar2 = name == (uint **)0x0;\n        }\n        *(uint *)&(pc_00->year).value = -(uint)(-(int)name != 0) - puVar14[2];\n        *(int *)((int)&(pc_00->year).value + 4) = -(int)name;\n      } while (bVar2);\n      puVar25 = puVar14 + 4;\n      puVar14 = puVar14 + -0x2a;\n      psVar32 = psVar27 + -3;\n      iVar10 = 0xe;\n      (pc_00->year).digits = *puVar25;\n      iVar9 = -0x5d;\nLAB_00015adc:\n      puVar14 = puVar14 + 0xe;\n      puStack_5a8 = in_t2;\n      in_t2 = auStack_580;\n      uStack_5a4 = in_t3;\n      apsStack_5a0[1] = (short *)puStack_674;\n      apsStack_5a0[0] = unaff_s6;\n      ppuStack_594 = ppuVar28;\n      ppuStack_598 = in_t0;\n      uStack_58c = in_t5;\n      ppuStack_590 = in_t4;\n      uStack_588 = uVar17;\n      uStack_584 = in_t6;\n      auStack_580[0] = in_t8;\n      puVar25 = puStack_66c;\n      puVar31 = puVar14;\n      do {\n        puVar16 = puVar31;\n        puVar19 = puVar25;\n        in_t0 = (uint **)*puVar19;\n        puVar25 = puVar19 + 4;\n        uVar23 = puVar19[1];\n        uVar22 = puVar19[2];\n        uVar15 = puVar19[3];\n        *puVar16 = (uint)in_t0;\n        puVar16[1] = uVar23;\n        puVar16[2] = uVar22;\n        puVar16[3] = uVar15;\n        puVar31 = puVar16 + 4;\n      } while (puVar25 != in_t2);\n      name = (uint **)(int)*psVar32;\n      uVar15 = puVar19[5];\n      pbVar26 = (byte *)((int)name + iVar9);\n      puVar16[4] = *puVar25;\n      puVar16[5] = uVar15;\n      if ((pbVar26 < (byte *)0x71) && ((uint **)(int)(char)pbVar26[iVar30] == name)) {\n        puVar25 = (uint *)(uint)pbVar26[iVar18];\n      }\n      else {\n        puVar25 = (uint *)(int)*(char *)(iVar10 + iVar5 + 0x6338);\n      }\n    }\n    puVar31 = (uint *)(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4);\n    ppuVar21 = name;\n    psVar32 = psVar27;\n    if (puVar31 != (uint *)0xffffffa3) goto LAB_00014f50;\nLAB_0001504c:\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    psVar32 = psVar27;\nLAB_00015050:\n    uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370);\n    if (uVar15 != 0) {\n      uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);\n      puVar19 = puVar14 + (1 - uVar22) * 0xe;\n      puVar25 = puVar19;\n      puVar31 = auStack_5b0;\n      do {\n        puVar20 = puVar31;\n        puVar16 = puVar25;\n        puVar25 = puVar16 + 4;\n        uVar24 = puVar16[1];\n        uVar23 = puVar16[2];\n        uVar17 = puVar16[3];\n        *puVar20 = *puVar16;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar17;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);\n      uVar17 = puVar16[5];\n      uVar23 = uVar15 - 4 & 0xff;\n      puVar20[4] = *puVar25;\n      puVar20[5] = uVar17;\n      puStack_674 = (uint *)puVar19[5];\n      in_t3 = puVar19[3];\n      in_t2 = (uint *)puVar19[2];\n      unaff_s6 = (short *)puVar19[4];\n      ppuVar28 = (uint **)puVar19[7];\n      in_t0 = (uint **)puVar19[6];\n      in_t5 = puVar19[9];\n      in_t4 = (uint **)puVar19[8];\n      uVar17 = puVar19[10];\n      in_t6 = puVar19[0xb];\n      in_t8 = puVar19[0xc];\n      if (uVar23 < 0x58) {\n                    /* WARNING: Could not recover jumptable at 0x00015220. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(puVar33 + *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))\n                  ();\n        return;\n      }\n      psVar32 = psVar32 + -uVar22;\n      puVar14 = puVar14 + uVar22 * -0xe;\n      iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;\n      iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);\n      puStack_66c = auStack_5b0;\n      goto LAB_00015adc;\n    }\n    if (iStack_670 == 3) {\n      if ((int)puVar29 < 1) {\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }\n    }\n    name = (uint **)0xffffffa3;\n    while ((((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar18), puVar25 == (uint *)0x0))) {\n      psVar27 = psVar32;\n      if (psVar32 == asStack_578) goto LAB_00015278;\n      psVar32 = psVar32 + -1;\n      puVar25 = (uint *)(int)*psVar32;\n      puVar14 = puVar14 + -0xe;\n    }\n    puVar14 = puVar14 + 0xe;\n    in_t0 = apuStack_5b8;\n    apuStack_5e8[3] = puStack_630;\n    apuStack_5e8[2] = puStack_65c;\n    iStack_5d8 = iStack_660;\n    ppuVar21 = apuStack_5e8;\n    puVar31 = puVar14;\n    do {\n      puVar19 = puVar31;\n      ppuVar12 = ppuVar21;\n      ppuVar21 = ppuVar12 + 4;\n      puVar20 = ppuVar12[1];\n      puVar16 = ppuVar12[2];\n      puVar31 = ppuVar12[3];\n      *puVar19 = (uint)*ppuVar12;\n      puVar19[1] = (uint)puVar20;\n      puVar19[2] = (uint)puVar16;\n      puVar19[3] = (uint)puVar31;\n      puVar31 = puVar19 + 4;\n    } while (ppuVar21 != in_t0);\n    name = (uint **)0x3;\n    puVar31 = ppuVar12[5];\n    iStack_670 = 3;\n    puVar19[4] = (uint)*ppuVar21;\n    puVar19[5] = (uint)puVar31;\n  } while( true );\nLAB_00015528:\n  puVar29 = (uint *)((int)puVar16 >> 0x1f);\n  bVar2 = false;\n  if (puVar29 == in_t2) {\n    in_t2 = (uint *)((uint)puVar16 >> 0x1e);\n    in_t0 = (uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar16 * 5) < (uint)((int)puVar16 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2);\n    name = (uint **)((uint)((int)puVar16 * 5) >> 0x1f | (uint)in_t0);\n  }\n  else {\n    ppuVar28 = (uint **)(ZEXT48(in_t2) * 10);\n    unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20);\n    in_t6 = (int)puVar16 * 4;\n    puStack_674 = (uint *)((uint)puVar16 >> 0x1e);\n    in_t0 = (uint **)((int)puVar16 * 10);\n    psVar27 = unaff_s6;\n    if ((int)in_t2 < 0) {\n      psVar27 = unaff_s6 + -5;\n    }\n    name = (uint **)((int)ppuVar28 +\n                    ((uint)((int)puVar16 * 5) >> 0x1f |\n                    (int)((int)puStack_674 + (uint)((uint)((int)puVar16 * 5) < in_t6)) * 2));\n    if ((int)name >> 0x1f != (uint)(name < ppuVar28) + (int)psVar27) {\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar16 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      name = (uint **)((uint)((int)puVar16 * 5) >> 0x1f | (uint)in_t0);\n    }\n  }\n  puVar29 = (uint *)((int)puVar16 * 10);\n  ppuVar28 = in_t4;\n  if (bVar2) goto LAB_00017ad0;\n  goto LAB_000153f8;\nLAB_00017ad0:\n  uVar15 = 2;\n  puVar29 = (uint *)0x3f;\n  puVar19 = (uint *)((int)puVar31 + 2);\n  goto LAB_00014f74;\n  while( true ) {\n    if (bVar13 == 0x28) {\n      iVar9 = iVar9 + 1;\n    }\n    else if (bVar13 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }\n    if (iVar9 == 0) break;\nLAB_000157a8:\n    name = ppuVar21;\n    ppuVar21 = (uint **)((int)name + 1);\n    pc_00->input = (char *)ppuVar21;\n    bVar13 = *(byte *)name;\n    if (bVar13 == 0) goto LAB_000152b8;\n  }\n  bVar13 = *(byte *)((int)name + 1);\n  goto LAB_000152f0;\n}\n\n" comment (function_definition "void debug_print_current_time(char *item,parser_control *pc)\n\n{\n  char cVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  int *piVar8;\n  int iVar9;\n  byte bVar13;\n  int iVar10;\n  table *ptVar11;\n  uint **ppuVar12;\n  uint *puVar14;\n  parser_control *pc_00;\n  uint uVar15;\n  uint **name;\n  uint *puVar16;\n  uint uVar17;\n  int iVar18;\n  uint *puVar19;\n  uint *puVar20;\n  uint **ppuVar21;\n  uint uVar22;\n  uint uVar23;\n  uint **in_t0;\n  uint uVar24;\n  uint *in_t2;\n  uint in_t3;\n  uint **in_t4;\n  uint in_t5;\n  uint in_t6;\n  uint *puVar25;\n  byte *pbVar26;\n  short *psVar27;\n  uint **ppuVar28;\n  uint *puVar29;\n  int iVar30;\n  undefined *unaff_s4;\n  uint *puVar31;\n  short *psVar32;\n  short *unaff_s6;\n  uint in_t8;\n  undefined *puVar33;\n  code *pcVar34;\n  uint *puStack_674;\n  int iStack_670;\n  uint *puStack_66c;\n  int iStack_660;\n  uint *puStack_65c;\n  uint *puStack_630;\n  uint *apuStack_5e8 [4];\n  int iStack_5d8;\n  uint *apuStack_5b8 [2];\n  uint auStack_5b0 [2];\n  uint *puStack_5a8;\n  uint uStack_5a4;\n  short *apsStack_5a0 [2];\n  uint **ppuStack_598;\n  uint **ppuStack_594;\n  uint **ppuStack_590;\n  uint uStack_58c;\n  uint uStack_588;\n  uint uStack_584;\n  uint auStack_580 [2];\n  short asStack_578 [19];\n  short sStack_552;\n  uint auStack_550 [279];\n  byte abStack_f1 [21];\n  int iStack_dc;\n  parser_control *ppStack_d8;\n  uint **ppuStack_d4;\n  undefined *puStack_d0;\n  undefined *puStack_cc;\n  undefined *puStack_c8;\n  char tmp [100];\n  \n  puVar3 = PTR___stack_chk_guard_00038350;\n  iVar5 = *(int *)PTR___stack_chk_guard_00038350;\n  pcVar6 = (char *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x50a0,5);\n  dbg_printf(pcVar6,item);\n  puVar4 = PTR_stderr_00038360;\n  if (pc->dates_seen == 0) {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (pc->year_seen != pc->debug_year_seen) goto LAB_00014a30;\nLAB_00014c7c:\n    uVar17 = 0;\n  }\n  else {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (pc->debug_dates_seen == false) {\n      in_t3 = (uint)pc->month;\n      in_t2 = *(uint **)&pc->month;\n      in_t0 = *(uint ***)&(pc->year).value;\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      pc->debug_dates_seen = true;\n      if (pc->year_seen == pc->debug_year_seen) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar17 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else if (pc->year_seen == pc->debug_year_seen) goto LAB_00014c7c;\nLAB_00014a30:\n    uVar7 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);\n    in_t0 = *(uint ***)&(pc->year).value;\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar7);\n    uVar17 = 1;\n    ppuVar28 = *(uint ***)puVar4;\n    pc->debug_year_seen = pc->year_seen;\n  }\nLAB_00014a80:\n  if ((pc->times_seen == 0) || (pc->debug_times_seen != false)) {\n    if ((pc->days_seen != 0) && (pc->debug_days_seen == false)) {\n      if (uVar17 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      iVar18 = 5;\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c);\n      pcVar6 = str_days(pc,tmp,iVar18);\n      in_t0 = *(uint ***)&pc->day_ordinal;\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,pcVar6);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar17 = 1;\n      pc->debug_days_seen = true;\n    }\n  }\n  else {\n    in_t3 = (uint)pc->minutes;\n    in_t2 = *(uint **)&pc->minutes;\n    in_t0 = *(uint ***)&pc->hour;\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar17 ^ 1) + 0x5168);\n    if ((pc->seconds).tv_nsec != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }\n    ppuVar28 = *(uint ***)puVar4;\n    if (pc->meridian == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    pc->debug_times_seen = true;\n    if (pc->days_seen == 0) {\n      uVar17 = 1;\n    }\n    else {\n      uVar17 = (uint)pc->debug_days_seen;\n      if (uVar17 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }\n  }\n  if ((pc->local_zones_seen == 0) || (pc->debug_local_zones_seen != false)) {\n    if ((pc->zones_seen == 0) || (unaff_s4 = PTR_LAB_0003811c, pc->debug_zones_seen != false)) {\n      if (pc->timespec_seen == false) goto LAB_00014bb0;\n      pc = (parser_control *)(pc->seconds).tv_sec;\n      unaff_s4 = (undefined *)((int)pc >> 0x1f);\n      if (uVar17 != 0) goto LAB_00014d8c;\n      goto LAB_00014c1c;\n    }\n    unaff_s4 = PTR_LAB_0003811c + (uVar17 ^ 1) + 0x5130;\nLAB_00014d38:\n    pcVar6 = time_zone_str(pc->time_zone,tmp);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,pcVar6);\n    pc->debug_zones_seen = true;\n    if (pc->timespec_seen != false) {\n      pc = (parser_control *)(pc->seconds).tv_sec;\n      ppuVar28 = *(uint ***)puVar4;\n      goto LAB_00014d88;\n    }\n  }\n  else {\n    (*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar17 ^ 1) + 0x51ac,pc->local_isdst);\n    pc->debug_local_zones_seen = true;\n    if (pc->zones_seen == 0) {\n      cVar1 = pc->timespec_seen;\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (pc->debug_zones_seen == false) {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = pc->timespec_seen;\n    }\n    if (cVar1 == '\0') goto LAB_00014bb0;\n    pc = (parser_control *)(pc->seconds).tv_sec;\nLAB_00014d88:\n    unaff_s4 = (undefined *)((int)pc >> 0x1f);\nLAB_00014d8c:\n    (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n    ppuVar28 = *(uint ***)puVar4;\nLAB_00014c1c:\n    uVar7 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar7);\n  }\n  ppuVar28 = *(uint ***)puVar4;\nLAB_00014bb0:\n  pc_00 = (parser_control *)&DAT_0000000a;\n  ppuVar21 = ppuVar28;\n  (*(code *)PTR_fputc_00038298)();\n  if (iVar5 == *(int *)puVar3) {\n    return;\n  }\n  puVar33 = PTR___stack_chk_fail_00038334;\n  (*(code *)PTR___stack_chk_fail_00038334)();\n  piVar8 = *(int **)(puVar33 + 0x234a4);\n  uVar17 = 0xfffffffe;\n  puStack_cc = puVar3;\n  puVar31 = (uint *)&DAT_00000026;\n  iStack_dc = *piVar8;\n  iVar5 = *(int *)(puVar33 + 0x23270);\n  puStack_c8 = unaff_s4;\n  puStack_d0 = puVar4;\n  puVar14 = auStack_550;\n  ppuStack_d4 = ppuVar28;\n  puVar29 = (uint *)0xfffffffe;\n  iVar30 = *(int *)(puVar33 + 0x23270) + 0x6250;\n  ppStack_d8 = pc;\n  puVar25 = (uint *)0x0;\n  iVar18 = *(int *)(puVar33 + 0x23270) + 0x62c4;\n  asStack_578[0] = 0;\n  iStack_670 = 0;\n  psVar32 = asStack_578;\nLAB_00014f50:\n  ppuVar28 = (uint **)0x800000;\n  puVar19 = puVar31;\n  if (puVar29 == (uint *)0xfffffffe) {\n    ppuVar21 = (uint **)pc_00->input;\n    in_t2 = (uint *)0x1;\n    ppuVar28 = (uint **)0x80001f;\n    in_t4 = (uint **)0x2d;\n    bVar13 = *(byte *)ppuVar21;\n    in_t5 = 0x2b;\n    in_t6 = 0x28;\n    uVar17 = 0x29;\nLAB_000152f0:\n    in_t0 = (uint **)(int)(char)bVar13;\n    uVar15 = (uint)bVar13;\nLAB_000152f4:\n    uVar22 = uVar15 - 9;\n    name = (uint **)(uint)(uVar22 < 0x18);\n    if (name == (uint **)0x0) goto LAB_000153a8;\nLAB_00015308:\n    ppuVar12 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f);\n    while (ppuVar12 != (uint **)0x0) {\n      ppuVar21 = (uint **)((int)ppuVar21 + 1);\n      pc_00->input = (char *)ppuVar21;\n      in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n      uVar15 = (uint)*(byte *)ppuVar21;\n      name = (uint **)(uVar15 - 9);\n      if ((uint **)0x17 < name) goto LAB_000153a8;\n      name = (uint **)(1 << ((uint)name & 0x1f) & 0x80001f);\n      ppuVar12 = name;\n    }\nLAB_00015344:\n    in_t3 = 0xffffffff;\n    if (uVar15 == 0x2d) goto LAB_00015358;\n    if (uVar15 == 0x2b) goto LAB_00015354;\n    if ((0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))\n       ) {\n      pbVar26 = (byte *)pc_00->input;\n      name = (uint **)(abStack_f1 + 1);\n      in_t0 = (uint **)(abStack_f1 + 0x14);\n      ppuVar28 = (uint **)&DAT_0000002e;\n      ppuVar21 = name;\n      do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        pc_00->input = (char *)pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));\n      *(byte *)ppuVar21 = 0;\n      ppuVar21 = name;\n      bVar13 = abStack_f1[1];\n      while (bVar13 != 0) {\n        if (bVar13 - 0x61 < 0x1a) {\n          bVar13 = bVar13 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar13;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar13 = *(byte *)ppuVar21;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);\n      do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(name);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(name);\n      if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);\n      do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(name,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(name);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      iVar9 = *(int *)(puVar33 + 0x2326c);\n      ppuVar21 = name;\n      ptVar11 = lookup_zone(pc_00,(char *)name);\n      unaff_s6 = asStack_578;\n      if (ptVar11 != (table *)0x0) {\n        puVar29 = (uint *)ptVar11->type;\n        apuStack_5e8[1] = (uint *)ptVar11->value;\n        apuStack_5e8[0] = (uint *)(ptVar11->value >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);\n      iVar10 = (**(code **)(puVar33 + 0x234c8))(name);\n      if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        name = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);\n      ppuVar12 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);\n      ppuVar21 = ppuVar12;\n      psVar27 = unaff_s6;\n      do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(name);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);\n      pbVar26 = (byte *)((int)name + (int)((int)puStack_674 + -1));\n      if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(name);\n          ppuVar21 = ppuVar12;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar12 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar12 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);\n      pcVar34 = *(code **)(puVar33 + 0x234c8);\n      do {\n        iVar10 = (*pcVar34)(name);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);\n      if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar12 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar12;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar12 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }\n      if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = name;\n        ppuVar12 = name;\n        bVar13 = abStack_f1[1];\n        do {\n          if (bVar13 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar12 = (uint **)((int)ppuVar12 + 1);\n          bVar13 = *(byte *)ppuVar12;\n          *(byte *)ppuVar21 = bVar13;\n        } while (bVar13 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = name, iVar9 = (*(code *)(&DAT_00004388 + iVar9))(pc_00), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }\n      ppuVar21 = *(uint ***)(puVar33 + 0x23270);\n      if (pc_00->parse_datetime_debug == false) goto LAB_00017ae0;\n      pcVar6 = (char *)(**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5)\n      ;\n      puVar29 = (uint *)0x3f;\n      dbg_printf(pcVar6);\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n      goto LAB_00014f74;\n    }\n    iVar9 = 0;\n    if (uVar15 == 0x28) {\n      ppuVar21 = (uint **)pc_00->input;\n      goto LAB_000157a8;\n    }\n    pc_00->input = (char *)((int)ppuVar21 + 1);\n    puVar29 = (uint *)(uint)*(byte *)ppuVar21;\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if (puVar29 != (uint *)0x0) goto LAB_0001558c;\n    uVar15 = 0;\n    goto LAB_00014f74;\n  }\nLAB_00014f5c:\n  name = ppuVar21;\n  if ((int)puVar29 < 1) {\nLAB_000152b8:\n    uVar15 = 0;\n    puVar29 = (uint *)0x0;\n  }\n  else {\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if ((int)puVar29 < 0x116) {\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }\n    else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }\n  }\n  goto LAB_00014f74;\nLAB_00015354:\n  do {\n    in_t3 = 1;\nLAB_00015358:\n    while( true ) {\n      ppuVar21 = (uint **)pc_00->input;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        pc_00->input = (char *)ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      name = (uint **)(uint)(uVar22 < 0x18);\n      if (name != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }\n    in_t3 = 0;\n  } while (uVar15 == 0x2b);\n  ppuVar21 = (uint **)pc_00->input;\nLAB_000153dc:\n  name = (uint **)0x0;\n  puVar29 = (uint *)0x0;\n  in_t5 = 0xffffffff;\n  uVar17 = 0x30;\n  in_t8 = 10;\n  ppuVar28 = ppuVar21;\nLAB_000153f8:\n  if (in_t3 == 0xffffffff) {\n    uVar22 = 0x30 - uVar15;\n  }\n  uVar15 = (int)uVar22 >> 0x1f;\n  puVar16 = (uint *)((int)puVar29 + uVar22);\n  in_t2 = (uint *)((int)name + (puVar16 < puVar29) + uVar15);\n  in_t4 = (uint **)((uint)in_t2 ^ uVar15);\n  name = (uint **)((uint)in_t4 & ~((uint)name ^ uVar15));\n  if ((int)name < 0) goto LAB_00017ad0;\n  uVar15 = (uint)*(byte *)((int)ppuVar28 + 1);\n  uVar22 = uVar15 - 0x30;\n  in_t4 = (uint **)((int)ppuVar28 + 1);\n  if (uVar22 < 10) goto LAB_00015528;\n  name = (uint **)0xfffffffd;\n  if (((*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c) ||\n     (puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29)) {\n    pc_00->input = (char *)in_t4;\n    uVar15 = 0x13;\n    apuStack_5e8[0] = (uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_);\n    puVar29 = (uint *)0x112;\n    if (in_t3 == 0) {\n      uVar15 = 0x14;\n    }\n    iStack_660 = (int)in_t4 - (int)ppuVar21;\n    if (in_t3 == 0) {\n      puVar29 = (uint *)0x113;\n    }\n    puVar19 = (uint *)((int)puVar31 + uVar15);\n    puStack_65c = in_t2;\n    puStack_630 = puVar16;\n    goto LAB_00014f74;\n  }\n  in_t2 = (uint *)((int)in_t2 + (uint)(puVar16 + -0x20000000 < puVar16));\n  iVar9 = 8;\n  ppuVar21 = name;\n  if (in_t2 != (uint *)0x0) goto LAB_00017ae0;\n  in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 3);\n  ppuVar28 = (uint **)((int)ppuVar28 + 3);\n  ppuVar21 = in_t0 + -0xc;\n  name = (uint **)((int)puVar29 * 4);\n  do {\n    puVar29 = (uint *)((int)((int)name + (int)puVar29) * 2);\n    if (ppuVar21 < &DAT_0000000a) {\n      in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);\n      puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n      ppuVar21 = in_t0 + -0xc;\n    }\n    iVar9 = iVar9 + -1;\n    name = (uint **)((int)puVar29 << 2);\n  } while (iVar9 != 0);\n  in_t2 = puVar16;\n  if (in_t3 == 0xffffffff) {\n    ppuVar12 = in_t0;\n    if (ppuVar21 < &DAT_0000000a) {\n      do {\n        if (ppuVar12 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        name = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar12 = name;\n      } while (name + -0xc <= &DAT_00000009);\n    }\nLAB_00015c20:\n    if (puVar29 != (uint *)0x0) {\n      in_t2 = (uint *)((int)puVar16 + -1);\n      ppuVar21 = name;\n      if (puVar16 == (uint *)0x80000000) {\nLAB_00017ae0:\n        name = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }\n    uVar15 = 0x15;\n    apuStack_5e8[1] = puVar29;\n    apuStack_5e8[0] = in_t2;\n    puVar29 = (uint *)0x114;\n    pc_00->input = (char *)ppuVar28;\n    puVar19 = (uint *)((int)puVar31 + 0x15);\n    goto LAB_00014f74;\n  }\n  if (ppuVar21 < &DAT_0000000a) {\nLAB_000154dc:\n    do {\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    } while ((int)(char)*(byte *)ppuVar28 - 0x30U < 10);\n    if (in_t3 == 0xffffffff) goto LAB_00015c20;\n  }\n  apuStack_5e8[0] = puVar16;\n  uVar15 = 0x16;\n  apuStack_5e8[1] = puVar29;\n  puVar29 = (uint *)0x115;\n  pc_00->input = (char *)ppuVar28;\n  if (in_t3 != 0) {\n    uVar15 = 0x15;\n    puVar29 = (uint *)0x114;\n  }\n  puVar19 = (uint *)((int)puVar31 + uVar15);\nLAB_00014f74:\n  psVar27 = psVar32;\n  if ((uint *)0x70 < puVar19) goto LAB_0001504c;\n  iVar9 = *(int *)(puVar33 + 0x23270);\n  if ((int)(char)*(byte *)((int)puVar19 + iVar30) != uVar15) goto LAB_00015050;\n  puVar25 = (uint *)(uint)*(byte *)((int)puVar19 + iVar18);\n  if (puVar25 == (uint *)0x0) {\n    puStack_66c = auStack_5b0;\n    puVar25 = puVar14 + 0xe;\n    puVar31 = puStack_66c;\n    do {\n      puVar16 = puVar31;\n      puVar19 = puVar25;\n      puVar25 = puVar19 + 4;\n      uVar22 = puVar19[1];\n      uVar15 = puVar19[2];\n      uVar17 = puVar19[3];\n      *puVar16 = *puVar19;\n      puVar16[1] = uVar22;\n      puVar16[2] = uVar15;\n      puVar16[3] = uVar17;\n      puVar31 = puVar16 + 4;\n    } while (puVar25 != puVar14 + 0x1a);\n    uVar17 = puVar19[5];\n    iVar10 = -0x1c;\n    puVar16[4] = *puVar25;\n    puVar16[5] = uVar17;\n    puStack_674 = (uint *)puVar14[0x13];\n    in_t3 = puVar14[0x11];\n    in_t2 = (uint *)puVar14[0x10];\n    unaff_s6 = (short *)puVar14[0x12];\n    ppuVar28 = (uint **)puVar14[0x15];\n    in_t0 = (uint **)puVar14[0x14];\n    in_t5 = puVar14[0x17];\n    in_t4 = (uint **)puVar14[0x16];\n    uVar17 = puVar14[0x18];\n    in_t6 = puVar14[0x19];\n    in_t8 = puVar14[0x1a];\n    iVar9 = 0;\n    goto LAB_00015adc;\n  }\n  if (iStack_670 != 0) {\n    iStack_670 = iStack_670 + -1;\n  }\n  puVar14 = puVar14 + 0xe;\n  in_t0 = apuStack_5b8;\n  apuStack_5e8[3] = puStack_630;\n  apuStack_5e8[2] = puStack_65c;\n  iStack_5d8 = iStack_660;\n  ppuVar21 = apuStack_5e8;\n  puVar29 = puVar14;\n  do {\n    puVar31 = puVar29;\n    ppuVar12 = ppuVar21;\n    ppuVar21 = ppuVar12 + 4;\n    puVar19 = ppuVar12[1];\n    name = (uint **)ppuVar12[2];\n    puVar29 = ppuVar12[3];\n    *puVar31 = (uint)*ppuVar12;\n    puVar31[1] = (uint)puVar19;\n    puVar31[2] = (uint)name;\n    puVar31[3] = (uint)puVar29;\n    puVar29 = puVar31 + 4;\n  } while (ppuVar21 != in_t0);\n  puVar29 = (uint *)0xfffffffe;\n  puVar19 = ppuVar12[5];\n  puVar31[4] = (uint)*ppuVar21;\n  puVar31[5] = (uint)puVar19;\n  do {\n    while( true ) {\n      psVar27 = psVar32 + 1;\n      psVar32[1] = (short)puVar25;\n      if ((psVar27 < &sStack_552) && (puVar25 != (uint *)0xc)) break;\nLAB_00015278:\n      do {\n        do {\n          if (iStack_dc == *piVar8) {\n            return;\n          }\n          iVar9 = iStack_dc;\n          uVar7 = (**(code **)(puVar33 + 0x23488))();\n          bVar2 = name == (uint **)0x0;\n          *(undefined4 *)&pc_00->day = uVar7;\n          *(int *)((int)&pc_00->day + 4) = iVar9;\n        } while (bVar2);\n        name = (uint **)puVar14[3];\n        if (puVar14[2] == 0x80000000) {\n          bVar2 = name == (uint **)0x0;\n        }\n        *(uint *)&(pc_00->year).value = -(uint)(-(int)name != 0) - puVar14[2];\n        *(int *)((int)&(pc_00->year).value + 4) = -(int)name;\n      } while (bVar2);\n      puVar25 = puVar14 + 4;\n      puVar14 = puVar14 + -0x2a;\n      psVar32 = psVar27 + -3;\n      iVar10 = 0xe;\n      (pc_00->year).digits = *puVar25;\n      iVar9 = -0x5d;\nLAB_00015adc:\n      puVar14 = puVar14 + 0xe;\n      puStack_5a8 = in_t2;\n      in_t2 = auStack_580;\n      uStack_5a4 = in_t3;\n      apsStack_5a0[1] = (short *)puStack_674;\n      apsStack_5a0[0] = unaff_s6;\n      ppuStack_594 = ppuVar28;\n      ppuStack_598 = in_t0;\n      uStack_58c = in_t5;\n      ppuStack_590 = in_t4;\n      uStack_588 = uVar17;\n      uStack_584 = in_t6;\n      auStack_580[0] = in_t8;\n      puVar25 = puStack_66c;\n      puVar31 = puVar14;\n      do {\n        puVar16 = puVar31;\n        puVar19 = puVar25;\n        in_t0 = (uint **)*puVar19;\n        puVar25 = puVar19 + 4;\n        uVar23 = puVar19[1];\n        uVar22 = puVar19[2];\n        uVar15 = puVar19[3];\n        *puVar16 = (uint)in_t0;\n        puVar16[1] = uVar23;\n        puVar16[2] = uVar22;\n        puVar16[3] = uVar15;\n        puVar31 = puVar16 + 4;\n      } while (puVar25 != in_t2);\n      name = (uint **)(int)*psVar32;\n      uVar15 = puVar19[5];\n      pbVar26 = (byte *)((int)name + iVar9);\n      puVar16[4] = *puVar25;\n      puVar16[5] = uVar15;\n      if ((pbVar26 < (byte *)0x71) && ((uint **)(int)(char)pbVar26[iVar30] == name)) {\n        puVar25 = (uint *)(uint)pbVar26[iVar18];\n      }\n      else {\n        puVar25 = (uint *)(int)*(char *)(iVar10 + iVar5 + 0x6338);\n      }\n    }\n    puVar31 = (uint *)(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4);\n    ppuVar21 = name;\n    psVar32 = psVar27;\n    if (puVar31 != (uint *)0xffffffa3) goto LAB_00014f50;\nLAB_0001504c:\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    psVar32 = psVar27;\nLAB_00015050:\n    uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370);\n    if (uVar15 != 0) {\n      uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);\n      puVar19 = puVar14 + (1 - uVar22) * 0xe;\n      puVar25 = puVar19;\n      puVar31 = auStack_5b0;\n      do {\n        puVar20 = puVar31;\n        puVar16 = puVar25;\n        puVar25 = puVar16 + 4;\n        uVar24 = puVar16[1];\n        uVar23 = puVar16[2];\n        uVar17 = puVar16[3];\n        *puVar20 = *puVar16;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar17;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);\n      uVar17 = puVar16[5];\n      uVar23 = uVar15 - 4 & 0xff;\n      puVar20[4] = *puVar25;\n      puVar20[5] = uVar17;\n      puStack_674 = (uint *)puVar19[5];\n      in_t3 = puVar19[3];\n      in_t2 = (uint *)puVar19[2];\n      unaff_s6 = (short *)puVar19[4];\n      ppuVar28 = (uint **)puVar19[7];\n      in_t0 = (uint **)puVar19[6];\n      in_t5 = puVar19[9];\n      in_t4 = (uint **)puVar19[8];\n      uVar17 = puVar19[10];\n      in_t6 = puVar19[0xb];\n      in_t8 = puVar19[0xc];\n      if (uVar23 < 0x58) {\n                    /* WARNING: Could not recover jumptable at 0x00015220. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(puVar33 + *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))\n                  ();\n        return;\n      }\n      psVar32 = psVar32 + -uVar22;\n      puVar14 = puVar14 + uVar22 * -0xe;\n      iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;\n      iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);\n      puStack_66c = auStack_5b0;\n      goto LAB_00015adc;\n    }\n    if (iStack_670 == 3) {\n      if ((int)puVar29 < 1) {\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }\n    }\n    name = (uint **)0xffffffa3;\n    while ((((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar18), puVar25 == (uint *)0x0))) {\n      psVar27 = psVar32;\n      if (psVar32 == asStack_578) goto LAB_00015278;\n      psVar32 = psVar32 + -1;\n      puVar25 = (uint *)(int)*psVar32;\n      puVar14 = puVar14 + -0xe;\n    }\n    puVar14 = puVar14 + 0xe;\n    in_t0 = apuStack_5b8;\n    apuStack_5e8[3] = puStack_630;\n    apuStack_5e8[2] = puStack_65c;\n    iStack_5d8 = iStack_660;\n    ppuVar21 = apuStack_5e8;\n    puVar31 = puVar14;\n    do {\n      puVar19 = puVar31;\n      ppuVar12 = ppuVar21;\n      ppuVar21 = ppuVar12 + 4;\n      puVar20 = ppuVar12[1];\n      puVar16 = ppuVar12[2];\n      puVar31 = ppuVar12[3];\n      *puVar19 = (uint)*ppuVar12;\n      puVar19[1] = (uint)puVar20;\n      puVar19[2] = (uint)puVar16;\n      puVar19[3] = (uint)puVar31;\n      puVar31 = puVar19 + 4;\n    } while (ppuVar21 != in_t0);\n    name = (uint **)0x3;\n    puVar31 = ppuVar12[5];\n    iStack_670 = 3;\n    puVar19[4] = (uint)*ppuVar21;\n    puVar19[5] = (uint)puVar31;\n  } while( true );\nLAB_00015528:\n  puVar29 = (uint *)((int)puVar16 >> 0x1f);\n  bVar2 = false;\n  if (puVar29 == in_t2) {\n    in_t2 = (uint *)((uint)puVar16 >> 0x1e);\n    in_t0 = (uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar16 * 5) < (uint)((int)puVar16 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2);\n    name = (uint **)((uint)((int)puVar16 * 5) >> 0x1f | (uint)in_t0);\n  }\n  else {\n    ppuVar28 = (uint **)(ZEXT48(in_t2) * 10);\n    unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20);\n    in_t6 = (int)puVar16 * 4;\n    puStack_674 = (uint *)((uint)puVar16 >> 0x1e);\n    in_t0 = (uint **)((int)puVar16 * 10);\n    psVar27 = unaff_s6;\n    if ((int)in_t2 < 0) {\n      psVar27 = unaff_s6 + -5;\n    }\n    name = (uint **)((int)ppuVar28 +\n                    ((uint)((int)puVar16 * 5) >> 0x1f |\n                    (int)((int)puStack_674 + (uint)((uint)((int)puVar16 * 5) < in_t6)) * 2));\n    if ((int)name >> 0x1f != (uint)(name < ppuVar28) + (int)psVar27) {\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar16 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      name = (uint **)((uint)((int)puVar16 * 5) >> 0x1f | (uint)in_t0);\n    }\n  }\n  puVar29 = (uint *)((int)puVar16 * 10);\n  ppuVar28 = in_t4;\n  if (bVar2) goto LAB_00017ad0;\n  goto LAB_000153f8;\nLAB_00017ad0:\n  uVar15 = 2;\n  puVar29 = (uint *)0x3f;\n  puVar19 = (uint *)((int)puVar31 + 2);\n  goto LAB_00014f74;\n  while( true ) {\n    if (bVar13 == 0x28) {\n      iVar9 = iVar9 + 1;\n    }\n    else if (bVar13 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }\n    if (iVar9 == 0) break;\nLAB_000157a8:\n    name = ppuVar21;\n    ppuVar21 = (uint **)((int)name + 1);\n    pc_00->input = (char *)ppuVar21;\n    bVar13 = *(byte *)name;\n    if (bVar13 == 0) goto LAB_000152b8;\n  }\n  bVar13 = *(byte *)((int)name + 1);\n  goto LAB_000152f0;\n}" primitive_type (function_declarator "debug_print_current_time(char *item,parser_control *pc)" identifier (parameter_list "(char *item,parser_control *pc)" ( (parameter_declaration "char *item" primitive_type (pointer_declarator "*item" * identifier)) , (parameter_declaration "parser_control *pc" type_identifier (pointer_declarator "*pc" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  int *piVar8;\n  int iVar9;\n  byte bVar13;\n  int iVar10;\n  table *ptVar11;\n  uint **ppuVar12;\n  uint *puVar14;\n  parser_control *pc_00;\n  uint uVar15;\n  uint **name;\n  uint *puVar16;\n  uint uVar17;\n  int iVar18;\n  uint *puVar19;\n  uint *puVar20;\n  uint **ppuVar21;\n  uint uVar22;\n  uint uVar23;\n  uint **in_t0;\n  uint uVar24;\n  uint *in_t2;\n  uint in_t3;\n  uint **in_t4;\n  uint in_t5;\n  uint in_t6;\n  uint *puVar25;\n  byte *pbVar26;\n  short *psVar27;\n  uint **ppuVar28;\n  uint *puVar29;\n  int iVar30;\n  undefined *unaff_s4;\n  uint *puVar31;\n  short *psVar32;\n  short *unaff_s6;\n  uint in_t8;\n  undefined *puVar33;\n  code *pcVar34;\n  uint *puStack_674;\n  int iStack_670;\n  uint *puStack_66c;\n  int iStack_660;\n  uint *puStack_65c;\n  uint *puStack_630;\n  uint *apuStack_5e8 [4];\n  int iStack_5d8;\n  uint *apuStack_5b8 [2];\n  uint auStack_5b0 [2];\n  uint *puStack_5a8;\n  uint uStack_5a4;\n  short *apsStack_5a0 [2];\n  uint **ppuStack_598;\n  uint **ppuStack_594;\n  uint **ppuStack_590;\n  uint uStack_58c;\n  uint uStack_588;\n  uint uStack_584;\n  uint auStack_580 [2];\n  short asStack_578 [19];\n  short sStack_552;\n  uint auStack_550 [279];\n  byte abStack_f1 [21];\n  int iStack_dc;\n  parser_control *ppStack_d8;\n  uint **ppuStack_d4;\n  undefined *puStack_d0;\n  undefined *puStack_cc;\n  undefined *puStack_c8;\n  char tmp [100];\n  \n  puVar3 = PTR___stack_chk_guard_00038350;\n  iVar5 = *(int *)PTR___stack_chk_guard_00038350;\n  pcVar6 = (char *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x50a0,5);\n  dbg_printf(pcVar6,item);\n  puVar4 = PTR_stderr_00038360;\n  if (pc->dates_seen == 0) {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (pc->year_seen != pc->debug_year_seen) goto LAB_00014a30;\nLAB_00014c7c:\n    uVar17 = 0;\n  }\n  else {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (pc->debug_dates_seen == false) {\n      in_t3 = (uint)pc->month;\n      in_t2 = *(uint **)&pc->month;\n      in_t0 = *(uint ***)&(pc->year).value;\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      pc->debug_dates_seen = true;\n      if (pc->year_seen == pc->debug_year_seen) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar17 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else if (pc->year_seen == pc->debug_year_seen) goto LAB_00014c7c;\nLAB_00014a30:\n    uVar7 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);\n    in_t0 = *(uint ***)&(pc->year).value;\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar7);\n    uVar17 = 1;\n    ppuVar28 = *(uint ***)puVar4;\n    pc->debug_year_seen = pc->year_seen;\n  }\nLAB_00014a80:\n  if ((pc->times_seen == 0) || (pc->debug_times_seen != false)) {\n    if ((pc->days_seen != 0) && (pc->debug_days_seen == false)) {\n      if (uVar17 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      iVar18 = 5;\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c);\n      pcVar6 = str_days(pc,tmp,iVar18);\n      in_t0 = *(uint ***)&pc->day_ordinal;\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,pcVar6);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar17 = 1;\n      pc->debug_days_seen = true;\n    }\n  }\n  else {\n    in_t3 = (uint)pc->minutes;\n    in_t2 = *(uint **)&pc->minutes;\n    in_t0 = *(uint ***)&pc->hour;\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar17 ^ 1) + 0x5168);\n    if ((pc->seconds).tv_nsec != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }\n    ppuVar28 = *(uint ***)puVar4;\n    if (pc->meridian == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    pc->debug_times_seen = true;\n    if (pc->days_seen == 0) {\n      uVar17 = 1;\n    }\n    else {\n      uVar17 = (uint)pc->debug_days_seen;\n      if (uVar17 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }\n  }\n  if ((pc->local_zones_seen == 0) || (pc->debug_local_zones_seen != false)) {\n    if ((pc->zones_seen == 0) || (unaff_s4 = PTR_LAB_0003811c, pc->debug_zones_seen != false)) {\n      if (pc->timespec_seen == false) goto LAB_00014bb0;\n      pc = (parser_control *)(pc->seconds).tv_sec;\n      unaff_s4 = (undefined *)((int)pc >> 0x1f);\n      if (uVar17 != 0) goto LAB_00014d8c;\n      goto LAB_00014c1c;\n    }\n    unaff_s4 = PTR_LAB_0003811c + (uVar17 ^ 1) + 0x5130;\nLAB_00014d38:\n    pcVar6 = time_zone_str(pc->time_zone,tmp);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,pcVar6);\n    pc->debug_zones_seen = true;\n    if (pc->timespec_seen != false) {\n      pc = (parser_control *)(pc->seconds).tv_sec;\n      ppuVar28 = *(uint ***)puVar4;\n      goto LAB_00014d88;\n    }\n  }\n  else {\n    (*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar17 ^ 1) + 0x51ac,pc->local_isdst);\n    pc->debug_local_zones_seen = true;\n    if (pc->zones_seen == 0) {\n      cVar1 = pc->timespec_seen;\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (pc->debug_zones_seen == false) {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = pc->timespec_seen;\n    }\n    if (cVar1 == '\0') goto LAB_00014bb0;\n    pc = (parser_control *)(pc->seconds).tv_sec;\nLAB_00014d88:\n    unaff_s4 = (undefined *)((int)pc >> 0x1f);\nLAB_00014d8c:\n    (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n    ppuVar28 = *(uint ***)puVar4;\nLAB_00014c1c:\n    uVar7 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar7);\n  }\n  ppuVar28 = *(uint ***)puVar4;\nLAB_00014bb0:\n  pc_00 = (parser_control *)&DAT_0000000a;\n  ppuVar21 = ppuVar28;\n  (*(code *)PTR_fputc_00038298)();\n  if (iVar5 == *(int *)puVar3) {\n    return;\n  }\n  puVar33 = PTR___stack_chk_fail_00038334;\n  (*(code *)PTR___stack_chk_fail_00038334)();\n  piVar8 = *(int **)(puVar33 + 0x234a4);\n  uVar17 = 0xfffffffe;\n  puStack_cc = puVar3;\n  puVar31 = (uint *)&DAT_00000026;\n  iStack_dc = *piVar8;\n  iVar5 = *(int *)(puVar33 + 0x23270);\n  puStack_c8 = unaff_s4;\n  puStack_d0 = puVar4;\n  puVar14 = auStack_550;\n  ppuStack_d4 = ppuVar28;\n  puVar29 = (uint *)0xfffffffe;\n  iVar30 = *(int *)(puVar33 + 0x23270) + 0x6250;\n  ppStack_d8 = pc;\n  puVar25 = (uint *)0x0;\n  iVar18 = *(int *)(puVar33 + 0x23270) + 0x62c4;\n  asStack_578[0] = 0;\n  iStack_670 = 0;\n  psVar32 = asStack_578;\nLAB_00014f50:\n  ppuVar28 = (uint **)0x800000;\n  puVar19 = puVar31;\n  if (puVar29 == (uint *)0xfffffffe) {\n    ppuVar21 = (uint **)pc_00->input;\n    in_t2 = (uint *)0x1;\n    ppuVar28 = (uint **)0x80001f;\n    in_t4 = (uint **)0x2d;\n    bVar13 = *(byte *)ppuVar21;\n    in_t5 = 0x2b;\n    in_t6 = 0x28;\n    uVar17 = 0x29;\nLAB_000152f0:\n    in_t0 = (uint **)(int)(char)bVar13;\n    uVar15 = (uint)bVar13;\nLAB_000152f4:\n    uVar22 = uVar15 - 9;\n    name = (uint **)(uint)(uVar22 < 0x18);\n    if (name == (uint **)0x0) goto LAB_000153a8;\nLAB_00015308:\n    ppuVar12 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f);\n    while (ppuVar12 != (uint **)0x0) {\n      ppuVar21 = (uint **)((int)ppuVar21 + 1);\n      pc_00->input = (char *)ppuVar21;\n      in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n      uVar15 = (uint)*(byte *)ppuVar21;\n      name = (uint **)(uVar15 - 9);\n      if ((uint **)0x17 < name) goto LAB_000153a8;\n      name = (uint **)(1 << ((uint)name & 0x1f) & 0x80001f);\n      ppuVar12 = name;\n    }\nLAB_00015344:\n    in_t3 = 0xffffffff;\n    if (uVar15 == 0x2d) goto LAB_00015358;\n    if (uVar15 == 0x2b) goto LAB_00015354;\n    if ((0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))\n       ) {\n      pbVar26 = (byte *)pc_00->input;\n      name = (uint **)(abStack_f1 + 1);\n      in_t0 = (uint **)(abStack_f1 + 0x14);\n      ppuVar28 = (uint **)&DAT_0000002e;\n      ppuVar21 = name;\n      do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        pc_00->input = (char *)pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));\n      *(byte *)ppuVar21 = 0;\n      ppuVar21 = name;\n      bVar13 = abStack_f1[1];\n      while (bVar13 != 0) {\n        if (bVar13 - 0x61 < 0x1a) {\n          bVar13 = bVar13 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar13;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar13 = *(byte *)ppuVar21;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);\n      do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(name);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(name);\n      if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);\n      do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(name,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(name);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      iVar9 = *(int *)(puVar33 + 0x2326c);\n      ppuVar21 = name;\n      ptVar11 = lookup_zone(pc_00,(char *)name);\n      unaff_s6 = asStack_578;\n      if (ptVar11 != (table *)0x0) {\n        puVar29 = (uint *)ptVar11->type;\n        apuStack_5e8[1] = (uint *)ptVar11->value;\n        apuStack_5e8[0] = (uint *)(ptVar11->value >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);\n      iVar10 = (**(code **)(puVar33 + 0x234c8))(name);\n      if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        name = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);\n      ppuVar12 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);\n      ppuVar21 = ppuVar12;\n      psVar27 = unaff_s6;\n      do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(name);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);\n      pbVar26 = (byte *)((int)name + (int)((int)puStack_674 + -1));\n      if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(name);\n          ppuVar21 = ppuVar12;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar12 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar12 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);\n      pcVar34 = *(code **)(puVar33 + 0x234c8);\n      do {\n        iVar10 = (*pcVar34)(name);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);\n      if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar12 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar12;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar12 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }\n      if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = name;\n        ppuVar12 = name;\n        bVar13 = abStack_f1[1];\n        do {\n          if (bVar13 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar12 = (uint **)((int)ppuVar12 + 1);\n          bVar13 = *(byte *)ppuVar12;\n          *(byte *)ppuVar21 = bVar13;\n        } while (bVar13 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = name, iVar9 = (*(code *)(&DAT_00004388 + iVar9))(pc_00), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }\n      ppuVar21 = *(uint ***)(puVar33 + 0x23270);\n      if (pc_00->parse_datetime_debug == false) goto LAB_00017ae0;\n      pcVar6 = (char *)(**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5)\n      ;\n      puVar29 = (uint *)0x3f;\n      dbg_printf(pcVar6);\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n      goto LAB_00014f74;\n    }\n    iVar9 = 0;\n    if (uVar15 == 0x28) {\n      ppuVar21 = (uint **)pc_00->input;\n      goto LAB_000157a8;\n    }\n    pc_00->input = (char *)((int)ppuVar21 + 1);\n    puVar29 = (uint *)(uint)*(byte *)ppuVar21;\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if (puVar29 != (uint *)0x0) goto LAB_0001558c;\n    uVar15 = 0;\n    goto LAB_00014f74;\n  }\nLAB_00014f5c:\n  name = ppuVar21;\n  if ((int)puVar29 < 1) {\nLAB_000152b8:\n    uVar15 = 0;\n    puVar29 = (uint *)0x0;\n  }\n  else {\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if ((int)puVar29 < 0x116) {\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }\n    else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }\n  }\n  goto LAB_00014f74;\nLAB_00015354:\n  do {\n    in_t3 = 1;\nLAB_00015358:\n    while( true ) {\n      ppuVar21 = (uint **)pc_00->input;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        pc_00->input = (char *)ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      name = (uint **)(uint)(uVar22 < 0x18);\n      if (name != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }\n    in_t3 = 0;\n  } while (uVar15 == 0x2b);\n  ppuVar21 = (uint **)pc_00->input;\nLAB_000153dc:\n  name = (uint **)0x0;\n  puVar29 = (uint *)0x0;\n  in_t5 = 0xffffffff;\n  uVar17 = 0x30;\n  in_t8 = 10;\n  ppuVar28 = ppuVar21;\nLAB_000153f8:\n  if (in_t3 == 0xffffffff) {\n    uVar22 = 0x30 - uVar15;\n  }\n  uVar15 = (int)uVar22 >> 0x1f;\n  puVar16 = (uint *)((int)puVar29 + uVar22);\n  in_t2 = (uint *)((int)name + (puVar16 < puVar29) + uVar15);\n  in_t4 = (uint **)((uint)in_t2 ^ uVar15);\n  name = (uint **)((uint)in_t4 & ~((uint)name ^ uVar15));\n  if ((int)name < 0) goto LAB_00017ad0;\n  uVar15 = (uint)*(byte *)((int)ppuVar28 + 1);\n  uVar22 = uVar15 - 0x30;\n  in_t4 = (uint **)((int)ppuVar28 + 1);\n  if (uVar22 < 10) goto LAB_00015528;\n  name = (uint **)0xfffffffd;\n  if (((*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c) ||\n     (puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29)) {\n    pc_00->input = (char *)in_t4;\n    uVar15 = 0x13;\n    apuStack_5e8[0] = (uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_);\n    puVar29 = (uint *)0x112;\n    if (in_t3 == 0) {\n      uVar15 = 0x14;\n    }\n    iStack_660 = (int)in_t4 - (int)ppuVar21;\n    if (in_t3 == 0) {\n      puVar29 = (uint *)0x113;\n    }\n    puVar19 = (uint *)((int)puVar31 + uVar15);\n    puStack_65c = in_t2;\n    puStack_630 = puVar16;\n    goto LAB_00014f74;\n  }\n  in_t2 = (uint *)((int)in_t2 + (uint)(puVar16 + -0x20000000 < puVar16));\n  iVar9 = 8;\n  ppuVar21 = name;\n  if (in_t2 != (uint *)0x0) goto LAB_00017ae0;\n  in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 3);\n  ppuVar28 = (uint **)((int)ppuVar28 + 3);\n  ppuVar21 = in_t0 + -0xc;\n  name = (uint **)((int)puVar29 * 4);\n  do {\n    puVar29 = (uint *)((int)((int)name + (int)puVar29) * 2);\n    if (ppuVar21 < &DAT_0000000a) {\n      in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);\n      puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n      ppuVar21 = in_t0 + -0xc;\n    }\n    iVar9 = iVar9 + -1;\n    name = (uint **)((int)puVar29 << 2);\n  } while (iVar9 != 0);\n  in_t2 = puVar16;\n  if (in_t3 == 0xffffffff) {\n    ppuVar12 = in_t0;\n    if (ppuVar21 < &DAT_0000000a) {\n      do {\n        if (ppuVar12 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        name = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar12 = name;\n      } while (name + -0xc <= &DAT_00000009);\n    }\nLAB_00015c20:\n    if (puVar29 != (uint *)0x0) {\n      in_t2 = (uint *)((int)puVar16 + -1);\n      ppuVar21 = name;\n      if (puVar16 == (uint *)0x80000000) {\nLAB_00017ae0:\n        name = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }\n    uVar15 = 0x15;\n    apuStack_5e8[1] = puVar29;\n    apuStack_5e8[0] = in_t2;\n    puVar29 = (uint *)0x114;\n    pc_00->input = (char *)ppuVar28;\n    puVar19 = (uint *)((int)puVar31 + 0x15);\n    goto LAB_00014f74;\n  }\n  if (ppuVar21 < &DAT_0000000a) {\nLAB_000154dc:\n    do {\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    } while ((int)(char)*(byte *)ppuVar28 - 0x30U < 10);\n    if (in_t3 == 0xffffffff) goto LAB_00015c20;\n  }\n  apuStack_5e8[0] = puVar16;\n  uVar15 = 0x16;\n  apuStack_5e8[1] = puVar29;\n  puVar29 = (uint *)0x115;\n  pc_00->input = (char *)ppuVar28;\n  if (in_t3 != 0) {\n    uVar15 = 0x15;\n    puVar29 = (uint *)0x114;\n  }\n  puVar19 = (uint *)((int)puVar31 + uVar15);\nLAB_00014f74:\n  psVar27 = psVar32;\n  if ((uint *)0x70 < puVar19) goto LAB_0001504c;\n  iVar9 = *(int *)(puVar33 + 0x23270);\n  if ((int)(char)*(byte *)((int)puVar19 + iVar30) != uVar15) goto LAB_00015050;\n  puVar25 = (uint *)(uint)*(byte *)((int)puVar19 + iVar18);\n  if (puVar25 == (uint *)0x0) {\n    puStack_66c = auStack_5b0;\n    puVar25 = puVar14 + 0xe;\n    puVar31 = puStack_66c;\n    do {\n      puVar16 = puVar31;\n      puVar19 = puVar25;\n      puVar25 = puVar19 + 4;\n      uVar22 = puVar19[1];\n      uVar15 = puVar19[2];\n      uVar17 = puVar19[3];\n      *puVar16 = *puVar19;\n      puVar16[1] = uVar22;\n      puVar16[2] = uVar15;\n      puVar16[3] = uVar17;\n      puVar31 = puVar16 + 4;\n    } while (puVar25 != puVar14 + 0x1a);\n    uVar17 = puVar19[5];\n    iVar10 = -0x1c;\n    puVar16[4] = *puVar25;\n    puVar16[5] = uVar17;\n    puStack_674 = (uint *)puVar14[0x13];\n    in_t3 = puVar14[0x11];\n    in_t2 = (uint *)puVar14[0x10];\n    unaff_s6 = (short *)puVar14[0x12];\n    ppuVar28 = (uint **)puVar14[0x15];\n    in_t0 = (uint **)puVar14[0x14];\n    in_t5 = puVar14[0x17];\n    in_t4 = (uint **)puVar14[0x16];\n    uVar17 = puVar14[0x18];\n    in_t6 = puVar14[0x19];\n    in_t8 = puVar14[0x1a];\n    iVar9 = 0;\n    goto LAB_00015adc;\n  }\n  if (iStack_670 != 0) {\n    iStack_670 = iStack_670 + -1;\n  }\n  puVar14 = puVar14 + 0xe;\n  in_t0 = apuStack_5b8;\n  apuStack_5e8[3] = puStack_630;\n  apuStack_5e8[2] = puStack_65c;\n  iStack_5d8 = iStack_660;\n  ppuVar21 = apuStack_5e8;\n  puVar29 = puVar14;\n  do {\n    puVar31 = puVar29;\n    ppuVar12 = ppuVar21;\n    ppuVar21 = ppuVar12 + 4;\n    puVar19 = ppuVar12[1];\n    name = (uint **)ppuVar12[2];\n    puVar29 = ppuVar12[3];\n    *puVar31 = (uint)*ppuVar12;\n    puVar31[1] = (uint)puVar19;\n    puVar31[2] = (uint)name;\n    puVar31[3] = (uint)puVar29;\n    puVar29 = puVar31 + 4;\n  } while (ppuVar21 != in_t0);\n  puVar29 = (uint *)0xfffffffe;\n  puVar19 = ppuVar12[5];\n  puVar31[4] = (uint)*ppuVar21;\n  puVar31[5] = (uint)puVar19;\n  do {\n    while( true ) {\n      psVar27 = psVar32 + 1;\n      psVar32[1] = (short)puVar25;\n      if ((psVar27 < &sStack_552) && (puVar25 != (uint *)0xc)) break;\nLAB_00015278:\n      do {\n        do {\n          if (iStack_dc == *piVar8) {\n            return;\n          }\n          iVar9 = iStack_dc;\n          uVar7 = (**(code **)(puVar33 + 0x23488))();\n          bVar2 = name == (uint **)0x0;\n          *(undefined4 *)&pc_00->day = uVar7;\n          *(int *)((int)&pc_00->day + 4) = iVar9;\n        } while (bVar2);\n        name = (uint **)puVar14[3];\n        if (puVar14[2] == 0x80000000) {\n          bVar2 = name == (uint **)0x0;\n        }\n        *(uint *)&(pc_00->year).value = -(uint)(-(int)name != 0) - puVar14[2];\n        *(int *)((int)&(pc_00->year).value + 4) = -(int)name;\n      } while (bVar2);\n      puVar25 = puVar14 + 4;\n      puVar14 = puVar14 + -0x2a;\n      psVar32 = psVar27 + -3;\n      iVar10 = 0xe;\n      (pc_00->year).digits = *puVar25;\n      iVar9 = -0x5d;\nLAB_00015adc:\n      puVar14 = puVar14 + 0xe;\n      puStack_5a8 = in_t2;\n      in_t2 = auStack_580;\n      uStack_5a4 = in_t3;\n      apsStack_5a0[1] = (short *)puStack_674;\n      apsStack_5a0[0] = unaff_s6;\n      ppuStack_594 = ppuVar28;\n      ppuStack_598 = in_t0;\n      uStack_58c = in_t5;\n      ppuStack_590 = in_t4;\n      uStack_588 = uVar17;\n      uStack_584 = in_t6;\n      auStack_580[0] = in_t8;\n      puVar25 = puStack_66c;\n      puVar31 = puVar14;\n      do {\n        puVar16 = puVar31;\n        puVar19 = puVar25;\n        in_t0 = (uint **)*puVar19;\n        puVar25 = puVar19 + 4;\n        uVar23 = puVar19[1];\n        uVar22 = puVar19[2];\n        uVar15 = puVar19[3];\n        *puVar16 = (uint)in_t0;\n        puVar16[1] = uVar23;\n        puVar16[2] = uVar22;\n        puVar16[3] = uVar15;\n        puVar31 = puVar16 + 4;\n      } while (puVar25 != in_t2);\n      name = (uint **)(int)*psVar32;\n      uVar15 = puVar19[5];\n      pbVar26 = (byte *)((int)name + iVar9);\n      puVar16[4] = *puVar25;\n      puVar16[5] = uVar15;\n      if ((pbVar26 < (byte *)0x71) && ((uint **)(int)(char)pbVar26[iVar30] == name)) {\n        puVar25 = (uint *)(uint)pbVar26[iVar18];\n      }\n      else {\n        puVar25 = (uint *)(int)*(char *)(iVar10 + iVar5 + 0x6338);\n      }\n    }\n    puVar31 = (uint *)(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4);\n    ppuVar21 = name;\n    psVar32 = psVar27;\n    if (puVar31 != (uint *)0xffffffa3) goto LAB_00014f50;\nLAB_0001504c:\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    psVar32 = psVar27;\nLAB_00015050:\n    uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370);\n    if (uVar15 != 0) {\n      uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);\n      puVar19 = puVar14 + (1 - uVar22) * 0xe;\n      puVar25 = puVar19;\n      puVar31 = auStack_5b0;\n      do {\n        puVar20 = puVar31;\n        puVar16 = puVar25;\n        puVar25 = puVar16 + 4;\n        uVar24 = puVar16[1];\n        uVar23 = puVar16[2];\n        uVar17 = puVar16[3];\n        *puVar20 = *puVar16;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar17;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);\n      uVar17 = puVar16[5];\n      uVar23 = uVar15 - 4 & 0xff;\n      puVar20[4] = *puVar25;\n      puVar20[5] = uVar17;\n      puStack_674 = (uint *)puVar19[5];\n      in_t3 = puVar19[3];\n      in_t2 = (uint *)puVar19[2];\n      unaff_s6 = (short *)puVar19[4];\n      ppuVar28 = (uint **)puVar19[7];\n      in_t0 = (uint **)puVar19[6];\n      in_t5 = puVar19[9];\n      in_t4 = (uint **)puVar19[8];\n      uVar17 = puVar19[10];\n      in_t6 = puVar19[0xb];\n      in_t8 = puVar19[0xc];\n      if (uVar23 < 0x58) {\n                    /* WARNING: Could not recover jumptable at 0x00015220. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(puVar33 + *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))\n                  ();\n        return;\n      }\n      psVar32 = psVar32 + -uVar22;\n      puVar14 = puVar14 + uVar22 * -0xe;\n      iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;\n      iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);\n      puStack_66c = auStack_5b0;\n      goto LAB_00015adc;\n    }\n    if (iStack_670 == 3) {\n      if ((int)puVar29 < 1) {\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }\n    }\n    name = (uint **)0xffffffa3;\n    while ((((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar18), puVar25 == (uint *)0x0))) {\n      psVar27 = psVar32;\n      if (psVar32 == asStack_578) goto LAB_00015278;\n      psVar32 = psVar32 + -1;\n      puVar25 = (uint *)(int)*psVar32;\n      puVar14 = puVar14 + -0xe;\n    }\n    puVar14 = puVar14 + 0xe;\n    in_t0 = apuStack_5b8;\n    apuStack_5e8[3] = puStack_630;\n    apuStack_5e8[2] = puStack_65c;\n    iStack_5d8 = iStack_660;\n    ppuVar21 = apuStack_5e8;\n    puVar31 = puVar14;\n    do {\n      puVar19 = puVar31;\n      ppuVar12 = ppuVar21;\n      ppuVar21 = ppuVar12 + 4;\n      puVar20 = ppuVar12[1];\n      puVar16 = ppuVar12[2];\n      puVar31 = ppuVar12[3];\n      *puVar19 = (uint)*ppuVar12;\n      puVar19[1] = (uint)puVar20;\n      puVar19[2] = (uint)puVar16;\n      puVar19[3] = (uint)puVar31;\n      puVar31 = puVar19 + 4;\n    } while (ppuVar21 != in_t0);\n    name = (uint **)0x3;\n    puVar31 = ppuVar12[5];\n    iStack_670 = 3;\n    puVar19[4] = (uint)*ppuVar21;\n    puVar19[5] = (uint)puVar31;\n  } while( true );\nLAB_00015528:\n  puVar29 = (uint *)((int)puVar16 >> 0x1f);\n  bVar2 = false;\n  if (puVar29 == in_t2) {\n    in_t2 = (uint *)((uint)puVar16 >> 0x1e);\n    in_t0 = (uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar16 * 5) < (uint)((int)puVar16 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2);\n    name = (uint **)((uint)((int)puVar16 * 5) >> 0x1f | (uint)in_t0);\n  }\n  else {\n    ppuVar28 = (uint **)(ZEXT48(in_t2) * 10);\n    unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20);\n    in_t6 = (int)puVar16 * 4;\n    puStack_674 = (uint *)((uint)puVar16 >> 0x1e);\n    in_t0 = (uint **)((int)puVar16 * 10);\n    psVar27 = unaff_s6;\n    if ((int)in_t2 < 0) {\n      psVar27 = unaff_s6 + -5;\n    }\n    name = (uint **)((int)ppuVar28 +\n                    ((uint)((int)puVar16 * 5) >> 0x1f |\n                    (int)((int)puStack_674 + (uint)((uint)((int)puVar16 * 5) < in_t6)) * 2));\n    if ((int)name >> 0x1f != (uint)(name < ppuVar28) + (int)psVar27) {\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar16 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      name = (uint **)((uint)((int)puVar16 * 5) >> 0x1f | (uint)in_t0);\n    }\n  }\n  puVar29 = (uint *)((int)puVar16 * 10);\n  ppuVar28 = in_t4;\n  if (bVar2) goto LAB_00017ad0;\n  goto LAB_000153f8;\nLAB_00017ad0:\n  uVar15 = 2;\n  puVar29 = (uint *)0x3f;\n  puVar19 = (uint *)((int)puVar31 + 2);\n  goto LAB_00014f74;\n  while( true ) {\n    if (bVar13 == 0x28) {\n      iVar9 = iVar9 + 1;\n    }\n    else if (bVar13 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }\n    if (iVar9 == 0) break;\nLAB_000157a8:\n    name = ppuVar21;\n    ppuVar21 = (uint **)((int)name + 1);\n    pc_00->input = (char *)ppuVar21;\n    bVar13 = *(byte *)name;\n    if (bVar13 == 0) goto LAB_000152b8;\n  }\n  bVar13 = *(byte *)((int)name + 1);\n  goto LAB_000152f0;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "table *ptVar11;" type_identifier (pointer_declarator "*ptVar11" * identifier) ;) (declaration "uint **ppuVar12;" type_identifier (pointer_declarator "**ppuVar12" * (pointer_declarator "*ppuVar12" * identifier)) ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "parser_control *pc_00;" type_identifier (pointer_declarator "*pc_00" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint **name;" type_identifier (pointer_declarator "**name" * (pointer_declarator "*name" * identifier)) ;) (declaration "uint *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "uint *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "uint *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "uint **ppuVar21;" type_identifier (pointer_declarator "**ppuVar21" * (pointer_declarator "*ppuVar21" * identifier)) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "uint **in_t0;" type_identifier (pointer_declarator "**in_t0" * (pointer_declarator "*in_t0" * identifier)) ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "uint *in_t2;" type_identifier (pointer_declarator "*in_t2" * identifier) ;) (declaration "uint in_t3;" type_identifier identifier ;) (declaration "uint **in_t4;" type_identifier (pointer_declarator "**in_t4" * (pointer_declarator "*in_t4" * identifier)) ;) (declaration "uint in_t5;" type_identifier identifier ;) (declaration "uint in_t6;" type_identifier identifier ;) (declaration "uint *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "byte *pbVar26;" type_identifier (pointer_declarator "*pbVar26" * identifier) ;) (declaration "short *psVar27;" (sized_type_specifier "short" short) (pointer_declarator "*psVar27" * identifier) ;) (declaration "uint **ppuVar28;" type_identifier (pointer_declarator "**ppuVar28" * (pointer_declarator "*ppuVar28" * identifier)) ;) (declaration "uint *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "undefined *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "uint *puVar31;" type_identifier (pointer_declarator "*puVar31" * identifier) ;) (declaration "short *psVar32;" (sized_type_specifier "short" short) (pointer_declarator "*psVar32" * identifier) ;) (declaration "short *unaff_s6;" (sized_type_specifier "short" short) (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "uint in_t8;" type_identifier identifier ;) (declaration "undefined *puVar33;" type_identifier (pointer_declarator "*puVar33" * identifier) ;) (declaration "code *pcVar34;" type_identifier (pointer_declarator "*pcVar34" * identifier) ;) (declaration "uint *puStack_674;" type_identifier (pointer_declarator "*puStack_674" * identifier) ;) (declaration "int iStack_670;" primitive_type identifier ;) (declaration "uint *puStack_66c;" type_identifier (pointer_declarator "*puStack_66c" * identifier) ;) (declaration "int iStack_660;" primitive_type identifier ;) (declaration "uint *puStack_65c;" type_identifier (pointer_declarator "*puStack_65c" * identifier) ;) (declaration "uint *puStack_630;" type_identifier (pointer_declarator "*puStack_630" * identifier) ;) (declaration "uint *apuStack_5e8 [4];" type_identifier (pointer_declarator "*apuStack_5e8 [4]" * (array_declarator "apuStack_5e8 [4]" identifier [ number_literal ])) ;) (declaration "int iStack_5d8;" primitive_type identifier ;) (declaration "uint *apuStack_5b8 [2];" type_identifier (pointer_declarator "*apuStack_5b8 [2]" * (array_declarator "apuStack_5b8 [2]" identifier [ number_literal ])) ;) (declaration "uint auStack_5b0 [2];" type_identifier (array_declarator "auStack_5b0 [2]" identifier [ number_literal ]) ;) (declaration "uint *puStack_5a8;" type_identifier (pointer_declarator "*puStack_5a8" * identifier) ;) (declaration "uint uStack_5a4;" type_identifier identifier ;) (declaration "short *apsStack_5a0 [2];" (sized_type_specifier "short" short) (pointer_declarator "*apsStack_5a0 [2]" * (array_declarator "apsStack_5a0 [2]" identifier [ number_literal ])) ;) (declaration "uint **ppuStack_598;" type_identifier (pointer_declarator "**ppuStack_598" * (pointer_declarator "*ppuStack_598" * identifier)) ;) (declaration "uint **ppuStack_594;" type_identifier (pointer_declarator "**ppuStack_594" * (pointer_declarator "*ppuStack_594" * identifier)) ;) (declaration "uint **ppuStack_590;" type_identifier (pointer_declarator "**ppuStack_590" * (pointer_declarator "*ppuStack_590" * identifier)) ;) (declaration "uint uStack_58c;" type_identifier identifier ;) (declaration "uint uStack_588;" type_identifier identifier ;) (declaration "uint uStack_584;" type_identifier identifier ;) (declaration "uint auStack_580 [2];" type_identifier (array_declarator "auStack_580 [2]" identifier [ number_literal ]) ;) (declaration "short asStack_578 [19];" (sized_type_specifier "short" short) (array_declarator "asStack_578 [19]" identifier [ number_literal ]) ;) (declaration "short sStack_552;" (sized_type_specifier "short" short) identifier ;) (declaration "uint auStack_550 [279];" type_identifier (array_declarator "auStack_550 [279]" identifier [ number_literal ]) ;) (declaration "byte abStack_f1 [21];" type_identifier (array_declarator "abStack_f1 [21]" identifier [ number_literal ]) ;) (declaration "int iStack_dc;" primitive_type identifier ;) (declaration "parser_control *ppStack_d8;" type_identifier (pointer_declarator "*ppStack_d8" * identifier) ;) (declaration "uint **ppuStack_d4;" type_identifier (pointer_declarator "**ppuStack_d4" * (pointer_declarator "*ppuStack_d4" * identifier)) ;) (declaration "undefined *puStack_d0;" type_identifier (pointer_declarator "*puStack_d0" * identifier) ;) (declaration "undefined *puStack_cc;" type_identifier (pointer_declarator "*puStack_cc" * identifier) ;) (declaration "undefined *puStack_c8;" type_identifier (pointer_declarator "*puStack_c8" * identifier) ;) (declaration "char tmp [100];" primitive_type (array_declarator "tmp [100]" identifier [ number_literal ]) ;) (expression_statement "puVar3 = PTR___stack_chk_guard_00038350;" (assignment_expression "puVar3 = PTR___stack_chk_guard_00038350" identifier = identifier) ;) (expression_statement "iVar5 = *(int *)PTR___stack_chk_guard_00038350;" (assignment_expression "iVar5 = *(int *)PTR___stack_chk_guard_00038350" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00038350" * (cast_expression "(int *)PTR___stack_chk_guard_00038350" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar6 = (char *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x50a0,5);" (assignment_expression "pcVar6 = (char *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x50a0,5)" identifier = (cast_expression "(char *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x50a0,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x50a0,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00038338)" ( (pointer_expression "*(code *)PTR_dcgettext_00038338" * (cast_expression "(code *)PTR_dcgettext_00038338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_LAB_0003811c + 0x50a0,5)" ( number_literal , (binary_expression "PTR_LAB_0003811c + 0x50a0" identifier + number_literal) , number_literal ))))) ;) (expression_statement "dbg_printf(pcVar6,item);" (call_expression "dbg_printf(pcVar6,item)" identifier (argument_list "(pcVar6,item)" ( identifier , identifier ))) ;) (expression_statement "puVar4 = PTR_stderr_00038360;" (assignment_expression "puVar4 = PTR_stderr_00038360" identifier = identifier) ;) (if_statement "if (pc->dates_seen == 0) {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (pc->year_seen != pc->debug_year_seen) goto LAB_00014a30;\nLAB_00014c7c:\n    uVar17 = 0;\n  }\n  else {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (pc->debug_dates_seen == false) {\n      in_t3 = (uint)pc->month;\n      in_t2 = *(uint **)&pc->month;\n      in_t0 = *(uint ***)&(pc->year).value;\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      pc->debug_dates_seen = true;\n      if (pc->year_seen == pc->debug_year_seen) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar17 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else if (pc->year_seen == pc->debug_year_seen) goto LAB_00014c7c;\nLAB_00014a30:\n    uVar7 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);\n    in_t0 = *(uint ***)&(pc->year).value;\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar7);\n    uVar17 = 1;\n    ppuVar28 = *(uint ***)puVar4;\n    pc->debug_year_seen = pc->year_seen;\n  }" if (parenthesized_expression "(pc->dates_seen == 0)" ( (binary_expression "pc->dates_seen == 0" (field_expression "pc->dates_seen" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (pc->year_seen != pc->debug_year_seen) goto LAB_00014a30;\nLAB_00014c7c:\n    uVar17 = 0;\n  }" { (expression_statement "ppuVar28 = *(uint ***)PTR_stderr_00038360;" (assignment_expression "ppuVar28 = *(uint ***)PTR_stderr_00038360" identifier = (pointer_expression "*(uint ***)PTR_stderr_00038360" * (cast_expression "(uint ***)PTR_stderr_00038360" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (if_statement "if (pc->year_seen != pc->debug_year_seen) goto LAB_00014a30;" if (parenthesized_expression "(pc->year_seen != pc->debug_year_seen)" ( (binary_expression "pc->year_seen != pc->debug_year_seen" (field_expression "pc->year_seen" identifier -> field_identifier) != (field_expression "pc->debug_year_seen" identifier -> field_identifier)) )) (goto_statement "goto LAB_00014a30;" goto statement_identifier ;)) (labeled_statement "LAB_00014c7c:\n    uVar17 = 0;" statement_identifier : (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;)) }) (else_clause "else {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (pc->debug_dates_seen == false) {\n      in_t3 = (uint)pc->month;\n      in_t2 = *(uint **)&pc->month;\n      in_t0 = *(uint ***)&(pc->year).value;\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      pc->debug_dates_seen = true;\n      if (pc->year_seen == pc->debug_year_seen) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar17 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else if (pc->year_seen == pc->debug_year_seen) goto LAB_00014c7c;\nLAB_00014a30:\n    uVar7 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);\n    in_t0 = *(uint ***)&(pc->year).value;\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar7);\n    uVar17 = 1;\n    ppuVar28 = *(uint ***)puVar4;\n    pc->debug_year_seen = pc->year_seen;\n  }" else (compound_statement "{\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (pc->debug_dates_seen == false) {\n      in_t3 = (uint)pc->month;\n      in_t2 = *(uint **)&pc->month;\n      in_t0 = *(uint ***)&(pc->year).value;\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      pc->debug_dates_seen = true;\n      if (pc->year_seen == pc->debug_year_seen) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar17 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else if (pc->year_seen == pc->debug_year_seen) goto LAB_00014c7c;\nLAB_00014a30:\n    uVar7 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);\n    in_t0 = *(uint ***)&(pc->year).value;\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar7);\n    uVar17 = 1;\n    ppuVar28 = *(uint ***)puVar4;\n    pc->debug_year_seen = pc->year_seen;\n  }" { (expression_statement "ppuVar28 = *(uint ***)PTR_stderr_00038360;" (assignment_expression "ppuVar28 = *(uint ***)PTR_stderr_00038360" identifier = (pointer_expression "*(uint ***)PTR_stderr_00038360" * (cast_expression "(uint ***)PTR_stderr_00038360" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (if_statement "if (pc->debug_dates_seen == false) {\n      in_t3 = (uint)pc->month;\n      in_t2 = *(uint **)&pc->month;\n      in_t0 = *(uint ***)&(pc->year).value;\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      pc->debug_dates_seen = true;\n      if (pc->year_seen == pc->debug_year_seen) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar17 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else if (pc->year_seen == pc->debug_year_seen) goto LAB_00014c7c;" if (parenthesized_expression "(pc->debug_dates_seen == false)" ( (binary_expression "pc->debug_dates_seen == false" (field_expression "pc->debug_dates_seen" identifier -> field_identifier) == false) )) (compound_statement "{\n      in_t3 = (uint)pc->month;\n      in_t2 = *(uint **)&pc->month;\n      in_t0 = *(uint ***)&(pc->year).value;\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      pc->debug_dates_seen = true;\n      if (pc->year_seen == pc->debug_year_seen) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar17 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }" { (expression_statement "in_t3 = (uint)pc->month;" (assignment_expression "in_t3 = (uint)pc->month" identifier = (cast_expression "(uint)pc->month" ( (type_descriptor "uint" type_identifier) ) (field_expression "pc->month" identifier -> field_identifier))) ;) (expression_statement "in_t2 = *(uint **)&pc->month;" (assignment_expression "in_t2 = *(uint **)&pc->month" identifier = (pointer_expression "*(uint **)&pc->month" * (cast_expression "(uint **)&pc->month" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pc->month" & (field_expression "pc->month" identifier -> field_identifier))))) ;) (expression_statement "in_t0 = *(uint ***)&(pc->year).value;" (assignment_expression "in_t0 = *(uint ***)&(pc->year).value" identifier = (pointer_expression "*(uint ***)&(pc->year).value" * (cast_expression "(uint ***)&(pc->year).value" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "&(pc->year).value" & (field_expression "(pc->year).value" (parenthesized_expression "(pc->year)" ( (field_expression "pc->year" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);" (call_expression "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" ( (pointer_expression "*(code *)PTR___fprintf_chk_00038280" * (cast_expression "(code *)PTR___fprintf_chk_00038280" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppuVar28,1,PTR_LAB_0003811c + 0x5138)" ( identifier , number_literal , (binary_expression "PTR_LAB_0003811c + 0x5138" identifier + number_literal) ))) ;) (expression_statement "pc->debug_dates_seen = true;" (assignment_expression "pc->debug_dates_seen = true" (field_expression "pc->debug_dates_seen" identifier -> field_identifier) = true) ;) (if_statement "if (pc->year_seen == pc->debug_year_seen) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar17 = 1;\n        goto LAB_00014a80;\n      }" if (parenthesized_expression "(pc->year_seen == pc->debug_year_seen)" ( (binary_expression "pc->year_seen == pc->debug_year_seen" (field_expression "pc->year_seen" identifier -> field_identifier) == (field_expression "pc->debug_year_seen" identifier -> field_identifier)) )) (compound_statement "{\n        ppuVar28 = *(uint ***)puVar4;\n        uVar17 = 1;\n        goto LAB_00014a80;\n      }" { (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00014a80;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);" (call_expression "(*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4)" (parenthesized_expression "(*(code *)PTR_fputc_00038298)" ( (pointer_expression "*(code *)PTR_fputc_00038298" * (cast_expression "(code *)PTR_fputc_00038298" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x20,*(undefined4 *)puVar4)" ( number_literal , (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) }) (else_clause "else if (pc->year_seen == pc->debug_year_seen) goto LAB_00014c7c;" else (if_statement "if (pc->year_seen == pc->debug_year_seen) goto LAB_00014c7c;" if (parenthesized_expression "(pc->year_seen == pc->debug_year_seen)" ( (binary_expression "pc->year_seen == pc->debug_year_seen" (field_expression "pc->year_seen" identifier -> field_identifier) == (field_expression "pc->debug_year_seen" identifier -> field_identifier)) )) (goto_statement "goto LAB_00014c7c;" goto statement_identifier ;)))) (labeled_statement "LAB_00014a30:\n    uVar7 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);" statement_identifier : (expression_statement "uVar7 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);" (assignment_expression "uVar7 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00038338)" ( (pointer_expression "*(code *)PTR_dcgettext_00038338" * (cast_expression "(code *)PTR_dcgettext_00038338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_LAB_0003811c + 0x5158,5)" ( number_literal , (binary_expression "PTR_LAB_0003811c + 0x5158" identifier + number_literal) , number_literal )))) ;)) (expression_statement "in_t0 = *(uint ***)&(pc->year).value;" (assignment_expression "in_t0 = *(uint ***)&(pc->year).value" identifier = (pointer_expression "*(uint ***)&(pc->year).value" * (cast_expression "(uint ***)&(pc->year).value" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "&(pc->year).value" & (field_expression "(pc->year).value" (parenthesized_expression "(pc->year)" ( (field_expression "pc->year" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar7);" (call_expression "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar7)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" ( (pointer_expression "*(code *)PTR___fprintf_chk_00038280" * (cast_expression "(code *)PTR___fprintf_chk_00038280" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppuVar28,1,uVar7)" ( identifier , number_literal , identifier ))) ;) (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" identifier = number_literal) ;) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (expression_statement "pc->debug_year_seen = pc->year_seen;" (assignment_expression "pc->debug_year_seen = pc->year_seen" (field_expression "pc->debug_year_seen" identifier -> field_identifier) = (field_expression "pc->year_seen" identifier -> field_identifier)) ;) }))) (labeled_statement "LAB_00014a80:\n  if ((pc->times_seen == 0) || (pc->debug_times_seen != false)) {\n    if ((pc->days_seen != 0) && (pc->debug_days_seen == false)) {\n      if (uVar17 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      iVar18 = 5;\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c);\n      pcVar6 = str_days(pc,tmp,iVar18);\n      in_t0 = *(uint ***)&pc->day_ordinal;\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,pcVar6);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar17 = 1;\n      pc->debug_days_seen = true;\n    }\n  }\n  else {\n    in_t3 = (uint)pc->minutes;\n    in_t2 = *(uint **)&pc->minutes;\n    in_t0 = *(uint ***)&pc->hour;\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar17 ^ 1) + 0x5168);\n    if ((pc->seconds).tv_nsec != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }\n    ppuVar28 = *(uint ***)puVar4;\n    if (pc->meridian == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    pc->debug_times_seen = true;\n    if (pc->days_seen == 0) {\n      uVar17 = 1;\n    }\n    else {\n      uVar17 = (uint)pc->debug_days_seen;\n      if (uVar17 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }\n  }" statement_identifier : (if_statement "if ((pc->times_seen == 0) || (pc->debug_times_seen != false)) {\n    if ((pc->days_seen != 0) && (pc->debug_days_seen == false)) {\n      if (uVar17 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      iVar18 = 5;\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c);\n      pcVar6 = str_days(pc,tmp,iVar18);\n      in_t0 = *(uint ***)&pc->day_ordinal;\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,pcVar6);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar17 = 1;\n      pc->debug_days_seen = true;\n    }\n  }\n  else {\n    in_t3 = (uint)pc->minutes;\n    in_t2 = *(uint **)&pc->minutes;\n    in_t0 = *(uint ***)&pc->hour;\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar17 ^ 1) + 0x5168);\n    if ((pc->seconds).tv_nsec != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }\n    ppuVar28 = *(uint ***)puVar4;\n    if (pc->meridian == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    pc->debug_times_seen = true;\n    if (pc->days_seen == 0) {\n      uVar17 = 1;\n    }\n    else {\n      uVar17 = (uint)pc->debug_days_seen;\n      if (uVar17 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }\n  }" if (parenthesized_expression "((pc->times_seen == 0) || (pc->debug_times_seen != false))" ( (binary_expression "(pc->times_seen == 0) || (pc->debug_times_seen != false)" (parenthesized_expression "(pc->times_seen == 0)" ( (binary_expression "pc->times_seen == 0" (field_expression "pc->times_seen" identifier -> field_identifier) == number_literal) )) || (parenthesized_expression "(pc->debug_times_seen != false)" ( (binary_expression "pc->debug_times_seen != false" (field_expression "pc->debug_times_seen" identifier -> field_identifier) != false) ))) )) (compound_statement "{\n    if ((pc->days_seen != 0) && (pc->debug_days_seen == false)) {\n      if (uVar17 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      iVar18 = 5;\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c);\n      pcVar6 = str_days(pc,tmp,iVar18);\n      in_t0 = *(uint ***)&pc->day_ordinal;\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,pcVar6);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar17 = 1;\n      pc->debug_days_seen = true;\n    }\n  }" { (if_statement "if ((pc->days_seen != 0) && (pc->debug_days_seen == false)) {\n      if (uVar17 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      iVar18 = 5;\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c);\n      pcVar6 = str_days(pc,tmp,iVar18);\n      in_t0 = *(uint ***)&pc->day_ordinal;\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,pcVar6);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar17 = 1;\n      pc->debug_days_seen = true;\n    }" if (parenthesized_expression "((pc->days_seen != 0) && (pc->debug_days_seen == false))" ( (binary_expression "(pc->days_seen != 0) && (pc->debug_days_seen == false)" (parenthesized_expression "(pc->days_seen != 0)" ( (binary_expression "pc->days_seen != 0" (field_expression "pc->days_seen" identifier -> field_identifier) != number_literal) )) && (parenthesized_expression "(pc->debug_days_seen == false)" ( (binary_expression "pc->debug_days_seen == false" (field_expression "pc->debug_days_seen" identifier -> field_identifier) == false) ))) )) (compound_statement "{\n      if (uVar17 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      iVar18 = 5;\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c);\n      pcVar6 = str_days(pc,tmp,iVar18);\n      in_t0 = *(uint ***)&pc->day_ordinal;\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,pcVar6);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar17 = 1;\n      pc->debug_days_seen = true;\n    }" { (if_statement "if (uVar17 != 0) goto LAB_00014d08;" if (parenthesized_expression "(uVar17 != 0)" ( (binary_expression "uVar17 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00014d08;" goto statement_identifier ;)) (labeled_statement "LAB_00014ab8:\n      iVar18 = 5;" statement_identifier : (expression_statement "iVar18 = 5;" (assignment_expression "iVar18 = 5" identifier = number_literal) ;)) (expression_statement "unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c);" (assignment_expression "unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c)" identifier = (cast_expression "(undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c)" (parenthesized_expression "(*(code *)PTR_dcgettext_00038338)" ( (pointer_expression "*(code *)PTR_dcgettext_00038338" * (cast_expression "(code *)PTR_dcgettext_00038338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_LAB_0003811c + 0x518c)" ( number_literal , (binary_expression "PTR_LAB_0003811c + 0x518c" identifier + number_literal) ))))) ;) (expression_statement "pcVar6 = str_days(pc,tmp,iVar18);" (assignment_expression "pcVar6 = str_days(pc,tmp,iVar18)" identifier = (call_expression "str_days(pc,tmp,iVar18)" identifier (argument_list "(pc,tmp,iVar18)" ( identifier , identifier , identifier )))) ;) (expression_statement "in_t0 = *(uint ***)&pc->day_ordinal;" (assignment_expression "in_t0 = *(uint ***)&pc->day_ordinal" identifier = (pointer_expression "*(uint ***)&pc->day_ordinal" * (cast_expression "(uint ***)&pc->day_ordinal" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "&pc->day_ordinal" & (field_expression "pc->day_ordinal" identifier -> field_identifier))))) ;) (expression_statement "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,pcVar6);" (call_expression "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,pcVar6)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" ( (pointer_expression "*(code *)PTR___fprintf_chk_00038280" * (cast_expression "(code *)PTR___fprintf_chk_00038280" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppuVar28,1,unaff_s4,pcVar6)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" identifier = number_literal) ;) (expression_statement "pc->debug_days_seen = true;" (assignment_expression "pc->debug_days_seen = true" (field_expression "pc->debug_days_seen" identifier -> field_identifier) = true) ;) })) }) (else_clause "else {\n    in_t3 = (uint)pc->minutes;\n    in_t2 = *(uint **)&pc->minutes;\n    in_t0 = *(uint ***)&pc->hour;\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar17 ^ 1) + 0x5168);\n    if ((pc->seconds).tv_nsec != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }\n    ppuVar28 = *(uint ***)puVar4;\n    if (pc->meridian == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    pc->debug_times_seen = true;\n    if (pc->days_seen == 0) {\n      uVar17 = 1;\n    }\n    else {\n      uVar17 = (uint)pc->debug_days_seen;\n      if (uVar17 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }\n  }" else (compound_statement "{\n    in_t3 = (uint)pc->minutes;\n    in_t2 = *(uint **)&pc->minutes;\n    in_t0 = *(uint ***)&pc->hour;\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar17 ^ 1) + 0x5168);\n    if ((pc->seconds).tv_nsec != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }\n    ppuVar28 = *(uint ***)puVar4;\n    if (pc->meridian == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    pc->debug_times_seen = true;\n    if (pc->days_seen == 0) {\n      uVar17 = 1;\n    }\n    else {\n      uVar17 = (uint)pc->debug_days_seen;\n      if (uVar17 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }\n  }" { (expression_statement "in_t3 = (uint)pc->minutes;" (assignment_expression "in_t3 = (uint)pc->minutes" identifier = (cast_expression "(uint)pc->minutes" ( (type_descriptor "uint" type_identifier) ) (field_expression "pc->minutes" identifier -> field_identifier))) ;) (expression_statement "in_t2 = *(uint **)&pc->minutes;" (assignment_expression "in_t2 = *(uint **)&pc->minutes" identifier = (pointer_expression "*(uint **)&pc->minutes" * (cast_expression "(uint **)&pc->minutes" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pc->minutes" & (field_expression "pc->minutes" identifier -> field_identifier))))) ;) (expression_statement "in_t0 = *(uint ***)&pc->hour;" (assignment_expression "in_t0 = *(uint ***)&pc->hour" identifier = (pointer_expression "*(uint ***)&pc->hour" * (cast_expression "(uint ***)&pc->hour" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "&pc->hour" & (field_expression "pc->hour" identifier -> field_identifier))))) ;) (expression_statement "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar17 ^ 1) + 0x5168);" (call_expression "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar17 ^ 1) + 0x5168)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" ( (pointer_expression "*(code *)PTR___fprintf_chk_00038280" * (cast_expression "(code *)PTR___fprintf_chk_00038280" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppuVar28,1,PTR_LAB_0003811c + (uVar17 ^ 1) + 0x5168)" ( identifier , number_literal , (binary_expression "PTR_LAB_0003811c + (uVar17 ^ 1) + 0x5168" (binary_expression "PTR_LAB_0003811c + (uVar17 ^ 1)" identifier + (parenthesized_expression "(uVar17 ^ 1)" ( (binary_expression "uVar17 ^ 1" identifier ^ number_literal) ))) + number_literal) ))) ;) (if_statement "if ((pc->seconds).tv_nsec != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }" if (parenthesized_expression "((pc->seconds).tv_nsec != 0)" ( (binary_expression "(pc->seconds).tv_nsec != 0" (field_expression "(pc->seconds).tv_nsec" (parenthesized_expression "(pc->seconds)" ( (field_expression "pc->seconds" identifier -> field_identifier) )) . field_identifier) != number_literal) )) (compound_statement "{\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }" { (expression_statement "(*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);" (call_expression "(*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" ( (pointer_expression "*(code *)PTR___fprintf_chk_00038280" * (cast_expression "(code *)PTR___fprintf_chk_00038280" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180)" ( (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , (binary_expression "PTR_LAB_0003811c + 0x5180" identifier + number_literal) ))) ;) })) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (if_statement "if (pc->meridian == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }" if (parenthesized_expression "(pc->meridian == 1)" ( (binary_expression "pc->meridian == 1" (field_expression "pc->meridian" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }" { (expression_statement "(*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);" (call_expression "(*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28)" (parenthesized_expression "(*(code *)PTR_fwrite_00038324)" ( (pointer_expression "*(code *)PTR_fwrite_00038324" * (cast_expression "(code *)PTR_fwrite_00038324" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28)" ( (binary_expression "PTR_LAB_0003811c + 0x5188" identifier + number_literal) , number_literal , number_literal , identifier ))) ;) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) })) (expression_statement "pc->debug_times_seen = true;" (assignment_expression "pc->debug_times_seen = true" (field_expression "pc->debug_times_seen" identifier -> field_identifier) = true) ;) (if_statement "if (pc->days_seen == 0) {\n      uVar17 = 1;\n    }\n    else {\n      uVar17 = (uint)pc->debug_days_seen;\n      if (uVar17 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }" if (parenthesized_expression "(pc->days_seen == 0)" ( (binary_expression "pc->days_seen == 0" (field_expression "pc->days_seen" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n      uVar17 = 1;\n    }" { (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      uVar17 = (uint)pc->debug_days_seen;\n      if (uVar17 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }" else (compound_statement "{\n      uVar17 = (uint)pc->debug_days_seen;\n      if (uVar17 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }" { (expression_statement "uVar17 = (uint)pc->debug_days_seen;" (assignment_expression "uVar17 = (uint)pc->debug_days_seen" identifier = (cast_expression "(uint)pc->debug_days_seen" ( (type_descriptor "uint" type_identifier) ) (field_expression "pc->debug_days_seen" identifier -> field_identifier))) ;) (if_statement "if (uVar17 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }" { (labeled_statement "LAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);" statement_identifier : (expression_statement "(*(code *)PTR_fputc_00038298)(0x20,ppuVar28);" (call_expression "(*(code *)PTR_fputc_00038298)(0x20,ppuVar28)" (parenthesized_expression "(*(code *)PTR_fputc_00038298)" ( (pointer_expression "*(code *)PTR_fputc_00038298" * (cast_expression "(code *)PTR_fputc_00038298" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x20,ppuVar28)" ( number_literal , identifier ))) ;)) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (goto_statement "goto LAB_00014ab8;" goto statement_identifier ;) })) }))) })))) (if_statement "if ((pc->local_zones_seen == 0) || (pc->debug_local_zones_seen != false)) {\n    if ((pc->zones_seen == 0) || (unaff_s4 = PTR_LAB_0003811c, pc->debug_zones_seen != false)) {\n      if (pc->timespec_seen == false) goto LAB_00014bb0;\n      pc = (parser_control *)(pc->seconds).tv_sec;\n      unaff_s4 = (undefined *)((int)pc >> 0x1f);\n      if (uVar17 != 0) goto LAB_00014d8c;\n      goto LAB_00014c1c;\n    }\n    unaff_s4 = PTR_LAB_0003811c + (uVar17 ^ 1) + 0x5130;\nLAB_00014d38:\n    pcVar6 = time_zone_str(pc->time_zone,tmp);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,pcVar6);\n    pc->debug_zones_seen = true;\n    if (pc->timespec_seen != false) {\n      pc = (parser_control *)(pc->seconds).tv_sec;\n      ppuVar28 = *(uint ***)puVar4;\n      goto LAB_00014d88;\n    }\n  }\n  else {\n    (*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar17 ^ 1) + 0x51ac,pc->local_isdst);\n    pc->debug_local_zones_seen = true;\n    if (pc->zones_seen == 0) {\n      cVar1 = pc->timespec_seen;\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (pc->debug_zones_seen == false) {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = pc->timespec_seen;\n    }\n    if (cVar1 == '\0') goto LAB_00014bb0;\n    pc = (parser_control *)(pc->seconds).tv_sec;\nLAB_00014d88:\n    unaff_s4 = (undefined *)((int)pc >> 0x1f);\nLAB_00014d8c:\n    (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n    ppuVar28 = *(uint ***)puVar4;\nLAB_00014c1c:\n    uVar7 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar7);\n  }" if (parenthesized_expression "((pc->local_zones_seen == 0) || (pc->debug_local_zones_seen != false))" ( (binary_expression "(pc->local_zones_seen == 0) || (pc->debug_local_zones_seen != false)" (parenthesized_expression "(pc->local_zones_seen == 0)" ( (binary_expression "pc->local_zones_seen == 0" (field_expression "pc->local_zones_seen" identifier -> field_identifier) == number_literal) )) || (parenthesized_expression "(pc->debug_local_zones_seen != false)" ( (binary_expression "pc->debug_local_zones_seen != false" (field_expression "pc->debug_local_zones_seen" identifier -> field_identifier) != false) ))) )) (compound_statement "{\n    if ((pc->zones_seen == 0) || (unaff_s4 = PTR_LAB_0003811c, pc->debug_zones_seen != false)) {\n      if (pc->timespec_seen == false) goto LAB_00014bb0;\n      pc = (parser_control *)(pc->seconds).tv_sec;\n      unaff_s4 = (undefined *)((int)pc >> 0x1f);\n      if (uVar17 != 0) goto LAB_00014d8c;\n      goto LAB_00014c1c;\n    }\n    unaff_s4 = PTR_LAB_0003811c + (uVar17 ^ 1) + 0x5130;\nLAB_00014d38:\n    pcVar6 = time_zone_str(pc->time_zone,tmp);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,pcVar6);\n    pc->debug_zones_seen = true;\n    if (pc->timespec_seen != false) {\n      pc = (parser_control *)(pc->seconds).tv_sec;\n      ppuVar28 = *(uint ***)puVar4;\n      goto LAB_00014d88;\n    }\n  }" { (if_statement "if ((pc->zones_seen == 0) || (unaff_s4 = PTR_LAB_0003811c, pc->debug_zones_seen != false)) {\n      if (pc->timespec_seen == false) goto LAB_00014bb0;\n      pc = (parser_control *)(pc->seconds).tv_sec;\n      unaff_s4 = (undefined *)((int)pc >> 0x1f);\n      if (uVar17 != 0) goto LAB_00014d8c;\n      goto LAB_00014c1c;\n    }" if (parenthesized_expression "((pc->zones_seen == 0) || (unaff_s4 = PTR_LAB_0003811c, pc->debug_zones_seen != false))" ( (binary_expression "(pc->zones_seen == 0) || (unaff_s4 = PTR_LAB_0003811c, pc->debug_zones_seen != false)" (parenthesized_expression "(pc->zones_seen == 0)" ( (binary_expression "pc->zones_seen == 0" (field_expression "pc->zones_seen" identifier -> field_identifier) == number_literal) )) || (parenthesized_expression "(unaff_s4 = PTR_LAB_0003811c, pc->debug_zones_seen != false)" ( (comma_expression "unaff_s4 = PTR_LAB_0003811c, pc->debug_zones_seen != false" (assignment_expression "unaff_s4 = PTR_LAB_0003811c" identifier = identifier) , (binary_expression "pc->debug_zones_seen != false" (field_expression "pc->debug_zones_seen" identifier -> field_identifier) != false)) ))) )) (compound_statement "{\n      if (pc->timespec_seen == false) goto LAB_00014bb0;\n      pc = (parser_control *)(pc->seconds).tv_sec;\n      unaff_s4 = (undefined *)((int)pc >> 0x1f);\n      if (uVar17 != 0) goto LAB_00014d8c;\n      goto LAB_00014c1c;\n    }" { (if_statement "if (pc->timespec_seen == false) goto LAB_00014bb0;" if (parenthesized_expression "(pc->timespec_seen == false)" ( (binary_expression "pc->timespec_seen == false" (field_expression "pc->timespec_seen" identifier -> field_identifier) == false) )) (goto_statement "goto LAB_00014bb0;" goto statement_identifier ;)) (expression_statement "pc = (parser_control *)(pc->seconds).tv_sec;" (assignment_expression "pc = (parser_control *)(pc->seconds).tv_sec" identifier = (cast_expression "(parser_control *)(pc->seconds).tv_sec" ( (type_descriptor "parser_control *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(pc->seconds).tv_sec" (parenthesized_expression "(pc->seconds)" ( (field_expression "pc->seconds" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "unaff_s4 = (undefined *)((int)pc >> 0x1f);" (assignment_expression "unaff_s4 = (undefined *)((int)pc >> 0x1f)" identifier = (cast_expression "(undefined *)((int)pc >> 0x1f)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pc >> 0x1f)" ( (binary_expression "(int)pc >> 0x1f" (cast_expression "(int)pc" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (if_statement "if (uVar17 != 0) goto LAB_00014d8c;" if (parenthesized_expression "(uVar17 != 0)" ( (binary_expression "uVar17 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00014d8c;" goto statement_identifier ;)) (goto_statement "goto LAB_00014c1c;" goto statement_identifier ;) })) (expression_statement "unaff_s4 = PTR_LAB_0003811c + (uVar17 ^ 1) + 0x5130;" (assignment_expression "unaff_s4 = PTR_LAB_0003811c + (uVar17 ^ 1) + 0x5130" identifier = (binary_expression "PTR_LAB_0003811c + (uVar17 ^ 1) + 0x5130" (binary_expression "PTR_LAB_0003811c + (uVar17 ^ 1)" identifier + (parenthesized_expression "(uVar17 ^ 1)" ( (binary_expression "uVar17 ^ 1" identifier ^ number_literal) ))) + number_literal)) ;) (labeled_statement "LAB_00014d38:\n    pcVar6 = time_zone_str(pc->time_zone,tmp);" statement_identifier : (expression_statement "pcVar6 = time_zone_str(pc->time_zone,tmp);" (assignment_expression "pcVar6 = time_zone_str(pc->time_zone,tmp)" identifier = (call_expression "time_zone_str(pc->time_zone,tmp)" identifier (argument_list "(pc->time_zone,tmp)" ( (field_expression "pc->time_zone" identifier -> field_identifier) , identifier )))) ;)) (expression_statement "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,pcVar6);" (call_expression "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,pcVar6)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" ( (pointer_expression "*(code *)PTR___fprintf_chk_00038280" * (cast_expression "(code *)PTR___fprintf_chk_00038280" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppuVar28,1,unaff_s4,pcVar6)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "pc->debug_zones_seen = true;" (assignment_expression "pc->debug_zones_seen = true" (field_expression "pc->debug_zones_seen" identifier -> field_identifier) = true) ;) (if_statement "if (pc->timespec_seen != false) {\n      pc = (parser_control *)(pc->seconds).tv_sec;\n      ppuVar28 = *(uint ***)puVar4;\n      goto LAB_00014d88;\n    }" if (parenthesized_expression "(pc->timespec_seen != false)" ( (binary_expression "pc->timespec_seen != false" (field_expression "pc->timespec_seen" identifier -> field_identifier) != false) )) (compound_statement "{\n      pc = (parser_control *)(pc->seconds).tv_sec;\n      ppuVar28 = *(uint ***)puVar4;\n      goto LAB_00014d88;\n    }" { (expression_statement "pc = (parser_control *)(pc->seconds).tv_sec;" (assignment_expression "pc = (parser_control *)(pc->seconds).tv_sec" identifier = (cast_expression "(parser_control *)(pc->seconds).tv_sec" ( (type_descriptor "parser_control *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(pc->seconds).tv_sec" (parenthesized_expression "(pc->seconds)" ( (field_expression "pc->seconds" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (goto_statement "goto LAB_00014d88;" goto statement_identifier ;) })) }) (else_clause "else {\n    (*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar17 ^ 1) + 0x51ac,pc->local_isdst);\n    pc->debug_local_zones_seen = true;\n    if (pc->zones_seen == 0) {\n      cVar1 = pc->timespec_seen;\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (pc->debug_zones_seen == false) {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = pc->timespec_seen;\n    }\n    if (cVar1 == '\0') goto LAB_00014bb0;\n    pc = (parser_control *)(pc->seconds).tv_sec;\nLAB_00014d88:\n    unaff_s4 = (undefined *)((int)pc >> 0x1f);\nLAB_00014d8c:\n    (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n    ppuVar28 = *(uint ***)puVar4;\nLAB_00014c1c:\n    uVar7 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar7);\n  }" else (compound_statement "{\n    (*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar17 ^ 1) + 0x51ac,pc->local_isdst);\n    pc->debug_local_zones_seen = true;\n    if (pc->zones_seen == 0) {\n      cVar1 = pc->timespec_seen;\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (pc->debug_zones_seen == false) {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = pc->timespec_seen;\n    }\n    if (cVar1 == '\0') goto LAB_00014bb0;\n    pc = (parser_control *)(pc->seconds).tv_sec;\nLAB_00014d88:\n    unaff_s4 = (undefined *)((int)pc >> 0x1f);\nLAB_00014d8c:\n    (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n    ppuVar28 = *(uint ***)puVar4;\nLAB_00014c1c:\n    uVar7 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar7);\n  }" { (expression_statement "(*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar17 ^ 1) + 0x51ac,pc->local_isdst);" (call_expression "(*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar17 ^ 1) + 0x51ac,pc->local_isdst)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" ( (pointer_expression "*(code *)PTR___fprintf_chk_00038280" * (cast_expression "(code *)PTR___fprintf_chk_00038280" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppuVar28,1,PTR_LAB_0003811c + (uVar17 ^ 1) + 0x51ac,pc->local_isdst)" ( identifier , number_literal , (binary_expression "PTR_LAB_0003811c + (uVar17 ^ 1) + 0x51ac" (binary_expression "PTR_LAB_0003811c + (uVar17 ^ 1)" identifier + (parenthesized_expression "(uVar17 ^ 1)" ( (binary_expression "uVar17 ^ 1" identifier ^ number_literal) ))) + number_literal) , (field_expression "pc->local_isdst" identifier -> field_identifier) ))) ;) (expression_statement "pc->debug_local_zones_seen = true;" (assignment_expression "pc->debug_local_zones_seen = true" (field_expression "pc->debug_local_zones_seen" identifier -> field_identifier) = true) ;) (if_statement "if (pc->zones_seen == 0) {\n      cVar1 = pc->timespec_seen;\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (pc->debug_zones_seen == false) {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = pc->timespec_seen;\n    }" if (parenthesized_expression "(pc->zones_seen == 0)" ( (binary_expression "pc->zones_seen == 0" (field_expression "pc->zones_seen" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n      cVar1 = pc->timespec_seen;\n      ppuVar28 = *(uint ***)puVar4;\n    }" { (expression_statement "cVar1 = pc->timespec_seen;" (assignment_expression "cVar1 = pc->timespec_seen" identifier = (field_expression "pc->timespec_seen" identifier -> field_identifier)) ;) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) }) (else_clause "else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (pc->debug_zones_seen == false) {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = pc->timespec_seen;\n    }" else (compound_statement "{\n      ppuVar28 = *(uint ***)puVar4;\n      if (pc->debug_zones_seen == false) {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = pc->timespec_seen;\n    }" { (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (if_statement "if (pc->debug_zones_seen == false) {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }" if (parenthesized_expression "(pc->debug_zones_seen == false)" ( (binary_expression "pc->debug_zones_seen == false" (field_expression "pc->debug_zones_seen" identifier -> field_identifier) == false) )) (compound_statement "{\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }" { (expression_statement "unaff_s4 = PTR_LAB_0003811c + 0x5130;" (assignment_expression "unaff_s4 = PTR_LAB_0003811c + 0x5130" identifier = (binary_expression "PTR_LAB_0003811c + 0x5130" identifier + number_literal)) ;) (goto_statement "goto LAB_00014d38;" goto statement_identifier ;) })) (expression_statement "cVar1 = pc->timespec_seen;" (assignment_expression "cVar1 = pc->timespec_seen" identifier = (field_expression "pc->timespec_seen" identifier -> field_identifier)) ;) }))) (if_statement "if (cVar1 == '\0') goto LAB_00014bb0;" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00014bb0;" goto statement_identifier ;)) (expression_statement "pc = (parser_control *)(pc->seconds).tv_sec;" (assignment_expression "pc = (parser_control *)(pc->seconds).tv_sec" identifier = (cast_expression "(parser_control *)(pc->seconds).tv_sec" ( (type_descriptor "parser_control *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(pc->seconds).tv_sec" (parenthesized_expression "(pc->seconds)" ( (field_expression "pc->seconds" identifier -> field_identifier) )) . field_identifier))) ;) (labeled_statement "LAB_00014d88:\n    unaff_s4 = (undefined *)((int)pc >> 0x1f);" statement_identifier : (expression_statement "unaff_s4 = (undefined *)((int)pc >> 0x1f);" (assignment_expression "unaff_s4 = (undefined *)((int)pc >> 0x1f)" identifier = (cast_expression "(undefined *)((int)pc >> 0x1f)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pc >> 0x1f)" ( (binary_expression "(int)pc >> 0x1f" (cast_expression "(int)pc" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;)) (labeled_statement "LAB_00014d8c:\n    (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);" statement_identifier : (expression_statement "(*(code *)PTR_fputc_00038298)(0x20,ppuVar28);" (call_expression "(*(code *)PTR_fputc_00038298)(0x20,ppuVar28)" (parenthesized_expression "(*(code *)PTR_fputc_00038298)" ( (pointer_expression "*(code *)PTR_fputc_00038298" * (cast_expression "(code *)PTR_fputc_00038298" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x20,ppuVar28)" ( number_literal , identifier ))) ;)) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (labeled_statement "LAB_00014c1c:\n    uVar7 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);" statement_identifier : (expression_statement "uVar7 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);" (assignment_expression "uVar7 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00038338)" ( (pointer_expression "*(code *)PTR_dcgettext_00038338" * (cast_expression "(code *)PTR_dcgettext_00038338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_LAB_0003811c + 0x51b8,5)" ( number_literal , (binary_expression "PTR_LAB_0003811c + 0x51b8" identifier + number_literal) , number_literal )))) ;)) (expression_statement "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar7);" (call_expression "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar7)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" ( (pointer_expression "*(code *)PTR___fprintf_chk_00038280" * (cast_expression "(code *)PTR___fprintf_chk_00038280" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppuVar28,1,uVar7)" ( identifier , number_literal , identifier ))) ;) }))) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (labeled_statement "LAB_00014bb0:\n  pc_00 = (parser_control *)&DAT_0000000a;" statement_identifier : (expression_statement "pc_00 = (parser_control *)&DAT_0000000a;" (assignment_expression "pc_00 = (parser_control *)&DAT_0000000a" identifier = (cast_expression "(parser_control *)&DAT_0000000a" ( (type_descriptor "parser_control *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000000a" & identifier))) ;)) (expression_statement "ppuVar21 = ppuVar28;" (assignment_expression "ppuVar21 = ppuVar28" identifier = identifier) ;) (expression_statement "(*(code *)PTR_fputc_00038298)();" (call_expression "(*(code *)PTR_fputc_00038298)()" (parenthesized_expression "(*(code *)PTR_fputc_00038298)" ( (pointer_expression "*(code *)PTR_fputc_00038298" * (cast_expression "(code *)PTR_fputc_00038298" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (iVar5 == *(int *)puVar3) {\n    return;\n  }" if (parenthesized_expression "(iVar5 == *(int *)puVar3)" ( (binary_expression "iVar5 == *(int *)puVar3" identifier == (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar33 = PTR___stack_chk_fail_00038334;" (assignment_expression "puVar33 = PTR___stack_chk_fail_00038334" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00038334)();" (call_expression "(*(code *)PTR___stack_chk_fail_00038334)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00038334)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00038334" * (cast_expression "(code *)PTR___stack_chk_fail_00038334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar8 = *(int **)(puVar33 + 0x234a4);" (assignment_expression "piVar8 = *(int **)(puVar33 + 0x234a4)" identifier = (pointer_expression "*(int **)(puVar33 + 0x234a4)" * (cast_expression "(int **)(puVar33 + 0x234a4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x234a4)" ( (binary_expression "puVar33 + 0x234a4" identifier + number_literal) ))))) ;) (expression_statement "uVar17 = 0xfffffffe;" (assignment_expression "uVar17 = 0xfffffffe" identifier = number_literal) ;) (expression_statement "puStack_cc = puVar3;" (assignment_expression "puStack_cc = puVar3" identifier = identifier) ;) (expression_statement "puVar31 = (uint *)&DAT_00000026;" (assignment_expression "puVar31 = (uint *)&DAT_00000026" identifier = (cast_expression "(uint *)&DAT_00000026" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000026" & identifier))) ;) (expression_statement "iStack_dc = *piVar8;" (assignment_expression "iStack_dc = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "iVar5 = *(int *)(puVar33 + 0x23270);" (assignment_expression "iVar5 = *(int *)(puVar33 + 0x23270)" identifier = (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) ;) (expression_statement "puStack_c8 = unaff_s4;" (assignment_expression "puStack_c8 = unaff_s4" identifier = identifier) ;) (expression_statement "puStack_d0 = puVar4;" (assignment_expression "puStack_d0 = puVar4" identifier = identifier) ;) (expression_statement "puVar14 = auStack_550;" (assignment_expression "puVar14 = auStack_550" identifier = identifier) ;) (expression_statement "ppuStack_d4 = ppuVar28;" (assignment_expression "ppuStack_d4 = ppuVar28" identifier = identifier) ;) (expression_statement "puVar29 = (uint *)0xfffffffe;" (assignment_expression "puVar29 = (uint *)0xfffffffe" identifier = (cast_expression "(uint *)0xfffffffe" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar30 = *(int *)(puVar33 + 0x23270) + 0x6250;" (assignment_expression "iVar30 = *(int *)(puVar33 + 0x23270) + 0x6250" identifier = (binary_expression "*(int *)(puVar33 + 0x23270) + 0x6250" (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "ppStack_d8 = pc;" (assignment_expression "ppStack_d8 = pc" identifier = identifier) ;) (expression_statement "puVar25 = (uint *)0x0;" (assignment_expression "puVar25 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar18 = *(int *)(puVar33 + 0x23270) + 0x62c4;" (assignment_expression "iVar18 = *(int *)(puVar33 + 0x23270) + 0x62c4" identifier = (binary_expression "*(int *)(puVar33 + 0x23270) + 0x62c4" (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "asStack_578[0] = 0;" (assignment_expression "asStack_578[0] = 0" (subscript_expression "asStack_578[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iStack_670 = 0;" (assignment_expression "iStack_670 = 0" identifier = number_literal) ;) (expression_statement "psVar32 = asStack_578;" (assignment_expression "psVar32 = asStack_578" identifier = identifier) ;) (labeled_statement "LAB_00014f50:\n  ppuVar28 = (uint **)0x800000;" statement_identifier : (expression_statement "ppuVar28 = (uint **)0x800000;" (assignment_expression "ppuVar28 = (uint **)0x800000" identifier = (cast_expression "(uint **)0x800000" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;)) (expression_statement "puVar19 = puVar31;" (assignment_expression "puVar19 = puVar31" identifier = identifier) ;) (if_statement "if (puVar29 == (uint *)0xfffffffe) {\n    ppuVar21 = (uint **)pc_00->input;\n    in_t2 = (uint *)0x1;\n    ppuVar28 = (uint **)0x80001f;\n    in_t4 = (uint **)0x2d;\n    bVar13 = *(byte *)ppuVar21;\n    in_t5 = 0x2b;\n    in_t6 = 0x28;\n    uVar17 = 0x29;\nLAB_000152f0:\n    in_t0 = (uint **)(int)(char)bVar13;\n    uVar15 = (uint)bVar13;\nLAB_000152f4:\n    uVar22 = uVar15 - 9;\n    name = (uint **)(uint)(uVar22 < 0x18);\n    if (name == (uint **)0x0) goto LAB_000153a8;\nLAB_00015308:\n    ppuVar12 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f);\n    while (ppuVar12 != (uint **)0x0) {\n      ppuVar21 = (uint **)((int)ppuVar21 + 1);\n      pc_00->input = (char *)ppuVar21;\n      in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n      uVar15 = (uint)*(byte *)ppuVar21;\n      name = (uint **)(uVar15 - 9);\n      if ((uint **)0x17 < name) goto LAB_000153a8;\n      name = (uint **)(1 << ((uint)name & 0x1f) & 0x80001f);\n      ppuVar12 = name;\n    }\nLAB_00015344:\n    in_t3 = 0xffffffff;\n    if (uVar15 == 0x2d) goto LAB_00015358;\n    if (uVar15 == 0x2b) goto LAB_00015354;\n    if ((0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))\n       ) {\n      pbVar26 = (byte *)pc_00->input;\n      name = (uint **)(abStack_f1 + 1);\n      in_t0 = (uint **)(abStack_f1 + 0x14);\n      ppuVar28 = (uint **)&DAT_0000002e;\n      ppuVar21 = name;\n      do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        pc_00->input = (char *)pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));\n      *(byte *)ppuVar21 = 0;\n      ppuVar21 = name;\n      bVar13 = abStack_f1[1];\n      while (bVar13 != 0) {\n        if (bVar13 - 0x61 < 0x1a) {\n          bVar13 = bVar13 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar13;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar13 = *(byte *)ppuVar21;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);\n      do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(name);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(name);\n      if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);\n      do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(name,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(name);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      iVar9 = *(int *)(puVar33 + 0x2326c);\n      ppuVar21 = name;\n      ptVar11 = lookup_zone(pc_00,(char *)name);\n      unaff_s6 = asStack_578;\n      if (ptVar11 != (table *)0x0) {\n        puVar29 = (uint *)ptVar11->type;\n        apuStack_5e8[1] = (uint *)ptVar11->value;\n        apuStack_5e8[0] = (uint *)(ptVar11->value >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);\n      iVar10 = (**(code **)(puVar33 + 0x234c8))(name);\n      if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        name = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);\n      ppuVar12 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);\n      ppuVar21 = ppuVar12;\n      psVar27 = unaff_s6;\n      do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(name);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);\n      pbVar26 = (byte *)((int)name + (int)((int)puStack_674 + -1));\n      if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(name);\n          ppuVar21 = ppuVar12;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar12 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar12 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);\n      pcVar34 = *(code **)(puVar33 + 0x234c8);\n      do {\n        iVar10 = (*pcVar34)(name);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);\n      if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar12 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar12;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar12 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }\n      if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = name;\n        ppuVar12 = name;\n        bVar13 = abStack_f1[1];\n        do {\n          if (bVar13 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar12 = (uint **)((int)ppuVar12 + 1);\n          bVar13 = *(byte *)ppuVar12;\n          *(byte *)ppuVar21 = bVar13;\n        } while (bVar13 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = name, iVar9 = (*(code *)(&DAT_00004388 + iVar9))(pc_00), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }\n      ppuVar21 = *(uint ***)(puVar33 + 0x23270);\n      if (pc_00->parse_datetime_debug == false) goto LAB_00017ae0;\n      pcVar6 = (char *)(**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5)\n      ;\n      puVar29 = (uint *)0x3f;\n      dbg_printf(pcVar6);\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n      goto LAB_00014f74;\n    }\n    iVar9 = 0;\n    if (uVar15 == 0x28) {\n      ppuVar21 = (uint **)pc_00->input;\n      goto LAB_000157a8;\n    }\n    pc_00->input = (char *)((int)ppuVar21 + 1);\n    puVar29 = (uint *)(uint)*(byte *)ppuVar21;\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if (puVar29 != (uint *)0x0) goto LAB_0001558c;\n    uVar15 = 0;\n    goto LAB_00014f74;\n  }" if (parenthesized_expression "(puVar29 == (uint *)0xfffffffe)" ( (binary_expression "puVar29 == (uint *)0xfffffffe" identifier == (cast_expression "(uint *)0xfffffffe" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    ppuVar21 = (uint **)pc_00->input;\n    in_t2 = (uint *)0x1;\n    ppuVar28 = (uint **)0x80001f;\n    in_t4 = (uint **)0x2d;\n    bVar13 = *(byte *)ppuVar21;\n    in_t5 = 0x2b;\n    in_t6 = 0x28;\n    uVar17 = 0x29;\nLAB_000152f0:\n    in_t0 = (uint **)(int)(char)bVar13;\n    uVar15 = (uint)bVar13;\nLAB_000152f4:\n    uVar22 = uVar15 - 9;\n    name = (uint **)(uint)(uVar22 < 0x18);\n    if (name == (uint **)0x0) goto LAB_000153a8;\nLAB_00015308:\n    ppuVar12 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f);\n    while (ppuVar12 != (uint **)0x0) {\n      ppuVar21 = (uint **)((int)ppuVar21 + 1);\n      pc_00->input = (char *)ppuVar21;\n      in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n      uVar15 = (uint)*(byte *)ppuVar21;\n      name = (uint **)(uVar15 - 9);\n      if ((uint **)0x17 < name) goto LAB_000153a8;\n      name = (uint **)(1 << ((uint)name & 0x1f) & 0x80001f);\n      ppuVar12 = name;\n    }\nLAB_00015344:\n    in_t3 = 0xffffffff;\n    if (uVar15 == 0x2d) goto LAB_00015358;\n    if (uVar15 == 0x2b) goto LAB_00015354;\n    if ((0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))\n       ) {\n      pbVar26 = (byte *)pc_00->input;\n      name = (uint **)(abStack_f1 + 1);\n      in_t0 = (uint **)(abStack_f1 + 0x14);\n      ppuVar28 = (uint **)&DAT_0000002e;\n      ppuVar21 = name;\n      do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        pc_00->input = (char *)pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));\n      *(byte *)ppuVar21 = 0;\n      ppuVar21 = name;\n      bVar13 = abStack_f1[1];\n      while (bVar13 != 0) {\n        if (bVar13 - 0x61 < 0x1a) {\n          bVar13 = bVar13 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar13;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar13 = *(byte *)ppuVar21;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);\n      do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(name);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(name);\n      if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);\n      do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(name,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(name);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      iVar9 = *(int *)(puVar33 + 0x2326c);\n      ppuVar21 = name;\n      ptVar11 = lookup_zone(pc_00,(char *)name);\n      unaff_s6 = asStack_578;\n      if (ptVar11 != (table *)0x0) {\n        puVar29 = (uint *)ptVar11->type;\n        apuStack_5e8[1] = (uint *)ptVar11->value;\n        apuStack_5e8[0] = (uint *)(ptVar11->value >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);\n      iVar10 = (**(code **)(puVar33 + 0x234c8))(name);\n      if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        name = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);\n      ppuVar12 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);\n      ppuVar21 = ppuVar12;\n      psVar27 = unaff_s6;\n      do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(name);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);\n      pbVar26 = (byte *)((int)name + (int)((int)puStack_674 + -1));\n      if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(name);\n          ppuVar21 = ppuVar12;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar12 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar12 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);\n      pcVar34 = *(code **)(puVar33 + 0x234c8);\n      do {\n        iVar10 = (*pcVar34)(name);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);\n      if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar12 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar12;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar12 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }\n      if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = name;\n        ppuVar12 = name;\n        bVar13 = abStack_f1[1];\n        do {\n          if (bVar13 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar12 = (uint **)((int)ppuVar12 + 1);\n          bVar13 = *(byte *)ppuVar12;\n          *(byte *)ppuVar21 = bVar13;\n        } while (bVar13 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = name, iVar9 = (*(code *)(&DAT_00004388 + iVar9))(pc_00), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }\n      ppuVar21 = *(uint ***)(puVar33 + 0x23270);\n      if (pc_00->parse_datetime_debug == false) goto LAB_00017ae0;\n      pcVar6 = (char *)(**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5)\n      ;\n      puVar29 = (uint *)0x3f;\n      dbg_printf(pcVar6);\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n      goto LAB_00014f74;\n    }\n    iVar9 = 0;\n    if (uVar15 == 0x28) {\n      ppuVar21 = (uint **)pc_00->input;\n      goto LAB_000157a8;\n    }\n    pc_00->input = (char *)((int)ppuVar21 + 1);\n    puVar29 = (uint *)(uint)*(byte *)ppuVar21;\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if (puVar29 != (uint *)0x0) goto LAB_0001558c;\n    uVar15 = 0;\n    goto LAB_00014f74;\n  }" { (expression_statement "ppuVar21 = (uint **)pc_00->input;" (assignment_expression "ppuVar21 = (uint **)pc_00->input" identifier = (cast_expression "(uint **)pc_00->input" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "pc_00->input" identifier -> field_identifier))) ;) (expression_statement "in_t2 = (uint *)0x1;" (assignment_expression "in_t2 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppuVar28 = (uint **)0x80001f;" (assignment_expression "ppuVar28 = (uint **)0x80001f" identifier = (cast_expression "(uint **)0x80001f" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "in_t4 = (uint **)0x2d;" (assignment_expression "in_t4 = (uint **)0x2d" identifier = (cast_expression "(uint **)0x2d" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "bVar13 = *(byte *)ppuVar21;" (assignment_expression "bVar13 = *(byte *)ppuVar21" identifier = (pointer_expression "*(byte *)ppuVar21" * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "in_t5 = 0x2b;" (assignment_expression "in_t5 = 0x2b" identifier = number_literal) ;) (expression_statement "in_t6 = 0x28;" (assignment_expression "in_t6 = 0x28" identifier = number_literal) ;) (expression_statement "uVar17 = 0x29;" (assignment_expression "uVar17 = 0x29" identifier = number_literal) ;) (labeled_statement "LAB_000152f0:\n    in_t0 = (uint **)(int)(char)bVar13;" statement_identifier : (expression_statement "in_t0 = (uint **)(int)(char)bVar13;" (assignment_expression "in_t0 = (uint **)(int)(char)bVar13" identifier = (cast_expression "(uint **)(int)(char)bVar13" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)(char)bVar13" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar13" ( (type_descriptor "char" primitive_type) ) identifier)))) ;)) (expression_statement "uVar15 = (uint)bVar13;" (assignment_expression "uVar15 = (uint)bVar13" identifier = (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (labeled_statement "LAB_000152f4:\n    uVar22 = uVar15 - 9;" statement_identifier : (expression_statement "uVar22 = uVar15 - 9;" (assignment_expression "uVar22 = uVar15 - 9" identifier = (binary_expression "uVar15 - 9" identifier - number_literal)) ;)) (expression_statement "name = (uint **)(uint)(uVar22 < 0x18);" (assignment_expression "name = (uint **)(uint)(uVar22 < 0x18)" identifier = (cast_expression "(uint **)(uint)(uVar22 < 0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(uint)(uVar22 < 0x18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar22 < 0x18)" ( (binary_expression "uVar22 < 0x18" identifier < number_literal) ))))) ;) (if_statement "if (name == (uint **)0x0) goto LAB_000153a8;" if (parenthesized_expression "(name == (uint **)0x0)" ( (binary_expression "name == (uint **)0x0" identifier == (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_000153a8;" goto statement_identifier ;)) (labeled_statement "LAB_00015308:\n    ppuVar12 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f);" statement_identifier : (expression_statement "ppuVar12 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f);" (assignment_expression "ppuVar12 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f)" identifier = (cast_expression "(uint **)(1 << (uVar22 & 0x1f) & 0x80001f)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(1 << (uVar22 & 0x1f) & 0x80001f)" ( (binary_expression "1 << (uVar22 & 0x1f) & 0x80001f" (binary_expression "1 << (uVar22 & 0x1f)" number_literal << (parenthesized_expression "(uVar22 & 0x1f)" ( (binary_expression "uVar22 & 0x1f" identifier & number_literal) ))) & number_literal) )))) ;)) (while_statement "while (ppuVar12 != (uint **)0x0) {\n      ppuVar21 = (uint **)((int)ppuVar21 + 1);\n      pc_00->input = (char *)ppuVar21;\n      in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n      uVar15 = (uint)*(byte *)ppuVar21;\n      name = (uint **)(uVar15 - 9);\n      if ((uint **)0x17 < name) goto LAB_000153a8;\n      name = (uint **)(1 << ((uint)name & 0x1f) & 0x80001f);\n      ppuVar12 = name;\n    }" while (parenthesized_expression "(ppuVar12 != (uint **)0x0)" ( (binary_expression "ppuVar12 != (uint **)0x0" identifier != (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n      ppuVar21 = (uint **)((int)ppuVar21 + 1);\n      pc_00->input = (char *)ppuVar21;\n      in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n      uVar15 = (uint)*(byte *)ppuVar21;\n      name = (uint **)(uVar15 - 9);\n      if ((uint **)0x17 < name) goto LAB_000153a8;\n      name = (uint **)(1 << ((uint)name & 0x1f) & 0x80001f);\n      ppuVar12 = name;\n    }" { (expression_statement "ppuVar21 = (uint **)((int)ppuVar21 + 1);" (assignment_expression "ppuVar21 = (uint **)((int)ppuVar21 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar21 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar21 + 1)" ( (binary_expression "(int)ppuVar21 + 1" (cast_expression "(int)ppuVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pc_00->input = (char *)ppuVar21;" (assignment_expression "pc_00->input = (char *)ppuVar21" (field_expression "pc_00->input" identifier -> field_identifier) = (cast_expression "(char *)ppuVar21" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;" (assignment_expression "in_t0 = (uint **)(int)(char)*(byte *)ppuVar21" identifier = (cast_expression "(uint **)(int)(char)*(byte *)ppuVar21" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)(char)*(byte *)ppuVar21" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)ppuVar21" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)ppuVar21" * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))))) ;) (expression_statement "uVar15 = (uint)*(byte *)ppuVar21;" (assignment_expression "uVar15 = (uint)*(byte *)ppuVar21" identifier = (binary_expression "(uint)*(byte *)ppuVar21" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "name = (uint **)(uVar15 - 9);" (assignment_expression "name = (uint **)(uVar15 - 9)" identifier = (cast_expression "(uint **)(uVar15 - 9)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar15 - 9)" ( (binary_expression "uVar15 - 9" identifier - number_literal) )))) ;) (if_statement "if ((uint **)0x17 < name) goto LAB_000153a8;" if (parenthesized_expression "((uint **)0x17 < name)" ( (binary_expression "(uint **)0x17 < name" (cast_expression "(uint **)0x17" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) < identifier) )) (goto_statement "goto LAB_000153a8;" goto statement_identifier ;)) (expression_statement "name = (uint **)(1 << ((uint)name & 0x1f) & 0x80001f);" (assignment_expression "name = (uint **)(1 << ((uint)name & 0x1f) & 0x80001f)" identifier = (cast_expression "(uint **)(1 << ((uint)name & 0x1f) & 0x80001f)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(1 << ((uint)name & 0x1f) & 0x80001f)" ( (binary_expression "1 << ((uint)name & 0x1f) & 0x80001f" (binary_expression "1 << ((uint)name & 0x1f)" number_literal << (parenthesized_expression "((uint)name & 0x1f)" ( (binary_expression "(uint)name & 0x1f" (cast_expression "(uint)name" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) & number_literal) )))) ;) (expression_statement "ppuVar12 = name;" (assignment_expression "ppuVar12 = name" identifier = identifier) ;) })) (labeled_statement "LAB_00015344:\n    in_t3 = 0xffffffff;" statement_identifier : (expression_statement "in_t3 = 0xffffffff;" (assignment_expression "in_t3 = 0xffffffff" identifier = number_literal) ;)) (if_statement "if (uVar15 == 0x2d) goto LAB_00015358;" if (parenthesized_expression "(uVar15 == 0x2d)" ( (binary_expression "uVar15 == 0x2d" identifier == number_literal) )) (goto_statement "goto LAB_00015358;" goto statement_identifier ;)) (if_statement "if (uVar15 == 0x2b) goto LAB_00015354;" if (parenthesized_expression "(uVar15 == 0x2b)" ( (binary_expression "uVar15 == 0x2b" identifier == number_literal) )) (goto_statement "goto LAB_00015354;" goto statement_identifier ;)) (if_statement "if ((0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))\n       ) {\n      pbVar26 = (byte *)pc_00->input;\n      name = (uint **)(abStack_f1 + 1);\n      in_t0 = (uint **)(abStack_f1 + 0x14);\n      ppuVar28 = (uint **)&DAT_0000002e;\n      ppuVar21 = name;\n      do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        pc_00->input = (char *)pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));\n      *(byte *)ppuVar21 = 0;\n      ppuVar21 = name;\n      bVar13 = abStack_f1[1];\n      while (bVar13 != 0) {\n        if (bVar13 - 0x61 < 0x1a) {\n          bVar13 = bVar13 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar13;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar13 = *(byte *)ppuVar21;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);\n      do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(name);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(name);\n      if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);\n      do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(name,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(name);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      iVar9 = *(int *)(puVar33 + 0x2326c);\n      ppuVar21 = name;\n      ptVar11 = lookup_zone(pc_00,(char *)name);\n      unaff_s6 = asStack_578;\n      if (ptVar11 != (table *)0x0) {\n        puVar29 = (uint *)ptVar11->type;\n        apuStack_5e8[1] = (uint *)ptVar11->value;\n        apuStack_5e8[0] = (uint *)(ptVar11->value >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);\n      iVar10 = (**(code **)(puVar33 + 0x234c8))(name);\n      if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        name = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);\n      ppuVar12 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);\n      ppuVar21 = ppuVar12;\n      psVar27 = unaff_s6;\n      do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(name);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);\n      pbVar26 = (byte *)((int)name + (int)((int)puStack_674 + -1));\n      if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(name);\n          ppuVar21 = ppuVar12;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar12 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar12 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);\n      pcVar34 = *(code **)(puVar33 + 0x234c8);\n      do {\n        iVar10 = (*pcVar34)(name);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);\n      if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar12 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar12;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar12 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }\n      if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = name;\n        ppuVar12 = name;\n        bVar13 = abStack_f1[1];\n        do {\n          if (bVar13 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar12 = (uint **)((int)ppuVar12 + 1);\n          bVar13 = *(byte *)ppuVar12;\n          *(byte *)ppuVar21 = bVar13;\n        } while (bVar13 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = name, iVar9 = (*(code *)(&DAT_00004388 + iVar9))(pc_00), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }\n      ppuVar21 = *(uint ***)(puVar33 + 0x23270);\n      if (pc_00->parse_datetime_debug == false) goto LAB_00017ae0;\n      pcVar6 = (char *)(**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5)\n      ;\n      puVar29 = (uint *)0x3f;\n      dbg_printf(pcVar6);\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n      goto LAB_00014f74;\n    }" if (parenthesized_expression "((0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))\n       )" ( (binary_expression "(0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))" (parenthesized_expression "(0x40 < (int)in_t0)" ( (binary_expression "0x40 < (int)in_t0" number_literal < (cast_expression "(int)in_t0" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))" ( (parenthesized_expression "((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a))" ( (binary_expression "(int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)" (binary_expression "(int)in_t0 < 0x5b" (cast_expression "(int)in_t0" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) || (parenthesized_expression "(((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)" ( (binary_expression "((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a" (parenthesized_expression "((uint)((int)in_t0 + -0x61) & 0xff)" ( (binary_expression "(uint)((int)in_t0 + -0x61) & 0xff" (call_expression "(uint)((int)in_t0 + -0x61)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)in_t0 + -0x61)" ( (binary_expression "(int)in_t0 + -0x61" (cast_expression "(int)in_t0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) & number_literal) )) < number_literal) ))) )) ))) )) (compound_statement "{\n      pbVar26 = (byte *)pc_00->input;\n      name = (uint **)(abStack_f1 + 1);\n      in_t0 = (uint **)(abStack_f1 + 0x14);\n      ppuVar28 = (uint **)&DAT_0000002e;\n      ppuVar21 = name;\n      do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        pc_00->input = (char *)pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));\n      *(byte *)ppuVar21 = 0;\n      ppuVar21 = name;\n      bVar13 = abStack_f1[1];\n      while (bVar13 != 0) {\n        if (bVar13 - 0x61 < 0x1a) {\n          bVar13 = bVar13 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar13;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar13 = *(byte *)ppuVar21;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);\n      do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(name);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(name);\n      if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);\n      do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(name,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(name);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      iVar9 = *(int *)(puVar33 + 0x2326c);\n      ppuVar21 = name;\n      ptVar11 = lookup_zone(pc_00,(char *)name);\n      unaff_s6 = asStack_578;\n      if (ptVar11 != (table *)0x0) {\n        puVar29 = (uint *)ptVar11->type;\n        apuStack_5e8[1] = (uint *)ptVar11->value;\n        apuStack_5e8[0] = (uint *)(ptVar11->value >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);\n      iVar10 = (**(code **)(puVar33 + 0x234c8))(name);\n      if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        name = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);\n      ppuVar12 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);\n      ppuVar21 = ppuVar12;\n      psVar27 = unaff_s6;\n      do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(name);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);\n      pbVar26 = (byte *)((int)name + (int)((int)puStack_674 + -1));\n      if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(name);\n          ppuVar21 = ppuVar12;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar12 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar12 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);\n      pcVar34 = *(code **)(puVar33 + 0x234c8);\n      do {\n        iVar10 = (*pcVar34)(name);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);\n      if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar12 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar12;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar12 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }\n      if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = name;\n        ppuVar12 = name;\n        bVar13 = abStack_f1[1];\n        do {\n          if (bVar13 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar12 = (uint **)((int)ppuVar12 + 1);\n          bVar13 = *(byte *)ppuVar12;\n          *(byte *)ppuVar21 = bVar13;\n        } while (bVar13 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = name, iVar9 = (*(code *)(&DAT_00004388 + iVar9))(pc_00), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }\n      ppuVar21 = *(uint ***)(puVar33 + 0x23270);\n      if (pc_00->parse_datetime_debug == false) goto LAB_00017ae0;\n      pcVar6 = (char *)(**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5)\n      ;\n      puVar29 = (uint *)0x3f;\n      dbg_printf(pcVar6);\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n      goto LAB_00014f74;\n    }" { (expression_statement "pbVar26 = (byte *)pc_00->input;" (assignment_expression "pbVar26 = (byte *)pc_00->input" identifier = (cast_expression "(byte *)pc_00->input" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pc_00->input" identifier -> field_identifier))) ;) (expression_statement "name = (uint **)(abStack_f1 + 1);" (assignment_expression "name = (uint **)(abStack_f1 + 1)" identifier = (cast_expression "(uint **)(abStack_f1 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(abStack_f1 + 1)" ( (binary_expression "abStack_f1 + 1" identifier + number_literal) )))) ;) (expression_statement "in_t0 = (uint **)(abStack_f1 + 0x14);" (assignment_expression "in_t0 = (uint **)(abStack_f1 + 0x14)" identifier = (cast_expression "(uint **)(abStack_f1 + 0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(abStack_f1 + 0x14)" ( (binary_expression "abStack_f1 + 0x14" identifier + number_literal) )))) ;) (expression_statement "ppuVar28 = (uint **)&DAT_0000002e;" (assignment_expression "ppuVar28 = (uint **)&DAT_0000002e" identifier = (cast_expression "(uint **)&DAT_0000002e" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_0000002e" & identifier))) ;) (expression_statement "ppuVar21 = name;" (assignment_expression "ppuVar21 = name" identifier = identifier) ;) (do_statement "do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        pc_00->input = (char *)pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));" do (compound_statement "{\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        pc_00->input = (char *)pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      }" { (expression_statement "pbVar26 = pbVar26 + 1;" (assignment_expression "pbVar26 = pbVar26 + 1" identifier = (binary_expression "pbVar26 + 1" identifier + number_literal)) ;) (if_statement "if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }" if (parenthesized_expression "(ppuVar21 < in_t0)" ( (binary_expression "ppuVar21 < in_t0" identifier < identifier) )) (compound_statement "{\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }" { (expression_statement "*(byte *)ppuVar21 = (byte)uVar15;" (assignment_expression "*(byte *)ppuVar21 = (byte)uVar15" (pointer_expression "*(byte *)ppuVar21" * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(byte)uVar15" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "ppuVar21 = (uint **)((int)ppuVar21 + 1);" (assignment_expression "ppuVar21 = (uint **)((int)ppuVar21 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar21 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar21 + 1)" ( (binary_expression "(int)ppuVar21 + 1" (cast_expression "(int)ppuVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "pc_00->input = (char *)pbVar26;" (assignment_expression "pc_00->input = (char *)pbVar26" (field_expression "pc_00->input" identifier -> field_identifier) = (cast_expression "(char *)pbVar26" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar9 = (int)(char)*pbVar26;" (assignment_expression "iVar9 = (int)(char)*pbVar26" identifier = (cast_expression "(int)(char)*pbVar26" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar26" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar26" * identifier)))) ;) (expression_statement "uVar15 = (uint)*pbVar26;" (assignment_expression "uVar15 = (uint)*pbVar26" identifier = (binary_expression "(uint)*pbVar26" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) }) while (parenthesized_expression "(((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e))" ( (binary_expression "((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e)" (parenthesized_expression "((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a))))" ( (binary_expression "(0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))" (parenthesized_expression "(0x40 < iVar9)" ( (binary_expression "0x40 < iVar9" number_literal < identifier) )) && (parenthesized_expression "((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))" ( (parenthesized_expression "(iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a))" ( (binary_expression "iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)" (binary_expression "iVar9 < 0x5b" identifier < number_literal) || (parenthesized_expression "((iVar9 - 0x61U & 0xff) < 0x1a)" ( (binary_expression "(iVar9 - 0x61U & 0xff) < 0x1a" (parenthesized_expression "(iVar9 - 0x61U & 0xff)" ( (binary_expression "iVar9 - 0x61U & 0xff" (binary_expression "iVar9 - 0x61U" identifier - number_literal) & number_literal) )) < number_literal) ))) )) ))) )) || (parenthesized_expression "(uVar15 == 0x2e)" ( (binary_expression "uVar15 == 0x2e" identifier == number_literal) ))) )) ;) (expression_statement "*(byte *)ppuVar21 = 0;" (assignment_expression "*(byte *)ppuVar21 = 0" (pointer_expression "*(byte *)ppuVar21" * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "ppuVar21 = name;" (assignment_expression "ppuVar21 = name" identifier = identifier) ;) (expression_statement "bVar13 = abStack_f1[1];" (assignment_expression "bVar13 = abStack_f1[1]" identifier = (subscript_expression "abStack_f1[1]" identifier [ number_literal ])) ;) (while_statement "while (bVar13 != 0) {\n        if (bVar13 - 0x61 < 0x1a) {\n          bVar13 = bVar13 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar13;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar13 = *(byte *)ppuVar21;\n      }" while (parenthesized_expression "(bVar13 != 0)" ( (binary_expression "bVar13 != 0" identifier != number_literal) )) (compound_statement "{\n        if (bVar13 - 0x61 < 0x1a) {\n          bVar13 = bVar13 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar13;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar13 = *(byte *)ppuVar21;\n      }" { (if_statement "if (bVar13 - 0x61 < 0x1a) {\n          bVar13 = bVar13 - 0x20;\n        }" if (parenthesized_expression "(bVar13 - 0x61 < 0x1a)" ( (binary_expression "bVar13 - 0x61 < 0x1a" (binary_expression "bVar13 - 0x61" identifier - number_literal) < number_literal) )) (compound_statement "{\n          bVar13 = bVar13 - 0x20;\n        }" { (expression_statement "bVar13 = bVar13 - 0x20;" (assignment_expression "bVar13 = bVar13 - 0x20" identifier = (binary_expression "bVar13 - 0x20" identifier - number_literal)) ;) })) (expression_statement "*(byte *)ppuVar21 = bVar13;" (assignment_expression "*(byte *)ppuVar21 = bVar13" (pointer_expression "*(byte *)ppuVar21" * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "ppuVar21 = (uint **)((int)ppuVar21 + 1);" (assignment_expression "ppuVar21 = (uint **)((int)ppuVar21 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar21 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar21 + 1)" ( (binary_expression "(int)ppuVar21 + 1" (cast_expression "(int)ppuVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar13 = *(byte *)ppuVar21;" (assignment_expression "bVar13 = *(byte *)ppuVar21" identifier = (pointer_expression "*(byte *)ppuVar21" * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) })) (expression_statement "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);" (assignment_expression "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98)" identifier = (cast_expression "(short *)(*(int *)(puVar33 + 0x23268) + 0x7f98)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23268) + 0x7f98)" ( (binary_expression "*(int *)(puVar33 + 0x23268) + 0x7f98" (pointer_expression "*(int *)(puVar33 + 0x23268)" * (cast_expression "(int *)(puVar33 + 0x23268)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23268)" ( (binary_expression "puVar33 + 0x23268" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);" (assignment_expression "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0)" identifier = (cast_expression "(uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23270) + 0x51d0)" ( (binary_expression "*(int *)(puVar33 + 0x23270) + 0x51d0" (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(name);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);" do (compound_statement "{\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(name);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      }" { (expression_statement "iVar9 = (**(code **)(puVar33 + 0x234c8))(name);" (assignment_expression "iVar9 = (**(code **)(puVar33 + 0x234c8))(name)" identifier = (call_expression "(**(code **)(puVar33 + 0x234c8))(name)" (parenthesized_expression "(**(code **)(puVar33 + 0x234c8))" ( (pointer_expression "**(code **)(puVar33 + 0x234c8)" * (pointer_expression "*(code **)(puVar33 + 0x234c8)" * (cast_expression "(code **)(puVar33 + 0x234c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x234c8)" ( (binary_expression "puVar33 + 0x234c8" identifier + number_literal) ))))) )) (argument_list "(name)" ( identifier )))) ;) (expression_statement "puStack_674 = puVar25;" (assignment_expression "puStack_674 = puVar25" identifier = identifier) ;) (if_statement "if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }" { (labeled_statement "LAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);" statement_identifier : (expression_statement "puVar29 = *(uint **)(unaff_s6 + 2);" (assignment_expression "puVar29 = *(uint **)(unaff_s6 + 2)" identifier = (pointer_expression "*(uint **)(unaff_s6 + 2)" * (cast_expression "(uint **)(unaff_s6 + 2)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s6 + 2)" ( (binary_expression "unaff_s6 + 2" identifier + number_literal) ))))) ;)) (expression_statement "apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);" (assignment_expression "apuStack_5e8[1] = *(uint **)(unaff_s6 + 4)" (subscript_expression "apuStack_5e8[1]" identifier [ number_literal ]) = (pointer_expression "*(uint **)(unaff_s6 + 4)" * (cast_expression "(uint **)(unaff_s6 + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s6 + 4)" ( (binary_expression "unaff_s6 + 4" identifier + number_literal) ))))) ;) (expression_statement "apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);" (assignment_expression "apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f)" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = (cast_expression "(uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*(uint **)(unaff_s6 + 4) >> 0x1f)" ( (binary_expression "(int)*(uint **)(unaff_s6 + 4) >> 0x1f" (cast_expression "(int)*(uint **)(unaff_s6 + 4)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint **)(unaff_s6 + 4)" * (cast_expression "(uint **)(unaff_s6 + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s6 + 4)" ( (binary_expression "unaff_s6 + 4" identifier + number_literal) ))))) >> number_literal) )))) ;) (goto_statement "goto LAB_00014f5c;" goto statement_identifier ;) })) (expression_statement "unaff_s6 = unaff_s6 + 6;" (assignment_expression "unaff_s6 = unaff_s6 + 6" identifier = (binary_expression "unaff_s6 + 6" identifier + number_literal)) ;) (expression_statement "ppuVar21 = *(uint ***)unaff_s6;" (assignment_expression "ppuVar21 = *(uint ***)unaff_s6" identifier = (pointer_expression "*(uint ***)unaff_s6" * (cast_expression "(uint ***)unaff_s6" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) }) while (parenthesized_expression "(ppuVar21 != (uint **)0x0)" ( (binary_expression "ppuVar21 != (uint **)0x0" identifier != (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) ;) (expression_statement "puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(name);" (assignment_expression "puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(name)" identifier = (cast_expression "(uint *)(**(code **)(puVar33 + 0x23438))(name)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar33 + 0x23438))(name)" (parenthesized_expression "(**(code **)(puVar33 + 0x23438))" ( (pointer_expression "**(code **)(puVar33 + 0x23438)" * (pointer_expression "*(code **)(puVar33 + 0x23438)" * (cast_expression "(code **)(puVar33 + 0x23438)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x23438)" ( (binary_expression "puVar33 + 0x23438" identifier + number_literal) ))))) )) (argument_list "(name)" ( identifier ))))) ;) (if_statement "if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }" if (parenthesized_expression "(puStack_674 == (uint *)0x3)" ( (binary_expression "puStack_674 == (uint *)0x3" identifier == (cast_expression "(uint *)0x3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        bVar2 = true;\n      }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) }) (else_clause "else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }" else (if_statement "if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }" if (parenthesized_expression "(puStack_674 == (uint *)0x4)" ( (binary_expression "puStack_674 == (uint *)0x4" identifier == (cast_expression "(uint *)0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        bVar2 = abStack_f1[4] == '.';\n      }" { (expression_statement "bVar2 = abStack_f1[4] == '.';" (assignment_expression "bVar2 = abStack_f1[4] == '.'" identifier = (binary_expression "abStack_f1[4] == '.'" (subscript_expression "abStack_f1[4]" identifier [ number_literal ]) == (char_literal "'.'" ' character '))) ;) }) (else_clause "else {\n        bVar2 = false;\n      }" else (compound_statement "{\n        bVar2 = false;\n      }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) }))))) (expression_statement "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);" (assignment_expression "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c)" identifier = (cast_expression "(short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23268) + 0x7e6c)" ( (binary_expression "*(int *)(puVar33 + 0x23268) + 0x7e6c" (pointer_expression "*(int *)(puVar33 + 0x23268)" * (cast_expression "(int *)(puVar33 + 0x23268)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23268)" ( (binary_expression "puVar33 + 0x23268" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);" (assignment_expression "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4)" identifier = (cast_expression "(uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23270) + 0x51d4)" ( (binary_expression "*(int *)(puVar33 + 0x23270) + 0x51d4" (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(name,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(name);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);" do (compound_statement "{\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(name,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(name);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      }" { (if_statement "if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(name,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(name);\n        }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(name,ppuVar21,3);\n        }" { (expression_statement "iVar9 = (**(code **)(puVar33 + 0x233c8))(name,ppuVar21,3);" (assignment_expression "iVar9 = (**(code **)(puVar33 + 0x233c8))(name,ppuVar21,3)" identifier = (call_expression "(**(code **)(puVar33 + 0x233c8))(name,ppuVar21,3)" (parenthesized_expression "(**(code **)(puVar33 + 0x233c8))" ( (pointer_expression "**(code **)(puVar33 + 0x233c8)" * (pointer_expression "*(code **)(puVar33 + 0x233c8)" * (cast_expression "(code **)(puVar33 + 0x233c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x233c8)" ( (binary_expression "puVar33 + 0x233c8" identifier + number_literal) ))))) )) (argument_list "(name,ppuVar21,3)" ( identifier , identifier , number_literal )))) ;) }) (else_clause "else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(name);\n        }" else (compound_statement "{\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(name);\n        }" { (expression_statement "iVar9 = (**(code **)(puVar33 + 0x234c8))(name);" (assignment_expression "iVar9 = (**(code **)(puVar33 + 0x234c8))(name)" identifier = (call_expression "(**(code **)(puVar33 + 0x234c8))(name)" (parenthesized_expression "(**(code **)(puVar33 + 0x234c8))" ( (pointer_expression "**(code **)(puVar33 + 0x234c8)" * (pointer_expression "*(code **)(puVar33 + 0x234c8)" * (cast_expression "(code **)(puVar33 + 0x234c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x234c8)" ( (binary_expression "puVar33 + 0x234c8" identifier + number_literal) ))))) )) (argument_list "(name)" ( identifier )))) ;) }))) (expression_statement "puStack_66c = puVar25;" (assignment_expression "puStack_66c = puVar25" identifier = identifier) ;) (if_statement "if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }" { (expression_statement "puVar29 = *(uint **)(unaff_s6 + 2);" (assignment_expression "puVar29 = *(uint **)(unaff_s6 + 2)" identifier = (pointer_expression "*(uint **)(unaff_s6 + 2)" * (cast_expression "(uint **)(unaff_s6 + 2)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s6 + 2)" ( (binary_expression "unaff_s6 + 2" identifier + number_literal) ))))) ;) (expression_statement "apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);" (assignment_expression "apuStack_5e8[1] = *(uint **)(unaff_s6 + 4)" (subscript_expression "apuStack_5e8[1]" identifier [ number_literal ]) = (pointer_expression "*(uint **)(unaff_s6 + 4)" * (cast_expression "(uint **)(unaff_s6 + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s6 + 4)" ( (binary_expression "unaff_s6 + 4" identifier + number_literal) ))))) ;) (expression_statement "apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);" (assignment_expression "apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f)" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = (cast_expression "(uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*(uint **)(unaff_s6 + 4) >> 0x1f)" ( (binary_expression "(int)*(uint **)(unaff_s6 + 4) >> 0x1f" (cast_expression "(int)*(uint **)(unaff_s6 + 4)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint **)(unaff_s6 + 4)" * (cast_expression "(uint **)(unaff_s6 + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s6 + 4)" ( (binary_expression "unaff_s6 + 4" identifier + number_literal) ))))) >> number_literal) )))) ;) (goto_statement "goto LAB_00014f5c;" goto statement_identifier ;) })) (expression_statement "unaff_s6 = unaff_s6 + 6;" (assignment_expression "unaff_s6 = unaff_s6 + 6" identifier = (binary_expression "unaff_s6 + 6" identifier + number_literal)) ;) (expression_statement "ppuVar21 = *(uint ***)unaff_s6;" (assignment_expression "ppuVar21 = *(uint ***)unaff_s6" identifier = (pointer_expression "*(uint ***)unaff_s6" * (cast_expression "(uint ***)unaff_s6" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) }) while (parenthesized_expression "(ppuVar21 != (uint **)0x0)" ( (binary_expression "ppuVar21 != (uint **)0x0" identifier != (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) ;) (expression_statement "iVar9 = *(int *)(puVar33 + 0x2326c);" (assignment_expression "iVar9 = *(int *)(puVar33 + 0x2326c)" identifier = (pointer_expression "*(int *)(puVar33 + 0x2326c)" * (cast_expression "(int *)(puVar33 + 0x2326c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x2326c)" ( (binary_expression "puVar33 + 0x2326c" identifier + number_literal) ))))) ;) (expression_statement "ppuVar21 = name;" (assignment_expression "ppuVar21 = name" identifier = identifier) ;) (expression_statement "ptVar11 = lookup_zone(pc_00,(char *)name);" (assignment_expression "ptVar11 = lookup_zone(pc_00,(char *)name)" identifier = (call_expression "lookup_zone(pc_00,(char *)name)" identifier (argument_list "(pc_00,(char *)name)" ( identifier , (cast_expression "(char *)name" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "unaff_s6 = asStack_578;" (assignment_expression "unaff_s6 = asStack_578" identifier = identifier) ;) (if_statement "if (ptVar11 != (table *)0x0) {\n        puVar29 = (uint *)ptVar11->type;\n        apuStack_5e8[1] = (uint *)ptVar11->value;\n        apuStack_5e8[0] = (uint *)(ptVar11->value >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }" if (parenthesized_expression "(ptVar11 != (table *)0x0)" ( (binary_expression "ptVar11 != (table *)0x0" identifier != (cast_expression "(table *)0x0" ( (type_descriptor "table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar29 = (uint *)ptVar11->type;\n        apuStack_5e8[1] = (uint *)ptVar11->value;\n        apuStack_5e8[0] = (uint *)(ptVar11->value >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }" { (expression_statement "puVar29 = (uint *)ptVar11->type;" (assignment_expression "puVar29 = (uint *)ptVar11->type" identifier = (cast_expression "(uint *)ptVar11->type" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "ptVar11->type" identifier -> field_identifier))) ;) (expression_statement "apuStack_5e8[1] = (uint *)ptVar11->value;" (assignment_expression "apuStack_5e8[1] = (uint *)ptVar11->value" (subscript_expression "apuStack_5e8[1]" identifier [ number_literal ]) = (cast_expression "(uint *)ptVar11->value" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "ptVar11->value" identifier -> field_identifier))) ;) (expression_statement "apuStack_5e8[0] = (uint *)(ptVar11->value >> 0x1f);" (assignment_expression "apuStack_5e8[0] = (uint *)(ptVar11->value >> 0x1f)" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = (cast_expression "(uint *)(ptVar11->value >> 0x1f)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ptVar11->value >> 0x1f)" ( (binary_expression "ptVar11->value >> 0x1f" (field_expression "ptVar11->value" identifier -> field_identifier) >> number_literal) )))) ;) (expression_statement "puStack_66c = (uint *)0x0;" (assignment_expression "puStack_66c = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00014f5c;" goto statement_identifier ;) })) (expression_statement "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);" (assignment_expression "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0)" identifier = (cast_expression "(uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23270) + 0x51f0)" ( (binary_expression "*(int *)(puVar33 + 0x23270) + 0x51f0" (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar10 = (**(code **)(puVar33 + 0x234c8))(name);" (assignment_expression "iVar10 = (**(code **)(puVar33 + 0x234c8))(name)" identifier = (call_expression "(**(code **)(puVar33 + 0x234c8))(name)" (parenthesized_expression "(**(code **)(puVar33 + 0x234c8))" ( (pointer_expression "**(code **)(puVar33 + 0x234c8)" * (pointer_expression "*(code **)(puVar33 + 0x234c8)" * (cast_expression "(code **)(puVar33 + 0x234c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x234c8)" ( (binary_expression "puVar33 + 0x234c8" identifier + number_literal) ))))) )) (argument_list "(name)" ( identifier )))) ;) (if_statement "if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        name = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        name = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }" { (expression_statement "puVar29 = (uint *)0x103;" (assignment_expression "puVar29 = (uint *)0x103" identifier = (cast_expression "(uint *)0x103" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "apuStack_5e8[1] = (uint *)0x0;" (assignment_expression "apuStack_5e8[1] = (uint *)0x0" (subscript_expression "apuStack_5e8[1]" identifier [ number_literal ]) = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "apuStack_5e8[0] = (uint *)0x0;" (assignment_expression "apuStack_5e8[0] = (uint *)0x0" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);" statement_identifier : (expression_statement "iVar9 = *(int *)(puVar33 + 0x23270);" (assignment_expression "iVar9 = *(int *)(puVar33 + 0x23270)" identifier = (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) ;)) (expression_statement "name = ppuVar21;" (assignment_expression "name = ppuVar21" identifier = identifier) ;) (expression_statement "puStack_66c = puVar31;" (assignment_expression "puStack_66c = puVar31" identifier = identifier) ;) (goto_statement "goto LAB_0001558c;" goto statement_identifier ;) })) (expression_statement "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);" (assignment_expression "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8)" identifier = (cast_expression "(short *)(*(int *)(puVar33 + 0x23268) + 0x7de8)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23268) + 0x7de8)" ( (binary_expression "*(int *)(puVar33 + 0x23268) + 0x7de8" (pointer_expression "*(int *)(puVar33 + 0x23268)" * (cast_expression "(int *)(puVar33 + 0x23268)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23268)" ( (binary_expression "puVar33 + 0x23268" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "ppuVar12 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);" (assignment_expression "ppuVar12 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc)" identifier = (cast_expression "(uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23270) + 0x51dc)" ( (binary_expression "*(int *)(puVar33 + 0x23270) + 0x51dc" (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "ppuVar21 = ppuVar12;" (assignment_expression "ppuVar21 = ppuVar12" identifier = identifier) ;) (expression_statement "psVar27 = unaff_s6;" (assignment_expression "psVar27 = unaff_s6" identifier = identifier) ;) (do_statement "do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(name);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);" do (compound_statement "{\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(name);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      }" { (expression_statement "iVar10 = (**(code **)(puVar33 + 0x234c8))(name);" (assignment_expression "iVar10 = (**(code **)(puVar33 + 0x234c8))(name)" identifier = (call_expression "(**(code **)(puVar33 + 0x234c8))(name)" (parenthesized_expression "(**(code **)(puVar33 + 0x234c8))" ( (pointer_expression "**(code **)(puVar33 + 0x234c8)" * (pointer_expression "*(code **)(puVar33 + 0x234c8)" * (cast_expression "(code **)(puVar33 + 0x234c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x234c8)" ( (binary_expression "puVar33 + 0x234c8" identifier + number_literal) ))))) )) (argument_list "(name)" ( identifier )))) ;) (if_statement "if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }" { (expression_statement "puVar29 = *(uint **)(psVar27 + 2);" (assignment_expression "puVar29 = *(uint **)(psVar27 + 2)" identifier = (pointer_expression "*(uint **)(psVar27 + 2)" * (cast_expression "(uint **)(psVar27 + 2)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(psVar27 + 2)" ( (binary_expression "psVar27 + 2" identifier + number_literal) ))))) ;) (expression_statement "apuStack_5e8[1] = *(uint **)(psVar27 + 4);" (assignment_expression "apuStack_5e8[1] = *(uint **)(psVar27 + 4)" (subscript_expression "apuStack_5e8[1]" identifier [ number_literal ]) = (pointer_expression "*(uint **)(psVar27 + 4)" * (cast_expression "(uint **)(psVar27 + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(psVar27 + 4)" ( (binary_expression "psVar27 + 4" identifier + number_literal) ))))) ;) (expression_statement "apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);" (assignment_expression "apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f)" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = (cast_expression "(uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*(uint **)(psVar27 + 4) >> 0x1f)" ( (binary_expression "(int)*(uint **)(psVar27 + 4) >> 0x1f" (cast_expression "(int)*(uint **)(psVar27 + 4)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint **)(psVar27 + 4)" * (cast_expression "(uint **)(psVar27 + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(psVar27 + 4)" ( (binary_expression "psVar27 + 4" identifier + number_literal) ))))) >> number_literal) )))) ;) (goto_statement "goto LAB_00014f5c;" goto statement_identifier ;) })) (expression_statement "psVar27 = psVar27 + 6;" (assignment_expression "psVar27 = psVar27 + 6" identifier = (binary_expression "psVar27 + 6" identifier + number_literal)) ;) (expression_statement "ppuVar21 = *(uint ***)psVar27;" (assignment_expression "ppuVar21 = *(uint ***)psVar27" identifier = (pointer_expression "*(uint ***)psVar27" * (cast_expression "(uint ***)psVar27" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) }) while (parenthesized_expression "(ppuVar21 != (uint **)0x0)" ( (binary_expression "ppuVar21 != (uint **)0x0" identifier != (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) ;) (expression_statement "pbVar26 = (byte *)((int)name + (int)((int)puStack_674 + -1));" (assignment_expression "pbVar26 = (byte *)((int)name + (int)((int)puStack_674 + -1))" identifier = (cast_expression "(byte *)((int)name + (int)((int)puStack_674 + -1))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)name + (int)((int)puStack_674 + -1))" ( (binary_expression "(int)name + (int)((int)puStack_674 + -1)" (cast_expression "(int)name" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)((int)puStack_674 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)puStack_674 + -1)" ( (binary_expression "(int)puStack_674 + -1" (cast_expression "(int)puStack_674" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (if_statement "if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(name);\n          ppuVar21 = ppuVar12;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar12 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar12 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }" if (parenthesized_expression "(*pbVar26 == 0x53)" ( (binary_expression "*pbVar26 == 0x53" (pointer_expression "*pbVar26" * identifier) == number_literal) )) (compound_statement "{\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(name);\n          ppuVar21 = ppuVar12;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar12 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar12 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }" { (expression_statement "*pbVar26 = 0;" (assignment_expression "*pbVar26 = 0" (pointer_expression "*pbVar26" * identifier) = number_literal) ;) (expression_statement "pcVar34 = *(code **)(puVar33 + 0x234c8);" (assignment_expression "pcVar34 = *(code **)(puVar33 + 0x234c8)" identifier = (pointer_expression "*(code **)(puVar33 + 0x234c8)" * (cast_expression "(code **)(puVar33 + 0x234c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x234c8)" ( (binary_expression "puVar33 + 0x234c8" identifier + number_literal) ))))) ;) (do_statement "do {\n          iVar10 = (*pcVar34)(name);\n          ppuVar21 = ppuVar12;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar12 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar12 != (uint **)0x0);" do (compound_statement "{\n          iVar10 = (*pcVar34)(name);\n          ppuVar21 = ppuVar12;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar12 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        }" { (expression_statement "iVar10 = (*pcVar34)(name);" (assignment_expression "iVar10 = (*pcVar34)(name)" identifier = (call_expression "(*pcVar34)(name)" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "(name)" ( identifier )))) ;) (expression_statement "ppuVar21 = ppuVar12;" (assignment_expression "ppuVar21 = ppuVar12" identifier = identifier) ;) (expression_statement "puStack_66c = puVar31;" (assignment_expression "puStack_66c = puVar31" identifier = identifier) ;) (if_statement "if (iVar10 == 0) goto LAB_00015708;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00015708;" goto statement_identifier ;)) (expression_statement "unaff_s6 = unaff_s6 + 6;" (assignment_expression "unaff_s6 = unaff_s6 + 6" identifier = (binary_expression "unaff_s6 + 6" identifier + number_literal)) ;) (expression_statement "ppuVar12 = *(uint ***)unaff_s6;" (assignment_expression "ppuVar12 = *(uint ***)unaff_s6" identifier = (pointer_expression "*(uint ***)unaff_s6" * (cast_expression "(uint ***)unaff_s6" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (expression_statement "pcVar34 = *(code **)(puVar33 + 0x234c8);" (assignment_expression "pcVar34 = *(code **)(puVar33 + 0x234c8)" identifier = (pointer_expression "*(code **)(puVar33 + 0x234c8)" * (cast_expression "(code **)(puVar33 + 0x234c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x234c8)" ( (binary_expression "puVar33 + 0x234c8" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(ppuVar12 != (uint **)0x0)" ( (binary_expression "ppuVar12 != (uint **)0x0" identifier != (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) ;) (expression_statement "*pbVar26 = 0x53;" (assignment_expression "*pbVar26 = 0x53" (pointer_expression "*pbVar26" * identifier) = number_literal) ;) })) (expression_statement "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);" (assignment_expression "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec)" identifier = (cast_expression "(short *)(*(int *)(puVar33 + 0x23268) + 0x7cec)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23268) + 0x7cec)" ( (binary_expression "*(int *)(puVar33 + 0x23268) + 0x7cec" (pointer_expression "*(int *)(puVar33 + 0x23268)" * (cast_expression "(int *)(puVar33 + 0x23268)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23268)" ( (binary_expression "puVar33 + 0x23268" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);" (assignment_expression "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4)" identifier = (cast_expression "(uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23270) + 0x51e4)" ( (binary_expression "*(int *)(puVar33 + 0x23270) + 0x51e4" (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcVar34 = *(code **)(puVar33 + 0x234c8);" (assignment_expression "pcVar34 = *(code **)(puVar33 + 0x234c8)" identifier = (pointer_expression "*(code **)(puVar33 + 0x234c8)" * (cast_expression "(code **)(puVar33 + 0x234c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x234c8)" ( (binary_expression "puVar33 + 0x234c8" identifier + number_literal) ))))) ;) (do_statement "do {\n        iVar10 = (*pcVar34)(name);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);" do (compound_statement "{\n        iVar10 = (*pcVar34)(name);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      }" { (expression_statement "iVar10 = (*pcVar34)(name);" (assignment_expression "iVar10 = (*pcVar34)(name)" identifier = (call_expression "(*pcVar34)(name)" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "(name)" ( identifier )))) ;) (expression_statement "puStack_66c = puVar31;" (assignment_expression "puStack_66c = puVar31" identifier = identifier) ;) (if_statement "if (iVar10 == 0) goto LAB_00015708;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00015708;" goto statement_identifier ;)) (expression_statement "unaff_s6 = unaff_s6 + 6;" (assignment_expression "unaff_s6 = unaff_s6 + 6" identifier = (binary_expression "unaff_s6 + 6" identifier + number_literal)) ;) (expression_statement "ppuVar21 = *(uint ***)unaff_s6;" (assignment_expression "ppuVar21 = *(uint ***)unaff_s6" identifier = (pointer_expression "*(uint ***)unaff_s6" * (cast_expression "(uint ***)unaff_s6" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (expression_statement "pcVar34 = *(code **)(puVar33 + 0x234c8);" (assignment_expression "pcVar34 = *(code **)(puVar33 + 0x234c8)" identifier = (pointer_expression "*(code **)(puVar33 + 0x234c8)" * (cast_expression "(code **)(puVar33 + 0x234c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x234c8)" ( (binary_expression "puVar33 + 0x234c8" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(ppuVar21 != (uint **)0x0)" ( (binary_expression "ppuVar21 != (uint **)0x0" identifier != (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) ;) (if_statement "if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar12 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar12;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar12 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }" if (parenthesized_expression "(puStack_674 == (uint *)0x1)" ( (binary_expression "puStack_674 == (uint *)0x1" identifier == (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar12 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar12;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar12 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }" { (expression_statement "ppuVar21 = *(uint ***)(puVar33 + 0x23268);" (assignment_expression "ppuVar21 = *(uint ***)(puVar33 + 0x23268)" identifier = (pointer_expression "*(uint ***)(puVar33 + 0x23268)" * (cast_expression "(uint ***)(puVar33 + 0x23268)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar33 + 0x23268)" ( (binary_expression "puVar33 + 0x23268" identifier + number_literal) ))))) ;) (if_statement "if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }" if (parenthesized_expression "(abStack_f1[1] == 0x41)" ( (binary_expression "abStack_f1[1] == 0x41" (subscript_expression "abStack_f1[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }" { (expression_statement "puVar29 = (uint *)0x111;" (assignment_expression "puVar29 = (uint *)0x111" identifier = (cast_expression "(uint *)0x111" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "apuStack_5e8[1] = (uint *)0xfffff1f0;" (assignment_expression "apuStack_5e8[1] = (uint *)0xfffff1f0" (subscript_expression "apuStack_5e8[1]" identifier [ number_literal ]) = (cast_expression "(uint *)0xfffff1f0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "apuStack_5e8[0] = (uint *)0xffffffff;" (assignment_expression "apuStack_5e8[0] = (uint *)0xffffffff" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = (cast_expression "(uint *)0xffffffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00015588;" goto statement_identifier ;) })) (expression_statement "ppuVar12 = ppuVar21 + 0x1e51;" (assignment_expression "ppuVar12 = ppuVar21 + 0x1e51" identifier = (binary_expression "ppuVar21 + 0x1e51" identifier + number_literal)) ;) (while_statement "while( true ) {\n          ppuVar21 = ppuVar12;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar12 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          ppuVar21 = ppuVar12;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar12 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }" { (expression_statement "ppuVar21 = ppuVar12;" (assignment_expression "ppuVar21 = ppuVar12" identifier = identifier) ;) (if_statement "if (ppuVar21[3] == (uint *)0x0) break;" if (parenthesized_expression "(ppuVar21[3] == (uint *)0x0)" ( (binary_expression "ppuVar21[3] == (uint *)0x0" (subscript_expression "ppuVar21[3]" identifier [ number_literal ]) == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "ppuVar12 = ppuVar21 + 3;" (assignment_expression "ppuVar12 = ppuVar21 + 3" identifier = (binary_expression "ppuVar21 + 3" identifier + number_literal)) ;) (if_statement "if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }" if (parenthesized_expression "(*(byte *)ppuVar21[3] == abStack_f1[1])" ( (binary_expression "*(byte *)ppuVar21[3] == abStack_f1[1]" (pointer_expression "*(byte *)ppuVar21[3]" * (cast_expression "(byte *)ppuVar21[3]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppuVar21[3]" identifier [ number_literal ]))) == (subscript_expression "abStack_f1[1]" identifier [ number_literal ])) )) (compound_statement "{\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }" { (expression_statement "puVar29 = ppuVar21[4];" (assignment_expression "puVar29 = ppuVar21[4]" identifier = (subscript_expression "ppuVar21[4]" identifier [ number_literal ])) ;) (expression_statement "apuStack_5e8[1] = ppuVar21[5];" (assignment_expression "apuStack_5e8[1] = ppuVar21[5]" (subscript_expression "apuStack_5e8[1]" identifier [ number_literal ]) = (subscript_expression "ppuVar21[5]" identifier [ number_literal ])) ;) (expression_statement "apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);" (assignment_expression "apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f)" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = (cast_expression "(uint *)((int)ppuVar21[5] >> 0x1f)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar21[5] >> 0x1f)" ( (binary_expression "(int)ppuVar21[5] >> 0x1f" (cast_expression "(int)ppuVar21[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppuVar21[5]" identifier [ number_literal ])) >> number_literal) )))) ;) (goto_statement "goto LAB_00014f5c;" goto statement_identifier ;) })) })) })) (if_statement "if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = name;\n        ppuVar12 = name;\n        bVar13 = abStack_f1[1];\n        do {\n          if (bVar13 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar12 = (uint **)((int)ppuVar12 + 1);\n          bVar13 = *(byte *)ppuVar12;\n          *(byte *)ppuVar21 = bVar13;\n        } while (bVar13 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = name, iVar9 = (*(code *)(&DAT_00004388 + iVar9))(pc_00), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }" if (parenthesized_expression "(abStack_f1[1] != 0)" ( (binary_expression "abStack_f1[1] != 0" (subscript_expression "abStack_f1[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        bVar2 = false;\n        ppuVar21 = name;\n        ppuVar12 = name;\n        bVar13 = abStack_f1[1];\n        do {\n          if (bVar13 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar12 = (uint **)((int)ppuVar12 + 1);\n          bVar13 = *(byte *)ppuVar12;\n          *(byte *)ppuVar21 = bVar13;\n        } while (bVar13 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = name, iVar9 = (*(code *)(&DAT_00004388 + iVar9))(pc_00), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "ppuVar21 = name;" (assignment_expression "ppuVar21 = name" identifier = identifier) ;) (expression_statement "ppuVar12 = name;" (assignment_expression "ppuVar12 = name" identifier = identifier) ;) (expression_statement "bVar13 = abStack_f1[1];" (assignment_expression "bVar13 = abStack_f1[1]" identifier = (subscript_expression "abStack_f1[1]" identifier [ number_literal ])) ;) (do_statement "do {\n          if (bVar13 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar12 = (uint **)((int)ppuVar12 + 1);\n          bVar13 = *(byte *)ppuVar12;\n          *(byte *)ppuVar21 = bVar13;\n        } while (bVar13 != 0);" do (compound_statement "{\n          if (bVar13 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar12 = (uint **)((int)ppuVar12 + 1);\n          bVar13 = *(byte *)ppuVar12;\n          *(byte *)ppuVar21 = bVar13;\n        }" { (if_statement "if (bVar13 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }" if (parenthesized_expression "(bVar13 == 0x2e)" ( (binary_expression "bVar13 == 0x2e" identifier == number_literal) )) (compound_statement "{\n            bVar2 = true;\n          }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) }) (else_clause "else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }" else (compound_statement "{\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }" { (expression_statement "ppuVar21 = (uint **)((int)ppuVar21 + 1);" (assignment_expression "ppuVar21 = (uint **)((int)ppuVar21 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar21 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar21 + 1)" ( (binary_expression "(int)ppuVar21 + 1" (cast_expression "(int)ppuVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) (expression_statement "ppuVar12 = (uint **)((int)ppuVar12 + 1);" (assignment_expression "ppuVar12 = (uint **)((int)ppuVar12 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar12 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar12 + 1)" ( (binary_expression "(int)ppuVar12 + 1" (cast_expression "(int)ppuVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar13 = *(byte *)ppuVar12;" (assignment_expression "bVar13 = *(byte *)ppuVar12" identifier = (pointer_expression "*(byte *)ppuVar12" * (cast_expression "(byte *)ppuVar12" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(byte *)ppuVar21 = bVar13;" (assignment_expression "*(byte *)ppuVar21 = bVar13" (pointer_expression "*(byte *)ppuVar21" * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) }) while (parenthesized_expression "(bVar13 != 0)" ( (binary_expression "bVar13 != 0" identifier != number_literal) )) ;) (expression_statement "puStack_674 = puVar31;" (assignment_expression "puStack_674 = puVar31" identifier = identifier) ;) (if_statement "if ((bVar2) &&\n           (ppuVar21 = name, iVar9 = (*(code *)(&DAT_00004388 + iVar9))(pc_00), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }" if (parenthesized_expression "((bVar2) &&\n           (ppuVar21 = name, iVar9 = (*(code *)(&DAT_00004388 + iVar9))(pc_00), iVar9 != 0))" ( (binary_expression "(bVar2) &&\n           (ppuVar21 = name, iVar9 = (*(code *)(&DAT_00004388 + iVar9))(pc_00), iVar9 != 0)" (parenthesized_expression "(bVar2)" ( identifier )) && (parenthesized_expression "(ppuVar21 = name, iVar9 = (*(code *)(&DAT_00004388 + iVar9))(pc_00), iVar9 != 0)" ( (comma_expression "ppuVar21 = name, iVar9 = (*(code *)(&DAT_00004388 + iVar9))(pc_00), iVar9 != 0" (assignment_expression "ppuVar21 = name" identifier = identifier) , (comma_expression "iVar9 = (*(code *)(&DAT_00004388 + iVar9))(pc_00), iVar9 != 0" (assignment_expression "iVar9 = (*(code *)(&DAT_00004388 + iVar9))(pc_00)" identifier = (call_expression "(*(code *)(&DAT_00004388 + iVar9))(pc_00)" (parenthesized_expression "(*(code *)(&DAT_00004388 + iVar9))" ( (pointer_expression "*(code *)(&DAT_00004388 + iVar9)" * (cast_expression "(code *)(&DAT_00004388 + iVar9)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00004388 + iVar9)" ( (binary_expression "&DAT_00004388 + iVar9" (pointer_expression "&DAT_00004388" & identifier) + identifier) )))) )) (argument_list "(pc_00)" ( identifier )))) , (binary_expression "iVar9 != 0" identifier != number_literal))) ))) )) (compound_statement "{\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }" { (expression_statement "puVar29 = *(uint **)(iVar9 + 4);" (assignment_expression "puVar29 = *(uint **)(iVar9 + 4)" identifier = (pointer_expression "*(uint **)(iVar9 + 4)" * (cast_expression "(uint **)(iVar9 + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) ))))) ;) (expression_statement "apuStack_5e8[1] = *(uint **)(iVar9 + 8);" (assignment_expression "apuStack_5e8[1] = *(uint **)(iVar9 + 8)" (subscript_expression "apuStack_5e8[1]" identifier [ number_literal ]) = (pointer_expression "*(uint **)(iVar9 + 8)" * (cast_expression "(uint **)(iVar9 + 8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) ))))) ;) (expression_statement "apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);" (assignment_expression "apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f)" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = (cast_expression "(uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*(uint **)(iVar9 + 8) >> 0x1f)" ( (binary_expression "(int)*(uint **)(iVar9 + 8) >> 0x1f" (cast_expression "(int)*(uint **)(iVar9 + 8)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint **)(iVar9 + 8)" * (cast_expression "(uint **)(iVar9 + 8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) ))))) >> number_literal) )))) ;) (goto_statement "goto LAB_00014f5c;" goto statement_identifier ;) })) })) (expression_statement "ppuVar21 = *(uint ***)(puVar33 + 0x23270);" (assignment_expression "ppuVar21 = *(uint ***)(puVar33 + 0x23270)" identifier = (pointer_expression "*(uint ***)(puVar33 + 0x23270)" * (cast_expression "(uint ***)(puVar33 + 0x23270)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) ;) (if_statement "if (pc_00->parse_datetime_debug == false) goto LAB_00017ae0;" if (parenthesized_expression "(pc_00->parse_datetime_debug == false)" ( (binary_expression "pc_00->parse_datetime_debug == false" (field_expression "pc_00->parse_datetime_debug" identifier -> field_identifier) == false) )) (goto_statement "goto LAB_00017ae0;" goto statement_identifier ;)) (expression_statement "pcVar6 = (char *)(**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5)\n      ;" (assignment_expression "pcVar6 = (char *)(**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5)" identifier = (cast_expression "(char *)(**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5)" (parenthesized_expression "(**(code **)(puVar33 + 0x2348c))" ( (pointer_expression "**(code **)(puVar33 + 0x2348c)" * (pointer_expression "*(code **)(puVar33 + 0x2348c)" * (cast_expression "(code **)(puVar33 + 0x2348c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x2348c)" ( (binary_expression "puVar33 + 0x2348c" identifier + number_literal) ))))) )) (argument_list "(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5)" ( number_literal , (binary_expression "*(uint ***)(puVar33 + 0x23270) + 0x147d" (pointer_expression "*(uint ***)(puVar33 + 0x23270)" * (cast_expression "(uint ***)(puVar33 + 0x23270)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) )))) + number_literal) , number_literal ))))) ;) (expression_statement "puVar29 = (uint *)0x3f;" (assignment_expression "puVar29 = (uint *)0x3f" identifier = (cast_expression "(uint *)0x3f" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "dbg_printf(pcVar6);" (call_expression "dbg_printf(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (expression_statement "uVar15 = 2;" (assignment_expression "uVar15 = 2" identifier = number_literal) ;) (expression_statement "puVar19 = (uint *)((int)puVar31 + 2);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + 2)" identifier = (cast_expression "(uint *)((int)puVar31 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar31 + 2)" ( (binary_expression "(int)puVar31 + 2" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (goto_statement "goto LAB_00014f74;" goto statement_identifier ;) })) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (if_statement "if (uVar15 == 0x28) {\n      ppuVar21 = (uint **)pc_00->input;\n      goto LAB_000157a8;\n    }" if (parenthesized_expression "(uVar15 == 0x28)" ( (binary_expression "uVar15 == 0x28" identifier == number_literal) )) (compound_statement "{\n      ppuVar21 = (uint **)pc_00->input;\n      goto LAB_000157a8;\n    }" { (expression_statement "ppuVar21 = (uint **)pc_00->input;" (assignment_expression "ppuVar21 = (uint **)pc_00->input" identifier = (cast_expression "(uint **)pc_00->input" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "pc_00->input" identifier -> field_identifier))) ;) (goto_statement "goto LAB_000157a8;" goto statement_identifier ;) })) (expression_statement "pc_00->input = (char *)((int)ppuVar21 + 1);" (assignment_expression "pc_00->input = (char *)((int)ppuVar21 + 1)" (field_expression "pc_00->input" identifier -> field_identifier) = (cast_expression "(char *)((int)ppuVar21 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar21 + 1)" ( (binary_expression "(int)ppuVar21 + 1" (cast_expression "(int)ppuVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar29 = (uint *)(uint)*(byte *)ppuVar21;" (assignment_expression "puVar29 = (uint *)(uint)*(byte *)ppuVar21" identifier = (binary_expression "(uint *)(uint)*(byte *)ppuVar21" (cast_expression "(uint *)(uint)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar9 = *(int *)(puVar33 + 0x23270);" (assignment_expression "iVar9 = *(int *)(puVar33 + 0x23270)" identifier = (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) ;) (if_statement "if (puVar29 != (uint *)0x0) goto LAB_0001558c;" if (parenthesized_expression "(puVar29 != (uint *)0x0)" ( (binary_expression "puVar29 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001558c;" goto statement_identifier ;)) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00014f74;" goto statement_identifier ;) })) (labeled_statement "LAB_00014f5c:\n  name = ppuVar21;" statement_identifier : (expression_statement "name = ppuVar21;" (assignment_expression "name = ppuVar21" identifier = identifier) ;)) (if_statement "if ((int)puVar29 < 1) {\nLAB_000152b8:\n    uVar15 = 0;\n    puVar29 = (uint *)0x0;\n  }\n  else {\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if ((int)puVar29 < 0x116) {\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }\n    else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }\n  }" if (parenthesized_expression "((int)puVar29 < 1)" ( (binary_expression "(int)puVar29 < 1" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\nLAB_000152b8:\n    uVar15 = 0;\n    puVar29 = (uint *)0x0;\n  }" { (labeled_statement "LAB_000152b8:\n    uVar15 = 0;" statement_identifier : (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;)) (expression_statement "puVar29 = (uint *)0x0;" (assignment_expression "puVar29 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if ((int)puVar29 < 0x116) {\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }\n    else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }\n  }" else (compound_statement "{\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if ((int)puVar29 < 0x116) {\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }\n    else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }\n  }" { (expression_statement "iVar9 = *(int *)(puVar33 + 0x23270);" (assignment_expression "iVar9 = *(int *)(puVar33 + 0x23270)" identifier = (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) ;) (if_statement "if ((int)puVar29 < 0x116) {\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }\n    else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }" if (parenthesized_expression "((int)puVar29 < 0x116)" ( (binary_expression "(int)puVar29 < 0x116" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }" { (labeled_statement "LAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);" statement_identifier : (expression_statement "uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);" (assignment_expression "uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458)" identifier = (binary_expression "(uint)*(byte *)((int)puVar29 + iVar9 + 0x6458)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)puVar29 + iVar9 + 0x6458)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + iVar9 + 0x6458)" ( (binary_expression "(int)puVar29 + iVar9 + 0x6458" (binary_expression "(int)puVar29 + iVar9" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;)) (expression_statement "puVar19 = (uint *)((int)puVar31 + uVar15);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + uVar15)" identifier = (cast_expression "(uint *)((int)puVar31 + uVar15)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar31 + uVar15)" ( (binary_expression "(int)puVar31 + uVar15" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }" else (compound_statement "{\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }" { (expression_statement "uVar15 = 2;" (assignment_expression "uVar15 = 2" identifier = number_literal) ;) (expression_statement "puVar19 = (uint *)((int)puVar31 + 2);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + 2)" identifier = (cast_expression "(uint *)((int)puVar31 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar31 + 2)" ( (binary_expression "(int)puVar31 + 2" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) }))) (goto_statement "goto LAB_00014f74;" goto statement_identifier ;) (labeled_statement "LAB_00015354:\n  do {\n    in_t3 = 1;\nLAB_00015358:\n    while( true ) {\n      ppuVar21 = (uint **)pc_00->input;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        pc_00->input = (char *)ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      name = (uint **)(uint)(uVar22 < 0x18);\n      if (name != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }\n    in_t3 = 0;\n  } while (uVar15 == 0x2b);" statement_identifier : (do_statement "do {\n    in_t3 = 1;\nLAB_00015358:\n    while( true ) {\n      ppuVar21 = (uint **)pc_00->input;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        pc_00->input = (char *)ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      name = (uint **)(uint)(uVar22 < 0x18);\n      if (name != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }\n    in_t3 = 0;\n  } while (uVar15 == 0x2b);" do (compound_statement "{\n    in_t3 = 1;\nLAB_00015358:\n    while( true ) {\n      ppuVar21 = (uint **)pc_00->input;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        pc_00->input = (char *)ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      name = (uint **)(uint)(uVar22 < 0x18);\n      if (name != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }\n    in_t3 = 0;\n  }" { (expression_statement "in_t3 = 1;" (assignment_expression "in_t3 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00015358:\n    while( true ) {\n      ppuVar21 = (uint **)pc_00->input;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        pc_00->input = (char *)ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      name = (uint **)(uint)(uVar22 < 0x18);\n      if (name != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }" statement_identifier : (while_statement "while( true ) {\n      ppuVar21 = (uint **)pc_00->input;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        pc_00->input = (char *)ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      name = (uint **)(uint)(uVar22 < 0x18);\n      if (name != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      ppuVar21 = (uint **)pc_00->input;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        pc_00->input = (char *)ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      name = (uint **)(uint)(uVar22 < 0x18);\n      if (name != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }" { (expression_statement "ppuVar21 = (uint **)pc_00->input;" (assignment_expression "ppuVar21 = (uint **)pc_00->input" identifier = (cast_expression "(uint **)pc_00->input" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "pc_00->input" identifier -> field_identifier))) ;) (do_statement "do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        pc_00->input = (char *)ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);" do (compound_statement "{\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        pc_00->input = (char *)ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      }" { (expression_statement "ppuVar21 = (uint **)((int)ppuVar21 + 1);" (assignment_expression "ppuVar21 = (uint **)((int)ppuVar21 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar21 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar21 + 1)" ( (binary_expression "(int)ppuVar21 + 1" (cast_expression "(int)ppuVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pc_00->input = (char *)ppuVar21;" (assignment_expression "pc_00->input = (char *)ppuVar21" (field_expression "pc_00->input" identifier -> field_identifier) = (cast_expression "(char *)ppuVar21" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;" (assignment_expression "in_t0 = (uint **)(int)(char)*(byte *)ppuVar21" identifier = (cast_expression "(uint **)(int)(char)*(byte *)ppuVar21" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)(char)*(byte *)ppuVar21" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)ppuVar21" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)ppuVar21" * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))))) ;) (expression_statement "uVar15 = (uint)*(byte *)ppuVar21;" (assignment_expression "uVar15 = (uint)*(byte *)ppuVar21" identifier = (binary_expression "(uint)*(byte *)ppuVar21" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "in_t8 = (uint)(uVar15 - 9 < 0x18);" (assignment_expression "in_t8 = (uint)(uVar15 - 9 < 0x18)" identifier = (call_expression "(uint)(uVar15 - 9 < 0x18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar15 - 9 < 0x18)" ( (binary_expression "uVar15 - 9 < 0x18" (binary_expression "uVar15 - 9" identifier - number_literal) < number_literal) )))) ;) (if_statement "if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }" if (parenthesized_expression "(in_t8 == 0)" ( (binary_expression "in_t8 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }" { (expression_statement "uVar22 = uVar15 - 0x30;" (assignment_expression "uVar22 = uVar15 - 0x30" identifier = (binary_expression "uVar15 - 0x30" identifier - number_literal)) ;) (if_statement "if (9 < uVar22) goto LAB_000152f4;" if (parenthesized_expression "(9 < uVar22)" ( (binary_expression "9 < uVar22" number_literal < identifier) )) (goto_statement "goto LAB_000152f4;" goto statement_identifier ;)) (goto_statement "goto LAB_000153dc;" goto statement_identifier ;) })) }) while (parenthesized_expression "((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0)" ( (binary_expression "(1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0" (parenthesized_expression "(1 << (uVar15 - 9 & 0x1f) & 0x80001fU)" ( (binary_expression "1 << (uVar15 - 9 & 0x1f) & 0x80001fU" (binary_expression "1 << (uVar15 - 9 & 0x1f)" number_literal << (parenthesized_expression "(uVar15 - 9 & 0x1f)" ( (binary_expression "uVar15 - 9 & 0x1f" (binary_expression "uVar15 - 9" identifier - number_literal) & number_literal) ))) & number_literal) )) != number_literal) )) ;) (expression_statement "uVar22 = uVar15 - 9;" (assignment_expression "uVar22 = uVar15 - 9" identifier = (binary_expression "uVar15 - 9" identifier - number_literal)) ;) (expression_statement "name = (uint **)(uint)(uVar22 < 0x18);" (assignment_expression "name = (uint **)(uint)(uVar22 < 0x18)" identifier = (cast_expression "(uint **)(uint)(uVar22 < 0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(uint)(uVar22 < 0x18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar22 < 0x18)" ( (binary_expression "uVar22 < 0x18" identifier < number_literal) ))))) ;) (if_statement "if (name != (uint **)0x0) goto LAB_00015308;" if (parenthesized_expression "(name != (uint **)0x0)" ( (binary_expression "name != (uint **)0x0" identifier != (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_00015308;" goto statement_identifier ;)) (labeled_statement "LAB_000153a8:\n      uVar22 = uVar15 - 0x30;" statement_identifier : (expression_statement "uVar22 = uVar15 - 0x30;" (assignment_expression "uVar22 = uVar15 - 0x30" identifier = (binary_expression "uVar15 - 0x30" identifier - number_literal)) ;)) (if_statement "if (9 < uVar22) goto LAB_00015344;" if (parenthesized_expression "(9 < uVar22)" ( (binary_expression "9 < uVar22" number_literal < identifier) )) (goto_statement "goto LAB_00015344;" goto statement_identifier ;)) (if_statement "if (uVar15 != 0x2d) break;" if (parenthesized_expression "(uVar15 != 0x2d)" ( (binary_expression "uVar15 != 0x2d" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "in_t3 = 0xffffffff;" (assignment_expression "in_t3 = 0xffffffff" identifier = number_literal) ;) }))) (expression_statement "in_t3 = 0;" (assignment_expression "in_t3 = 0" identifier = number_literal) ;) }) while (parenthesized_expression "(uVar15 == 0x2b)" ( (binary_expression "uVar15 == 0x2b" identifier == number_literal) )) ;)) (expression_statement "ppuVar21 = (uint **)pc_00->input;" (assignment_expression "ppuVar21 = (uint **)pc_00->input" identifier = (cast_expression "(uint **)pc_00->input" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "pc_00->input" identifier -> field_identifier))) ;) (labeled_statement "LAB_000153dc:\n  name = (uint **)0x0;" statement_identifier : (expression_statement "name = (uint **)0x0;" (assignment_expression "name = (uint **)0x0" identifier = (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;)) (expression_statement "puVar29 = (uint *)0x0;" (assignment_expression "puVar29 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "in_t5 = 0xffffffff;" (assignment_expression "in_t5 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar17 = 0x30;" (assignment_expression "uVar17 = 0x30" identifier = number_literal) ;) (expression_statement "in_t8 = 10;" (assignment_expression "in_t8 = 10" identifier = number_literal) ;) (expression_statement "ppuVar28 = ppuVar21;" (assignment_expression "ppuVar28 = ppuVar21" identifier = identifier) ;) (labeled_statement "LAB_000153f8:\n  if (in_t3 == 0xffffffff) {\n    uVar22 = 0x30 - uVar15;\n  }" statement_identifier : (if_statement "if (in_t3 == 0xffffffff) {\n    uVar22 = 0x30 - uVar15;\n  }" if (parenthesized_expression "(in_t3 == 0xffffffff)" ( (binary_expression "in_t3 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n    uVar22 = 0x30 - uVar15;\n  }" { (expression_statement "uVar22 = 0x30 - uVar15;" (assignment_expression "uVar22 = 0x30 - uVar15" identifier = (binary_expression "0x30 - uVar15" number_literal - identifier)) ;) }))) (expression_statement "uVar15 = (int)uVar22 >> 0x1f;" (assignment_expression "uVar15 = (int)uVar22 >> 0x1f" identifier = (binary_expression "(int)uVar22 >> 0x1f" (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "puVar16 = (uint *)((int)puVar29 + uVar22);" (assignment_expression "puVar16 = (uint *)((int)puVar29 + uVar22)" identifier = (cast_expression "(uint *)((int)puVar29 + uVar22)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + uVar22)" ( (binary_expression "(int)puVar29 + uVar22" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "in_t2 = (uint *)((int)name + (puVar16 < puVar29) + uVar15);" (assignment_expression "in_t2 = (uint *)((int)name + (puVar16 < puVar29) + uVar15)" identifier = (cast_expression "(uint *)((int)name + (puVar16 < puVar29) + uVar15)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)name + (puVar16 < puVar29) + uVar15)" ( (binary_expression "(int)name + (puVar16 < puVar29) + uVar15" (binary_expression "(int)name + (puVar16 < puVar29)" (cast_expression "(int)name" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(puVar16 < puVar29)" ( (binary_expression "puVar16 < puVar29" identifier < identifier) ))) + identifier) )))) ;) (expression_statement "in_t4 = (uint **)((uint)in_t2 ^ uVar15);" (assignment_expression "in_t4 = (uint **)((uint)in_t2 ^ uVar15)" identifier = (cast_expression "(uint **)((uint)in_t2 ^ uVar15)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((uint)in_t2 ^ uVar15)" ( (binary_expression "(uint)in_t2 ^ uVar15" (cast_expression "(uint)in_t2" ( (type_descriptor "uint" type_identifier) ) identifier) ^ identifier) )))) ;) (expression_statement "name = (uint **)((uint)in_t4 & ~((uint)name ^ uVar15));" (assignment_expression "name = (uint **)((uint)in_t4 & ~((uint)name ^ uVar15))" identifier = (cast_expression "(uint **)((uint)in_t4 & ~((uint)name ^ uVar15))" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((uint)in_t4 & ~((uint)name ^ uVar15))" ( (binary_expression "(uint)in_t4 & ~((uint)name ^ uVar15)" (cast_expression "(uint)in_t4" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "~((uint)name ^ uVar15)" ~ (parenthesized_expression "((uint)name ^ uVar15)" ( (binary_expression "(uint)name ^ uVar15" (cast_expression "(uint)name" ( (type_descriptor "uint" type_identifier) ) identifier) ^ identifier) )))) )))) ;) (if_statement "if ((int)name < 0) goto LAB_00017ad0;" if (parenthesized_expression "((int)name < 0)" ( (binary_expression "(int)name < 0" (cast_expression "(int)name" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00017ad0;" goto statement_identifier ;)) (expression_statement "uVar15 = (uint)*(byte *)((int)ppuVar28 + 1);" (assignment_expression "uVar15 = (uint)*(byte *)((int)ppuVar28 + 1)" identifier = (binary_expression "(uint)*(byte *)((int)ppuVar28 + 1)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)ppuVar28 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar28 + 1)" ( (binary_expression "(int)ppuVar28 + 1" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar22 = uVar15 - 0x30;" (assignment_expression "uVar22 = uVar15 - 0x30" identifier = (binary_expression "uVar15 - 0x30" identifier - number_literal)) ;) (expression_statement "in_t4 = (uint **)((int)ppuVar28 + 1);" (assignment_expression "in_t4 = (uint **)((int)ppuVar28 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar28 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar28 + 1)" ( (binary_expression "(int)ppuVar28 + 1" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (uVar22 < 10) goto LAB_00015528;" if (parenthesized_expression "(uVar22 < 10)" ( (binary_expression "uVar22 < 10" identifier < number_literal) )) (goto_statement "goto LAB_00015528;" goto statement_identifier ;)) (expression_statement "name = (uint **)0xfffffffd;" (assignment_expression "name = (uint **)0xfffffffd" identifier = (cast_expression "(uint **)0xfffffffd" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (if_statement "if (((*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c) ||\n     (puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29)) {\n    pc_00->input = (char *)in_t4;\n    uVar15 = 0x13;\n    apuStack_5e8[0] = (uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_);\n    puVar29 = (uint *)0x112;\n    if (in_t3 == 0) {\n      uVar15 = 0x14;\n    }\n    iStack_660 = (int)in_t4 - (int)ppuVar21;\n    if (in_t3 == 0) {\n      puVar29 = (uint *)0x113;\n    }\n    puVar19 = (uint *)((int)puVar31 + uVar15);\n    puStack_65c = in_t2;\n    puStack_630 = puVar16;\n    goto LAB_00014f74;\n  }" if (parenthesized_expression "(((*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c) ||\n     (puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29))" ( (binary_expression "((*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c) ||\n     (puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29)" (parenthesized_expression "((*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c)" ( (binary_expression "(*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c" (parenthesized_expression "(*(byte *)((int)ppuVar28 + 1) & 0xfd)" ( (binary_expression "*(byte *)((int)ppuVar28 + 1) & 0xfd" (pointer_expression "*(byte *)((int)ppuVar28 + 1)" * (cast_expression "(byte *)((int)ppuVar28 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar28 + 1)" ( (binary_expression "(int)ppuVar28 + 1" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "(puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29)" ( (comma_expression "puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29" (assignment_expression "puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30)" identifier = (cast_expression "(uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((char)*(byte *)((int)ppuVar28 + 2) + -0x30)" ( (binary_expression "(char)*(byte *)((int)ppuVar28 + 2) + -0x30" (cast_expression "(char)*(byte *)((int)ppuVar28 + 2)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((int)ppuVar28 + 2)" * (cast_expression "(byte *)((int)ppuVar28 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar28 + 2)" ( (binary_expression "(int)ppuVar28 + 2" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) + number_literal) )))) , (binary_expression "&DAT_00000009 < puVar29" (pointer_expression "&DAT_00000009" & identifier) < identifier)) ))) )) (compound_statement "{\n    pc_00->input = (char *)in_t4;\n    uVar15 = 0x13;\n    apuStack_5e8[0] = (uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_);\n    puVar29 = (uint *)0x112;\n    if (in_t3 == 0) {\n      uVar15 = 0x14;\n    }\n    iStack_660 = (int)in_t4 - (int)ppuVar21;\n    if (in_t3 == 0) {\n      puVar29 = (uint *)0x113;\n    }\n    puVar19 = (uint *)((int)puVar31 + uVar15);\n    puStack_65c = in_t2;\n    puStack_630 = puVar16;\n    goto LAB_00014f74;\n  }" { (expression_statement "pc_00->input = (char *)in_t4;" (assignment_expression "pc_00->input = (char *)in_t4" (field_expression "pc_00->input" identifier -> field_identifier) = (cast_expression "(char *)in_t4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar15 = 0x13;" (assignment_expression "uVar15 = 0x13" identifier = number_literal) ;) (expression_statement "apuStack_5e8[0] = (uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_);" (assignment_expression "apuStack_5e8[0] = (uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_)" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = (cast_expression "(uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_)" identifier (argument_list "((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_)" ( (call_expression "(byte)(in_t3 >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(in_t3 >> 0x1f)" ( (binary_expression "in_t3 >> 0x1f" identifier >> number_literal) ))) , (field_expression "apuStack_5e8[0]._1_3_" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) . field_identifier) ))))) ;) (expression_statement "puVar29 = (uint *)0x112;" (assignment_expression "puVar29 = (uint *)0x112" identifier = (cast_expression "(uint *)0x112" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (in_t3 == 0) {\n      uVar15 = 0x14;\n    }" if (parenthesized_expression "(in_t3 == 0)" ( (binary_expression "in_t3 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar15 = 0x14;\n    }" { (expression_statement "uVar15 = 0x14;" (assignment_expression "uVar15 = 0x14" identifier = number_literal) ;) })) (expression_statement "iStack_660 = (int)in_t4 - (int)ppuVar21;" (assignment_expression "iStack_660 = (int)in_t4 - (int)ppuVar21" identifier = (binary_expression "(int)in_t4 - (int)ppuVar21" (cast_expression "(int)in_t4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppuVar21" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (in_t3 == 0) {\n      puVar29 = (uint *)0x113;\n    }" if (parenthesized_expression "(in_t3 == 0)" ( (binary_expression "in_t3 == 0" identifier == number_literal) )) (compound_statement "{\n      puVar29 = (uint *)0x113;\n    }" { (expression_statement "puVar29 = (uint *)0x113;" (assignment_expression "puVar29 = (uint *)0x113" identifier = (cast_expression "(uint *)0x113" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "puVar19 = (uint *)((int)puVar31 + uVar15);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + uVar15)" identifier = (cast_expression "(uint *)((int)puVar31 + uVar15)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar31 + uVar15)" ( (binary_expression "(int)puVar31 + uVar15" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "puStack_65c = in_t2;" (assignment_expression "puStack_65c = in_t2" identifier = identifier) ;) (expression_statement "puStack_630 = puVar16;" (assignment_expression "puStack_630 = puVar16" identifier = identifier) ;) (goto_statement "goto LAB_00014f74;" goto statement_identifier ;) })) (expression_statement "in_t2 = (uint *)((int)in_t2 + (uint)(puVar16 + -0x20000000 < puVar16));" (assignment_expression "in_t2 = (uint *)((int)in_t2 + (uint)(puVar16 + -0x20000000 < puVar16))" identifier = (cast_expression "(uint *)((int)in_t2 + (uint)(puVar16 + -0x20000000 < puVar16))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_t2 + (uint)(puVar16 + -0x20000000 < puVar16))" ( (binary_expression "(int)in_t2 + (uint)(puVar16 + -0x20000000 < puVar16)" (cast_expression "(int)in_t2" ( (type_descriptor "int" primitive_type) ) identifier) + (call_expression "(uint)(puVar16 + -0x20000000 < puVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar16 + -0x20000000 < puVar16)" ( (binary_expression "puVar16 + -0x20000000 < puVar16" (binary_expression "puVar16 + -0x20000000" identifier + number_literal) < identifier) )))) )))) ;) (expression_statement "iVar9 = 8;" (assignment_expression "iVar9 = 8" identifier = number_literal) ;) (expression_statement "ppuVar21 = name;" (assignment_expression "ppuVar21 = name" identifier = identifier) ;) (if_statement "if (in_t2 != (uint *)0x0) goto LAB_00017ae0;" if (parenthesized_expression "(in_t2 != (uint *)0x0)" ( (binary_expression "in_t2 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00017ae0;" goto statement_identifier ;)) (expression_statement "in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 3);" (assignment_expression "in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 3)" identifier = (cast_expression "(uint **)(int)(char)*(byte *)((int)ppuVar28 + 3)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)(char)*(byte *)((int)ppuVar28 + 3)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)((int)ppuVar28 + 3)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((int)ppuVar28 + 3)" * (cast_expression "(byte *)((int)ppuVar28 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar28 + 3)" ( (binary_expression "(int)ppuVar28 + 3" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))))) ;) (expression_statement "ppuVar28 = (uint **)((int)ppuVar28 + 3);" (assignment_expression "ppuVar28 = (uint **)((int)ppuVar28 + 3)" identifier = (cast_expression "(uint **)((int)ppuVar28 + 3)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar28 + 3)" ( (binary_expression "(int)ppuVar28 + 3" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "ppuVar21 = in_t0 + -0xc;" (assignment_expression "ppuVar21 = in_t0 + -0xc" identifier = (binary_expression "in_t0 + -0xc" identifier + number_literal)) ;) (expression_statement "name = (uint **)((int)puVar29 * 4);" (assignment_expression "name = (uint **)((int)puVar29 * 4)" identifier = (cast_expression "(uint **)((int)puVar29 * 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar29 * 4)" ( (binary_expression "(int)puVar29 * 4" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (do_statement "do {\n    puVar29 = (uint *)((int)((int)name + (int)puVar29) * 2);\n    if (ppuVar21 < &DAT_0000000a) {\n      in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);\n      puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n      ppuVar21 = in_t0 + -0xc;\n    }\n    iVar9 = iVar9 + -1;\n    name = (uint **)((int)puVar29 << 2);\n  } while (iVar9 != 0);" do (compound_statement "{\n    puVar29 = (uint *)((int)((int)name + (int)puVar29) * 2);\n    if (ppuVar21 < &DAT_0000000a) {\n      in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);\n      puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n      ppuVar21 = in_t0 + -0xc;\n    }\n    iVar9 = iVar9 + -1;\n    name = (uint **)((int)puVar29 << 2);\n  }" { (expression_statement "puVar29 = (uint *)((int)((int)name + (int)puVar29) * 2);" (assignment_expression "puVar29 = (uint *)((int)((int)name + (int)puVar29) * 2)" identifier = (cast_expression "(uint *)((int)((int)name + (int)puVar29) * 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)((int)name + (int)puVar29) * 2)" ( (binary_expression "(int)((int)name + (int)puVar29) * 2" (cast_expression "(int)((int)name + (int)puVar29)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)name + (int)puVar29)" ( (binary_expression "(int)name + (int)puVar29" (cast_expression "(int)name" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier)) ))) * number_literal) )))) ;) (if_statement "if (ppuVar21 < &DAT_0000000a) {\n      in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);\n      puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n      ppuVar21 = in_t0 + -0xc;\n    }" if (parenthesized_expression "(ppuVar21 < &DAT_0000000a)" ( (binary_expression "ppuVar21 < &DAT_0000000a" identifier < (pointer_expression "&DAT_0000000a" & identifier)) )) (compound_statement "{\n      in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);\n      puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n      ppuVar21 = in_t0 + -0xc;\n    }" { (expression_statement "in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);" (assignment_expression "in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1)" identifier = (cast_expression "(uint **)(int)(char)*(byte *)((int)ppuVar28 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)(char)*(byte *)((int)ppuVar28 + 1)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)((int)ppuVar28 + 1)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((int)ppuVar28 + 1)" * (cast_expression "(byte *)((int)ppuVar28 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar28 + 1)" ( (binary_expression "(int)ppuVar28 + 1" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))))) ;) (expression_statement "puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);" (assignment_expression "puVar29 = (uint *)((int)puVar29 + (int)ppuVar21)" identifier = (cast_expression "(uint *)((int)puVar29 + (int)ppuVar21)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + (int)ppuVar21)" ( (binary_expression "(int)puVar29 + (int)ppuVar21" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)ppuVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "ppuVar28 = (uint **)((int)ppuVar28 + 1);" (assignment_expression "ppuVar28 = (uint **)((int)ppuVar28 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar28 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar28 + 1)" ( (binary_expression "(int)ppuVar28 + 1" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "ppuVar21 = in_t0 + -0xc;" (assignment_expression "ppuVar21 = in_t0 + -0xc" identifier = (binary_expression "in_t0 + -0xc" identifier + number_literal)) ;) })) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "name = (uint **)((int)puVar29 << 2);" (assignment_expression "name = (uint **)((int)puVar29 << 2)" identifier = (cast_expression "(uint **)((int)puVar29 << 2)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar29 << 2)" ( (binary_expression "(int)puVar29 << 2" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) }) while (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) ;) (expression_statement "in_t2 = puVar16;" (assignment_expression "in_t2 = puVar16" identifier = identifier) ;) (if_statement "if (in_t3 == 0xffffffff) {\n    ppuVar12 = in_t0;\n    if (ppuVar21 < &DAT_0000000a) {\n      do {\n        if (ppuVar12 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        name = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar12 = name;\n      } while (name + -0xc <= &DAT_00000009);\n    }\nLAB_00015c20:\n    if (puVar29 != (uint *)0x0) {\n      in_t2 = (uint *)((int)puVar16 + -1);\n      ppuVar21 = name;\n      if (puVar16 == (uint *)0x80000000) {\nLAB_00017ae0:\n        name = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }\n    uVar15 = 0x15;\n    apuStack_5e8[1] = puVar29;\n    apuStack_5e8[0] = in_t2;\n    puVar29 = (uint *)0x114;\n    pc_00->input = (char *)ppuVar28;\n    puVar19 = (uint *)((int)puVar31 + 0x15);\n    goto LAB_00014f74;\n  }" if (parenthesized_expression "(in_t3 == 0xffffffff)" ( (binary_expression "in_t3 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n    ppuVar12 = in_t0;\n    if (ppuVar21 < &DAT_0000000a) {\n      do {\n        if (ppuVar12 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        name = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar12 = name;\n      } while (name + -0xc <= &DAT_00000009);\n    }\nLAB_00015c20:\n    if (puVar29 != (uint *)0x0) {\n      in_t2 = (uint *)((int)puVar16 + -1);\n      ppuVar21 = name;\n      if (puVar16 == (uint *)0x80000000) {\nLAB_00017ae0:\n        name = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }\n    uVar15 = 0x15;\n    apuStack_5e8[1] = puVar29;\n    apuStack_5e8[0] = in_t2;\n    puVar29 = (uint *)0x114;\n    pc_00->input = (char *)ppuVar28;\n    puVar19 = (uint *)((int)puVar31 + 0x15);\n    goto LAB_00014f74;\n  }" { (expression_statement "ppuVar12 = in_t0;" (assignment_expression "ppuVar12 = in_t0" identifier = identifier) ;) (if_statement "if (ppuVar21 < &DAT_0000000a) {\n      do {\n        if (ppuVar12 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        name = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar12 = name;\n      } while (name + -0xc <= &DAT_00000009);\n    }" if (parenthesized_expression "(ppuVar21 < &DAT_0000000a)" ( (binary_expression "ppuVar21 < &DAT_0000000a" identifier < (pointer_expression "&DAT_0000000a" & identifier)) )) (compound_statement "{\n      do {\n        if (ppuVar12 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        name = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar12 = name;\n      } while (name + -0xc <= &DAT_00000009);\n    }" { (do_statement "do {\n        if (ppuVar12 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        name = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar12 = name;\n      } while (name + -0xc <= &DAT_00000009);" do (compound_statement "{\n        if (ppuVar12 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        name = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar12 = name;\n      }" { (if_statement "if (ppuVar12 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }" if (parenthesized_expression "(ppuVar12 != (uint **)0x30)" ( (binary_expression "ppuVar12 != (uint **)0x30" identifier != (cast_expression "(uint **)0x30" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }" { (expression_statement "puVar29 = (uint *)((int)puVar29 + 1);" (assignment_expression "puVar29 = (uint *)((int)puVar29 + 1)" identifier = (cast_expression "(uint *)((int)puVar29 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + 1)" ( (binary_expression "(int)puVar29 + 1" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;" if (parenthesized_expression "((int)(char)*(byte *)ppuVar28 - 0x30U < 10)" ( (binary_expression "(int)(char)*(byte *)ppuVar28 - 0x30U < 10" (binary_expression "(int)(char)*(byte *)ppuVar28 - 0x30U" (cast_expression "(int)(char)*(byte *)ppuVar28" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)ppuVar28" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)ppuVar28" * (cast_expression "(byte *)ppuVar28" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) - number_literal) < number_literal) )) (goto_statement "goto LAB_000154dc;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "ppuVar28 = (uint **)((int)ppuVar28 + 1);" (assignment_expression "ppuVar28 = (uint **)((int)ppuVar28 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar28 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar28 + 1)" ( (binary_expression "(int)ppuVar28 + 1" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "name = (uint **)(int)(char)*(byte *)ppuVar28;" (assignment_expression "name = (uint **)(int)(char)*(byte *)ppuVar28" identifier = (cast_expression "(uint **)(int)(char)*(byte *)ppuVar28" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)(char)*(byte *)ppuVar28" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)ppuVar28" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)ppuVar28" * (cast_expression "(byte *)ppuVar28" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))))) ;) (expression_statement "ppuVar12 = name;" (assignment_expression "ppuVar12 = name" identifier = identifier) ;) }) while (parenthesized_expression "(name + -0xc <= &DAT_00000009)" ( (binary_expression "name + -0xc <= &DAT_00000009" (binary_expression "name + -0xc" identifier + number_literal) <= (pointer_expression "&DAT_00000009" & identifier)) )) ;) })) (labeled_statement "LAB_00015c20:\n    if (puVar29 != (uint *)0x0) {\n      in_t2 = (uint *)((int)puVar16 + -1);\n      ppuVar21 = name;\n      if (puVar16 == (uint *)0x80000000) {\nLAB_00017ae0:\n        name = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }" statement_identifier : (if_statement "if (puVar29 != (uint *)0x0) {\n      in_t2 = (uint *)((int)puVar16 + -1);\n      ppuVar21 = name;\n      if (puVar16 == (uint *)0x80000000) {\nLAB_00017ae0:\n        name = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }" if (parenthesized_expression "(puVar29 != (uint *)0x0)" ( (binary_expression "puVar29 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      in_t2 = (uint *)((int)puVar16 + -1);\n      ppuVar21 = name;\n      if (puVar16 == (uint *)0x80000000) {\nLAB_00017ae0:\n        name = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }" { (expression_statement "in_t2 = (uint *)((int)puVar16 + -1);" (assignment_expression "in_t2 = (uint *)((int)puVar16 + -1)" identifier = (cast_expression "(uint *)((int)puVar16 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar16 + -1)" ( (binary_expression "(int)puVar16 + -1" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "ppuVar21 = name;" (assignment_expression "ppuVar21 = name" identifier = identifier) ;) (if_statement "if (puVar16 == (uint *)0x80000000) {\nLAB_00017ae0:\n        name = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }" if (parenthesized_expression "(puVar16 == (uint *)0x80000000)" ( (binary_expression "puVar16 == (uint *)0x80000000" identifier == (cast_expression "(uint *)0x80000000" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00017ae0:\n        name = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }" { (labeled_statement "LAB_00017ae0:\n        name = ppuVar21;" statement_identifier : (expression_statement "name = ppuVar21;" (assignment_expression "name = ppuVar21" identifier = identifier) ;)) (expression_statement "uVar15 = 2;" (assignment_expression "uVar15 = 2" identifier = number_literal) ;) (expression_statement "puVar29 = (uint *)0x3f;" (assignment_expression "puVar29 = (uint *)0x3f" identifier = (cast_expression "(uint *)0x3f" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar19 = (uint *)((int)puVar31 + 2);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + 2)" identifier = (cast_expression "(uint *)((int)puVar31 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar31 + 2)" ( (binary_expression "(int)puVar31 + 2" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (goto_statement "goto LAB_00014f74;" goto statement_identifier ;) })) (expression_statement "puVar29 = (uint *)(1000000000 - (int)puVar29);" (assignment_expression "puVar29 = (uint *)(1000000000 - (int)puVar29)" identifier = (cast_expression "(uint *)(1000000000 - (int)puVar29)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(1000000000 - (int)puVar29)" ( (binary_expression "1000000000 - (int)puVar29" number_literal - (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }))) (expression_statement "uVar15 = 0x15;" (assignment_expression "uVar15 = 0x15" identifier = number_literal) ;) (expression_statement "apuStack_5e8[1] = puVar29;" (assignment_expression "apuStack_5e8[1] = puVar29" (subscript_expression "apuStack_5e8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "apuStack_5e8[0] = in_t2;" (assignment_expression "apuStack_5e8[0] = in_t2" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar29 = (uint *)0x114;" (assignment_expression "puVar29 = (uint *)0x114" identifier = (cast_expression "(uint *)0x114" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pc_00->input = (char *)ppuVar28;" (assignment_expression "pc_00->input = (char *)ppuVar28" (field_expression "pc_00->input" identifier -> field_identifier) = (cast_expression "(char *)ppuVar28" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar19 = (uint *)((int)puVar31 + 0x15);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + 0x15)" identifier = (cast_expression "(uint *)((int)puVar31 + 0x15)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar31 + 0x15)" ( (binary_expression "(int)puVar31 + 0x15" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (goto_statement "goto LAB_00014f74;" goto statement_identifier ;) })) (if_statement "if (ppuVar21 < &DAT_0000000a) {\nLAB_000154dc:\n    do {\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    } while ((int)(char)*(byte *)ppuVar28 - 0x30U < 10);\n    if (in_t3 == 0xffffffff) goto LAB_00015c20;\n  }" if (parenthesized_expression "(ppuVar21 < &DAT_0000000a)" ( (binary_expression "ppuVar21 < &DAT_0000000a" identifier < (pointer_expression "&DAT_0000000a" & identifier)) )) (compound_statement "{\nLAB_000154dc:\n    do {\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    } while ((int)(char)*(byte *)ppuVar28 - 0x30U < 10);\n    if (in_t3 == 0xffffffff) goto LAB_00015c20;\n  }" { (labeled_statement "LAB_000154dc:\n    do {\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    } while ((int)(char)*(byte *)ppuVar28 - 0x30U < 10);" statement_identifier : (do_statement "do {\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    } while ((int)(char)*(byte *)ppuVar28 - 0x30U < 10);" do (compound_statement "{\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    }" { (expression_statement "ppuVar28 = (uint **)((int)ppuVar28 + 1);" (assignment_expression "ppuVar28 = (uint **)((int)ppuVar28 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar28 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar28 + 1)" ( (binary_expression "(int)ppuVar28 + 1" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((int)(char)*(byte *)ppuVar28 - 0x30U < 10)" ( (binary_expression "(int)(char)*(byte *)ppuVar28 - 0x30U < 10" (binary_expression "(int)(char)*(byte *)ppuVar28 - 0x30U" (cast_expression "(int)(char)*(byte *)ppuVar28" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)ppuVar28" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)ppuVar28" * (cast_expression "(byte *)ppuVar28" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) - number_literal) < number_literal) )) ;)) (if_statement "if (in_t3 == 0xffffffff) goto LAB_00015c20;" if (parenthesized_expression "(in_t3 == 0xffffffff)" ( (binary_expression "in_t3 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_00015c20;" goto statement_identifier ;)) })) (expression_statement "apuStack_5e8[0] = puVar16;" (assignment_expression "apuStack_5e8[0] = puVar16" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar15 = 0x16;" (assignment_expression "uVar15 = 0x16" identifier = number_literal) ;) (expression_statement "apuStack_5e8[1] = puVar29;" (assignment_expression "apuStack_5e8[1] = puVar29" (subscript_expression "apuStack_5e8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar29 = (uint *)0x115;" (assignment_expression "puVar29 = (uint *)0x115" identifier = (cast_expression "(uint *)0x115" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pc_00->input = (char *)ppuVar28;" (assignment_expression "pc_00->input = (char *)ppuVar28" (field_expression "pc_00->input" identifier -> field_identifier) = (cast_expression "(char *)ppuVar28" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (in_t3 != 0) {\n    uVar15 = 0x15;\n    puVar29 = (uint *)0x114;\n  }" if (parenthesized_expression "(in_t3 != 0)" ( (binary_expression "in_t3 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar15 = 0x15;\n    puVar29 = (uint *)0x114;\n  }" { (expression_statement "uVar15 = 0x15;" (assignment_expression "uVar15 = 0x15" identifier = number_literal) ;) (expression_statement "puVar29 = (uint *)0x114;" (assignment_expression "puVar29 = (uint *)0x114" identifier = (cast_expression "(uint *)0x114" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "puVar19 = (uint *)((int)puVar31 + uVar15);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + uVar15)" identifier = (cast_expression "(uint *)((int)puVar31 + uVar15)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar31 + uVar15)" ( (binary_expression "(int)puVar31 + uVar15" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (labeled_statement "LAB_00014f74:\n  psVar27 = psVar32;" statement_identifier : (expression_statement "psVar27 = psVar32;" (assignment_expression "psVar27 = psVar32" identifier = identifier) ;)) (if_statement "if ((uint *)0x70 < puVar19) goto LAB_0001504c;" if (parenthesized_expression "((uint *)0x70 < puVar19)" ( (binary_expression "(uint *)0x70 < puVar19" (cast_expression "(uint *)0x70" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (goto_statement "goto LAB_0001504c;" goto statement_identifier ;)) (expression_statement "iVar9 = *(int *)(puVar33 + 0x23270);" (assignment_expression "iVar9 = *(int *)(puVar33 + 0x23270)" identifier = (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) ;) (if_statement "if ((int)(char)*(byte *)((int)puVar19 + iVar30) != uVar15) goto LAB_00015050;" if (parenthesized_expression "((int)(char)*(byte *)((int)puVar19 + iVar30) != uVar15)" ( (binary_expression "(int)(char)*(byte *)((int)puVar19 + iVar30) != uVar15" (cast_expression "(int)(char)*(byte *)((int)puVar19 + iVar30)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)((int)puVar19 + iVar30)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((int)puVar19 + iVar30)" * (cast_expression "(byte *)((int)puVar19 + iVar30)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + iVar30)" ( (binary_expression "(int)puVar19 + iVar30" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))))) != identifier) )) (goto_statement "goto LAB_00015050;" goto statement_identifier ;)) (expression_statement "puVar25 = (uint *)(uint)*(byte *)((int)puVar19 + iVar18);" (assignment_expression "puVar25 = (uint *)(uint)*(byte *)((int)puVar19 + iVar18)" identifier = (binary_expression "(uint *)(uint)*(byte *)((int)puVar19 + iVar18)" (cast_expression "(uint *)(uint)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)((int)puVar19 + iVar18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + iVar18)" ( (binary_expression "(int)puVar19 + iVar18" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (if_statement "if (puVar25 == (uint *)0x0) {\n    puStack_66c = auStack_5b0;\n    puVar25 = puVar14 + 0xe;\n    puVar31 = puStack_66c;\n    do {\n      puVar16 = puVar31;\n      puVar19 = puVar25;\n      puVar25 = puVar19 + 4;\n      uVar22 = puVar19[1];\n      uVar15 = puVar19[2];\n      uVar17 = puVar19[3];\n      *puVar16 = *puVar19;\n      puVar16[1] = uVar22;\n      puVar16[2] = uVar15;\n      puVar16[3] = uVar17;\n      puVar31 = puVar16 + 4;\n    } while (puVar25 != puVar14 + 0x1a);\n    uVar17 = puVar19[5];\n    iVar10 = -0x1c;\n    puVar16[4] = *puVar25;\n    puVar16[5] = uVar17;\n    puStack_674 = (uint *)puVar14[0x13];\n    in_t3 = puVar14[0x11];\n    in_t2 = (uint *)puVar14[0x10];\n    unaff_s6 = (short *)puVar14[0x12];\n    ppuVar28 = (uint **)puVar14[0x15];\n    in_t0 = (uint **)puVar14[0x14];\n    in_t5 = puVar14[0x17];\n    in_t4 = (uint **)puVar14[0x16];\n    uVar17 = puVar14[0x18];\n    in_t6 = puVar14[0x19];\n    in_t8 = puVar14[0x1a];\n    iVar9 = 0;\n    goto LAB_00015adc;\n  }" if (parenthesized_expression "(puVar25 == (uint *)0x0)" ( (binary_expression "puVar25 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puStack_66c = auStack_5b0;\n    puVar25 = puVar14 + 0xe;\n    puVar31 = puStack_66c;\n    do {\n      puVar16 = puVar31;\n      puVar19 = puVar25;\n      puVar25 = puVar19 + 4;\n      uVar22 = puVar19[1];\n      uVar15 = puVar19[2];\n      uVar17 = puVar19[3];\n      *puVar16 = *puVar19;\n      puVar16[1] = uVar22;\n      puVar16[2] = uVar15;\n      puVar16[3] = uVar17;\n      puVar31 = puVar16 + 4;\n    } while (puVar25 != puVar14 + 0x1a);\n    uVar17 = puVar19[5];\n    iVar10 = -0x1c;\n    puVar16[4] = *puVar25;\n    puVar16[5] = uVar17;\n    puStack_674 = (uint *)puVar14[0x13];\n    in_t3 = puVar14[0x11];\n    in_t2 = (uint *)puVar14[0x10];\n    unaff_s6 = (short *)puVar14[0x12];\n    ppuVar28 = (uint **)puVar14[0x15];\n    in_t0 = (uint **)puVar14[0x14];\n    in_t5 = puVar14[0x17];\n    in_t4 = (uint **)puVar14[0x16];\n    uVar17 = puVar14[0x18];\n    in_t6 = puVar14[0x19];\n    in_t8 = puVar14[0x1a];\n    iVar9 = 0;\n    goto LAB_00015adc;\n  }" { (expression_statement "puStack_66c = auStack_5b0;" (assignment_expression "puStack_66c = auStack_5b0" identifier = identifier) ;) (expression_statement "puVar25 = puVar14 + 0xe;" (assignment_expression "puVar25 = puVar14 + 0xe" identifier = (binary_expression "puVar14 + 0xe" identifier + number_literal)) ;) (expression_statement "puVar31 = puStack_66c;" (assignment_expression "puVar31 = puStack_66c" identifier = identifier) ;) (do_statement "do {\n      puVar16 = puVar31;\n      puVar19 = puVar25;\n      puVar25 = puVar19 + 4;\n      uVar22 = puVar19[1];\n      uVar15 = puVar19[2];\n      uVar17 = puVar19[3];\n      *puVar16 = *puVar19;\n      puVar16[1] = uVar22;\n      puVar16[2] = uVar15;\n      puVar16[3] = uVar17;\n      puVar31 = puVar16 + 4;\n    } while (puVar25 != puVar14 + 0x1a);" do (compound_statement "{\n      puVar16 = puVar31;\n      puVar19 = puVar25;\n      puVar25 = puVar19 + 4;\n      uVar22 = puVar19[1];\n      uVar15 = puVar19[2];\n      uVar17 = puVar19[3];\n      *puVar16 = *puVar19;\n      puVar16[1] = uVar22;\n      puVar16[2] = uVar15;\n      puVar16[3] = uVar17;\n      puVar31 = puVar16 + 4;\n    }" { (expression_statement "puVar16 = puVar31;" (assignment_expression "puVar16 = puVar31" identifier = identifier) ;) (expression_statement "puVar19 = puVar25;" (assignment_expression "puVar19 = puVar25" identifier = identifier) ;) (expression_statement "puVar25 = puVar19 + 4;" (assignment_expression "puVar25 = puVar19 + 4" identifier = (binary_expression "puVar19 + 4" identifier + number_literal)) ;) (expression_statement "uVar22 = puVar19[1];" (assignment_expression "uVar22 = puVar19[1]" identifier = (subscript_expression "puVar19[1]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = puVar19[2];" (assignment_expression "uVar15 = puVar19[2]" identifier = (subscript_expression "puVar19[2]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = puVar19[3];" (assignment_expression "uVar17 = puVar19[3]" identifier = (subscript_expression "puVar19[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar16 = *puVar19;" (assignment_expression "*puVar16 = *puVar19" (pointer_expression "*puVar16" * identifier) = (pointer_expression "*puVar19" * identifier)) ;) (expression_statement "puVar16[1] = uVar22;" (assignment_expression "puVar16[1] = uVar22" (subscript_expression "puVar16[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar16[2] = uVar15;" (assignment_expression "puVar16[2] = uVar15" (subscript_expression "puVar16[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar16[3] = uVar17;" (assignment_expression "puVar16[3] = uVar17" (subscript_expression "puVar16[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar31 = puVar16 + 4;" (assignment_expression "puVar31 = puVar16 + 4" identifier = (binary_expression "puVar16 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar25 != puVar14 + 0x1a)" ( (binary_expression "puVar25 != puVar14 + 0x1a" identifier != (binary_expression "puVar14 + 0x1a" identifier + number_literal)) )) ;) (expression_statement "uVar17 = puVar19[5];" (assignment_expression "uVar17 = puVar19[5]" identifier = (subscript_expression "puVar19[5]" identifier [ number_literal ])) ;) (expression_statement "iVar10 = -0x1c;" (assignment_expression "iVar10 = -0x1c" identifier = number_literal) ;) (expression_statement "puVar16[4] = *puVar25;" (assignment_expression "puVar16[4] = *puVar25" (subscript_expression "puVar16[4]" identifier [ number_literal ]) = (pointer_expression "*puVar25" * identifier)) ;) (expression_statement "puVar16[5] = uVar17;" (assignment_expression "puVar16[5] = uVar17" (subscript_expression "puVar16[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puStack_674 = (uint *)puVar14[0x13];" (assignment_expression "puStack_674 = (uint *)puVar14[0x13]" identifier = (cast_expression "(uint *)puVar14[0x13]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[0x13]" identifier [ number_literal ]))) ;) (expression_statement "in_t3 = puVar14[0x11];" (assignment_expression "in_t3 = puVar14[0x11]" identifier = (subscript_expression "puVar14[0x11]" identifier [ number_literal ])) ;) (expression_statement "in_t2 = (uint *)puVar14[0x10];" (assignment_expression "in_t2 = (uint *)puVar14[0x10]" identifier = (cast_expression "(uint *)puVar14[0x10]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[0x10]" identifier [ number_literal ]))) ;) (expression_statement "unaff_s6 = (short *)puVar14[0x12];" (assignment_expression "unaff_s6 = (short *)puVar14[0x12]" identifier = (cast_expression "(short *)puVar14[0x12]" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[0x12]" identifier [ number_literal ]))) ;) (expression_statement "ppuVar28 = (uint **)puVar14[0x15];" (assignment_expression "ppuVar28 = (uint **)puVar14[0x15]" identifier = (cast_expression "(uint **)puVar14[0x15]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar14[0x15]" identifier [ number_literal ]))) ;) (expression_statement "in_t0 = (uint **)puVar14[0x14];" (assignment_expression "in_t0 = (uint **)puVar14[0x14]" identifier = (cast_expression "(uint **)puVar14[0x14]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar14[0x14]" identifier [ number_literal ]))) ;) (expression_statement "in_t5 = puVar14[0x17];" (assignment_expression "in_t5 = puVar14[0x17]" identifier = (subscript_expression "puVar14[0x17]" identifier [ number_literal ])) ;) (expression_statement "in_t4 = (uint **)puVar14[0x16];" (assignment_expression "in_t4 = (uint **)puVar14[0x16]" identifier = (cast_expression "(uint **)puVar14[0x16]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar14[0x16]" identifier [ number_literal ]))) ;) (expression_statement "uVar17 = puVar14[0x18];" (assignment_expression "uVar17 = puVar14[0x18]" identifier = (subscript_expression "puVar14[0x18]" identifier [ number_literal ])) ;) (expression_statement "in_t6 = puVar14[0x19];" (assignment_expression "in_t6 = puVar14[0x19]" identifier = (subscript_expression "puVar14[0x19]" identifier [ number_literal ])) ;) (expression_statement "in_t8 = puVar14[0x1a];" (assignment_expression "in_t8 = puVar14[0x1a]" identifier = (subscript_expression "puVar14[0x1a]" identifier [ number_literal ])) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00015adc;" goto statement_identifier ;) })) (if_statement "if (iStack_670 != 0) {\n    iStack_670 = iStack_670 + -1;\n  }" if (parenthesized_expression "(iStack_670 != 0)" ( (binary_expression "iStack_670 != 0" identifier != number_literal) )) (compound_statement "{\n    iStack_670 = iStack_670 + -1;\n  }" { (expression_statement "iStack_670 = iStack_670 + -1;" (assignment_expression "iStack_670 = iStack_670 + -1" identifier = (binary_expression "iStack_670 + -1" identifier + number_literal)) ;) })) (expression_statement "puVar14 = puVar14 + 0xe;" (assignment_expression "puVar14 = puVar14 + 0xe" identifier = (binary_expression "puVar14 + 0xe" identifier + number_literal)) ;) (expression_statement "in_t0 = apuStack_5b8;" (assignment_expression "in_t0 = apuStack_5b8" identifier = identifier) ;) (expression_statement "apuStack_5e8[3] = puStack_630;" (assignment_expression "apuStack_5e8[3] = puStack_630" (subscript_expression "apuStack_5e8[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "apuStack_5e8[2] = puStack_65c;" (assignment_expression "apuStack_5e8[2] = puStack_65c" (subscript_expression "apuStack_5e8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iStack_5d8 = iStack_660;" (assignment_expression "iStack_5d8 = iStack_660" identifier = identifier) ;) (expression_statement "ppuVar21 = apuStack_5e8;" (assignment_expression "ppuVar21 = apuStack_5e8" identifier = identifier) ;) (expression_statement "puVar29 = puVar14;" (assignment_expression "puVar29 = puVar14" identifier = identifier) ;) (do_statement "do {\n    puVar31 = puVar29;\n    ppuVar12 = ppuVar21;\n    ppuVar21 = ppuVar12 + 4;\n    puVar19 = ppuVar12[1];\n    name = (uint **)ppuVar12[2];\n    puVar29 = ppuVar12[3];\n    *puVar31 = (uint)*ppuVar12;\n    puVar31[1] = (uint)puVar19;\n    puVar31[2] = (uint)name;\n    puVar31[3] = (uint)puVar29;\n    puVar29 = puVar31 + 4;\n  } while (ppuVar21 != in_t0);" do (compound_statement "{\n    puVar31 = puVar29;\n    ppuVar12 = ppuVar21;\n    ppuVar21 = ppuVar12 + 4;\n    puVar19 = ppuVar12[1];\n    name = (uint **)ppuVar12[2];\n    puVar29 = ppuVar12[3];\n    *puVar31 = (uint)*ppuVar12;\n    puVar31[1] = (uint)puVar19;\n    puVar31[2] = (uint)name;\n    puVar31[3] = (uint)puVar29;\n    puVar29 = puVar31 + 4;\n  }" { (expression_statement "puVar31 = puVar29;" (assignment_expression "puVar31 = puVar29" identifier = identifier) ;) (expression_statement "ppuVar12 = ppuVar21;" (assignment_expression "ppuVar12 = ppuVar21" identifier = identifier) ;) (expression_statement "ppuVar21 = ppuVar12 + 4;" (assignment_expression "ppuVar21 = ppuVar12 + 4" identifier = (binary_expression "ppuVar12 + 4" identifier + number_literal)) ;) (expression_statement "puVar19 = ppuVar12[1];" (assignment_expression "puVar19 = ppuVar12[1]" identifier = (subscript_expression "ppuVar12[1]" identifier [ number_literal ])) ;) (expression_statement "name = (uint **)ppuVar12[2];" (assignment_expression "name = (uint **)ppuVar12[2]" identifier = (cast_expression "(uint **)ppuVar12[2]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "ppuVar12[2]" identifier [ number_literal ]))) ;) (expression_statement "puVar29 = ppuVar12[3];" (assignment_expression "puVar29 = ppuVar12[3]" identifier = (subscript_expression "ppuVar12[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar31 = (uint)*ppuVar12;" (assignment_expression "*puVar31 = (uint)*ppuVar12" (pointer_expression "*puVar31" * identifier) = (binary_expression "(uint)*ppuVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puVar31[1] = (uint)puVar19;" (assignment_expression "puVar31[1] = (uint)puVar19" (subscript_expression "puVar31[1]" identifier [ number_literal ]) = (cast_expression "(uint)puVar19" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar31[2] = (uint)name;" (assignment_expression "puVar31[2] = (uint)name" (subscript_expression "puVar31[2]" identifier [ number_literal ]) = (cast_expression "(uint)name" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar31[3] = (uint)puVar29;" (assignment_expression "puVar31[3] = (uint)puVar29" (subscript_expression "puVar31[3]" identifier [ number_literal ]) = (cast_expression "(uint)puVar29" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar29 = puVar31 + 4;" (assignment_expression "puVar29 = puVar31 + 4" identifier = (binary_expression "puVar31 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppuVar21 != in_t0)" ( (binary_expression "ppuVar21 != in_t0" identifier != identifier) )) ;) (expression_statement "puVar29 = (uint *)0xfffffffe;" (assignment_expression "puVar29 = (uint *)0xfffffffe" identifier = (cast_expression "(uint *)0xfffffffe" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar19 = ppuVar12[5];" (assignment_expression "puVar19 = ppuVar12[5]" identifier = (subscript_expression "ppuVar12[5]" identifier [ number_literal ])) ;) (expression_statement "puVar31[4] = (uint)*ppuVar21;" (assignment_expression "puVar31[4] = (uint)*ppuVar21" (subscript_expression "puVar31[4]" identifier [ number_literal ]) = (binary_expression "(uint)*ppuVar21" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puVar31[5] = (uint)puVar19;" (assignment_expression "puVar31[5] = (uint)puVar19" (subscript_expression "puVar31[5]" identifier [ number_literal ]) = (cast_expression "(uint)puVar19" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (do_statement "do {\n    while( true ) {\n      psVar27 = psVar32 + 1;\n      psVar32[1] = (short)puVar25;\n      if ((psVar27 < &sStack_552) && (puVar25 != (uint *)0xc)) break;\nLAB_00015278:\n      do {\n        do {\n          if (iStack_dc == *piVar8) {\n            return;\n          }\n          iVar9 = iStack_dc;\n          uVar7 = (**(code **)(puVar33 + 0x23488))();\n          bVar2 = name == (uint **)0x0;\n          *(undefined4 *)&pc_00->day = uVar7;\n          *(int *)((int)&pc_00->day + 4) = iVar9;\n        } while (bVar2);\n        name = (uint **)puVar14[3];\n        if (puVar14[2] == 0x80000000) {\n          bVar2 = name == (uint **)0x0;\n        }\n        *(uint *)&(pc_00->year).value = -(uint)(-(int)name != 0) - puVar14[2];\n        *(int *)((int)&(pc_00->year).value + 4) = -(int)name;\n      } while (bVar2);\n      puVar25 = puVar14 + 4;\n      puVar14 = puVar14 + -0x2a;\n      psVar32 = psVar27 + -3;\n      iVar10 = 0xe;\n      (pc_00->year).digits = *puVar25;\n      iVar9 = -0x5d;\nLAB_00015adc:\n      puVar14 = puVar14 + 0xe;\n      puStack_5a8 = in_t2;\n      in_t2 = auStack_580;\n      uStack_5a4 = in_t3;\n      apsStack_5a0[1] = (short *)puStack_674;\n      apsStack_5a0[0] = unaff_s6;\n      ppuStack_594 = ppuVar28;\n      ppuStack_598 = in_t0;\n      uStack_58c = in_t5;\n      ppuStack_590 = in_t4;\n      uStack_588 = uVar17;\n      uStack_584 = in_t6;\n      auStack_580[0] = in_t8;\n      puVar25 = puStack_66c;\n      puVar31 = puVar14;\n      do {\n        puVar16 = puVar31;\n        puVar19 = puVar25;\n        in_t0 = (uint **)*puVar19;\n        puVar25 = puVar19 + 4;\n        uVar23 = puVar19[1];\n        uVar22 = puVar19[2];\n        uVar15 = puVar19[3];\n        *puVar16 = (uint)in_t0;\n        puVar16[1] = uVar23;\n        puVar16[2] = uVar22;\n        puVar16[3] = uVar15;\n        puVar31 = puVar16 + 4;\n      } while (puVar25 != in_t2);\n      name = (uint **)(int)*psVar32;\n      uVar15 = puVar19[5];\n      pbVar26 = (byte *)((int)name + iVar9);\n      puVar16[4] = *puVar25;\n      puVar16[5] = uVar15;\n      if ((pbVar26 < (byte *)0x71) && ((uint **)(int)(char)pbVar26[iVar30] == name)) {\n        puVar25 = (uint *)(uint)pbVar26[iVar18];\n      }\n      else {\n        puVar25 = (uint *)(int)*(char *)(iVar10 + iVar5 + 0x6338);\n      }\n    }\n    puVar31 = (uint *)(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4);\n    ppuVar21 = name;\n    psVar32 = psVar27;\n    if (puVar31 != (uint *)0xffffffa3) goto LAB_00014f50;\nLAB_0001504c:\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    psVar32 = psVar27;\nLAB_00015050:\n    uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370);\n    if (uVar15 != 0) {\n      uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);\n      puVar19 = puVar14 + (1 - uVar22) * 0xe;\n      puVar25 = puVar19;\n      puVar31 = auStack_5b0;\n      do {\n        puVar20 = puVar31;\n        puVar16 = puVar25;\n        puVar25 = puVar16 + 4;\n        uVar24 = puVar16[1];\n        uVar23 = puVar16[2];\n        uVar17 = puVar16[3];\n        *puVar20 = *puVar16;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar17;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);\n      uVar17 = puVar16[5];\n      uVar23 = uVar15 - 4 & 0xff;\n      puVar20[4] = *puVar25;\n      puVar20[5] = uVar17;\n      puStack_674 = (uint *)puVar19[5];\n      in_t3 = puVar19[3];\n      in_t2 = (uint *)puVar19[2];\n      unaff_s6 = (short *)puVar19[4];\n      ppuVar28 = (uint **)puVar19[7];\n      in_t0 = (uint **)puVar19[6];\n      in_t5 = puVar19[9];\n      in_t4 = (uint **)puVar19[8];\n      uVar17 = puVar19[10];\n      in_t6 = puVar19[0xb];\n      in_t8 = puVar19[0xc];\n      if (uVar23 < 0x58) {\n                    /* WARNING: Could not recover jumptable at 0x00015220. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(puVar33 + *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))\n                  ();\n        return;\n      }\n      psVar32 = psVar32 + -uVar22;\n      puVar14 = puVar14 + uVar22 * -0xe;\n      iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;\n      iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);\n      puStack_66c = auStack_5b0;\n      goto LAB_00015adc;\n    }\n    if (iStack_670 == 3) {\n      if ((int)puVar29 < 1) {\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }\n    }\n    name = (uint **)0xffffffa3;\n    while ((((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar18), puVar25 == (uint *)0x0))) {\n      psVar27 = psVar32;\n      if (psVar32 == asStack_578) goto LAB_00015278;\n      psVar32 = psVar32 + -1;\n      puVar25 = (uint *)(int)*psVar32;\n      puVar14 = puVar14 + -0xe;\n    }\n    puVar14 = puVar14 + 0xe;\n    in_t0 = apuStack_5b8;\n    apuStack_5e8[3] = puStack_630;\n    apuStack_5e8[2] = puStack_65c;\n    iStack_5d8 = iStack_660;\n    ppuVar21 = apuStack_5e8;\n    puVar31 = puVar14;\n    do {\n      puVar19 = puVar31;\n      ppuVar12 = ppuVar21;\n      ppuVar21 = ppuVar12 + 4;\n      puVar20 = ppuVar12[1];\n      puVar16 = ppuVar12[2];\n      puVar31 = ppuVar12[3];\n      *puVar19 = (uint)*ppuVar12;\n      puVar19[1] = (uint)puVar20;\n      puVar19[2] = (uint)puVar16;\n      puVar19[3] = (uint)puVar31;\n      puVar31 = puVar19 + 4;\n    } while (ppuVar21 != in_t0);\n    name = (uint **)0x3;\n    puVar31 = ppuVar12[5];\n    iStack_670 = 3;\n    puVar19[4] = (uint)*ppuVar21;\n    puVar19[5] = (uint)puVar31;\n  } while( true );" do (compound_statement "{\n    while( true ) {\n      psVar27 = psVar32 + 1;\n      psVar32[1] = (short)puVar25;\n      if ((psVar27 < &sStack_552) && (puVar25 != (uint *)0xc)) break;\nLAB_00015278:\n      do {\n        do {\n          if (iStack_dc == *piVar8) {\n            return;\n          }\n          iVar9 = iStack_dc;\n          uVar7 = (**(code **)(puVar33 + 0x23488))();\n          bVar2 = name == (uint **)0x0;\n          *(undefined4 *)&pc_00->day = uVar7;\n          *(int *)((int)&pc_00->day + 4) = iVar9;\n        } while (bVar2);\n        name = (uint **)puVar14[3];\n        if (puVar14[2] == 0x80000000) {\n          bVar2 = name == (uint **)0x0;\n        }\n        *(uint *)&(pc_00->year).value = -(uint)(-(int)name != 0) - puVar14[2];\n        *(int *)((int)&(pc_00->year).value + 4) = -(int)name;\n      } while (bVar2);\n      puVar25 = puVar14 + 4;\n      puVar14 = puVar14 + -0x2a;\n      psVar32 = psVar27 + -3;\n      iVar10 = 0xe;\n      (pc_00->year).digits = *puVar25;\n      iVar9 = -0x5d;\nLAB_00015adc:\n      puVar14 = puVar14 + 0xe;\n      puStack_5a8 = in_t2;\n      in_t2 = auStack_580;\n      uStack_5a4 = in_t3;\n      apsStack_5a0[1] = (short *)puStack_674;\n      apsStack_5a0[0] = unaff_s6;\n      ppuStack_594 = ppuVar28;\n      ppuStack_598 = in_t0;\n      uStack_58c = in_t5;\n      ppuStack_590 = in_t4;\n      uStack_588 = uVar17;\n      uStack_584 = in_t6;\n      auStack_580[0] = in_t8;\n      puVar25 = puStack_66c;\n      puVar31 = puVar14;\n      do {\n        puVar16 = puVar31;\n        puVar19 = puVar25;\n        in_t0 = (uint **)*puVar19;\n        puVar25 = puVar19 + 4;\n        uVar23 = puVar19[1];\n        uVar22 = puVar19[2];\n        uVar15 = puVar19[3];\n        *puVar16 = (uint)in_t0;\n        puVar16[1] = uVar23;\n        puVar16[2] = uVar22;\n        puVar16[3] = uVar15;\n        puVar31 = puVar16 + 4;\n      } while (puVar25 != in_t2);\n      name = (uint **)(int)*psVar32;\n      uVar15 = puVar19[5];\n      pbVar26 = (byte *)((int)name + iVar9);\n      puVar16[4] = *puVar25;\n      puVar16[5] = uVar15;\n      if ((pbVar26 < (byte *)0x71) && ((uint **)(int)(char)pbVar26[iVar30] == name)) {\n        puVar25 = (uint *)(uint)pbVar26[iVar18];\n      }\n      else {\n        puVar25 = (uint *)(int)*(char *)(iVar10 + iVar5 + 0x6338);\n      }\n    }\n    puVar31 = (uint *)(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4);\n    ppuVar21 = name;\n    psVar32 = psVar27;\n    if (puVar31 != (uint *)0xffffffa3) goto LAB_00014f50;\nLAB_0001504c:\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    psVar32 = psVar27;\nLAB_00015050:\n    uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370);\n    if (uVar15 != 0) {\n      uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);\n      puVar19 = puVar14 + (1 - uVar22) * 0xe;\n      puVar25 = puVar19;\n      puVar31 = auStack_5b0;\n      do {\n        puVar20 = puVar31;\n        puVar16 = puVar25;\n        puVar25 = puVar16 + 4;\n        uVar24 = puVar16[1];\n        uVar23 = puVar16[2];\n        uVar17 = puVar16[3];\n        *puVar20 = *puVar16;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar17;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);\n      uVar17 = puVar16[5];\n      uVar23 = uVar15 - 4 & 0xff;\n      puVar20[4] = *puVar25;\n      puVar20[5] = uVar17;\n      puStack_674 = (uint *)puVar19[5];\n      in_t3 = puVar19[3];\n      in_t2 = (uint *)puVar19[2];\n      unaff_s6 = (short *)puVar19[4];\n      ppuVar28 = (uint **)puVar19[7];\n      in_t0 = (uint **)puVar19[6];\n      in_t5 = puVar19[9];\n      in_t4 = (uint **)puVar19[8];\n      uVar17 = puVar19[10];\n      in_t6 = puVar19[0xb];\n      in_t8 = puVar19[0xc];\n      if (uVar23 < 0x58) {\n                    /* WARNING: Could not recover jumptable at 0x00015220. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(puVar33 + *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))\n                  ();\n        return;\n      }\n      psVar32 = psVar32 + -uVar22;\n      puVar14 = puVar14 + uVar22 * -0xe;\n      iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;\n      iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);\n      puStack_66c = auStack_5b0;\n      goto LAB_00015adc;\n    }\n    if (iStack_670 == 3) {\n      if ((int)puVar29 < 1) {\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }\n    }\n    name = (uint **)0xffffffa3;\n    while ((((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar18), puVar25 == (uint *)0x0))) {\n      psVar27 = psVar32;\n      if (psVar32 == asStack_578) goto LAB_00015278;\n      psVar32 = psVar32 + -1;\n      puVar25 = (uint *)(int)*psVar32;\n      puVar14 = puVar14 + -0xe;\n    }\n    puVar14 = puVar14 + 0xe;\n    in_t0 = apuStack_5b8;\n    apuStack_5e8[3] = puStack_630;\n    apuStack_5e8[2] = puStack_65c;\n    iStack_5d8 = iStack_660;\n    ppuVar21 = apuStack_5e8;\n    puVar31 = puVar14;\n    do {\n      puVar19 = puVar31;\n      ppuVar12 = ppuVar21;\n      ppuVar21 = ppuVar12 + 4;\n      puVar20 = ppuVar12[1];\n      puVar16 = ppuVar12[2];\n      puVar31 = ppuVar12[3];\n      *puVar19 = (uint)*ppuVar12;\n      puVar19[1] = (uint)puVar20;\n      puVar19[2] = (uint)puVar16;\n      puVar19[3] = (uint)puVar31;\n      puVar31 = puVar19 + 4;\n    } while (ppuVar21 != in_t0);\n    name = (uint **)0x3;\n    puVar31 = ppuVar12[5];\n    iStack_670 = 3;\n    puVar19[4] = (uint)*ppuVar21;\n    puVar19[5] = (uint)puVar31;\n  }" { (while_statement "while( true ) {\n      psVar27 = psVar32 + 1;\n      psVar32[1] = (short)puVar25;\n      if ((psVar27 < &sStack_552) && (puVar25 != (uint *)0xc)) break;\nLAB_00015278:\n      do {\n        do {\n          if (iStack_dc == *piVar8) {\n            return;\n          }\n          iVar9 = iStack_dc;\n          uVar7 = (**(code **)(puVar33 + 0x23488))();\n          bVar2 = name == (uint **)0x0;\n          *(undefined4 *)&pc_00->day = uVar7;\n          *(int *)((int)&pc_00->day + 4) = iVar9;\n        } while (bVar2);\n        name = (uint **)puVar14[3];\n        if (puVar14[2] == 0x80000000) {\n          bVar2 = name == (uint **)0x0;\n        }\n        *(uint *)&(pc_00->year).value = -(uint)(-(int)name != 0) - puVar14[2];\n        *(int *)((int)&(pc_00->year).value + 4) = -(int)name;\n      } while (bVar2);\n      puVar25 = puVar14 + 4;\n      puVar14 = puVar14 + -0x2a;\n      psVar32 = psVar27 + -3;\n      iVar10 = 0xe;\n      (pc_00->year).digits = *puVar25;\n      iVar9 = -0x5d;\nLAB_00015adc:\n      puVar14 = puVar14 + 0xe;\n      puStack_5a8 = in_t2;\n      in_t2 = auStack_580;\n      uStack_5a4 = in_t3;\n      apsStack_5a0[1] = (short *)puStack_674;\n      apsStack_5a0[0] = unaff_s6;\n      ppuStack_594 = ppuVar28;\n      ppuStack_598 = in_t0;\n      uStack_58c = in_t5;\n      ppuStack_590 = in_t4;\n      uStack_588 = uVar17;\n      uStack_584 = in_t6;\n      auStack_580[0] = in_t8;\n      puVar25 = puStack_66c;\n      puVar31 = puVar14;\n      do {\n        puVar16 = puVar31;\n        puVar19 = puVar25;\n        in_t0 = (uint **)*puVar19;\n        puVar25 = puVar19 + 4;\n        uVar23 = puVar19[1];\n        uVar22 = puVar19[2];\n        uVar15 = puVar19[3];\n        *puVar16 = (uint)in_t0;\n        puVar16[1] = uVar23;\n        puVar16[2] = uVar22;\n        puVar16[3] = uVar15;\n        puVar31 = puVar16 + 4;\n      } while (puVar25 != in_t2);\n      name = (uint **)(int)*psVar32;\n      uVar15 = puVar19[5];\n      pbVar26 = (byte *)((int)name + iVar9);\n      puVar16[4] = *puVar25;\n      puVar16[5] = uVar15;\n      if ((pbVar26 < (byte *)0x71) && ((uint **)(int)(char)pbVar26[iVar30] == name)) {\n        puVar25 = (uint *)(uint)pbVar26[iVar18];\n      }\n      else {\n        puVar25 = (uint *)(int)*(char *)(iVar10 + iVar5 + 0x6338);\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      psVar27 = psVar32 + 1;\n      psVar32[1] = (short)puVar25;\n      if ((psVar27 < &sStack_552) && (puVar25 != (uint *)0xc)) break;\nLAB_00015278:\n      do {\n        do {\n          if (iStack_dc == *piVar8) {\n            return;\n          }\n          iVar9 = iStack_dc;\n          uVar7 = (**(code **)(puVar33 + 0x23488))();\n          bVar2 = name == (uint **)0x0;\n          *(undefined4 *)&pc_00->day = uVar7;\n          *(int *)((int)&pc_00->day + 4) = iVar9;\n        } while (bVar2);\n        name = (uint **)puVar14[3];\n        if (puVar14[2] == 0x80000000) {\n          bVar2 = name == (uint **)0x0;\n        }\n        *(uint *)&(pc_00->year).value = -(uint)(-(int)name != 0) - puVar14[2];\n        *(int *)((int)&(pc_00->year).value + 4) = -(int)name;\n      } while (bVar2);\n      puVar25 = puVar14 + 4;\n      puVar14 = puVar14 + -0x2a;\n      psVar32 = psVar27 + -3;\n      iVar10 = 0xe;\n      (pc_00->year).digits = *puVar25;\n      iVar9 = -0x5d;\nLAB_00015adc:\n      puVar14 = puVar14 + 0xe;\n      puStack_5a8 = in_t2;\n      in_t2 = auStack_580;\n      uStack_5a4 = in_t3;\n      apsStack_5a0[1] = (short *)puStack_674;\n      apsStack_5a0[0] = unaff_s6;\n      ppuStack_594 = ppuVar28;\n      ppuStack_598 = in_t0;\n      uStack_58c = in_t5;\n      ppuStack_590 = in_t4;\n      uStack_588 = uVar17;\n      uStack_584 = in_t6;\n      auStack_580[0] = in_t8;\n      puVar25 = puStack_66c;\n      puVar31 = puVar14;\n      do {\n        puVar16 = puVar31;\n        puVar19 = puVar25;\n        in_t0 = (uint **)*puVar19;\n        puVar25 = puVar19 + 4;\n        uVar23 = puVar19[1];\n        uVar22 = puVar19[2];\n        uVar15 = puVar19[3];\n        *puVar16 = (uint)in_t0;\n        puVar16[1] = uVar23;\n        puVar16[2] = uVar22;\n        puVar16[3] = uVar15;\n        puVar31 = puVar16 + 4;\n      } while (puVar25 != in_t2);\n      name = (uint **)(int)*psVar32;\n      uVar15 = puVar19[5];\n      pbVar26 = (byte *)((int)name + iVar9);\n      puVar16[4] = *puVar25;\n      puVar16[5] = uVar15;\n      if ((pbVar26 < (byte *)0x71) && ((uint **)(int)(char)pbVar26[iVar30] == name)) {\n        puVar25 = (uint *)(uint)pbVar26[iVar18];\n      }\n      else {\n        puVar25 = (uint *)(int)*(char *)(iVar10 + iVar5 + 0x6338);\n      }\n    }" { (expression_statement "psVar27 = psVar32 + 1;" (assignment_expression "psVar27 = psVar32 + 1" identifier = (binary_expression "psVar32 + 1" identifier + number_literal)) ;) (expression_statement "psVar32[1] = (short)puVar25;" (assignment_expression "psVar32[1] = (short)puVar25" (subscript_expression "psVar32[1]" identifier [ number_literal ]) = (cast_expression "(short)puVar25" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (if_statement "if ((psVar27 < &sStack_552) && (puVar25 != (uint *)0xc)) break;" if (parenthesized_expression "((psVar27 < &sStack_552) && (puVar25 != (uint *)0xc))" ( (binary_expression "(psVar27 < &sStack_552) && (puVar25 != (uint *)0xc)" (parenthesized_expression "(psVar27 < &sStack_552)" ( (binary_expression "psVar27 < &sStack_552" identifier < (pointer_expression "&sStack_552" & identifier)) )) && (parenthesized_expression "(puVar25 != (uint *)0xc)" ( (binary_expression "puVar25 != (uint *)0xc" identifier != (cast_expression "(uint *)0xc" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00015278:\n      do {\n        do {\n          if (iStack_dc == *piVar8) {\n            return;\n          }\n          iVar9 = iStack_dc;\n          uVar7 = (**(code **)(puVar33 + 0x23488))();\n          bVar2 = name == (uint **)0x0;\n          *(undefined4 *)&pc_00->day = uVar7;\n          *(int *)((int)&pc_00->day + 4) = iVar9;\n        } while (bVar2);\n        name = (uint **)puVar14[3];\n        if (puVar14[2] == 0x80000000) {\n          bVar2 = name == (uint **)0x0;\n        }\n        *(uint *)&(pc_00->year).value = -(uint)(-(int)name != 0) - puVar14[2];\n        *(int *)((int)&(pc_00->year).value + 4) = -(int)name;\n      } while (bVar2);" statement_identifier : (do_statement "do {\n        do {\n          if (iStack_dc == *piVar8) {\n            return;\n          }\n          iVar9 = iStack_dc;\n          uVar7 = (**(code **)(puVar33 + 0x23488))();\n          bVar2 = name == (uint **)0x0;\n          *(undefined4 *)&pc_00->day = uVar7;\n          *(int *)((int)&pc_00->day + 4) = iVar9;\n        } while (bVar2);\n        name = (uint **)puVar14[3];\n        if (puVar14[2] == 0x80000000) {\n          bVar2 = name == (uint **)0x0;\n        }\n        *(uint *)&(pc_00->year).value = -(uint)(-(int)name != 0) - puVar14[2];\n        *(int *)((int)&(pc_00->year).value + 4) = -(int)name;\n      } while (bVar2);" do (compound_statement "{\n        do {\n          if (iStack_dc == *piVar8) {\n            return;\n          }\n          iVar9 = iStack_dc;\n          uVar7 = (**(code **)(puVar33 + 0x23488))();\n          bVar2 = name == (uint **)0x0;\n          *(undefined4 *)&pc_00->day = uVar7;\n          *(int *)((int)&pc_00->day + 4) = iVar9;\n        } while (bVar2);\n        name = (uint **)puVar14[3];\n        if (puVar14[2] == 0x80000000) {\n          bVar2 = name == (uint **)0x0;\n        }\n        *(uint *)&(pc_00->year).value = -(uint)(-(int)name != 0) - puVar14[2];\n        *(int *)((int)&(pc_00->year).value + 4) = -(int)name;\n      }" { (do_statement "do {\n          if (iStack_dc == *piVar8) {\n            return;\n          }\n          iVar9 = iStack_dc;\n          uVar7 = (**(code **)(puVar33 + 0x23488))();\n          bVar2 = name == (uint **)0x0;\n          *(undefined4 *)&pc_00->day = uVar7;\n          *(int *)((int)&pc_00->day + 4) = iVar9;\n        } while (bVar2);" do (compound_statement "{\n          if (iStack_dc == *piVar8) {\n            return;\n          }\n          iVar9 = iStack_dc;\n          uVar7 = (**(code **)(puVar33 + 0x23488))();\n          bVar2 = name == (uint **)0x0;\n          *(undefined4 *)&pc_00->day = uVar7;\n          *(int *)((int)&pc_00->day + 4) = iVar9;\n        }" { (if_statement "if (iStack_dc == *piVar8) {\n            return;\n          }" if (parenthesized_expression "(iStack_dc == *piVar8)" ( (binary_expression "iStack_dc == *piVar8" identifier == (pointer_expression "*piVar8" * identifier)) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (expression_statement "iVar9 = iStack_dc;" (assignment_expression "iVar9 = iStack_dc" identifier = identifier) ;) (expression_statement "uVar7 = (**(code **)(puVar33 + 0x23488))();" (assignment_expression "uVar7 = (**(code **)(puVar33 + 0x23488))()" identifier = (call_expression "(**(code **)(puVar33 + 0x23488))()" (parenthesized_expression "(**(code **)(puVar33 + 0x23488))" ( (pointer_expression "**(code **)(puVar33 + 0x23488)" * (pointer_expression "*(code **)(puVar33 + 0x23488)" * (cast_expression "(code **)(puVar33 + 0x23488)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x23488)" ( (binary_expression "puVar33 + 0x23488" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "bVar2 = name == (uint **)0x0;" (assignment_expression "bVar2 = name == (uint **)0x0" identifier = (binary_expression "name == (uint **)0x0" identifier == (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) ;) (expression_statement "*(undefined4 *)&pc_00->day = uVar7;" (assignment_expression "*(undefined4 *)&pc_00->day = uVar7" (pointer_expression "*(undefined4 *)&pc_00->day" * (cast_expression "(undefined4 *)&pc_00->day" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pc_00->day" & (field_expression "pc_00->day" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(int *)((int)&pc_00->day + 4) = iVar9;" (assignment_expression "*(int *)((int)&pc_00->day + 4) = iVar9" (pointer_expression "*(int *)((int)&pc_00->day + 4)" * (cast_expression "(int *)((int)&pc_00->day + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pc_00->day + 4)" ( (binary_expression "(int)&pc_00->day + 4" (cast_expression "(int)&pc_00->day" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pc_00->day" & (field_expression "pc_00->day" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) }) while (parenthesized_expression "(bVar2)" ( identifier )) ;) (expression_statement "name = (uint **)puVar14[3];" (assignment_expression "name = (uint **)puVar14[3]" identifier = (cast_expression "(uint **)puVar14[3]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar14[3]" identifier [ number_literal ]))) ;) (if_statement "if (puVar14[2] == 0x80000000) {\n          bVar2 = name == (uint **)0x0;\n        }" if (parenthesized_expression "(puVar14[2] == 0x80000000)" ( (binary_expression "puVar14[2] == 0x80000000" (subscript_expression "puVar14[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          bVar2 = name == (uint **)0x0;\n        }" { (expression_statement "bVar2 = name == (uint **)0x0;" (assignment_expression "bVar2 = name == (uint **)0x0" identifier = (binary_expression "name == (uint **)0x0" identifier == (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) ;) })) (expression_statement "*(uint *)&(pc_00->year).value = -(uint)(-(int)name != 0) - puVar14[2];" (assignment_expression "*(uint *)&(pc_00->year).value = -(uint)(-(int)name != 0) - puVar14[2]" (pointer_expression "*(uint *)&(pc_00->year).value" * (cast_expression "(uint *)&(pc_00->year).value" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pc_00->year).value" & (field_expression "(pc_00->year).value" (parenthesized_expression "(pc_00->year)" ( (field_expression "pc_00->year" identifier -> field_identifier) )) . field_identifier)))) = (binary_expression "-(uint)(-(int)name != 0) - puVar14[2]" (unary_expression "-(uint)(-(int)name != 0)" - (call_expression "(uint)(-(int)name != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(-(int)name != 0)" ( (binary_expression "-(int)name != 0" (unary_expression "-(int)name" - (cast_expression "(int)name" ( (type_descriptor "int" primitive_type) ) identifier)) != number_literal) )))) - (subscript_expression "puVar14[2]" identifier [ number_literal ]))) ;) (expression_statement "*(int *)((int)&(pc_00->year).value + 4) = -(int)name;" (assignment_expression "*(int *)((int)&(pc_00->year).value + 4) = -(int)name" (pointer_expression "*(int *)((int)&(pc_00->year).value + 4)" * (cast_expression "(int *)((int)&(pc_00->year).value + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pc_00->year).value + 4)" ( (binary_expression "(int)&(pc_00->year).value + 4" (cast_expression "(int)&(pc_00->year).value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pc_00->year).value" & (field_expression "(pc_00->year).value" (parenthesized_expression "(pc_00->year)" ( (field_expression "pc_00->year" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = (unary_expression "-(int)name" - (cast_expression "(int)name" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) while (parenthesized_expression "(bVar2)" ( identifier )) ;)) (expression_statement "puVar25 = puVar14 + 4;" (assignment_expression "puVar25 = puVar14 + 4" identifier = (binary_expression "puVar14 + 4" identifier + number_literal)) ;) (expression_statement "puVar14 = puVar14 + -0x2a;" (assignment_expression "puVar14 = puVar14 + -0x2a" identifier = (binary_expression "puVar14 + -0x2a" identifier + number_literal)) ;) (expression_statement "psVar32 = psVar27 + -3;" (assignment_expression "psVar32 = psVar27 + -3" identifier = (binary_expression "psVar27 + -3" identifier + number_literal)) ;) (expression_statement "iVar10 = 0xe;" (assignment_expression "iVar10 = 0xe" identifier = number_literal) ;) (expression_statement "(pc_00->year).digits = *puVar25;" (assignment_expression "(pc_00->year).digits = *puVar25" (field_expression "(pc_00->year).digits" (parenthesized_expression "(pc_00->year)" ( (field_expression "pc_00->year" identifier -> field_identifier) )) . field_identifier) = (pointer_expression "*puVar25" * identifier)) ;) (expression_statement "iVar9 = -0x5d;" (assignment_expression "iVar9 = -0x5d" identifier = number_literal) ;) (labeled_statement "LAB_00015adc:\n      puVar14 = puVar14 + 0xe;" statement_identifier : (expression_statement "puVar14 = puVar14 + 0xe;" (assignment_expression "puVar14 = puVar14 + 0xe" identifier = (binary_expression "puVar14 + 0xe" identifier + number_literal)) ;)) (expression_statement "puStack_5a8 = in_t2;" (assignment_expression "puStack_5a8 = in_t2" identifier = identifier) ;) (expression_statement "in_t2 = auStack_580;" (assignment_expression "in_t2 = auStack_580" identifier = identifier) ;) (expression_statement "uStack_5a4 = in_t3;" (assignment_expression "uStack_5a4 = in_t3" identifier = identifier) ;) (expression_statement "apsStack_5a0[1] = (short *)puStack_674;" (assignment_expression "apsStack_5a0[1] = (short *)puStack_674" (subscript_expression "apsStack_5a0[1]" identifier [ number_literal ]) = (cast_expression "(short *)puStack_674" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "apsStack_5a0[0] = unaff_s6;" (assignment_expression "apsStack_5a0[0] = unaff_s6" (subscript_expression "apsStack_5a0[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppuStack_594 = ppuVar28;" (assignment_expression "ppuStack_594 = ppuVar28" identifier = identifier) ;) (expression_statement "ppuStack_598 = in_t0;" (assignment_expression "ppuStack_598 = in_t0" identifier = identifier) ;) (expression_statement "uStack_58c = in_t5;" (assignment_expression "uStack_58c = in_t5" identifier = identifier) ;) (expression_statement "ppuStack_590 = in_t4;" (assignment_expression "ppuStack_590 = in_t4" identifier = identifier) ;) (expression_statement "uStack_588 = uVar17;" (assignment_expression "uStack_588 = uVar17" identifier = identifier) ;) (expression_statement "uStack_584 = in_t6;" (assignment_expression "uStack_584 = in_t6" identifier = identifier) ;) (expression_statement "auStack_580[0] = in_t8;" (assignment_expression "auStack_580[0] = in_t8" (subscript_expression "auStack_580[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar25 = puStack_66c;" (assignment_expression "puVar25 = puStack_66c" identifier = identifier) ;) (expression_statement "puVar31 = puVar14;" (assignment_expression "puVar31 = puVar14" identifier = identifier) ;) (do_statement "do {\n        puVar16 = puVar31;\n        puVar19 = puVar25;\n        in_t0 = (uint **)*puVar19;\n        puVar25 = puVar19 + 4;\n        uVar23 = puVar19[1];\n        uVar22 = puVar19[2];\n        uVar15 = puVar19[3];\n        *puVar16 = (uint)in_t0;\n        puVar16[1] = uVar23;\n        puVar16[2] = uVar22;\n        puVar16[3] = uVar15;\n        puVar31 = puVar16 + 4;\n      } while (puVar25 != in_t2);" do (compound_statement "{\n        puVar16 = puVar31;\n        puVar19 = puVar25;\n        in_t0 = (uint **)*puVar19;\n        puVar25 = puVar19 + 4;\n        uVar23 = puVar19[1];\n        uVar22 = puVar19[2];\n        uVar15 = puVar19[3];\n        *puVar16 = (uint)in_t0;\n        puVar16[1] = uVar23;\n        puVar16[2] = uVar22;\n        puVar16[3] = uVar15;\n        puVar31 = puVar16 + 4;\n      }" { (expression_statement "puVar16 = puVar31;" (assignment_expression "puVar16 = puVar31" identifier = identifier) ;) (expression_statement "puVar19 = puVar25;" (assignment_expression "puVar19 = puVar25" identifier = identifier) ;) (expression_statement "in_t0 = (uint **)*puVar19;" (assignment_expression "in_t0 = (uint **)*puVar19" identifier = (cast_expression "(uint **)*puVar19" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar19" * identifier))) ;) (expression_statement "puVar25 = puVar19 + 4;" (assignment_expression "puVar25 = puVar19 + 4" identifier = (binary_expression "puVar19 + 4" identifier + number_literal)) ;) (expression_statement "uVar23 = puVar19[1];" (assignment_expression "uVar23 = puVar19[1]" identifier = (subscript_expression "puVar19[1]" identifier [ number_literal ])) ;) (expression_statement "uVar22 = puVar19[2];" (assignment_expression "uVar22 = puVar19[2]" identifier = (subscript_expression "puVar19[2]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = puVar19[3];" (assignment_expression "uVar15 = puVar19[3]" identifier = (subscript_expression "puVar19[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar16 = (uint)in_t0;" (assignment_expression "*puVar16 = (uint)in_t0" (pointer_expression "*puVar16" * identifier) = (cast_expression "(uint)in_t0" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar16[1] = uVar23;" (assignment_expression "puVar16[1] = uVar23" (subscript_expression "puVar16[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar16[2] = uVar22;" (assignment_expression "puVar16[2] = uVar22" (subscript_expression "puVar16[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar16[3] = uVar15;" (assignment_expression "puVar16[3] = uVar15" (subscript_expression "puVar16[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar31 = puVar16 + 4;" (assignment_expression "puVar31 = puVar16 + 4" identifier = (binary_expression "puVar16 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar25 != in_t2)" ( (binary_expression "puVar25 != in_t2" identifier != identifier) )) ;) (expression_statement "name = (uint **)(int)*psVar32;" (assignment_expression "name = (uint **)(int)*psVar32" identifier = (cast_expression "(uint **)(int)*psVar32" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)*psVar32" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*psVar32" * identifier)))) ;) (expression_statement "uVar15 = puVar19[5];" (assignment_expression "uVar15 = puVar19[5]" identifier = (subscript_expression "puVar19[5]" identifier [ number_literal ])) ;) (expression_statement "pbVar26 = (byte *)((int)name + iVar9);" (assignment_expression "pbVar26 = (byte *)((int)name + iVar9)" identifier = (cast_expression "(byte *)((int)name + iVar9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)name + iVar9)" ( (binary_expression "(int)name + iVar9" (cast_expression "(int)name" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "puVar16[4] = *puVar25;" (assignment_expression "puVar16[4] = *puVar25" (subscript_expression "puVar16[4]" identifier [ number_literal ]) = (pointer_expression "*puVar25" * identifier)) ;) (expression_statement "puVar16[5] = uVar15;" (assignment_expression "puVar16[5] = uVar15" (subscript_expression "puVar16[5]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((pbVar26 < (byte *)0x71) && ((uint **)(int)(char)pbVar26[iVar30] == name)) {\n        puVar25 = (uint *)(uint)pbVar26[iVar18];\n      }\n      else {\n        puVar25 = (uint *)(int)*(char *)(iVar10 + iVar5 + 0x6338);\n      }" if (parenthesized_expression "((pbVar26 < (byte *)0x71) && ((uint **)(int)(char)pbVar26[iVar30] == name))" ( (binary_expression "(pbVar26 < (byte *)0x71) && ((uint **)(int)(char)pbVar26[iVar30] == name)" (parenthesized_expression "(pbVar26 < (byte *)0x71)" ( (binary_expression "pbVar26 < (byte *)0x71" identifier < (cast_expression "(byte *)0x71" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((uint **)(int)(char)pbVar26[iVar30] == name)" ( (binary_expression "(uint **)(int)(char)pbVar26[iVar30] == name" (cast_expression "(uint **)(int)(char)pbVar26[iVar30]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)(char)pbVar26[iVar30]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar26[iVar30]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar26[iVar30]" identifier [ identifier ])))) == identifier) ))) )) (compound_statement "{\n        puVar25 = (uint *)(uint)pbVar26[iVar18];\n      }" { (expression_statement "puVar25 = (uint *)(uint)pbVar26[iVar18];" (assignment_expression "puVar25 = (uint *)(uint)pbVar26[iVar18]" identifier = (cast_expression "(uint *)(uint)pbVar26[iVar18]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)pbVar26[iVar18]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar26[iVar18]" identifier [ identifier ])))) ;) }) (else_clause "else {\n        puVar25 = (uint *)(int)*(char *)(iVar10 + iVar5 + 0x6338);\n      }" else (compound_statement "{\n        puVar25 = (uint *)(int)*(char *)(iVar10 + iVar5 + 0x6338);\n      }" { (expression_statement "puVar25 = (uint *)(int)*(char *)(iVar10 + iVar5 + 0x6338);" (assignment_expression "puVar25 = (uint *)(int)*(char *)(iVar10 + iVar5 + 0x6338)" identifier = (cast_expression "(uint *)(int)*(char *)(iVar10 + iVar5 + 0x6338)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*(char *)(iVar10 + iVar5 + 0x6338)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar10 + iVar5 + 0x6338)" * (cast_expression "(char *)(iVar10 + iVar5 + 0x6338)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + iVar5 + 0x6338)" ( (binary_expression "iVar10 + iVar5 + 0x6338" (binary_expression "iVar10 + iVar5" identifier + identifier) + number_literal) ))))))) ;) }))) })) (expression_statement "puVar31 = (uint *)(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4);" (assignment_expression "puVar31 = (uint *)(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" identifier = (cast_expression "(uint *)(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" * (cast_expression "(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" ( (binary_expression "(int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4" (binary_expression "(int)puVar25 + *(int *)(puVar33 + 0x23270)" (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) + number_literal) )))))))) ;) (expression_statement "ppuVar21 = name;" (assignment_expression "ppuVar21 = name" identifier = identifier) ;) (expression_statement "psVar32 = psVar27;" (assignment_expression "psVar32 = psVar27" identifier = identifier) ;) (if_statement "if (puVar31 != (uint *)0xffffffa3) goto LAB_00014f50;" if (parenthesized_expression "(puVar31 != (uint *)0xffffffa3)" ( (binary_expression "puVar31 != (uint *)0xffffffa3" identifier != (cast_expression "(uint *)0xffffffa3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00014f50;" goto statement_identifier ;)) (labeled_statement "LAB_0001504c:\n    iVar9 = *(int *)(puVar33 + 0x23270);" statement_identifier : (expression_statement "iVar9 = *(int *)(puVar33 + 0x23270);" (assignment_expression "iVar9 = *(int *)(puVar33 + 0x23270)" identifier = (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) ;)) (expression_statement "psVar32 = psVar27;" (assignment_expression "psVar32 = psVar27" identifier = identifier) ;) (labeled_statement "LAB_00015050:\n    uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370);" statement_identifier : (expression_statement "uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370);" (assignment_expression "uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370)" identifier = (binary_expression "(uint)*(byte *)((int)puVar25 + iVar9 + 0x6370)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)puVar25 + iVar9 + 0x6370)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar25 + iVar9 + 0x6370)" ( (binary_expression "(int)puVar25 + iVar9 + 0x6370" (binary_expression "(int)puVar25 + iVar9" (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;)) (if_statement "if (uVar15 != 0) {\n      uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);\n      puVar19 = puVar14 + (1 - uVar22) * 0xe;\n      puVar25 = puVar19;\n      puVar31 = auStack_5b0;\n      do {\n        puVar20 = puVar31;\n        puVar16 = puVar25;\n        puVar25 = puVar16 + 4;\n        uVar24 = puVar16[1];\n        uVar23 = puVar16[2];\n        uVar17 = puVar16[3];\n        *puVar20 = *puVar16;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar17;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);\n      uVar17 = puVar16[5];\n      uVar23 = uVar15 - 4 & 0xff;\n      puVar20[4] = *puVar25;\n      puVar20[5] = uVar17;\n      puStack_674 = (uint *)puVar19[5];\n      in_t3 = puVar19[3];\n      in_t2 = (uint *)puVar19[2];\n      unaff_s6 = (short *)puVar19[4];\n      ppuVar28 = (uint **)puVar19[7];\n      in_t0 = (uint **)puVar19[6];\n      in_t5 = puVar19[9];\n      in_t4 = (uint **)puVar19[8];\n      uVar17 = puVar19[10];\n      in_t6 = puVar19[0xb];\n      in_t8 = puVar19[0xc];\n      if (uVar23 < 0x58) {\n                    /* WARNING: Could not recover jumptable at 0x00015220. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(puVar33 + *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))\n                  ();\n        return;\n      }\n      psVar32 = psVar32 + -uVar22;\n      puVar14 = puVar14 + uVar22 * -0xe;\n      iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;\n      iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);\n      puStack_66c = auStack_5b0;\n      goto LAB_00015adc;\n    }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);\n      puVar19 = puVar14 + (1 - uVar22) * 0xe;\n      puVar25 = puVar19;\n      puVar31 = auStack_5b0;\n      do {\n        puVar20 = puVar31;\n        puVar16 = puVar25;\n        puVar25 = puVar16 + 4;\n        uVar24 = puVar16[1];\n        uVar23 = puVar16[2];\n        uVar17 = puVar16[3];\n        *puVar20 = *puVar16;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar17;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);\n      uVar17 = puVar16[5];\n      uVar23 = uVar15 - 4 & 0xff;\n      puVar20[4] = *puVar25;\n      puVar20[5] = uVar17;\n      puStack_674 = (uint *)puVar19[5];\n      in_t3 = puVar19[3];\n      in_t2 = (uint *)puVar19[2];\n      unaff_s6 = (short *)puVar19[4];\n      ppuVar28 = (uint **)puVar19[7];\n      in_t0 = (uint **)puVar19[6];\n      in_t5 = puVar19[9];\n      in_t4 = (uint **)puVar19[8];\n      uVar17 = puVar19[10];\n      in_t6 = puVar19[0xb];\n      in_t8 = puVar19[0xc];\n      if (uVar23 < 0x58) {\n                    /* WARNING: Could not recover jumptable at 0x00015220. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(puVar33 + *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))\n                  ();\n        return;\n      }\n      psVar32 = psVar32 + -uVar22;\n      puVar14 = puVar14 + uVar22 * -0xe;\n      iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;\n      iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);\n      puStack_66c = auStack_5b0;\n      goto LAB_00015adc;\n    }" { (expression_statement "uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);" (assignment_expression "uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198)" identifier = (binary_expression "(uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198)" ( (binary_expression "uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198" (binary_expression "uVar15 + *(int *)(puVar33 + 0x23270)" identifier + (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "puVar19 = puVar14 + (1 - uVar22) * 0xe;" (assignment_expression "puVar19 = puVar14 + (1 - uVar22) * 0xe" identifier = (binary_expression "puVar14 + (1 - uVar22) * 0xe" identifier + (binary_expression "(1 - uVar22) * 0xe" (parenthesized_expression "(1 - uVar22)" ( (binary_expression "1 - uVar22" number_literal - identifier) )) * number_literal))) ;) (expression_statement "puVar25 = puVar19;" (assignment_expression "puVar25 = puVar19" identifier = identifier) ;) (expression_statement "puVar31 = auStack_5b0;" (assignment_expression "puVar31 = auStack_5b0" identifier = identifier) ;) (do_statement "do {\n        puVar20 = puVar31;\n        puVar16 = puVar25;\n        puVar25 = puVar16 + 4;\n        uVar24 = puVar16[1];\n        uVar23 = puVar16[2];\n        uVar17 = puVar16[3];\n        *puVar20 = *puVar16;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar17;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);" do (compound_statement "{\n        puVar20 = puVar31;\n        puVar16 = puVar25;\n        puVar25 = puVar16 + 4;\n        uVar24 = puVar16[1];\n        uVar23 = puVar16[2];\n        uVar17 = puVar16[3];\n        *puVar20 = *puVar16;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar17;\n        puVar31 = puVar20 + 4;\n      }" { (expression_statement "puVar20 = puVar31;" (assignment_expression "puVar20 = puVar31" identifier = identifier) ;) (expression_statement "puVar16 = puVar25;" (assignment_expression "puVar16 = puVar25" identifier = identifier) ;) (expression_statement "puVar25 = puVar16 + 4;" (assignment_expression "puVar25 = puVar16 + 4" identifier = (binary_expression "puVar16 + 4" identifier + number_literal)) ;) (expression_statement "uVar24 = puVar16[1];" (assignment_expression "uVar24 = puVar16[1]" identifier = (subscript_expression "puVar16[1]" identifier [ number_literal ])) ;) (expression_statement "uVar23 = puVar16[2];" (assignment_expression "uVar23 = puVar16[2]" identifier = (subscript_expression "puVar16[2]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = puVar16[3];" (assignment_expression "uVar17 = puVar16[3]" identifier = (subscript_expression "puVar16[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar20 = *puVar16;" (assignment_expression "*puVar20 = *puVar16" (pointer_expression "*puVar20" * identifier) = (pointer_expression "*puVar16" * identifier)) ;) (expression_statement "puVar20[1] = uVar24;" (assignment_expression "puVar20[1] = uVar24" (subscript_expression "puVar20[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar20[2] = uVar23;" (assignment_expression "puVar20[2] = uVar23" (subscript_expression "puVar20[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar20[3] = uVar17;" (assignment_expression "puVar20[3] = uVar17" (subscript_expression "puVar20[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar31 = puVar20 + 4;" (assignment_expression "puVar31 = puVar20 + 4" identifier = (binary_expression "puVar20 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar25 != puVar19 + 0xc)" ( (binary_expression "puVar25 != puVar19 + 0xc" identifier != (binary_expression "puVar19 + 0xc" identifier + number_literal)) )) ;) (expression_statement "uVar17 = puVar16[5];" (assignment_expression "uVar17 = puVar16[5]" identifier = (subscript_expression "puVar16[5]" identifier [ number_literal ])) ;) (expression_statement "uVar23 = uVar15 - 4 & 0xff;" (assignment_expression "uVar23 = uVar15 - 4 & 0xff" identifier = (binary_expression "uVar15 - 4 & 0xff" (binary_expression "uVar15 - 4" identifier - number_literal) & number_literal)) ;) (expression_statement "puVar20[4] = *puVar25;" (assignment_expression "puVar20[4] = *puVar25" (subscript_expression "puVar20[4]" identifier [ number_literal ]) = (pointer_expression "*puVar25" * identifier)) ;) (expression_statement "puVar20[5] = uVar17;" (assignment_expression "puVar20[5] = uVar17" (subscript_expression "puVar20[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puStack_674 = (uint *)puVar19[5];" (assignment_expression "puStack_674 = (uint *)puVar19[5]" identifier = (cast_expression "(uint *)puVar19[5]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar19[5]" identifier [ number_literal ]))) ;) (expression_statement "in_t3 = puVar19[3];" (assignment_expression "in_t3 = puVar19[3]" identifier = (subscript_expression "puVar19[3]" identifier [ number_literal ])) ;) (expression_statement "in_t2 = (uint *)puVar19[2];" (assignment_expression "in_t2 = (uint *)puVar19[2]" identifier = (cast_expression "(uint *)puVar19[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar19[2]" identifier [ number_literal ]))) ;) (expression_statement "unaff_s6 = (short *)puVar19[4];" (assignment_expression "unaff_s6 = (short *)puVar19[4]" identifier = (cast_expression "(short *)puVar19[4]" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar19[4]" identifier [ number_literal ]))) ;) (expression_statement "ppuVar28 = (uint **)puVar19[7];" (assignment_expression "ppuVar28 = (uint **)puVar19[7]" identifier = (cast_expression "(uint **)puVar19[7]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar19[7]" identifier [ number_literal ]))) ;) (expression_statement "in_t0 = (uint **)puVar19[6];" (assignment_expression "in_t0 = (uint **)puVar19[6]" identifier = (cast_expression "(uint **)puVar19[6]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar19[6]" identifier [ number_literal ]))) ;) (expression_statement "in_t5 = puVar19[9];" (assignment_expression "in_t5 = puVar19[9]" identifier = (subscript_expression "puVar19[9]" identifier [ number_literal ])) ;) (expression_statement "in_t4 = (uint **)puVar19[8];" (assignment_expression "in_t4 = (uint **)puVar19[8]" identifier = (cast_expression "(uint **)puVar19[8]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar19[8]" identifier [ number_literal ]))) ;) (expression_statement "uVar17 = puVar19[10];" (assignment_expression "uVar17 = puVar19[10]" identifier = (subscript_expression "puVar19[10]" identifier [ number_literal ])) ;) (expression_statement "in_t6 = puVar19[0xb];" (assignment_expression "in_t6 = puVar19[0xb]" identifier = (subscript_expression "puVar19[0xb]" identifier [ number_literal ])) ;) (expression_statement "in_t8 = puVar19[0xc];" (assignment_expression "in_t8 = puVar19[0xc]" identifier = (subscript_expression "puVar19[0xc]" identifier [ number_literal ])) ;) (if_statement "if (uVar23 < 0x58) {\n                    /* WARNING: Could not recover jumptable at 0x00015220. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(puVar33 + *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))\n                  ();\n        return;\n      }" if (parenthesized_expression "(uVar23 < 0x58)" ( (binary_expression "uVar23 < 0x58" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00015220. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(puVar33 + *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))\n                  ();\n        return;\n      }" { comment comment (expression_statement "(*(code *)(puVar33 + *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))\n                  ();" (call_expression "(*(code *)(puVar33 + *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))\n                  ()" (parenthesized_expression "(*(code *)(puVar33 + *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))" ( (pointer_expression "*(code *)(puVar33 + *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234)" * (cast_expression "(code *)(puVar33 + *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234)" ( (binary_expression "puVar33 + *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234" (binary_expression "puVar33 + *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4)" * (cast_expression "(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4)" ( (binary_expression "*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4" (binary_expression "*(int *)(puVar33 + 0x23270) + 0x5f80" (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) )))) + number_literal) + (binary_expression "uVar23 * 4" identifier * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "psVar32 = psVar32 + -uVar22;" (assignment_expression "psVar32 = psVar32 + -uVar22" identifier = (binary_expression "psVar32 + -uVar22" identifier + (unary_expression "-uVar22" - identifier))) ;) (expression_statement "puVar14 = puVar14 + uVar22 * -0xe;" (assignment_expression "puVar14 = puVar14 + uVar22 * -0xe" identifier = (binary_expression "puVar14 + uVar22 * -0xe" identifier + (binary_expression "uVar22 * -0xe" identifier * number_literal))) ;) (expression_statement "iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;" (assignment_expression "iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c" identifier = (binary_expression "*(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c" (pointer_expression "*(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15)" * (cast_expression "(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15)" ( (binary_expression "*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15" (binary_expression "*(int *)(puVar33 + 0x23270) + 0x61f4" (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) )))) + number_literal) + identifier) )))) - number_literal)) ;) (expression_statement "iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);" (assignment_expression "iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354)" identifier = (cast_expression "(int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354)" * (cast_expression "(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354)" ( (binary_expression "iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354" (binary_expression "iVar10 + *(int *)(puVar33 + 0x23270)" identifier + (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) + number_literal) )))))) ;) (expression_statement "puStack_66c = auStack_5b0;" (assignment_expression "puStack_66c = auStack_5b0" identifier = identifier) ;) (goto_statement "goto LAB_00015adc;" goto statement_identifier ;) })) (if_statement "if (iStack_670 == 3) {\n      if ((int)puVar29 < 1) {\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }\n    }" if (parenthesized_expression "(iStack_670 == 3)" ( (binary_expression "iStack_670 == 3" identifier == number_literal) )) (compound_statement "{\n      if ((int)puVar29 < 1) {\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }\n    }" { (if_statement "if ((int)puVar29 < 1) {\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }" if (parenthesized_expression "((int)puVar29 < 1)" ( (binary_expression "(int)puVar29 < 1" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }" { (expression_statement "psVar27 = psVar32;" (assignment_expression "psVar27 = psVar32" identifier = identifier) ;) (if_statement "if (puVar29 == (uint *)0x0) goto LAB_00015278;" if (parenthesized_expression "(puVar29 == (uint *)0x0)" ( (binary_expression "puVar29 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00015278;" goto statement_identifier ;)) }) (else_clause "else {\n        puVar29 = (uint *)0xfffffffe;\n      }" else (compound_statement "{\n        puVar29 = (uint *)0xfffffffe;\n      }" { (expression_statement "puVar29 = (uint *)0xfffffffe;" (assignment_expression "puVar29 = (uint *)0xfffffffe" identifier = (cast_expression "(uint *)0xfffffffe" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) })) (expression_statement "name = (uint **)0xffffffa3;" (assignment_expression "name = (uint **)0xffffffa3" identifier = (cast_expression "(uint **)0xffffffa3" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (while_statement "while ((((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar18), puVar25 == (uint *)0x0))) {\n      psVar27 = psVar32;\n      if (psVar32 == asStack_578) goto LAB_00015278;\n      psVar32 = psVar32 + -1;\n      puVar25 = (uint *)(int)*psVar32;\n      puVar14 = puVar14 + -0xe;\n    }" while (parenthesized_expression "((((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar18), puVar25 == (uint *)0x0)))" ( (parenthesized_expression "(((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar18), puVar25 == (uint *)0x0))" ( (binary_expression "((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar18), puVar25 == (uint *)0x0)" (parenthesized_expression "((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01'))" ( (binary_expression "(iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')" (parenthesized_expression "(iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15))" ( (comma_expression "iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)" (assignment_expression "iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" identifier = (cast_expression "(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" * (cast_expression "(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" ( (binary_expression "(int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4" (binary_expression "(int)puVar25 + *(int *)(puVar33 + 0x23270)" (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) + number_literal) ))))))) , (comma_expression "uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)" (assignment_expression "uVar15 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) , (binary_expression "iVar9 == -0x5d || (0x70 < uVar15)" (binary_expression "iVar9 == -0x5d" identifier == number_literal) || (parenthesized_expression "(0x70 < uVar15)" ( (binary_expression "0x70 < uVar15" number_literal < identifier) ))))) )) || (parenthesized_expression "(*(char *)(uVar15 + iVar30) != '\x01')" ( (binary_expression "*(char *)(uVar15 + iVar30) != '\x01'" (pointer_expression "*(char *)(uVar15 + iVar30)" * (cast_expression "(char *)(uVar15 + iVar30)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar15 + iVar30)" ( (binary_expression "uVar15 + iVar30" identifier + identifier) )))) != (char_literal "'\x01'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar18), puVar25 == (uint *)0x0)" ( (comma_expression "puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar18), puVar25 == (uint *)0x0" (assignment_expression "puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar18)" identifier = (binary_expression "(uint *)(uint)*(byte *)(uVar15 + iVar18)" (cast_expression "(uint *)(uint)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(uVar15 + iVar18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar15 + iVar18)" ( (binary_expression "uVar15 + iVar18" identifier + identifier) ))))) , (binary_expression "puVar25 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) )) (compound_statement "{\n      psVar27 = psVar32;\n      if (psVar32 == asStack_578) goto LAB_00015278;\n      psVar32 = psVar32 + -1;\n      puVar25 = (uint *)(int)*psVar32;\n      puVar14 = puVar14 + -0xe;\n    }" { (expression_statement "psVar27 = psVar32;" (assignment_expression "psVar27 = psVar32" identifier = identifier) ;) (if_statement "if (psVar32 == asStack_578) goto LAB_00015278;" if (parenthesized_expression "(psVar32 == asStack_578)" ( (binary_expression "psVar32 == asStack_578" identifier == identifier) )) (goto_statement "goto LAB_00015278;" goto statement_identifier ;)) (expression_statement "psVar32 = psVar32 + -1;" (assignment_expression "psVar32 = psVar32 + -1" identifier = (binary_expression "psVar32 + -1" identifier + number_literal)) ;) (expression_statement "puVar25 = (uint *)(int)*psVar32;" (assignment_expression "puVar25 = (uint *)(int)*psVar32" identifier = (cast_expression "(uint *)(int)*psVar32" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*psVar32" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*psVar32" * identifier)))) ;) (expression_statement "puVar14 = puVar14 + -0xe;" (assignment_expression "puVar14 = puVar14 + -0xe" identifier = (binary_expression "puVar14 + -0xe" identifier + number_literal)) ;) })) (expression_statement "puVar14 = puVar14 + 0xe;" (assignment_expression "puVar14 = puVar14 + 0xe" identifier = (binary_expression "puVar14 + 0xe" identifier + number_literal)) ;) (expression_statement "in_t0 = apuStack_5b8;" (assignment_expression "in_t0 = apuStack_5b8" identifier = identifier) ;) (expression_statement "apuStack_5e8[3] = puStack_630;" (assignment_expression "apuStack_5e8[3] = puStack_630" (subscript_expression "apuStack_5e8[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "apuStack_5e8[2] = puStack_65c;" (assignment_expression "apuStack_5e8[2] = puStack_65c" (subscript_expression "apuStack_5e8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iStack_5d8 = iStack_660;" (assignment_expression "iStack_5d8 = iStack_660" identifier = identifier) ;) (expression_statement "ppuVar21 = apuStack_5e8;" (assignment_expression "ppuVar21 = apuStack_5e8" identifier = identifier) ;) (expression_statement "puVar31 = puVar14;" (assignment_expression "puVar31 = puVar14" identifier = identifier) ;) (do_statement "do {\n      puVar19 = puVar31;\n      ppuVar12 = ppuVar21;\n      ppuVar21 = ppuVar12 + 4;\n      puVar20 = ppuVar12[1];\n      puVar16 = ppuVar12[2];\n      puVar31 = ppuVar12[3];\n      *puVar19 = (uint)*ppuVar12;\n      puVar19[1] = (uint)puVar20;\n      puVar19[2] = (uint)puVar16;\n      puVar19[3] = (uint)puVar31;\n      puVar31 = puVar19 + 4;\n    } while (ppuVar21 != in_t0);" do (compound_statement "{\n      puVar19 = puVar31;\n      ppuVar12 = ppuVar21;\n      ppuVar21 = ppuVar12 + 4;\n      puVar20 = ppuVar12[1];\n      puVar16 = ppuVar12[2];\n      puVar31 = ppuVar12[3];\n      *puVar19 = (uint)*ppuVar12;\n      puVar19[1] = (uint)puVar20;\n      puVar19[2] = (uint)puVar16;\n      puVar19[3] = (uint)puVar31;\n      puVar31 = puVar19 + 4;\n    }" { (expression_statement "puVar19 = puVar31;" (assignment_expression "puVar19 = puVar31" identifier = identifier) ;) (expression_statement "ppuVar12 = ppuVar21;" (assignment_expression "ppuVar12 = ppuVar21" identifier = identifier) ;) (expression_statement "ppuVar21 = ppuVar12 + 4;" (assignment_expression "ppuVar21 = ppuVar12 + 4" identifier = (binary_expression "ppuVar12 + 4" identifier + number_literal)) ;) (expression_statement "puVar20 = ppuVar12[1];" (assignment_expression "puVar20 = ppuVar12[1]" identifier = (subscript_expression "ppuVar12[1]" identifier [ number_literal ])) ;) (expression_statement "puVar16 = ppuVar12[2];" (assignment_expression "puVar16 = ppuVar12[2]" identifier = (subscript_expression "ppuVar12[2]" identifier [ number_literal ])) ;) (expression_statement "puVar31 = ppuVar12[3];" (assignment_expression "puVar31 = ppuVar12[3]" identifier = (subscript_expression "ppuVar12[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar19 = (uint)*ppuVar12;" (assignment_expression "*puVar19 = (uint)*ppuVar12" (pointer_expression "*puVar19" * identifier) = (binary_expression "(uint)*ppuVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puVar19[1] = (uint)puVar20;" (assignment_expression "puVar19[1] = (uint)puVar20" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = (cast_expression "(uint)puVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar19[2] = (uint)puVar16;" (assignment_expression "puVar19[2] = (uint)puVar16" (subscript_expression "puVar19[2]" identifier [ number_literal ]) = (cast_expression "(uint)puVar16" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar19[3] = (uint)puVar31;" (assignment_expression "puVar19[3] = (uint)puVar31" (subscript_expression "puVar19[3]" identifier [ number_literal ]) = (cast_expression "(uint)puVar31" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar31 = puVar19 + 4;" (assignment_expression "puVar31 = puVar19 + 4" identifier = (binary_expression "puVar19 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppuVar21 != in_t0)" ( (binary_expression "ppuVar21 != in_t0" identifier != identifier) )) ;) (expression_statement "name = (uint **)0x3;" (assignment_expression "name = (uint **)0x3" identifier = (cast_expression "(uint **)0x3" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "puVar31 = ppuVar12[5];" (assignment_expression "puVar31 = ppuVar12[5]" identifier = (subscript_expression "ppuVar12[5]" identifier [ number_literal ])) ;) (expression_statement "iStack_670 = 3;" (assignment_expression "iStack_670 = 3" identifier = number_literal) ;) (expression_statement "puVar19[4] = (uint)*ppuVar21;" (assignment_expression "puVar19[4] = (uint)*ppuVar21" (subscript_expression "puVar19[4]" identifier [ number_literal ]) = (binary_expression "(uint)*ppuVar21" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puVar19[5] = (uint)puVar31;" (assignment_expression "puVar19[5] = (uint)puVar31" (subscript_expression "puVar19[5]" identifier [ number_literal ]) = (cast_expression "(uint)puVar31" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) (labeled_statement "LAB_00015528:\n  puVar29 = (uint *)((int)puVar16 >> 0x1f);" statement_identifier : (expression_statement "puVar29 = (uint *)((int)puVar16 >> 0x1f);" (assignment_expression "puVar29 = (uint *)((int)puVar16 >> 0x1f)" identifier = (cast_expression "(uint *)((int)puVar16 >> 0x1f)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar16 >> 0x1f)" ( (binary_expression "(int)puVar16 >> 0x1f" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;)) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (if_statement "if (puVar29 == in_t2) {\n    in_t2 = (uint *)((uint)puVar16 >> 0x1e);\n    in_t0 = (uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar16 * 5) < (uint)((int)puVar16 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2);\n    name = (uint **)((uint)((int)puVar16 * 5) >> 0x1f | (uint)in_t0);\n  }\n  else {\n    ppuVar28 = (uint **)(ZEXT48(in_t2) * 10);\n    unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20);\n    in_t6 = (int)puVar16 * 4;\n    puStack_674 = (uint *)((uint)puVar16 >> 0x1e);\n    in_t0 = (uint **)((int)puVar16 * 10);\n    psVar27 = unaff_s6;\n    if ((int)in_t2 < 0) {\n      psVar27 = unaff_s6 + -5;\n    }\n    name = (uint **)((int)ppuVar28 +\n                    ((uint)((int)puVar16 * 5) >> 0x1f |\n                    (int)((int)puStack_674 + (uint)((uint)((int)puVar16 * 5) < in_t6)) * 2));\n    if ((int)name >> 0x1f != (uint)(name < ppuVar28) + (int)psVar27) {\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar16 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      name = (uint **)((uint)((int)puVar16 * 5) >> 0x1f | (uint)in_t0);\n    }\n  }" if (parenthesized_expression "(puVar29 == in_t2)" ( (binary_expression "puVar29 == in_t2" identifier == identifier) )) (compound_statement "{\n    in_t2 = (uint *)((uint)puVar16 >> 0x1e);\n    in_t0 = (uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar16 * 5) < (uint)((int)puVar16 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2);\n    name = (uint **)((uint)((int)puVar16 * 5) >> 0x1f | (uint)in_t0);\n  }" { (expression_statement "in_t2 = (uint *)((uint)puVar16 >> 0x1e);" (assignment_expression "in_t2 = (uint *)((uint)puVar16 >> 0x1e)" identifier = (cast_expression "(uint *)((uint)puVar16 >> 0x1e)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)puVar16 >> 0x1e)" ( (binary_expression "(uint)puVar16 >> 0x1e" (cast_expression "(uint)puVar16" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "in_t0 = (uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar16 * 5) < (uint)((int)puVar16 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2);" (assignment_expression "in_t0 = (uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar16 * 5) < (uint)((int)puVar16 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2)" identifier = (cast_expression "(uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar16 * 5) < (uint)((int)puVar16 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar16 * 5) < (uint)((int)puVar16 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2)" ( (binary_expression "(int)((int)puVar29 +\n                           (uint)((uint)((int)puVar16 * 5) < (uint)((int)puVar16 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2" (cast_expression "(int)((int)puVar29 +\n                           (uint)((uint)((int)puVar16 * 5) < (uint)((int)puVar16 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)puVar29 +\n                           (uint)((uint)((int)puVar16 * 5) < (uint)((int)puVar16 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2))" ( (binary_expression "(int)puVar29 +\n                           (uint)((uint)((int)puVar16 * 5) < (uint)((int)puVar16 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)" (binary_expression "(int)puVar29 +\n                           (uint)((uint)((int)puVar16 * 5) < (uint)((int)puVar16 * 4))" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (call_expression "(uint)((uint)((int)puVar16 * 5) < (uint)((int)puVar16 * 4))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)((int)puVar16 * 5) < (uint)((int)puVar16 * 4))" ( (binary_expression "(uint)((int)puVar16 * 5) < (uint)((int)puVar16 * 4)" (call_expression "(uint)((int)puVar16 * 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar16 * 5)" ( (binary_expression "(int)puVar16 * 5" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) < (call_expression "(uint)((int)puVar16 * 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar16 * 4)" ( (binary_expression "(int)puVar16 * 4" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) )))) + (parenthesized_expression "((uint)in_t2 | (int)puVar29 << 2)" ( (binary_expression "(uint)in_t2 | (int)puVar29 << 2" (cast_expression "(uint)in_t2" ( (type_descriptor "uint" type_identifier) ) identifier) | (binary_expression "(int)puVar29 << 2" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ))) ))) * number_literal) )))) ;) (expression_statement "name = (uint **)((uint)((int)puVar16 * 5) >> 0x1f | (uint)in_t0);" (assignment_expression "name = (uint **)((uint)((int)puVar16 * 5) >> 0x1f | (uint)in_t0)" identifier = (cast_expression "(uint **)((uint)((int)puVar16 * 5) >> 0x1f | (uint)in_t0)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((uint)((int)puVar16 * 5) >> 0x1f | (uint)in_t0)" ( (binary_expression "(uint)((int)puVar16 * 5) >> 0x1f | (uint)in_t0" (binary_expression "(uint)((int)puVar16 * 5) >> 0x1f" (call_expression "(uint)((int)puVar16 * 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar16 * 5)" ( (binary_expression "(int)puVar16 * 5" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) >> number_literal) | (cast_expression "(uint)in_t0" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) }) (else_clause "else {\n    ppuVar28 = (uint **)(ZEXT48(in_t2) * 10);\n    unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20);\n    in_t6 = (int)puVar16 * 4;\n    puStack_674 = (uint *)((uint)puVar16 >> 0x1e);\n    in_t0 = (uint **)((int)puVar16 * 10);\n    psVar27 = unaff_s6;\n    if ((int)in_t2 < 0) {\n      psVar27 = unaff_s6 + -5;\n    }\n    name = (uint **)((int)ppuVar28 +\n                    ((uint)((int)puVar16 * 5) >> 0x1f |\n                    (int)((int)puStack_674 + (uint)((uint)((int)puVar16 * 5) < in_t6)) * 2));\n    if ((int)name >> 0x1f != (uint)(name < ppuVar28) + (int)psVar27) {\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar16 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      name = (uint **)((uint)((int)puVar16 * 5) >> 0x1f | (uint)in_t0);\n    }\n  }" else (compound_statement "{\n    ppuVar28 = (uint **)(ZEXT48(in_t2) * 10);\n    unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20);\n    in_t6 = (int)puVar16 * 4;\n    puStack_674 = (uint *)((uint)puVar16 >> 0x1e);\n    in_t0 = (uint **)((int)puVar16 * 10);\n    psVar27 = unaff_s6;\n    if ((int)in_t2 < 0) {\n      psVar27 = unaff_s6 + -5;\n    }\n    name = (uint **)((int)ppuVar28 +\n                    ((uint)((int)puVar16 * 5) >> 0x1f |\n                    (int)((int)puStack_674 + (uint)((uint)((int)puVar16 * 5) < in_t6)) * 2));\n    if ((int)name >> 0x1f != (uint)(name < ppuVar28) + (int)psVar27) {\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar16 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      name = (uint **)((uint)((int)puVar16 * 5) >> 0x1f | (uint)in_t0);\n    }\n  }" { (expression_statement "ppuVar28 = (uint **)(ZEXT48(in_t2) * 10);" (assignment_expression "ppuVar28 = (uint **)(ZEXT48(in_t2) * 10)" identifier = (cast_expression "(uint **)(ZEXT48(in_t2) * 10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(ZEXT48(in_t2) * 10)" ( (binary_expression "ZEXT48(in_t2) * 10" (call_expression "ZEXT48(in_t2)" identifier (argument_list "(in_t2)" ( identifier ))) * number_literal) )))) ;) (expression_statement "unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20);" (assignment_expression "unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20)" identifier = (cast_expression "(short *)(ZEXT48(in_t2) * 10 >> 0x20)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ZEXT48(in_t2) * 10 >> 0x20)" ( (binary_expression "ZEXT48(in_t2) * 10 >> 0x20" (binary_expression "ZEXT48(in_t2) * 10" (call_expression "ZEXT48(in_t2)" identifier (argument_list "(in_t2)" ( identifier ))) * number_literal) >> number_literal) )))) ;) (expression_statement "in_t6 = (int)puVar16 * 4;" (assignment_expression "in_t6 = (int)puVar16 * 4" identifier = (binary_expression "(int)puVar16 * 4" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "puStack_674 = (uint *)((uint)puVar16 >> 0x1e);" (assignment_expression "puStack_674 = (uint *)((uint)puVar16 >> 0x1e)" identifier = (cast_expression "(uint *)((uint)puVar16 >> 0x1e)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)puVar16 >> 0x1e)" ( (binary_expression "(uint)puVar16 >> 0x1e" (cast_expression "(uint)puVar16" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "in_t0 = (uint **)((int)puVar16 * 10);" (assignment_expression "in_t0 = (uint **)((int)puVar16 * 10)" identifier = (cast_expression "(uint **)((int)puVar16 * 10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar16 * 10)" ( (binary_expression "(int)puVar16 * 10" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "psVar27 = unaff_s6;" (assignment_expression "psVar27 = unaff_s6" identifier = identifier) ;) (if_statement "if ((int)in_t2 < 0) {\n      psVar27 = unaff_s6 + -5;\n    }" if (parenthesized_expression "((int)in_t2 < 0)" ( (binary_expression "(int)in_t2 < 0" (cast_expression "(int)in_t2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      psVar27 = unaff_s6 + -5;\n    }" { (expression_statement "psVar27 = unaff_s6 + -5;" (assignment_expression "psVar27 = unaff_s6 + -5" identifier = (binary_expression "unaff_s6 + -5" identifier + number_literal)) ;) })) (expression_statement "name = (uint **)((int)ppuVar28 +\n                    ((uint)((int)puVar16 * 5) >> 0x1f |\n                    (int)((int)puStack_674 + (uint)((uint)((int)puVar16 * 5) < in_t6)) * 2));" (assignment_expression "name = (uint **)((int)ppuVar28 +\n                    ((uint)((int)puVar16 * 5) >> 0x1f |\n                    (int)((int)puStack_674 + (uint)((uint)((int)puVar16 * 5) < in_t6)) * 2))" identifier = (cast_expression "(uint **)((int)ppuVar28 +\n                    ((uint)((int)puVar16 * 5) >> 0x1f |\n                    (int)((int)puStack_674 + (uint)((uint)((int)puVar16 * 5) < in_t6)) * 2))" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar28 +\n                    ((uint)((int)puVar16 * 5) >> 0x1f |\n                    (int)((int)puStack_674 + (uint)((uint)((int)puVar16 * 5) < in_t6)) * 2))" ( (binary_expression "(int)ppuVar28 +\n                    ((uint)((int)puVar16 * 5) >> 0x1f |\n                    (int)((int)puStack_674 + (uint)((uint)((int)puVar16 * 5) < in_t6)) * 2)" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((uint)((int)puVar16 * 5) >> 0x1f |\n                    (int)((int)puStack_674 + (uint)((uint)((int)puVar16 * 5) < in_t6)) * 2)" ( (binary_expression "(uint)((int)puVar16 * 5) >> 0x1f |\n                    (int)((int)puStack_674 + (uint)((uint)((int)puVar16 * 5) < in_t6)) * 2" (binary_expression "(uint)((int)puVar16 * 5) >> 0x1f" (call_expression "(uint)((int)puVar16 * 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar16 * 5)" ( (binary_expression "(int)puVar16 * 5" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) >> number_literal) | (binary_expression "(int)((int)puStack_674 + (uint)((uint)((int)puVar16 * 5) < in_t6)) * 2" (cast_expression "(int)((int)puStack_674 + (uint)((uint)((int)puVar16 * 5) < in_t6))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)puStack_674 + (uint)((uint)((int)puVar16 * 5) < in_t6))" ( (binary_expression "(int)puStack_674 + (uint)((uint)((int)puVar16 * 5) < in_t6)" (cast_expression "(int)puStack_674" ( (type_descriptor "int" primitive_type) ) identifier) + (call_expression "(uint)((uint)((int)puVar16 * 5) < in_t6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)((int)puVar16 * 5) < in_t6)" ( (binary_expression "(uint)((int)puVar16 * 5) < in_t6" (call_expression "(uint)((int)puVar16 * 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar16 * 5)" ( (binary_expression "(int)puVar16 * 5" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) < identifier) )))) ))) * number_literal)) ))) )))) ;) (if_statement "if ((int)name >> 0x1f != (uint)(name < ppuVar28) + (int)psVar27) {\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar16 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      name = (uint **)((uint)((int)puVar16 * 5) >> 0x1f | (uint)in_t0);\n    }" if (parenthesized_expression "((int)name >> 0x1f != (uint)(name < ppuVar28) + (int)psVar27)" ( (binary_expression "(int)name >> 0x1f != (uint)(name < ppuVar28) + (int)psVar27" (binary_expression "(int)name >> 0x1f" (cast_expression "(int)name" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) != (binary_expression "(uint)(name < ppuVar28) + (int)psVar27" (call_expression "(uint)(name < ppuVar28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(name < ppuVar28)" ( (binary_expression "name < ppuVar28" identifier < identifier) ))) + (cast_expression "(int)psVar27" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar16 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      name = (uint **)((uint)((int)puVar16 * 5) >> 0x1f | (uint)in_t0);\n    }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar16 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);" (assignment_expression "in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar16 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2)" identifier = (cast_expression "(uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar16 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar16 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2)" ( (binary_expression "(int)((int)in_t2 +\n                             (uint)((uint)((int)puVar16 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2" (cast_expression "(int)((int)in_t2 +\n                             (uint)((uint)((int)puVar16 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)in_t2 +\n                             (uint)((uint)((int)puVar16 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4))" ( (binary_expression "(int)in_t2 +\n                             (uint)((uint)((int)puVar16 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)" (binary_expression "(int)in_t2 +\n                             (uint)((uint)((int)puVar16 * 5) < in_t6)" (cast_expression "(int)in_t2" ( (type_descriptor "int" primitive_type) ) identifier) + (call_expression "(uint)((uint)((int)puVar16 * 5) < in_t6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)((int)puVar16 * 5) < in_t6)" ( (binary_expression "(uint)((int)puVar16 * 5) < in_t6" (call_expression "(uint)((int)puVar16 * 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar16 * 5)" ( (binary_expression "(int)puVar16 * 5" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) < identifier) )))) + (parenthesized_expression "((uint)puStack_674 | (int)in_t2 * 4)" ( (binary_expression "(uint)puStack_674 | (int)in_t2 * 4" (cast_expression "(uint)puStack_674" ( (type_descriptor "uint" type_identifier) ) identifier) | (binary_expression "(int)in_t2 * 4" (cast_expression "(int)in_t2" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))) ))) * number_literal) )))) ;) (expression_statement "name = (uint **)((uint)((int)puVar16 * 5) >> 0x1f | (uint)in_t0);" (assignment_expression "name = (uint **)((uint)((int)puVar16 * 5) >> 0x1f | (uint)in_t0)" identifier = (cast_expression "(uint **)((uint)((int)puVar16 * 5) >> 0x1f | (uint)in_t0)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((uint)((int)puVar16 * 5) >> 0x1f | (uint)in_t0)" ( (binary_expression "(uint)((int)puVar16 * 5) >> 0x1f | (uint)in_t0" (binary_expression "(uint)((int)puVar16 * 5) >> 0x1f" (call_expression "(uint)((int)puVar16 * 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar16 * 5)" ( (binary_expression "(int)puVar16 * 5" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) >> number_literal) | (cast_expression "(uint)in_t0" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) })) }))) (expression_statement "puVar29 = (uint *)((int)puVar16 * 10);" (assignment_expression "puVar29 = (uint *)((int)puVar16 * 10)" identifier = (cast_expression "(uint *)((int)puVar16 * 10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar16 * 10)" ( (binary_expression "(int)puVar16 * 10" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "ppuVar28 = in_t4;" (assignment_expression "ppuVar28 = in_t4" identifier = identifier) ;) (if_statement "if (bVar2) goto LAB_00017ad0;" if (parenthesized_expression "(bVar2)" ( identifier )) (goto_statement "goto LAB_00017ad0;" goto statement_identifier ;)) (goto_statement "goto LAB_000153f8;" goto statement_identifier ;) (labeled_statement "LAB_00017ad0:\n  uVar15 = 2;" statement_identifier : (expression_statement "uVar15 = 2;" (assignment_expression "uVar15 = 2" identifier = number_literal) ;)) (expression_statement "puVar29 = (uint *)0x3f;" (assignment_expression "puVar29 = (uint *)0x3f" identifier = (cast_expression "(uint *)0x3f" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar19 = (uint *)((int)puVar31 + 2);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + 2)" identifier = (cast_expression "(uint *)((int)puVar31 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar31 + 2)" ( (binary_expression "(int)puVar31 + 2" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (goto_statement "goto LAB_00014f74;" goto statement_identifier ;) (while_statement "while( true ) {\n    if (bVar13 == 0x28) {\n      iVar9 = iVar9 + 1;\n    }\n    else if (bVar13 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }\n    if (iVar9 == 0) break;\nLAB_000157a8:\n    name = ppuVar21;\n    ppuVar21 = (uint **)((int)name + 1);\n    pc_00->input = (char *)ppuVar21;\n    bVar13 = *(byte *)name;\n    if (bVar13 == 0) goto LAB_000152b8;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (bVar13 == 0x28) {\n      iVar9 = iVar9 + 1;\n    }\n    else if (bVar13 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }\n    if (iVar9 == 0) break;\nLAB_000157a8:\n    name = ppuVar21;\n    ppuVar21 = (uint **)((int)name + 1);\n    pc_00->input = (char *)ppuVar21;\n    bVar13 = *(byte *)name;\n    if (bVar13 == 0) goto LAB_000152b8;\n  }" { (if_statement "if (bVar13 == 0x28) {\n      iVar9 = iVar9 + 1;\n    }\n    else if (bVar13 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }" if (parenthesized_expression "(bVar13 == 0x28)" ( (binary_expression "bVar13 == 0x28" identifier == number_literal) )) (compound_statement "{\n      iVar9 = iVar9 + 1;\n    }" { (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) }) (else_clause "else if (bVar13 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }" else (if_statement "if (bVar13 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }" if (parenthesized_expression "(bVar13 == 0x29)" ( (binary_expression "bVar13 == 0x29" identifier == number_literal) )) (compound_statement "{\n      iVar9 = iVar9 + -1;\n    }" { (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) })))) (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_000157a8:\n    name = ppuVar21;" statement_identifier : (expression_statement "name = ppuVar21;" (assignment_expression "name = ppuVar21" identifier = identifier) ;)) (expression_statement "ppuVar21 = (uint **)((int)name + 1);" (assignment_expression "ppuVar21 = (uint **)((int)name + 1)" identifier = (cast_expression "(uint **)((int)name + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)name + 1)" ( (binary_expression "(int)name + 1" (cast_expression "(int)name" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pc_00->input = (char *)ppuVar21;" (assignment_expression "pc_00->input = (char *)ppuVar21" (field_expression "pc_00->input" identifier -> field_identifier) = (cast_expression "(char *)ppuVar21" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar13 = *(byte *)name;" (assignment_expression "bVar13 = *(byte *)name" identifier = (pointer_expression "*(byte *)name" * (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (bVar13 == 0) goto LAB_000152b8;" if (parenthesized_expression "(bVar13 == 0)" ( (binary_expression "bVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000152b8;" goto statement_identifier ;)) })) (expression_statement "bVar13 = *(byte *)((int)name + 1);" (assignment_expression "bVar13 = *(byte *)((int)name + 1)" identifier = (pointer_expression "*(byte *)((int)name + 1)" * (cast_expression "(byte *)((int)name + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)name + 1)" ( (binary_expression "(int)name + 1" (cast_expression "(int)name" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_000152f0;" goto statement_identifier ;) })))
(translation_unit "int FUN_00014998(undefined4 param_1,int param_2)\n\n{\n  char cVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int *piVar7;\n  int iVar8;\n  int iVar9;\n  byte bVar12;\n  int iVar10;\n  uint **ppuVar11;\n  uint *puVar13;\n  undefined4 *puVar14;\n  uint uVar15;\n  uint **ppuVar16;\n  uint *puVar17;\n  uint uVar18;\n  uint *puVar19;\n  uint *puVar20;\n  uint **ppuVar21;\n  uint uVar22;\n  uint uVar23;\n  uint **in_t0;\n  uint uVar24;\n  uint *in_t2;\n  uint in_t3;\n  uint **in_t4;\n  uint in_t5;\n  uint in_t6;\n  uint *puVar25;\n  byte *pbVar26;\n  short *psVar27;\n  uint **ppuVar28;\n  uint *puVar29;\n  int iVar30;\n  undefined *unaff_s4;\n  uint *puVar31;\n  short *psVar32;\n  short *unaff_s6;\n  uint in_t8;\n  undefined *puVar33;\n  code *pcVar34;\n  uint *puStack_674;\n  int iStack_670;\n  uint *puStack_66c;\n  int iStack_660;\n  uint *puStack_65c;\n  uint *puStack_630;\n  uint *apuStack_5e8 [4];\n  int iStack_5d8;\n  uint *apuStack_5b8 [2];\n  uint auStack_5b0 [2];\n  uint *puStack_5a8;\n  uint uStack_5a4;\n  short *apsStack_5a0 [2];\n  uint **ppuStack_598;\n  uint **ppuStack_594;\n  uint **ppuStack_590;\n  uint uStack_58c;\n  uint uStack_588;\n  uint uStack_584;\n  uint auStack_580 [2];\n  short asStack_578 [19];\n  short sStack_552;\n  uint auStack_550 [279];\n  byte abStack_f1 [21];\n  int iStack_dc;\n  int iStack_d8;\n  uint **ppuStack_d4;\n  undefined *puStack_d0;\n  undefined *puStack_cc;\n  undefined *puStack_c8;\n  undefined1 auStack_80 [100];\n  int local_1c;\n  \n  puVar3 = PTR___stack_chk_guard_00038350;\n  local_1c = *(int *)PTR___stack_chk_guard_00038350;\n  uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x50a0,5);\n  FUN_00014188(uVar5,param_1);\n  puVar4 = PTR_stderr_00038360;\n  if (*(int *)(param_2 + 0x9c) == 0) {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb4) != *(char *)(param_2 + 0xbb)) goto LAB_00014a30;\nLAB_00014c7c:\n    uVar18 = 0;\n  }\n  else {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb6) == '\0') {\n      in_t3 = *(uint *)(param_2 + 0x3c);\n      in_t2 = *(uint **)(param_2 + 0x38);\n      in_t0 = *(uint ***)(param_2 + 0x28);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      *(undefined1 *)(param_2 + 0xb6) = 1;\n      if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar18 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) goto LAB_00014c7c;\nLAB_00014a30:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);\n    in_t0 = *(uint ***)(param_2 + 0x28);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n    uVar18 = 1;\n    ppuVar28 = *(uint ***)puVar4;\n    *(undefined1 *)(param_2 + 0xbb) = *(undefined1 *)(param_2 + 0xb4);\n  }\nLAB_00014a80:\n  if ((*(int *)(param_2 + 0xac) == 0) || (*(char *)(param_2 + 0xb9) != '\0')) {\n    if ((*(int *)(param_2 + 0xa0) != 0) && (*(char *)(param_2 + 0xb7) == '\0')) {\n      if (uVar18 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);\n      uVar5 = FUN_00014838(param_2,auStack_80);\n      in_t0 = *(uint ***)(param_2 + 8);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar18 = 1;\n      *(undefined1 *)(param_2 + 0xb7) = 1;\n    }\n  }\n  else {\n    in_t3 = *(uint *)(param_2 + 0x54);\n    in_t2 = *(uint **)(param_2 + 0x50);\n    in_t0 = *(uint ***)(param_2 + 0x48);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168);\n    if (*(int *)(param_2 + 0x5c) != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }\n    ppuVar28 = *(uint ***)puVar4;\n    if (*(int *)(param_2 + 0x1c) == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    *(undefined1 *)(param_2 + 0xb9) = 1;\n    if (*(int *)(param_2 + 0xa0) == 0) {\n      uVar18 = 1;\n    }\n    else {\n      uVar18 = (uint)*(byte *)(param_2 + 0xb7);\n      if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }\n  }\n  if ((*(int *)(param_2 + 0xa4) == 0) || (*(char *)(param_2 + 0xb8) != '\0')) {\n    if ((*(int *)(param_2 + 0xb0) == 0) ||\n       (unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0')) {\n      if (*(char *)(param_2 + 0x98) == '\0') goto LAB_00014bb0;\n      param_2 = *(int *)(param_2 + 0x58);\n      unaff_s4 = (undefined *)(param_2 >> 0x1f);\n      if (uVar18 != 0) goto LAB_00014d8c;\n      goto LAB_00014c1c;\n    }\n    unaff_s4 = PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5130;\nLAB_00014d38:\n    uVar5 = FUN_00013f30(*(undefined4 *)(param_2 + 0x18),auStack_80);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n    *(undefined1 *)(param_2 + 0xba) = 1;\n    if (*(char *)(param_2 + 0x98) != '\0') {\n      param_2 = *(int *)(param_2 + 0x58);\n      ppuVar28 = *(uint ***)puVar4;\n      goto LAB_00014d88;\n    }\n  }\n  else {\n    (*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac,*(undefined4 *)(param_2 + 0x14));\n    *(undefined1 *)(param_2 + 0xb8) = 1;\n    if (*(int *)(param_2 + 0xb0) == 0) {\n      cVar1 = *(char *)(param_2 + 0x98);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (*(char *)(param_2 + 0xba) == '\0') {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = *(char *)(param_2 + 0x98);\n    }\n    if (cVar1 == '\0') goto LAB_00014bb0;\n    param_2 = *(int *)(param_2 + 0x58);\nLAB_00014d88:\n    unaff_s4 = (undefined *)(param_2 >> 0x1f);\nLAB_00014d8c:\n    (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n    ppuVar28 = *(uint ***)puVar4;\nLAB_00014c1c:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n  }\n  ppuVar28 = *(uint ***)puVar4;\nLAB_00014bb0:\n  puVar14 = (undefined4 *)&DAT_0000000a;\n  ppuVar21 = ppuVar28;\n  (*(code *)PTR_fputc_00038298)();\n  iVar6 = *(int *)puVar3;\n  if (local_1c == iVar6) {\n    return iVar6;\n  }\n  puVar33 = PTR___stack_chk_fail_00038334;\n  (*(code *)PTR___stack_chk_fail_00038334)();\n  piVar7 = *(int **)(puVar33 + 0x234a4);\n  uVar18 = 0xfffffffe;\n  puStack_cc = puVar3;\n  puVar31 = (uint *)&DAT_00000026;\n  iStack_dc = *piVar7;\n  iVar6 = *(int *)(puVar33 + 0x23270);\n  puStack_c8 = unaff_s4;\n  puStack_d0 = puVar4;\n  puVar13 = auStack_550;\n  ppuStack_d4 = ppuVar28;\n  puVar29 = (uint *)0xfffffffe;\n  iVar30 = *(int *)(puVar33 + 0x23270) + 0x6250;\n  iStack_d8 = param_2;\n  puVar25 = (uint *)0x0;\n  iVar8 = *(int *)(puVar33 + 0x23270) + 0x62c4;\n  asStack_578[0] = 0;\n  iStack_670 = 0;\n  psVar32 = asStack_578;\nLAB_00014f50:\n  ppuVar28 = (uint **)0x800000;\n  puVar19 = puVar31;\n  if (puVar29 == (uint *)0xfffffffe) {\n    ppuVar21 = (uint **)*puVar14;\n    in_t2 = (uint *)0x1;\n    ppuVar28 = (uint **)0x80001f;\n    in_t4 = (uint **)0x2d;\n    bVar12 = *(byte *)ppuVar21;\n    in_t5 = 0x2b;\n    in_t6 = 0x28;\n    uVar18 = 0x29;\nLAB_000152f0:\n    in_t0 = (uint **)(int)(char)bVar12;\n    uVar15 = (uint)bVar12;\nLAB_000152f4:\n    uVar22 = uVar15 - 9;\n    ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n    if (ppuVar16 == (uint **)0x0) goto LAB_000153a8;\nLAB_00015308:\n    ppuVar11 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f);\n    while (ppuVar11 != (uint **)0x0) {\n      ppuVar21 = (uint **)((int)ppuVar21 + 1);\n      *puVar14 = ppuVar21;\n      in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n      uVar15 = (uint)*(byte *)ppuVar21;\n      ppuVar16 = (uint **)(uVar15 - 9);\n      if ((uint **)0x17 < ppuVar16) goto LAB_000153a8;\n      ppuVar16 = (uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f);\n      ppuVar11 = ppuVar16;\n    }\nLAB_00015344:\n    in_t3 = 0xffffffff;\n    if (uVar15 == 0x2d) goto LAB_00015358;\n    if (uVar15 == 0x2b) goto LAB_00015354;\n    if ((0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))\n       ) {\n      pbVar26 = (byte *)*puVar14;\n      ppuVar16 = (uint **)(abStack_f1 + 1);\n      in_t0 = (uint **)(abStack_f1 + 0x14);\n      ppuVar28 = (uint **)&DAT_0000002e;\n      ppuVar21 = ppuVar16;\n      do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        *puVar14 = pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));\n      *(byte *)ppuVar21 = 0;\n      ppuVar21 = ppuVar16;\n      bVar12 = abStack_f1[1];\n      while (bVar12 != 0) {\n        if (bVar12 - 0x61 < 0x1a) {\n          bVar12 = bVar12 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar12;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar12 = *(byte *)ppuVar21;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);\n      do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16);\n      if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);\n      do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      iVar9 = *(int *)(puVar33 + 0x2326c);\n      ppuVar21 = ppuVar16;\n      iVar10 = FUN_00014388(puVar14);\n      unaff_s6 = asStack_578;\n      if (iVar10 != 0) {\n        puVar29 = *(uint **)(iVar10 + 4);\n        apuStack_5e8[1] = *(uint **)(iVar10 + 8);\n        apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);\n      iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n      if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        ppuVar16 = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);\n      ppuVar11 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);\n      ppuVar21 = ppuVar11;\n      psVar27 = unaff_s6;\n      do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);\n      pbVar26 = (byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1));\n      if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar11 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);\n      pcVar34 = *(code **)(puVar33 + 0x234c8);\n      do {\n        iVar10 = (*pcVar34)(ppuVar16);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);\n      if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar11 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }\n      if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = ppuVar16;\n        ppuVar11 = ppuVar16;\n        bVar12 = abStack_f1[1];\n        do {\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        } while (bVar12 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }\n      ppuVar21 = *(uint ***)(puVar33 + 0x23270);\n      if (*(char *)((int)puVar14 + 0xb5) == '\0') goto LAB_00017ae0;\n      uVar5 = (**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5);\n      puVar29 = (uint *)0x3f;\n      FUN_00014188(uVar5);\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n      goto LAB_00014f74;\n    }\n    iVar9 = 0;\n    if (uVar15 == 0x28) {\n      ppuVar21 = (uint **)*puVar14;\n      goto LAB_000157a8;\n    }\n    *puVar14 = (byte *)((int)ppuVar21 + 1);\n    puVar29 = (uint *)(uint)*(byte *)ppuVar21;\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if (puVar29 != (uint *)0x0) goto LAB_0001558c;\n    uVar15 = 0;\n    goto LAB_00014f74;\n  }\nLAB_00014f5c:\n  ppuVar16 = ppuVar21;\n  if ((int)puVar29 < 1) {\nLAB_000152b8:\n    uVar15 = 0;\n    puVar29 = (uint *)0x0;\n  }\n  else {\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if ((int)puVar29 < 0x116) {\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }\n    else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }\n  }\n  goto LAB_00014f74;\nLAB_00015354:\n  do {\n    in_t3 = 1;\nLAB_00015358:\n    while( true ) {\n      ppuVar21 = (uint **)*puVar14;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n      if (ppuVar16 != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }\n    in_t3 = 0;\n  } while (uVar15 == 0x2b);\n  ppuVar21 = (uint **)*puVar14;\nLAB_000153dc:\n  ppuVar16 = (uint **)0x0;\n  puVar29 = (uint *)0x0;\n  in_t5 = 0xffffffff;\n  uVar18 = 0x30;\n  in_t8 = 10;\n  ppuVar28 = ppuVar21;\nLAB_000153f8:\n  if (in_t3 == 0xffffffff) {\n    uVar22 = 0x30 - uVar15;\n  }\n  uVar15 = (int)uVar22 >> 0x1f;\n  puVar17 = (uint *)((int)puVar29 + uVar22);\n  in_t2 = (uint *)((int)ppuVar16 + (puVar17 < puVar29) + uVar15);\n  in_t4 = (uint **)((uint)in_t2 ^ uVar15);\n  ppuVar16 = (uint **)((uint)in_t4 & ~((uint)ppuVar16 ^ uVar15));\n  if ((int)ppuVar16 < 0) goto LAB_00017ad0;\n  uVar15 = (uint)*(byte *)((int)ppuVar28 + 1);\n  uVar22 = uVar15 - 0x30;\n  in_t4 = (uint **)((int)ppuVar28 + 1);\n  if (uVar22 < 10) goto LAB_00015528;\n  ppuVar16 = (uint **)0xfffffffd;\n  if (((*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c) ||\n     (puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29)) {\n    *puVar14 = in_t4;\n    uVar15 = 0x13;\n    apuStack_5e8[0] = (uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_);\n    puVar29 = (uint *)0x112;\n    if (in_t3 == 0) {\n      uVar15 = 0x14;\n    }\n    iStack_660 = (int)in_t4 - (int)ppuVar21;\n    if (in_t3 == 0) {\n      puVar29 = (uint *)0x113;\n    }\n    puVar19 = (uint *)((int)puVar31 + uVar15);\n    puStack_65c = in_t2;\n    puStack_630 = puVar17;\n    goto LAB_00014f74;\n  }\n  in_t2 = (uint *)((int)in_t2 + (uint)(puVar17 + -0x20000000 < puVar17));\n  iVar9 = 8;\n  ppuVar21 = ppuVar16;\n  if (in_t2 != (uint *)0x0) goto LAB_00017ae0;\n  in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 3);\n  ppuVar28 = (uint **)((int)ppuVar28 + 3);\n  ppuVar21 = in_t0 + -0xc;\n  ppuVar16 = (uint **)((int)puVar29 * 4);\n  do {\n    puVar29 = (uint *)((int)((int)ppuVar16 + (int)puVar29) * 2);\n    if (ppuVar21 < &DAT_0000000a) {\n      in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);\n      puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n      ppuVar21 = in_t0 + -0xc;\n    }\n    iVar9 = iVar9 + -1;\n    ppuVar16 = (uint **)((int)puVar29 << 2);\n  } while (iVar9 != 0);\n  in_t2 = puVar17;\n  if (in_t3 == 0xffffffff) {\n    ppuVar11 = in_t0;\n    if (ppuVar21 < &DAT_0000000a) {\n      do {\n        if (ppuVar11 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar11 = ppuVar16;\n      } while (ppuVar16 + -0xc <= &DAT_00000009);\n    }\nLAB_00015c20:\n    if (puVar29 != (uint *)0x0) {\n      in_t2 = (uint *)((int)puVar17 + -1);\n      ppuVar21 = ppuVar16;\n      if (puVar17 == (uint *)0x80000000) {\nLAB_00017ae0:\n        ppuVar16 = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }\n    uVar15 = 0x15;\n    apuStack_5e8[1] = puVar29;\n    apuStack_5e8[0] = in_t2;\n    puVar29 = (uint *)0x114;\n    *puVar14 = ppuVar28;\n    puVar19 = (uint *)((int)puVar31 + 0x15);\n    goto LAB_00014f74;\n  }\n  if (ppuVar21 < &DAT_0000000a) {\nLAB_000154dc:\n    do {\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    } while ((int)(char)*(byte *)ppuVar28 - 0x30U < 10);\n    if (in_t3 == 0xffffffff) goto LAB_00015c20;\n  }\n  apuStack_5e8[0] = puVar17;\n  uVar15 = 0x16;\n  apuStack_5e8[1] = puVar29;\n  puVar29 = (uint *)0x115;\n  *puVar14 = ppuVar28;\n  if (in_t3 != 0) {\n    uVar15 = 0x15;\n    puVar29 = (uint *)0x114;\n  }\n  puVar19 = (uint *)((int)puVar31 + uVar15);\nLAB_00014f74:\n  psVar27 = psVar32;\n  if ((uint *)0x70 < puVar19) goto LAB_0001504c;\n  iVar9 = *(int *)(puVar33 + 0x23270);\n  if ((int)(char)*(byte *)((int)puVar19 + iVar30) != uVar15) goto LAB_00015050;\n  puVar25 = (uint *)(uint)*(byte *)((int)puVar19 + iVar8);\n  if (puVar25 == (uint *)0x0) {\n    puStack_66c = auStack_5b0;\n    puVar25 = puVar13 + 0xe;\n    puVar31 = puStack_66c;\n    do {\n      puVar17 = puVar31;\n      puVar19 = puVar25;\n      puVar25 = puVar19 + 4;\n      uVar22 = puVar19[1];\n      uVar15 = puVar19[2];\n      uVar18 = puVar19[3];\n      *puVar17 = *puVar19;\n      puVar17[1] = uVar22;\n      puVar17[2] = uVar15;\n      puVar17[3] = uVar18;\n      puVar31 = puVar17 + 4;\n    } while (puVar25 != puVar13 + 0x1a);\n    uVar18 = puVar19[5];\n    iVar10 = -0x1c;\n    puVar17[4] = *puVar25;\n    puVar17[5] = uVar18;\n    puStack_674 = (uint *)puVar13[0x13];\n    in_t3 = puVar13[0x11];\n    in_t2 = (uint *)puVar13[0x10];\n    unaff_s6 = (short *)puVar13[0x12];\n    ppuVar28 = (uint **)puVar13[0x15];\n    in_t0 = (uint **)puVar13[0x14];\n    in_t5 = puVar13[0x17];\n    in_t4 = (uint **)puVar13[0x16];\n    uVar18 = puVar13[0x18];\n    in_t6 = puVar13[0x19];\n    in_t8 = puVar13[0x1a];\n    iVar9 = 0;\n    goto LAB_00015adc;\n  }\n  if (iStack_670 != 0) {\n    iStack_670 = iStack_670 + -1;\n  }\n  puVar13 = puVar13 + 0xe;\n  in_t0 = apuStack_5b8;\n  apuStack_5e8[3] = puStack_630;\n  apuStack_5e8[2] = puStack_65c;\n  iStack_5d8 = iStack_660;\n  ppuVar21 = apuStack_5e8;\n  puVar29 = puVar13;\n  do {\n    puVar31 = puVar29;\n    ppuVar11 = ppuVar21;\n    ppuVar21 = ppuVar11 + 4;\n    puVar19 = ppuVar11[1];\n    ppuVar16 = (uint **)ppuVar11[2];\n    puVar29 = ppuVar11[3];\n    *puVar31 = (uint)*ppuVar11;\n    puVar31[1] = (uint)puVar19;\n    puVar31[2] = (uint)ppuVar16;\n    puVar31[3] = (uint)puVar29;\n    puVar29 = puVar31 + 4;\n  } while (ppuVar21 != in_t0);\n  puVar29 = (uint *)0xfffffffe;\n  puVar19 = ppuVar11[5];\n  puVar31[4] = (uint)*ppuVar21;\n  puVar31[5] = (uint)puVar19;\nLAB_00015014:\n  psVar27 = psVar32 + 1;\n  psVar32[1] = (short)puVar25;\n  if (&sStack_552 <= psVar27) {\n    iVar9 = 2;\nLAB_00015278:\n    do {\n      if (iStack_dc == *piVar7) {\n        return iVar9;\n      }\n      iVar9 = iStack_dc;\n      uVar5 = (**(code **)(puVar33 + 0x23488))();\n      bVar2 = ppuVar16 == (uint **)0x0;\n      puVar14[0x10] = uVar5;\n      puVar14[0x11] = iVar9;\n      if (!bVar2) {\n        ppuVar16 = (uint **)puVar13[3];\n        if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }\n        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];\n        puVar14[0xb] = -(int)ppuVar16;\n        if (!bVar2) goto code_r0x00016f40;\n      }\n      iVar9 = 1;\n    } while( true );\n  }\n  if (puVar25 == (uint *)0xc) {\n    iVar9 = 0;\n    goto LAB_00015278;\n  }\n  puVar31 = (uint *)(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4);\n  ppuVar21 = ppuVar16;\n  psVar32 = psVar27;\n  if (puVar31 == (uint *)0xffffffa3) {\nLAB_0001504c:\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    psVar32 = psVar27;\nLAB_00015050:\n    uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370);\n    if (uVar15 != 0) {\n      uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);\n      puVar19 = puVar13 + (1 - uVar22) * 0xe;\n      puVar25 = puVar19;\n      puVar31 = auStack_5b0;\n      do {\n        puVar20 = puVar31;\n        puVar17 = puVar25;\n        puVar25 = puVar17 + 4;\n        uVar24 = puVar17[1];\n        uVar23 = puVar17[2];\n        uVar18 = puVar17[3];\n        *puVar20 = *puVar17;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar18;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);\n      uVar18 = puVar17[5];\n      uVar23 = uVar15 - 4 & 0xff;\n      puVar20[4] = *puVar25;\n      puVar20[5] = uVar18;\n      puStack_674 = (uint *)puVar19[5];\n      in_t3 = puVar19[3];\n      in_t2 = (uint *)puVar19[2];\n      unaff_s6 = (short *)puVar19[4];\n      ppuVar28 = (uint **)puVar19[7];\n      in_t0 = (uint **)puVar19[6];\n      in_t5 = puVar19[9];\n      in_t4 = (uint **)puVar19[8];\n      uVar18 = puVar19[10];\n      in_t6 = puVar19[0xb];\n      in_t8 = puVar19[0xc];\n      if (uVar23 < 0x58) {\n                    \n                    \n        iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();\n        return iVar6;\n      }\n      psVar32 = psVar32 + -uVar22;\n      puVar13 = puVar13 + uVar22 * -0xe;\n      iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;\n      iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);\n      puStack_66c = auStack_5b0;\n      goto LAB_00015adc;\n    }\n    if (iStack_670 == 3) {\n      if ((int)puVar29 < 1) {\n        iVar9 = 1;\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }\n    }\n    ppuVar16 = (uint **)0xffffffa3;\n    while ((((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0))) {\n      iVar9 = 1;\n      psVar27 = psVar32;\n      if (psVar32 == asStack_578) goto LAB_00015278;\n      psVar32 = psVar32 + -1;\n      puVar25 = (uint *)(int)*psVar32;\n      puVar13 = puVar13 + -0xe;\n    }\n    puVar13 = puVar13 + 0xe;\n    in_t0 = apuStack_5b8;\n    apuStack_5e8[3] = puStack_630;\n    apuStack_5e8[2] = puStack_65c;\n    iStack_5d8 = iStack_660;\n    ppuVar21 = apuStack_5e8;\n    puVar31 = puVar13;\n    do {\n      puVar19 = puVar31;\n      ppuVar11 = ppuVar21;\n      ppuVar21 = ppuVar11 + 4;\n      puVar20 = ppuVar11[1];\n      puVar17 = ppuVar11[2];\n      puVar31 = ppuVar11[3];\n      *puVar19 = (uint)*ppuVar11;\n      puVar19[1] = (uint)puVar20;\n      puVar19[2] = (uint)puVar17;\n      puVar19[3] = (uint)puVar31;\n      puVar31 = puVar19 + 4;\n    } while (ppuVar21 != in_t0);\n    ppuVar16 = (uint **)0x3;\n    puVar31 = ppuVar11[5];\n    iStack_670 = 3;\n    puVar19[4] = (uint)*ppuVar21;\n    puVar19[5] = (uint)puVar31;\n    goto LAB_00015014;\n  }\n  goto LAB_00014f50;\nLAB_00015528:\n  puVar29 = (uint *)((int)puVar17 >> 0x1f);\n  bVar2 = false;\n  if (puVar29 == in_t2) {\n    in_t2 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2);\n    ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n  }\n  else {\n    ppuVar28 = (uint **)(ZEXT48(in_t2) * 10);\n    unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20);\n    in_t6 = (int)puVar17 * 4;\n    puStack_674 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)puVar17 * 10);\n    psVar27 = unaff_s6;\n    if ((int)in_t2 < 0) {\n      psVar27 = unaff_s6 + -5;\n    }\n    ppuVar16 = (uint **)((int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2));\n    if ((int)ppuVar16 >> 0x1f != (uint)(ppuVar16 < ppuVar28) + (int)psVar27) {\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n    }\n  }\n  puVar29 = (uint *)((int)puVar17 * 10);\n  ppuVar28 = in_t4;\n  if (bVar2) goto LAB_00017ad0;\n  goto LAB_000153f8;\nLAB_00017ad0:\n  uVar15 = 2;\n  puVar29 = (uint *)0x3f;\n  puVar19 = (uint *)((int)puVar31 + 2);\n  goto LAB_00014f74;\n  while( true ) {\n    if (bVar12 == 0x28) {\n      iVar9 = iVar9 + 1;\n    }\n    else if (bVar12 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }\n    if (iVar9 == 0) break;\nLAB_000157a8:\n    ppuVar16 = ppuVar21;\n    ppuVar21 = (uint **)((int)ppuVar16 + 1);\n    *puVar14 = ppuVar21;\n    bVar12 = *(byte *)ppuVar16;\n    if (bVar12 == 0) goto LAB_000152b8;\n  }\n  bVar12 = *(byte *)((int)ppuVar16 + 1);\n  goto LAB_000152f0;\ncode_r0x00016f40:\n  puVar25 = puVar13 + 4;\n  puVar13 = puVar13 + -0x2a;\n  psVar32 = psVar27 + -3;\n  iVar10 = 0xe;\n  puVar14[0xc] = *puVar25;\n  iVar9 = -0x5d;\nLAB_00015adc:\n  puVar13 = puVar13 + 0xe;\n  puStack_5a8 = in_t2;\n  in_t2 = auStack_580;\n  uStack_5a4 = in_t3;\n  apsStack_5a0[1] = (short *)puStack_674;\n  apsStack_5a0[0] = unaff_s6;\n  ppuStack_594 = ppuVar28;\n  ppuStack_598 = in_t0;\n  uStack_58c = in_t5;\n  ppuStack_590 = in_t4;\n  uStack_588 = uVar18;\n  uStack_584 = in_t6;\n  auStack_580[0] = in_t8;\n  puVar25 = puStack_66c;\n  puVar31 = puVar13;\n  do {\n    puVar17 = puVar31;\n    puVar19 = puVar25;\n    in_t0 = (uint **)*puVar19;\n    puVar25 = puVar19 + 4;\n    uVar23 = puVar19[1];\n    uVar22 = puVar19[2];\n    uVar15 = puVar19[3];\n    *puVar17 = (uint)in_t0;\n    puVar17[1] = uVar23;\n    puVar17[2] = uVar22;\n    puVar17[3] = uVar15;\n    puVar31 = puVar17 + 4;\n  } while (puVar25 != in_t2);\n  ppuVar16 = (uint **)(int)*psVar32;\n  uVar15 = puVar19[5];\n  pbVar26 = (byte *)((int)ppuVar16 + iVar9);\n  puVar17[4] = *puVar25;\n  puVar17[5] = uVar15;\n  if ((pbVar26 < (byte *)0x71) && ((uint **)(int)(char)pbVar26[iVar30] == ppuVar16)) {\n    puVar25 = (uint *)(uint)pbVar26[iVar8];\n  }\n  else {\n    puVar25 = (uint *)(int)*(char *)(iVar10 + iVar6 + 0x6338);\n  }\n  goto LAB_00015014;\n}\n\n" (function_definition "int FUN_00014998(undefined4 param_1,int param_2)\n\n{\n  char cVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int *piVar7;\n  int iVar8;\n  int iVar9;\n  byte bVar12;\n  int iVar10;\n  uint **ppuVar11;\n  uint *puVar13;\n  undefined4 *puVar14;\n  uint uVar15;\n  uint **ppuVar16;\n  uint *puVar17;\n  uint uVar18;\n  uint *puVar19;\n  uint *puVar20;\n  uint **ppuVar21;\n  uint uVar22;\n  uint uVar23;\n  uint **in_t0;\n  uint uVar24;\n  uint *in_t2;\n  uint in_t3;\n  uint **in_t4;\n  uint in_t5;\n  uint in_t6;\n  uint *puVar25;\n  byte *pbVar26;\n  short *psVar27;\n  uint **ppuVar28;\n  uint *puVar29;\n  int iVar30;\n  undefined *unaff_s4;\n  uint *puVar31;\n  short *psVar32;\n  short *unaff_s6;\n  uint in_t8;\n  undefined *puVar33;\n  code *pcVar34;\n  uint *puStack_674;\n  int iStack_670;\n  uint *puStack_66c;\n  int iStack_660;\n  uint *puStack_65c;\n  uint *puStack_630;\n  uint *apuStack_5e8 [4];\n  int iStack_5d8;\n  uint *apuStack_5b8 [2];\n  uint auStack_5b0 [2];\n  uint *puStack_5a8;\n  uint uStack_5a4;\n  short *apsStack_5a0 [2];\n  uint **ppuStack_598;\n  uint **ppuStack_594;\n  uint **ppuStack_590;\n  uint uStack_58c;\n  uint uStack_588;\n  uint uStack_584;\n  uint auStack_580 [2];\n  short asStack_578 [19];\n  short sStack_552;\n  uint auStack_550 [279];\n  byte abStack_f1 [21];\n  int iStack_dc;\n  int iStack_d8;\n  uint **ppuStack_d4;\n  undefined *puStack_d0;\n  undefined *puStack_cc;\n  undefined *puStack_c8;\n  undefined1 auStack_80 [100];\n  int local_1c;\n  \n  puVar3 = PTR___stack_chk_guard_00038350;\n  local_1c = *(int *)PTR___stack_chk_guard_00038350;\n  uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x50a0,5);\n  FUN_00014188(uVar5,param_1);\n  puVar4 = PTR_stderr_00038360;\n  if (*(int *)(param_2 + 0x9c) == 0) {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb4) != *(char *)(param_2 + 0xbb)) goto LAB_00014a30;\nLAB_00014c7c:\n    uVar18 = 0;\n  }\n  else {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb6) == '\0') {\n      in_t3 = *(uint *)(param_2 + 0x3c);\n      in_t2 = *(uint **)(param_2 + 0x38);\n      in_t0 = *(uint ***)(param_2 + 0x28);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      *(undefined1 *)(param_2 + 0xb6) = 1;\n      if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar18 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) goto LAB_00014c7c;\nLAB_00014a30:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);\n    in_t0 = *(uint ***)(param_2 + 0x28);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n    uVar18 = 1;\n    ppuVar28 = *(uint ***)puVar4;\n    *(undefined1 *)(param_2 + 0xbb) = *(undefined1 *)(param_2 + 0xb4);\n  }\nLAB_00014a80:\n  if ((*(int *)(param_2 + 0xac) == 0) || (*(char *)(param_2 + 0xb9) != '\0')) {\n    if ((*(int *)(param_2 + 0xa0) != 0) && (*(char *)(param_2 + 0xb7) == '\0')) {\n      if (uVar18 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);\n      uVar5 = FUN_00014838(param_2,auStack_80);\n      in_t0 = *(uint ***)(param_2 + 8);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar18 = 1;\n      *(undefined1 *)(param_2 + 0xb7) = 1;\n    }\n  }\n  else {\n    in_t3 = *(uint *)(param_2 + 0x54);\n    in_t2 = *(uint **)(param_2 + 0x50);\n    in_t0 = *(uint ***)(param_2 + 0x48);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168);\n    if (*(int *)(param_2 + 0x5c) != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }\n    ppuVar28 = *(uint ***)puVar4;\n    if (*(int *)(param_2 + 0x1c) == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    *(undefined1 *)(param_2 + 0xb9) = 1;\n    if (*(int *)(param_2 + 0xa0) == 0) {\n      uVar18 = 1;\n    }\n    else {\n      uVar18 = (uint)*(byte *)(param_2 + 0xb7);\n      if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }\n  }\n  if ((*(int *)(param_2 + 0xa4) == 0) || (*(char *)(param_2 + 0xb8) != '\0')) {\n    if ((*(int *)(param_2 + 0xb0) == 0) ||\n       (unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0')) {\n      if (*(char *)(param_2 + 0x98) == '\0') goto LAB_00014bb0;\n      param_2 = *(int *)(param_2 + 0x58);\n      unaff_s4 = (undefined *)(param_2 >> 0x1f);\n      if (uVar18 != 0) goto LAB_00014d8c;\n      goto LAB_00014c1c;\n    }\n    unaff_s4 = PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5130;\nLAB_00014d38:\n    uVar5 = FUN_00013f30(*(undefined4 *)(param_2 + 0x18),auStack_80);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n    *(undefined1 *)(param_2 + 0xba) = 1;\n    if (*(char *)(param_2 + 0x98) != '\0') {\n      param_2 = *(int *)(param_2 + 0x58);\n      ppuVar28 = *(uint ***)puVar4;\n      goto LAB_00014d88;\n    }\n  }\n  else {\n    (*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac,*(undefined4 *)(param_2 + 0x14));\n    *(undefined1 *)(param_2 + 0xb8) = 1;\n    if (*(int *)(param_2 + 0xb0) == 0) {\n      cVar1 = *(char *)(param_2 + 0x98);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (*(char *)(param_2 + 0xba) == '\0') {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = *(char *)(param_2 + 0x98);\n    }\n    if (cVar1 == '\0') goto LAB_00014bb0;\n    param_2 = *(int *)(param_2 + 0x58);\nLAB_00014d88:\n    unaff_s4 = (undefined *)(param_2 >> 0x1f);\nLAB_00014d8c:\n    (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n    ppuVar28 = *(uint ***)puVar4;\nLAB_00014c1c:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n  }\n  ppuVar28 = *(uint ***)puVar4;\nLAB_00014bb0:\n  puVar14 = (undefined4 *)&DAT_0000000a;\n  ppuVar21 = ppuVar28;\n  (*(code *)PTR_fputc_00038298)();\n  iVar6 = *(int *)puVar3;\n  if (local_1c == iVar6) {\n    return iVar6;\n  }\n  puVar33 = PTR___stack_chk_fail_00038334;\n  (*(code *)PTR___stack_chk_fail_00038334)();\n  piVar7 = *(int **)(puVar33 + 0x234a4);\n  uVar18 = 0xfffffffe;\n  puStack_cc = puVar3;\n  puVar31 = (uint *)&DAT_00000026;\n  iStack_dc = *piVar7;\n  iVar6 = *(int *)(puVar33 + 0x23270);\n  puStack_c8 = unaff_s4;\n  puStack_d0 = puVar4;\n  puVar13 = auStack_550;\n  ppuStack_d4 = ppuVar28;\n  puVar29 = (uint *)0xfffffffe;\n  iVar30 = *(int *)(puVar33 + 0x23270) + 0x6250;\n  iStack_d8 = param_2;\n  puVar25 = (uint *)0x0;\n  iVar8 = *(int *)(puVar33 + 0x23270) + 0x62c4;\n  asStack_578[0] = 0;\n  iStack_670 = 0;\n  psVar32 = asStack_578;\nLAB_00014f50:\n  ppuVar28 = (uint **)0x800000;\n  puVar19 = puVar31;\n  if (puVar29 == (uint *)0xfffffffe) {\n    ppuVar21 = (uint **)*puVar14;\n    in_t2 = (uint *)0x1;\n    ppuVar28 = (uint **)0x80001f;\n    in_t4 = (uint **)0x2d;\n    bVar12 = *(byte *)ppuVar21;\n    in_t5 = 0x2b;\n    in_t6 = 0x28;\n    uVar18 = 0x29;\nLAB_000152f0:\n    in_t0 = (uint **)(int)(char)bVar12;\n    uVar15 = (uint)bVar12;\nLAB_000152f4:\n    uVar22 = uVar15 - 9;\n    ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n    if (ppuVar16 == (uint **)0x0) goto LAB_000153a8;\nLAB_00015308:\n    ppuVar11 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f);\n    while (ppuVar11 != (uint **)0x0) {\n      ppuVar21 = (uint **)((int)ppuVar21 + 1);\n      *puVar14 = ppuVar21;\n      in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n      uVar15 = (uint)*(byte *)ppuVar21;\n      ppuVar16 = (uint **)(uVar15 - 9);\n      if ((uint **)0x17 < ppuVar16) goto LAB_000153a8;\n      ppuVar16 = (uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f);\n      ppuVar11 = ppuVar16;\n    }\nLAB_00015344:\n    in_t3 = 0xffffffff;\n    if (uVar15 == 0x2d) goto LAB_00015358;\n    if (uVar15 == 0x2b) goto LAB_00015354;\n    if ((0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))\n       ) {\n      pbVar26 = (byte *)*puVar14;\n      ppuVar16 = (uint **)(abStack_f1 + 1);\n      in_t0 = (uint **)(abStack_f1 + 0x14);\n      ppuVar28 = (uint **)&DAT_0000002e;\n      ppuVar21 = ppuVar16;\n      do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        *puVar14 = pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));\n      *(byte *)ppuVar21 = 0;\n      ppuVar21 = ppuVar16;\n      bVar12 = abStack_f1[1];\n      while (bVar12 != 0) {\n        if (bVar12 - 0x61 < 0x1a) {\n          bVar12 = bVar12 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar12;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar12 = *(byte *)ppuVar21;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);\n      do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16);\n      if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);\n      do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      iVar9 = *(int *)(puVar33 + 0x2326c);\n      ppuVar21 = ppuVar16;\n      iVar10 = FUN_00014388(puVar14);\n      unaff_s6 = asStack_578;\n      if (iVar10 != 0) {\n        puVar29 = *(uint **)(iVar10 + 4);\n        apuStack_5e8[1] = *(uint **)(iVar10 + 8);\n        apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);\n      iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n      if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        ppuVar16 = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);\n      ppuVar11 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);\n      ppuVar21 = ppuVar11;\n      psVar27 = unaff_s6;\n      do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);\n      pbVar26 = (byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1));\n      if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar11 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);\n      pcVar34 = *(code **)(puVar33 + 0x234c8);\n      do {\n        iVar10 = (*pcVar34)(ppuVar16);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);\n      if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar11 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }\n      if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = ppuVar16;\n        ppuVar11 = ppuVar16;\n        bVar12 = abStack_f1[1];\n        do {\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        } while (bVar12 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }\n      ppuVar21 = *(uint ***)(puVar33 + 0x23270);\n      if (*(char *)((int)puVar14 + 0xb5) == '\0') goto LAB_00017ae0;\n      uVar5 = (**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5);\n      puVar29 = (uint *)0x3f;\n      FUN_00014188(uVar5);\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n      goto LAB_00014f74;\n    }\n    iVar9 = 0;\n    if (uVar15 == 0x28) {\n      ppuVar21 = (uint **)*puVar14;\n      goto LAB_000157a8;\n    }\n    *puVar14 = (byte *)((int)ppuVar21 + 1);\n    puVar29 = (uint *)(uint)*(byte *)ppuVar21;\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if (puVar29 != (uint *)0x0) goto LAB_0001558c;\n    uVar15 = 0;\n    goto LAB_00014f74;\n  }\nLAB_00014f5c:\n  ppuVar16 = ppuVar21;\n  if ((int)puVar29 < 1) {\nLAB_000152b8:\n    uVar15 = 0;\n    puVar29 = (uint *)0x0;\n  }\n  else {\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if ((int)puVar29 < 0x116) {\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }\n    else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }\n  }\n  goto LAB_00014f74;\nLAB_00015354:\n  do {\n    in_t3 = 1;\nLAB_00015358:\n    while( true ) {\n      ppuVar21 = (uint **)*puVar14;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n      if (ppuVar16 != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }\n    in_t3 = 0;\n  } while (uVar15 == 0x2b);\n  ppuVar21 = (uint **)*puVar14;\nLAB_000153dc:\n  ppuVar16 = (uint **)0x0;\n  puVar29 = (uint *)0x0;\n  in_t5 = 0xffffffff;\n  uVar18 = 0x30;\n  in_t8 = 10;\n  ppuVar28 = ppuVar21;\nLAB_000153f8:\n  if (in_t3 == 0xffffffff) {\n    uVar22 = 0x30 - uVar15;\n  }\n  uVar15 = (int)uVar22 >> 0x1f;\n  puVar17 = (uint *)((int)puVar29 + uVar22);\n  in_t2 = (uint *)((int)ppuVar16 + (puVar17 < puVar29) + uVar15);\n  in_t4 = (uint **)((uint)in_t2 ^ uVar15);\n  ppuVar16 = (uint **)((uint)in_t4 & ~((uint)ppuVar16 ^ uVar15));\n  if ((int)ppuVar16 < 0) goto LAB_00017ad0;\n  uVar15 = (uint)*(byte *)((int)ppuVar28 + 1);\n  uVar22 = uVar15 - 0x30;\n  in_t4 = (uint **)((int)ppuVar28 + 1);\n  if (uVar22 < 10) goto LAB_00015528;\n  ppuVar16 = (uint **)0xfffffffd;\n  if (((*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c) ||\n     (puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29)) {\n    *puVar14 = in_t4;\n    uVar15 = 0x13;\n    apuStack_5e8[0] = (uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_);\n    puVar29 = (uint *)0x112;\n    if (in_t3 == 0) {\n      uVar15 = 0x14;\n    }\n    iStack_660 = (int)in_t4 - (int)ppuVar21;\n    if (in_t3 == 0) {\n      puVar29 = (uint *)0x113;\n    }\n    puVar19 = (uint *)((int)puVar31 + uVar15);\n    puStack_65c = in_t2;\n    puStack_630 = puVar17;\n    goto LAB_00014f74;\n  }\n  in_t2 = (uint *)((int)in_t2 + (uint)(puVar17 + -0x20000000 < puVar17));\n  iVar9 = 8;\n  ppuVar21 = ppuVar16;\n  if (in_t2 != (uint *)0x0) goto LAB_00017ae0;\n  in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 3);\n  ppuVar28 = (uint **)((int)ppuVar28 + 3);\n  ppuVar21 = in_t0 + -0xc;\n  ppuVar16 = (uint **)((int)puVar29 * 4);\n  do {\n    puVar29 = (uint *)((int)((int)ppuVar16 + (int)puVar29) * 2);\n    if (ppuVar21 < &DAT_0000000a) {\n      in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);\n      puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n      ppuVar21 = in_t0 + -0xc;\n    }\n    iVar9 = iVar9 + -1;\n    ppuVar16 = (uint **)((int)puVar29 << 2);\n  } while (iVar9 != 0);\n  in_t2 = puVar17;\n  if (in_t3 == 0xffffffff) {\n    ppuVar11 = in_t0;\n    if (ppuVar21 < &DAT_0000000a) {\n      do {\n        if (ppuVar11 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar11 = ppuVar16;\n      } while (ppuVar16 + -0xc <= &DAT_00000009);\n    }\nLAB_00015c20:\n    if (puVar29 != (uint *)0x0) {\n      in_t2 = (uint *)((int)puVar17 + -1);\n      ppuVar21 = ppuVar16;\n      if (puVar17 == (uint *)0x80000000) {\nLAB_00017ae0:\n        ppuVar16 = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }\n    uVar15 = 0x15;\n    apuStack_5e8[1] = puVar29;\n    apuStack_5e8[0] = in_t2;\n    puVar29 = (uint *)0x114;\n    *puVar14 = ppuVar28;\n    puVar19 = (uint *)((int)puVar31 + 0x15);\n    goto LAB_00014f74;\n  }\n  if (ppuVar21 < &DAT_0000000a) {\nLAB_000154dc:\n    do {\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    } while ((int)(char)*(byte *)ppuVar28 - 0x30U < 10);\n    if (in_t3 == 0xffffffff) goto LAB_00015c20;\n  }\n  apuStack_5e8[0] = puVar17;\n  uVar15 = 0x16;\n  apuStack_5e8[1] = puVar29;\n  puVar29 = (uint *)0x115;\n  *puVar14 = ppuVar28;\n  if (in_t3 != 0) {\n    uVar15 = 0x15;\n    puVar29 = (uint *)0x114;\n  }\n  puVar19 = (uint *)((int)puVar31 + uVar15);\nLAB_00014f74:\n  psVar27 = psVar32;\n  if ((uint *)0x70 < puVar19) goto LAB_0001504c;\n  iVar9 = *(int *)(puVar33 + 0x23270);\n  if ((int)(char)*(byte *)((int)puVar19 + iVar30) != uVar15) goto LAB_00015050;\n  puVar25 = (uint *)(uint)*(byte *)((int)puVar19 + iVar8);\n  if (puVar25 == (uint *)0x0) {\n    puStack_66c = auStack_5b0;\n    puVar25 = puVar13 + 0xe;\n    puVar31 = puStack_66c;\n    do {\n      puVar17 = puVar31;\n      puVar19 = puVar25;\n      puVar25 = puVar19 + 4;\n      uVar22 = puVar19[1];\n      uVar15 = puVar19[2];\n      uVar18 = puVar19[3];\n      *puVar17 = *puVar19;\n      puVar17[1] = uVar22;\n      puVar17[2] = uVar15;\n      puVar17[3] = uVar18;\n      puVar31 = puVar17 + 4;\n    } while (puVar25 != puVar13 + 0x1a);\n    uVar18 = puVar19[5];\n    iVar10 = -0x1c;\n    puVar17[4] = *puVar25;\n    puVar17[5] = uVar18;\n    puStack_674 = (uint *)puVar13[0x13];\n    in_t3 = puVar13[0x11];\n    in_t2 = (uint *)puVar13[0x10];\n    unaff_s6 = (short *)puVar13[0x12];\n    ppuVar28 = (uint **)puVar13[0x15];\n    in_t0 = (uint **)puVar13[0x14];\n    in_t5 = puVar13[0x17];\n    in_t4 = (uint **)puVar13[0x16];\n    uVar18 = puVar13[0x18];\n    in_t6 = puVar13[0x19];\n    in_t8 = puVar13[0x1a];\n    iVar9 = 0;\n    goto LAB_00015adc;\n  }\n  if (iStack_670 != 0) {\n    iStack_670 = iStack_670 + -1;\n  }\n  puVar13 = puVar13 + 0xe;\n  in_t0 = apuStack_5b8;\n  apuStack_5e8[3] = puStack_630;\n  apuStack_5e8[2] = puStack_65c;\n  iStack_5d8 = iStack_660;\n  ppuVar21 = apuStack_5e8;\n  puVar29 = puVar13;\n  do {\n    puVar31 = puVar29;\n    ppuVar11 = ppuVar21;\n    ppuVar21 = ppuVar11 + 4;\n    puVar19 = ppuVar11[1];\n    ppuVar16 = (uint **)ppuVar11[2];\n    puVar29 = ppuVar11[3];\n    *puVar31 = (uint)*ppuVar11;\n    puVar31[1] = (uint)puVar19;\n    puVar31[2] = (uint)ppuVar16;\n    puVar31[3] = (uint)puVar29;\n    puVar29 = puVar31 + 4;\n  } while (ppuVar21 != in_t0);\n  puVar29 = (uint *)0xfffffffe;\n  puVar19 = ppuVar11[5];\n  puVar31[4] = (uint)*ppuVar21;\n  puVar31[5] = (uint)puVar19;\nLAB_00015014:\n  psVar27 = psVar32 + 1;\n  psVar32[1] = (short)puVar25;\n  if (&sStack_552 <= psVar27) {\n    iVar9 = 2;\nLAB_00015278:\n    do {\n      if (iStack_dc == *piVar7) {\n        return iVar9;\n      }\n      iVar9 = iStack_dc;\n      uVar5 = (**(code **)(puVar33 + 0x23488))();\n      bVar2 = ppuVar16 == (uint **)0x0;\n      puVar14[0x10] = uVar5;\n      puVar14[0x11] = iVar9;\n      if (!bVar2) {\n        ppuVar16 = (uint **)puVar13[3];\n        if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }\n        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];\n        puVar14[0xb] = -(int)ppuVar16;\n        if (!bVar2) goto code_r0x00016f40;\n      }\n      iVar9 = 1;\n    } while( true );\n  }\n  if (puVar25 == (uint *)0xc) {\n    iVar9 = 0;\n    goto LAB_00015278;\n  }\n  puVar31 = (uint *)(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4);\n  ppuVar21 = ppuVar16;\n  psVar32 = psVar27;\n  if (puVar31 == (uint *)0xffffffa3) {\nLAB_0001504c:\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    psVar32 = psVar27;\nLAB_00015050:\n    uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370);\n    if (uVar15 != 0) {\n      uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);\n      puVar19 = puVar13 + (1 - uVar22) * 0xe;\n      puVar25 = puVar19;\n      puVar31 = auStack_5b0;\n      do {\n        puVar20 = puVar31;\n        puVar17 = puVar25;\n        puVar25 = puVar17 + 4;\n        uVar24 = puVar17[1];\n        uVar23 = puVar17[2];\n        uVar18 = puVar17[3];\n        *puVar20 = *puVar17;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar18;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);\n      uVar18 = puVar17[5];\n      uVar23 = uVar15 - 4 & 0xff;\n      puVar20[4] = *puVar25;\n      puVar20[5] = uVar18;\n      puStack_674 = (uint *)puVar19[5];\n      in_t3 = puVar19[3];\n      in_t2 = (uint *)puVar19[2];\n      unaff_s6 = (short *)puVar19[4];\n      ppuVar28 = (uint **)puVar19[7];\n      in_t0 = (uint **)puVar19[6];\n      in_t5 = puVar19[9];\n      in_t4 = (uint **)puVar19[8];\n      uVar18 = puVar19[10];\n      in_t6 = puVar19[0xb];\n      in_t8 = puVar19[0xc];\n      if (uVar23 < 0x58) {\n                    \n                    \n        iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();\n        return iVar6;\n      }\n      psVar32 = psVar32 + -uVar22;\n      puVar13 = puVar13 + uVar22 * -0xe;\n      iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;\n      iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);\n      puStack_66c = auStack_5b0;\n      goto LAB_00015adc;\n    }\n    if (iStack_670 == 3) {\n      if ((int)puVar29 < 1) {\n        iVar9 = 1;\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }\n    }\n    ppuVar16 = (uint **)0xffffffa3;\n    while ((((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0))) {\n      iVar9 = 1;\n      psVar27 = psVar32;\n      if (psVar32 == asStack_578) goto LAB_00015278;\n      psVar32 = psVar32 + -1;\n      puVar25 = (uint *)(int)*psVar32;\n      puVar13 = puVar13 + -0xe;\n    }\n    puVar13 = puVar13 + 0xe;\n    in_t0 = apuStack_5b8;\n    apuStack_5e8[3] = puStack_630;\n    apuStack_5e8[2] = puStack_65c;\n    iStack_5d8 = iStack_660;\n    ppuVar21 = apuStack_5e8;\n    puVar31 = puVar13;\n    do {\n      puVar19 = puVar31;\n      ppuVar11 = ppuVar21;\n      ppuVar21 = ppuVar11 + 4;\n      puVar20 = ppuVar11[1];\n      puVar17 = ppuVar11[2];\n      puVar31 = ppuVar11[3];\n      *puVar19 = (uint)*ppuVar11;\n      puVar19[1] = (uint)puVar20;\n      puVar19[2] = (uint)puVar17;\n      puVar19[3] = (uint)puVar31;\n      puVar31 = puVar19 + 4;\n    } while (ppuVar21 != in_t0);\n    ppuVar16 = (uint **)0x3;\n    puVar31 = ppuVar11[5];\n    iStack_670 = 3;\n    puVar19[4] = (uint)*ppuVar21;\n    puVar19[5] = (uint)puVar31;\n    goto LAB_00015014;\n  }\n  goto LAB_00014f50;\nLAB_00015528:\n  puVar29 = (uint *)((int)puVar17 >> 0x1f);\n  bVar2 = false;\n  if (puVar29 == in_t2) {\n    in_t2 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2);\n    ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n  }\n  else {\n    ppuVar28 = (uint **)(ZEXT48(in_t2) * 10);\n    unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20);\n    in_t6 = (int)puVar17 * 4;\n    puStack_674 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)puVar17 * 10);\n    psVar27 = unaff_s6;\n    if ((int)in_t2 < 0) {\n      psVar27 = unaff_s6 + -5;\n    }\n    ppuVar16 = (uint **)((int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2));\n    if ((int)ppuVar16 >> 0x1f != (uint)(ppuVar16 < ppuVar28) + (int)psVar27) {\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n    }\n  }\n  puVar29 = (uint *)((int)puVar17 * 10);\n  ppuVar28 = in_t4;\n  if (bVar2) goto LAB_00017ad0;\n  goto LAB_000153f8;\nLAB_00017ad0:\n  uVar15 = 2;\n  puVar29 = (uint *)0x3f;\n  puVar19 = (uint *)((int)puVar31 + 2);\n  goto LAB_00014f74;\n  while( true ) {\n    if (bVar12 == 0x28) {\n      iVar9 = iVar9 + 1;\n    }\n    else if (bVar12 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }\n    if (iVar9 == 0) break;\nLAB_000157a8:\n    ppuVar16 = ppuVar21;\n    ppuVar21 = (uint **)((int)ppuVar16 + 1);\n    *puVar14 = ppuVar21;\n    bVar12 = *(byte *)ppuVar16;\n    if (bVar12 == 0) goto LAB_000152b8;\n  }\n  bVar12 = *(byte *)((int)ppuVar16 + 1);\n  goto LAB_000152f0;\ncode_r0x00016f40:\n  puVar25 = puVar13 + 4;\n  puVar13 = puVar13 + -0x2a;\n  psVar32 = psVar27 + -3;\n  iVar10 = 0xe;\n  puVar14[0xc] = *puVar25;\n  iVar9 = -0x5d;\nLAB_00015adc:\n  puVar13 = puVar13 + 0xe;\n  puStack_5a8 = in_t2;\n  in_t2 = auStack_580;\n  uStack_5a4 = in_t3;\n  apsStack_5a0[1] = (short *)puStack_674;\n  apsStack_5a0[0] = unaff_s6;\n  ppuStack_594 = ppuVar28;\n  ppuStack_598 = in_t0;\n  uStack_58c = in_t5;\n  ppuStack_590 = in_t4;\n  uStack_588 = uVar18;\n  uStack_584 = in_t6;\n  auStack_580[0] = in_t8;\n  puVar25 = puStack_66c;\n  puVar31 = puVar13;\n  do {\n    puVar17 = puVar31;\n    puVar19 = puVar25;\n    in_t0 = (uint **)*puVar19;\n    puVar25 = puVar19 + 4;\n    uVar23 = puVar19[1];\n    uVar22 = puVar19[2];\n    uVar15 = puVar19[3];\n    *puVar17 = (uint)in_t0;\n    puVar17[1] = uVar23;\n    puVar17[2] = uVar22;\n    puVar17[3] = uVar15;\n    puVar31 = puVar17 + 4;\n  } while (puVar25 != in_t2);\n  ppuVar16 = (uint **)(int)*psVar32;\n  uVar15 = puVar19[5];\n  pbVar26 = (byte *)((int)ppuVar16 + iVar9);\n  puVar17[4] = *puVar25;\n  puVar17[5] = uVar15;\n  if ((pbVar26 < (byte *)0x71) && ((uint **)(int)(char)pbVar26[iVar30] == ppuVar16)) {\n    puVar25 = (uint *)(uint)pbVar26[iVar8];\n  }\n  else {\n    puVar25 = (uint *)(int)*(char *)(iVar10 + iVar6 + 0x6338);\n  }\n  goto LAB_00015014;\n}" primitive_type (function_declarator "FUN_00014998(undefined4 param_1,int param_2)" identifier (parameter_list "(undefined4 param_1,int param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int *piVar7;\n  int iVar8;\n  int iVar9;\n  byte bVar12;\n  int iVar10;\n  uint **ppuVar11;\n  uint *puVar13;\n  undefined4 *puVar14;\n  uint uVar15;\n  uint **ppuVar16;\n  uint *puVar17;\n  uint uVar18;\n  uint *puVar19;\n  uint *puVar20;\n  uint **ppuVar21;\n  uint uVar22;\n  uint uVar23;\n  uint **in_t0;\n  uint uVar24;\n  uint *in_t2;\n  uint in_t3;\n  uint **in_t4;\n  uint in_t5;\n  uint in_t6;\n  uint *puVar25;\n  byte *pbVar26;\n  short *psVar27;\n  uint **ppuVar28;\n  uint *puVar29;\n  int iVar30;\n  undefined *unaff_s4;\n  uint *puVar31;\n  short *psVar32;\n  short *unaff_s6;\n  uint in_t8;\n  undefined *puVar33;\n  code *pcVar34;\n  uint *puStack_674;\n  int iStack_670;\n  uint *puStack_66c;\n  int iStack_660;\n  uint *puStack_65c;\n  uint *puStack_630;\n  uint *apuStack_5e8 [4];\n  int iStack_5d8;\n  uint *apuStack_5b8 [2];\n  uint auStack_5b0 [2];\n  uint *puStack_5a8;\n  uint uStack_5a4;\n  short *apsStack_5a0 [2];\n  uint **ppuStack_598;\n  uint **ppuStack_594;\n  uint **ppuStack_590;\n  uint uStack_58c;\n  uint uStack_588;\n  uint uStack_584;\n  uint auStack_580 [2];\n  short asStack_578 [19];\n  short sStack_552;\n  uint auStack_550 [279];\n  byte abStack_f1 [21];\n  int iStack_dc;\n  int iStack_d8;\n  uint **ppuStack_d4;\n  undefined *puStack_d0;\n  undefined *puStack_cc;\n  undefined *puStack_c8;\n  undefined1 auStack_80 [100];\n  int local_1c;\n  \n  puVar3 = PTR___stack_chk_guard_00038350;\n  local_1c = *(int *)PTR___stack_chk_guard_00038350;\n  uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x50a0,5);\n  FUN_00014188(uVar5,param_1);\n  puVar4 = PTR_stderr_00038360;\n  if (*(int *)(param_2 + 0x9c) == 0) {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb4) != *(char *)(param_2 + 0xbb)) goto LAB_00014a30;\nLAB_00014c7c:\n    uVar18 = 0;\n  }\n  else {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb6) == '\0') {\n      in_t3 = *(uint *)(param_2 + 0x3c);\n      in_t2 = *(uint **)(param_2 + 0x38);\n      in_t0 = *(uint ***)(param_2 + 0x28);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      *(undefined1 *)(param_2 + 0xb6) = 1;\n      if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar18 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) goto LAB_00014c7c;\nLAB_00014a30:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);\n    in_t0 = *(uint ***)(param_2 + 0x28);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n    uVar18 = 1;\n    ppuVar28 = *(uint ***)puVar4;\n    *(undefined1 *)(param_2 + 0xbb) = *(undefined1 *)(param_2 + 0xb4);\n  }\nLAB_00014a80:\n  if ((*(int *)(param_2 + 0xac) == 0) || (*(char *)(param_2 + 0xb9) != '\0')) {\n    if ((*(int *)(param_2 + 0xa0) != 0) && (*(char *)(param_2 + 0xb7) == '\0')) {\n      if (uVar18 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);\n      uVar5 = FUN_00014838(param_2,auStack_80);\n      in_t0 = *(uint ***)(param_2 + 8);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar18 = 1;\n      *(undefined1 *)(param_2 + 0xb7) = 1;\n    }\n  }\n  else {\n    in_t3 = *(uint *)(param_2 + 0x54);\n    in_t2 = *(uint **)(param_2 + 0x50);\n    in_t0 = *(uint ***)(param_2 + 0x48);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168);\n    if (*(int *)(param_2 + 0x5c) != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }\n    ppuVar28 = *(uint ***)puVar4;\n    if (*(int *)(param_2 + 0x1c) == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    *(undefined1 *)(param_2 + 0xb9) = 1;\n    if (*(int *)(param_2 + 0xa0) == 0) {\n      uVar18 = 1;\n    }\n    else {\n      uVar18 = (uint)*(byte *)(param_2 + 0xb7);\n      if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }\n  }\n  if ((*(int *)(param_2 + 0xa4) == 0) || (*(char *)(param_2 + 0xb8) != '\0')) {\n    if ((*(int *)(param_2 + 0xb0) == 0) ||\n       (unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0')) {\n      if (*(char *)(param_2 + 0x98) == '\0') goto LAB_00014bb0;\n      param_2 = *(int *)(param_2 + 0x58);\n      unaff_s4 = (undefined *)(param_2 >> 0x1f);\n      if (uVar18 != 0) goto LAB_00014d8c;\n      goto LAB_00014c1c;\n    }\n    unaff_s4 = PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5130;\nLAB_00014d38:\n    uVar5 = FUN_00013f30(*(undefined4 *)(param_2 + 0x18),auStack_80);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n    *(undefined1 *)(param_2 + 0xba) = 1;\n    if (*(char *)(param_2 + 0x98) != '\0') {\n      param_2 = *(int *)(param_2 + 0x58);\n      ppuVar28 = *(uint ***)puVar4;\n      goto LAB_00014d88;\n    }\n  }\n  else {\n    (*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac,*(undefined4 *)(param_2 + 0x14));\n    *(undefined1 *)(param_2 + 0xb8) = 1;\n    if (*(int *)(param_2 + 0xb0) == 0) {\n      cVar1 = *(char *)(param_2 + 0x98);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (*(char *)(param_2 + 0xba) == '\0') {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = *(char *)(param_2 + 0x98);\n    }\n    if (cVar1 == '\0') goto LAB_00014bb0;\n    param_2 = *(int *)(param_2 + 0x58);\nLAB_00014d88:\n    unaff_s4 = (undefined *)(param_2 >> 0x1f);\nLAB_00014d8c:\n    (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n    ppuVar28 = *(uint ***)puVar4;\nLAB_00014c1c:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n  }\n  ppuVar28 = *(uint ***)puVar4;\nLAB_00014bb0:\n  puVar14 = (undefined4 *)&DAT_0000000a;\n  ppuVar21 = ppuVar28;\n  (*(code *)PTR_fputc_00038298)();\n  iVar6 = *(int *)puVar3;\n  if (local_1c == iVar6) {\n    return iVar6;\n  }\n  puVar33 = PTR___stack_chk_fail_00038334;\n  (*(code *)PTR___stack_chk_fail_00038334)();\n  piVar7 = *(int **)(puVar33 + 0x234a4);\n  uVar18 = 0xfffffffe;\n  puStack_cc = puVar3;\n  puVar31 = (uint *)&DAT_00000026;\n  iStack_dc = *piVar7;\n  iVar6 = *(int *)(puVar33 + 0x23270);\n  puStack_c8 = unaff_s4;\n  puStack_d0 = puVar4;\n  puVar13 = auStack_550;\n  ppuStack_d4 = ppuVar28;\n  puVar29 = (uint *)0xfffffffe;\n  iVar30 = *(int *)(puVar33 + 0x23270) + 0x6250;\n  iStack_d8 = param_2;\n  puVar25 = (uint *)0x0;\n  iVar8 = *(int *)(puVar33 + 0x23270) + 0x62c4;\n  asStack_578[0] = 0;\n  iStack_670 = 0;\n  psVar32 = asStack_578;\nLAB_00014f50:\n  ppuVar28 = (uint **)0x800000;\n  puVar19 = puVar31;\n  if (puVar29 == (uint *)0xfffffffe) {\n    ppuVar21 = (uint **)*puVar14;\n    in_t2 = (uint *)0x1;\n    ppuVar28 = (uint **)0x80001f;\n    in_t4 = (uint **)0x2d;\n    bVar12 = *(byte *)ppuVar21;\n    in_t5 = 0x2b;\n    in_t6 = 0x28;\n    uVar18 = 0x29;\nLAB_000152f0:\n    in_t0 = (uint **)(int)(char)bVar12;\n    uVar15 = (uint)bVar12;\nLAB_000152f4:\n    uVar22 = uVar15 - 9;\n    ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n    if (ppuVar16 == (uint **)0x0) goto LAB_000153a8;\nLAB_00015308:\n    ppuVar11 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f);\n    while (ppuVar11 != (uint **)0x0) {\n      ppuVar21 = (uint **)((int)ppuVar21 + 1);\n      *puVar14 = ppuVar21;\n      in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n      uVar15 = (uint)*(byte *)ppuVar21;\n      ppuVar16 = (uint **)(uVar15 - 9);\n      if ((uint **)0x17 < ppuVar16) goto LAB_000153a8;\n      ppuVar16 = (uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f);\n      ppuVar11 = ppuVar16;\n    }\nLAB_00015344:\n    in_t3 = 0xffffffff;\n    if (uVar15 == 0x2d) goto LAB_00015358;\n    if (uVar15 == 0x2b) goto LAB_00015354;\n    if ((0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))\n       ) {\n      pbVar26 = (byte *)*puVar14;\n      ppuVar16 = (uint **)(abStack_f1 + 1);\n      in_t0 = (uint **)(abStack_f1 + 0x14);\n      ppuVar28 = (uint **)&DAT_0000002e;\n      ppuVar21 = ppuVar16;\n      do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        *puVar14 = pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));\n      *(byte *)ppuVar21 = 0;\n      ppuVar21 = ppuVar16;\n      bVar12 = abStack_f1[1];\n      while (bVar12 != 0) {\n        if (bVar12 - 0x61 < 0x1a) {\n          bVar12 = bVar12 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar12;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar12 = *(byte *)ppuVar21;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);\n      do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16);\n      if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);\n      do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      iVar9 = *(int *)(puVar33 + 0x2326c);\n      ppuVar21 = ppuVar16;\n      iVar10 = FUN_00014388(puVar14);\n      unaff_s6 = asStack_578;\n      if (iVar10 != 0) {\n        puVar29 = *(uint **)(iVar10 + 4);\n        apuStack_5e8[1] = *(uint **)(iVar10 + 8);\n        apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);\n      iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n      if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        ppuVar16 = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);\n      ppuVar11 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);\n      ppuVar21 = ppuVar11;\n      psVar27 = unaff_s6;\n      do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);\n      pbVar26 = (byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1));\n      if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar11 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);\n      pcVar34 = *(code **)(puVar33 + 0x234c8);\n      do {\n        iVar10 = (*pcVar34)(ppuVar16);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);\n      if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar11 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }\n      if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = ppuVar16;\n        ppuVar11 = ppuVar16;\n        bVar12 = abStack_f1[1];\n        do {\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        } while (bVar12 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }\n      ppuVar21 = *(uint ***)(puVar33 + 0x23270);\n      if (*(char *)((int)puVar14 + 0xb5) == '\0') goto LAB_00017ae0;\n      uVar5 = (**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5);\n      puVar29 = (uint *)0x3f;\n      FUN_00014188(uVar5);\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n      goto LAB_00014f74;\n    }\n    iVar9 = 0;\n    if (uVar15 == 0x28) {\n      ppuVar21 = (uint **)*puVar14;\n      goto LAB_000157a8;\n    }\n    *puVar14 = (byte *)((int)ppuVar21 + 1);\n    puVar29 = (uint *)(uint)*(byte *)ppuVar21;\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if (puVar29 != (uint *)0x0) goto LAB_0001558c;\n    uVar15 = 0;\n    goto LAB_00014f74;\n  }\nLAB_00014f5c:\n  ppuVar16 = ppuVar21;\n  if ((int)puVar29 < 1) {\nLAB_000152b8:\n    uVar15 = 0;\n    puVar29 = (uint *)0x0;\n  }\n  else {\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if ((int)puVar29 < 0x116) {\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }\n    else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }\n  }\n  goto LAB_00014f74;\nLAB_00015354:\n  do {\n    in_t3 = 1;\nLAB_00015358:\n    while( true ) {\n      ppuVar21 = (uint **)*puVar14;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n      if (ppuVar16 != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }\n    in_t3 = 0;\n  } while (uVar15 == 0x2b);\n  ppuVar21 = (uint **)*puVar14;\nLAB_000153dc:\n  ppuVar16 = (uint **)0x0;\n  puVar29 = (uint *)0x0;\n  in_t5 = 0xffffffff;\n  uVar18 = 0x30;\n  in_t8 = 10;\n  ppuVar28 = ppuVar21;\nLAB_000153f8:\n  if (in_t3 == 0xffffffff) {\n    uVar22 = 0x30 - uVar15;\n  }\n  uVar15 = (int)uVar22 >> 0x1f;\n  puVar17 = (uint *)((int)puVar29 + uVar22);\n  in_t2 = (uint *)((int)ppuVar16 + (puVar17 < puVar29) + uVar15);\n  in_t4 = (uint **)((uint)in_t2 ^ uVar15);\n  ppuVar16 = (uint **)((uint)in_t4 & ~((uint)ppuVar16 ^ uVar15));\n  if ((int)ppuVar16 < 0) goto LAB_00017ad0;\n  uVar15 = (uint)*(byte *)((int)ppuVar28 + 1);\n  uVar22 = uVar15 - 0x30;\n  in_t4 = (uint **)((int)ppuVar28 + 1);\n  if (uVar22 < 10) goto LAB_00015528;\n  ppuVar16 = (uint **)0xfffffffd;\n  if (((*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c) ||\n     (puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29)) {\n    *puVar14 = in_t4;\n    uVar15 = 0x13;\n    apuStack_5e8[0] = (uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_);\n    puVar29 = (uint *)0x112;\n    if (in_t3 == 0) {\n      uVar15 = 0x14;\n    }\n    iStack_660 = (int)in_t4 - (int)ppuVar21;\n    if (in_t3 == 0) {\n      puVar29 = (uint *)0x113;\n    }\n    puVar19 = (uint *)((int)puVar31 + uVar15);\n    puStack_65c = in_t2;\n    puStack_630 = puVar17;\n    goto LAB_00014f74;\n  }\n  in_t2 = (uint *)((int)in_t2 + (uint)(puVar17 + -0x20000000 < puVar17));\n  iVar9 = 8;\n  ppuVar21 = ppuVar16;\n  if (in_t2 != (uint *)0x0) goto LAB_00017ae0;\n  in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 3);\n  ppuVar28 = (uint **)((int)ppuVar28 + 3);\n  ppuVar21 = in_t0 + -0xc;\n  ppuVar16 = (uint **)((int)puVar29 * 4);\n  do {\n    puVar29 = (uint *)((int)((int)ppuVar16 + (int)puVar29) * 2);\n    if (ppuVar21 < &DAT_0000000a) {\n      in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);\n      puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n      ppuVar21 = in_t0 + -0xc;\n    }\n    iVar9 = iVar9 + -1;\n    ppuVar16 = (uint **)((int)puVar29 << 2);\n  } while (iVar9 != 0);\n  in_t2 = puVar17;\n  if (in_t3 == 0xffffffff) {\n    ppuVar11 = in_t0;\n    if (ppuVar21 < &DAT_0000000a) {\n      do {\n        if (ppuVar11 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar11 = ppuVar16;\n      } while (ppuVar16 + -0xc <= &DAT_00000009);\n    }\nLAB_00015c20:\n    if (puVar29 != (uint *)0x0) {\n      in_t2 = (uint *)((int)puVar17 + -1);\n      ppuVar21 = ppuVar16;\n      if (puVar17 == (uint *)0x80000000) {\nLAB_00017ae0:\n        ppuVar16 = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }\n    uVar15 = 0x15;\n    apuStack_5e8[1] = puVar29;\n    apuStack_5e8[0] = in_t2;\n    puVar29 = (uint *)0x114;\n    *puVar14 = ppuVar28;\n    puVar19 = (uint *)((int)puVar31 + 0x15);\n    goto LAB_00014f74;\n  }\n  if (ppuVar21 < &DAT_0000000a) {\nLAB_000154dc:\n    do {\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    } while ((int)(char)*(byte *)ppuVar28 - 0x30U < 10);\n    if (in_t3 == 0xffffffff) goto LAB_00015c20;\n  }\n  apuStack_5e8[0] = puVar17;\n  uVar15 = 0x16;\n  apuStack_5e8[1] = puVar29;\n  puVar29 = (uint *)0x115;\n  *puVar14 = ppuVar28;\n  if (in_t3 != 0) {\n    uVar15 = 0x15;\n    puVar29 = (uint *)0x114;\n  }\n  puVar19 = (uint *)((int)puVar31 + uVar15);\nLAB_00014f74:\n  psVar27 = psVar32;\n  if ((uint *)0x70 < puVar19) goto LAB_0001504c;\n  iVar9 = *(int *)(puVar33 + 0x23270);\n  if ((int)(char)*(byte *)((int)puVar19 + iVar30) != uVar15) goto LAB_00015050;\n  puVar25 = (uint *)(uint)*(byte *)((int)puVar19 + iVar8);\n  if (puVar25 == (uint *)0x0) {\n    puStack_66c = auStack_5b0;\n    puVar25 = puVar13 + 0xe;\n    puVar31 = puStack_66c;\n    do {\n      puVar17 = puVar31;\n      puVar19 = puVar25;\n      puVar25 = puVar19 + 4;\n      uVar22 = puVar19[1];\n      uVar15 = puVar19[2];\n      uVar18 = puVar19[3];\n      *puVar17 = *puVar19;\n      puVar17[1] = uVar22;\n      puVar17[2] = uVar15;\n      puVar17[3] = uVar18;\n      puVar31 = puVar17 + 4;\n    } while (puVar25 != puVar13 + 0x1a);\n    uVar18 = puVar19[5];\n    iVar10 = -0x1c;\n    puVar17[4] = *puVar25;\n    puVar17[5] = uVar18;\n    puStack_674 = (uint *)puVar13[0x13];\n    in_t3 = puVar13[0x11];\n    in_t2 = (uint *)puVar13[0x10];\n    unaff_s6 = (short *)puVar13[0x12];\n    ppuVar28 = (uint **)puVar13[0x15];\n    in_t0 = (uint **)puVar13[0x14];\n    in_t5 = puVar13[0x17];\n    in_t4 = (uint **)puVar13[0x16];\n    uVar18 = puVar13[0x18];\n    in_t6 = puVar13[0x19];\n    in_t8 = puVar13[0x1a];\n    iVar9 = 0;\n    goto LAB_00015adc;\n  }\n  if (iStack_670 != 0) {\n    iStack_670 = iStack_670 + -1;\n  }\n  puVar13 = puVar13 + 0xe;\n  in_t0 = apuStack_5b8;\n  apuStack_5e8[3] = puStack_630;\n  apuStack_5e8[2] = puStack_65c;\n  iStack_5d8 = iStack_660;\n  ppuVar21 = apuStack_5e8;\n  puVar29 = puVar13;\n  do {\n    puVar31 = puVar29;\n    ppuVar11 = ppuVar21;\n    ppuVar21 = ppuVar11 + 4;\n    puVar19 = ppuVar11[1];\n    ppuVar16 = (uint **)ppuVar11[2];\n    puVar29 = ppuVar11[3];\n    *puVar31 = (uint)*ppuVar11;\n    puVar31[1] = (uint)puVar19;\n    puVar31[2] = (uint)ppuVar16;\n    puVar31[3] = (uint)puVar29;\n    puVar29 = puVar31 + 4;\n  } while (ppuVar21 != in_t0);\n  puVar29 = (uint *)0xfffffffe;\n  puVar19 = ppuVar11[5];\n  puVar31[4] = (uint)*ppuVar21;\n  puVar31[5] = (uint)puVar19;\nLAB_00015014:\n  psVar27 = psVar32 + 1;\n  psVar32[1] = (short)puVar25;\n  if (&sStack_552 <= psVar27) {\n    iVar9 = 2;\nLAB_00015278:\n    do {\n      if (iStack_dc == *piVar7) {\n        return iVar9;\n      }\n      iVar9 = iStack_dc;\n      uVar5 = (**(code **)(puVar33 + 0x23488))();\n      bVar2 = ppuVar16 == (uint **)0x0;\n      puVar14[0x10] = uVar5;\n      puVar14[0x11] = iVar9;\n      if (!bVar2) {\n        ppuVar16 = (uint **)puVar13[3];\n        if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }\n        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];\n        puVar14[0xb] = -(int)ppuVar16;\n        if (!bVar2) goto code_r0x00016f40;\n      }\n      iVar9 = 1;\n    } while( true );\n  }\n  if (puVar25 == (uint *)0xc) {\n    iVar9 = 0;\n    goto LAB_00015278;\n  }\n  puVar31 = (uint *)(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4);\n  ppuVar21 = ppuVar16;\n  psVar32 = psVar27;\n  if (puVar31 == (uint *)0xffffffa3) {\nLAB_0001504c:\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    psVar32 = psVar27;\nLAB_00015050:\n    uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370);\n    if (uVar15 != 0) {\n      uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);\n      puVar19 = puVar13 + (1 - uVar22) * 0xe;\n      puVar25 = puVar19;\n      puVar31 = auStack_5b0;\n      do {\n        puVar20 = puVar31;\n        puVar17 = puVar25;\n        puVar25 = puVar17 + 4;\n        uVar24 = puVar17[1];\n        uVar23 = puVar17[2];\n        uVar18 = puVar17[3];\n        *puVar20 = *puVar17;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar18;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);\n      uVar18 = puVar17[5];\n      uVar23 = uVar15 - 4 & 0xff;\n      puVar20[4] = *puVar25;\n      puVar20[5] = uVar18;\n      puStack_674 = (uint *)puVar19[5];\n      in_t3 = puVar19[3];\n      in_t2 = (uint *)puVar19[2];\n      unaff_s6 = (short *)puVar19[4];\n      ppuVar28 = (uint **)puVar19[7];\n      in_t0 = (uint **)puVar19[6];\n      in_t5 = puVar19[9];\n      in_t4 = (uint **)puVar19[8];\n      uVar18 = puVar19[10];\n      in_t6 = puVar19[0xb];\n      in_t8 = puVar19[0xc];\n      if (uVar23 < 0x58) {\n                    \n                    \n        iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();\n        return iVar6;\n      }\n      psVar32 = psVar32 + -uVar22;\n      puVar13 = puVar13 + uVar22 * -0xe;\n      iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;\n      iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);\n      puStack_66c = auStack_5b0;\n      goto LAB_00015adc;\n    }\n    if (iStack_670 == 3) {\n      if ((int)puVar29 < 1) {\n        iVar9 = 1;\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }\n    }\n    ppuVar16 = (uint **)0xffffffa3;\n    while ((((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0))) {\n      iVar9 = 1;\n      psVar27 = psVar32;\n      if (psVar32 == asStack_578) goto LAB_00015278;\n      psVar32 = psVar32 + -1;\n      puVar25 = (uint *)(int)*psVar32;\n      puVar13 = puVar13 + -0xe;\n    }\n    puVar13 = puVar13 + 0xe;\n    in_t0 = apuStack_5b8;\n    apuStack_5e8[3] = puStack_630;\n    apuStack_5e8[2] = puStack_65c;\n    iStack_5d8 = iStack_660;\n    ppuVar21 = apuStack_5e8;\n    puVar31 = puVar13;\n    do {\n      puVar19 = puVar31;\n      ppuVar11 = ppuVar21;\n      ppuVar21 = ppuVar11 + 4;\n      puVar20 = ppuVar11[1];\n      puVar17 = ppuVar11[2];\n      puVar31 = ppuVar11[3];\n      *puVar19 = (uint)*ppuVar11;\n      puVar19[1] = (uint)puVar20;\n      puVar19[2] = (uint)puVar17;\n      puVar19[3] = (uint)puVar31;\n      puVar31 = puVar19 + 4;\n    } while (ppuVar21 != in_t0);\n    ppuVar16 = (uint **)0x3;\n    puVar31 = ppuVar11[5];\n    iStack_670 = 3;\n    puVar19[4] = (uint)*ppuVar21;\n    puVar19[5] = (uint)puVar31;\n    goto LAB_00015014;\n  }\n  goto LAB_00014f50;\nLAB_00015528:\n  puVar29 = (uint *)((int)puVar17 >> 0x1f);\n  bVar2 = false;\n  if (puVar29 == in_t2) {\n    in_t2 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2);\n    ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n  }\n  else {\n    ppuVar28 = (uint **)(ZEXT48(in_t2) * 10);\n    unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20);\n    in_t6 = (int)puVar17 * 4;\n    puStack_674 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)puVar17 * 10);\n    psVar27 = unaff_s6;\n    if ((int)in_t2 < 0) {\n      psVar27 = unaff_s6 + -5;\n    }\n    ppuVar16 = (uint **)((int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2));\n    if ((int)ppuVar16 >> 0x1f != (uint)(ppuVar16 < ppuVar28) + (int)psVar27) {\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n    }\n  }\n  puVar29 = (uint *)((int)puVar17 * 10);\n  ppuVar28 = in_t4;\n  if (bVar2) goto LAB_00017ad0;\n  goto LAB_000153f8;\nLAB_00017ad0:\n  uVar15 = 2;\n  puVar29 = (uint *)0x3f;\n  puVar19 = (uint *)((int)puVar31 + 2);\n  goto LAB_00014f74;\n  while( true ) {\n    if (bVar12 == 0x28) {\n      iVar9 = iVar9 + 1;\n    }\n    else if (bVar12 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }\n    if (iVar9 == 0) break;\nLAB_000157a8:\n    ppuVar16 = ppuVar21;\n    ppuVar21 = (uint **)((int)ppuVar16 + 1);\n    *puVar14 = ppuVar21;\n    bVar12 = *(byte *)ppuVar16;\n    if (bVar12 == 0) goto LAB_000152b8;\n  }\n  bVar12 = *(byte *)((int)ppuVar16 + 1);\n  goto LAB_000152f0;\ncode_r0x00016f40:\n  puVar25 = puVar13 + 4;\n  puVar13 = puVar13 + -0x2a;\n  psVar32 = psVar27 + -3;\n  iVar10 = 0xe;\n  puVar14[0xc] = *puVar25;\n  iVar9 = -0x5d;\nLAB_00015adc:\n  puVar13 = puVar13 + 0xe;\n  puStack_5a8 = in_t2;\n  in_t2 = auStack_580;\n  uStack_5a4 = in_t3;\n  apsStack_5a0[1] = (short *)puStack_674;\n  apsStack_5a0[0] = unaff_s6;\n  ppuStack_594 = ppuVar28;\n  ppuStack_598 = in_t0;\n  uStack_58c = in_t5;\n  ppuStack_590 = in_t4;\n  uStack_588 = uVar18;\n  uStack_584 = in_t6;\n  auStack_580[0] = in_t8;\n  puVar25 = puStack_66c;\n  puVar31 = puVar13;\n  do {\n    puVar17 = puVar31;\n    puVar19 = puVar25;\n    in_t0 = (uint **)*puVar19;\n    puVar25 = puVar19 + 4;\n    uVar23 = puVar19[1];\n    uVar22 = puVar19[2];\n    uVar15 = puVar19[3];\n    *puVar17 = (uint)in_t0;\n    puVar17[1] = uVar23;\n    puVar17[2] = uVar22;\n    puVar17[3] = uVar15;\n    puVar31 = puVar17 + 4;\n  } while (puVar25 != in_t2);\n  ppuVar16 = (uint **)(int)*psVar32;\n  uVar15 = puVar19[5];\n  pbVar26 = (byte *)((int)ppuVar16 + iVar9);\n  puVar17[4] = *puVar25;\n  puVar17[5] = uVar15;\n  if ((pbVar26 < (byte *)0x71) && ((uint **)(int)(char)pbVar26[iVar30] == ppuVar16)) {\n    puVar25 = (uint *)(uint)pbVar26[iVar8];\n  }\n  else {\n    puVar25 = (uint *)(int)*(char *)(iVar10 + iVar6 + 0x6338);\n  }\n  goto LAB_00015014;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "byte bVar12;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint **ppuVar11;" type_identifier (pointer_declarator "**ppuVar11" * (pointer_declarator "*ppuVar11" * identifier)) ;) (declaration "uint *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint **ppuVar16;" type_identifier (pointer_declarator "**ppuVar16" * (pointer_declarator "*ppuVar16" * identifier)) ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "uint *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "uint **ppuVar21;" type_identifier (pointer_declarator "**ppuVar21" * (pointer_declarator "*ppuVar21" * identifier)) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "uint **in_t0;" type_identifier (pointer_declarator "**in_t0" * (pointer_declarator "*in_t0" * identifier)) ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "uint *in_t2;" type_identifier (pointer_declarator "*in_t2" * identifier) ;) (declaration "uint in_t3;" type_identifier identifier ;) (declaration "uint **in_t4;" type_identifier (pointer_declarator "**in_t4" * (pointer_declarator "*in_t4" * identifier)) ;) (declaration "uint in_t5;" type_identifier identifier ;) (declaration "uint in_t6;" type_identifier identifier ;) (declaration "uint *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "byte *pbVar26;" type_identifier (pointer_declarator "*pbVar26" * identifier) ;) (declaration "short *psVar27;" (sized_type_specifier "short" short) (pointer_declarator "*psVar27" * identifier) ;) (declaration "uint **ppuVar28;" type_identifier (pointer_declarator "**ppuVar28" * (pointer_declarator "*ppuVar28" * identifier)) ;) (declaration "uint *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "undefined *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "uint *puVar31;" type_identifier (pointer_declarator "*puVar31" * identifier) ;) (declaration "short *psVar32;" (sized_type_specifier "short" short) (pointer_declarator "*psVar32" * identifier) ;) (declaration "short *unaff_s6;" (sized_type_specifier "short" short) (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "uint in_t8;" type_identifier identifier ;) (declaration "undefined *puVar33;" type_identifier (pointer_declarator "*puVar33" * identifier) ;) (declaration "code *pcVar34;" type_identifier (pointer_declarator "*pcVar34" * identifier) ;) (declaration "uint *puStack_674;" type_identifier (pointer_declarator "*puStack_674" * identifier) ;) (declaration "int iStack_670;" primitive_type identifier ;) (declaration "uint *puStack_66c;" type_identifier (pointer_declarator "*puStack_66c" * identifier) ;) (declaration "int iStack_660;" primitive_type identifier ;) (declaration "uint *puStack_65c;" type_identifier (pointer_declarator "*puStack_65c" * identifier) ;) (declaration "uint *puStack_630;" type_identifier (pointer_declarator "*puStack_630" * identifier) ;) (declaration "uint *apuStack_5e8 [4];" type_identifier (pointer_declarator "*apuStack_5e8 [4]" * (array_declarator "apuStack_5e8 [4]" identifier [ number_literal ])) ;) (declaration "int iStack_5d8;" primitive_type identifier ;) (declaration "uint *apuStack_5b8 [2];" type_identifier (pointer_declarator "*apuStack_5b8 [2]" * (array_declarator "apuStack_5b8 [2]" identifier [ number_literal ])) ;) (declaration "uint auStack_5b0 [2];" type_identifier (array_declarator "auStack_5b0 [2]" identifier [ number_literal ]) ;) (declaration "uint *puStack_5a8;" type_identifier (pointer_declarator "*puStack_5a8" * identifier) ;) (declaration "uint uStack_5a4;" type_identifier identifier ;) (declaration "short *apsStack_5a0 [2];" (sized_type_specifier "short" short) (pointer_declarator "*apsStack_5a0 [2]" * (array_declarator "apsStack_5a0 [2]" identifier [ number_literal ])) ;) (declaration "uint **ppuStack_598;" type_identifier (pointer_declarator "**ppuStack_598" * (pointer_declarator "*ppuStack_598" * identifier)) ;) (declaration "uint **ppuStack_594;" type_identifier (pointer_declarator "**ppuStack_594" * (pointer_declarator "*ppuStack_594" * identifier)) ;) (declaration "uint **ppuStack_590;" type_identifier (pointer_declarator "**ppuStack_590" * (pointer_declarator "*ppuStack_590" * identifier)) ;) (declaration "uint uStack_58c;" type_identifier identifier ;) (declaration "uint uStack_588;" type_identifier identifier ;) (declaration "uint uStack_584;" type_identifier identifier ;) (declaration "uint auStack_580 [2];" type_identifier (array_declarator "auStack_580 [2]" identifier [ number_literal ]) ;) (declaration "short asStack_578 [19];" (sized_type_specifier "short" short) (array_declarator "asStack_578 [19]" identifier [ number_literal ]) ;) (declaration "short sStack_552;" (sized_type_specifier "short" short) identifier ;) (declaration "uint auStack_550 [279];" type_identifier (array_declarator "auStack_550 [279]" identifier [ number_literal ]) ;) (declaration "byte abStack_f1 [21];" type_identifier (array_declarator "abStack_f1 [21]" identifier [ number_literal ]) ;) (declaration "int iStack_dc;" primitive_type identifier ;) (declaration "int iStack_d8;" primitive_type identifier ;) (declaration "uint **ppuStack_d4;" type_identifier (pointer_declarator "**ppuStack_d4" * (pointer_declarator "*ppuStack_d4" * identifier)) ;) (declaration "undefined *puStack_d0;" type_identifier (pointer_declarator "*puStack_d0" * identifier) ;) (declaration "undefined *puStack_cc;" type_identifier (pointer_declarator "*puStack_cc" * identifier) ;) (declaration "undefined *puStack_c8;" type_identifier (pointer_declarator "*puStack_c8" * identifier) ;) (declaration "undefined1 auStack_80 [100];" type_identifier (array_declarator "auStack_80 [100]" identifier [ number_literal ]) ;) (declaration "int local_1c;" primitive_type identifier ;) (expression_statement "puVar3 = PTR___stack_chk_guard_00038350;" (assignment_expression "puVar3 = PTR___stack_chk_guard_00038350" identifier = identifier) ;) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_00038350;" (assignment_expression "local_1c = *(int *)PTR___stack_chk_guard_00038350" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00038350" * (cast_expression "(int *)PTR___stack_chk_guard_00038350" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x50a0,5);" (assignment_expression "uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x50a0,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x50a0,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00038338)" ( (pointer_expression "*(code *)PTR_dcgettext_00038338" * (cast_expression "(code *)PTR_dcgettext_00038338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_LAB_0003811c + 0x50a0,5)" ( number_literal , (binary_expression "PTR_LAB_0003811c + 0x50a0" identifier + number_literal) , number_literal )))) ;) (expression_statement "FUN_00014188(uVar5,param_1);" (call_expression "FUN_00014188(uVar5,param_1)" identifier (argument_list "(uVar5,param_1)" ( identifier , identifier ))) ;) (expression_statement "puVar4 = PTR_stderr_00038360;" (assignment_expression "puVar4 = PTR_stderr_00038360" identifier = identifier) ;) (if_statement "if (*(int *)(param_2 + 0x9c) == 0) {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb4) != *(char *)(param_2 + 0xbb)) goto LAB_00014a30;\nLAB_00014c7c:\n    uVar18 = 0;\n  }\n  else {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb6) == '\0') {\n      in_t3 = *(uint *)(param_2 + 0x3c);\n      in_t2 = *(uint **)(param_2 + 0x38);\n      in_t0 = *(uint ***)(param_2 + 0x28);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      *(undefined1 *)(param_2 + 0xb6) = 1;\n      if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar18 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) goto LAB_00014c7c;\nLAB_00014a30:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);\n    in_t0 = *(uint ***)(param_2 + 0x28);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n    uVar18 = 1;\n    ppuVar28 = *(uint ***)puVar4;\n    *(undefined1 *)(param_2 + 0xbb) = *(undefined1 *)(param_2 + 0xb4);\n  }" if (parenthesized_expression "(*(int *)(param_2 + 0x9c) == 0)" ( (binary_expression "*(int *)(param_2 + 0x9c) == 0" (pointer_expression "*(int *)(param_2 + 0x9c)" * (cast_expression "(int *)(param_2 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x9c)" ( (binary_expression "param_2 + 0x9c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb4) != *(char *)(param_2 + 0xbb)) goto LAB_00014a30;\nLAB_00014c7c:\n    uVar18 = 0;\n  }" { (expression_statement "ppuVar28 = *(uint ***)PTR_stderr_00038360;" (assignment_expression "ppuVar28 = *(uint ***)PTR_stderr_00038360" identifier = (pointer_expression "*(uint ***)PTR_stderr_00038360" * (cast_expression "(uint ***)PTR_stderr_00038360" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (if_statement "if (*(char *)(param_2 + 0xb4) != *(char *)(param_2 + 0xbb)) goto LAB_00014a30;" if (parenthesized_expression "(*(char *)(param_2 + 0xb4) != *(char *)(param_2 + 0xbb))" ( (binary_expression "*(char *)(param_2 + 0xb4) != *(char *)(param_2 + 0xbb)" (pointer_expression "*(char *)(param_2 + 0xb4)" * (cast_expression "(char *)(param_2 + 0xb4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb4)" ( (binary_expression "param_2 + 0xb4" identifier + number_literal) )))) != (pointer_expression "*(char *)(param_2 + 0xbb)" * (cast_expression "(char *)(param_2 + 0xbb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xbb)" ( (binary_expression "param_2 + 0xbb" identifier + number_literal) ))))) )) (goto_statement "goto LAB_00014a30;" goto statement_identifier ;)) (labeled_statement "LAB_00014c7c:\n    uVar18 = 0;" statement_identifier : (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;)) }) (else_clause "else {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb6) == '\0') {\n      in_t3 = *(uint *)(param_2 + 0x3c);\n      in_t2 = *(uint **)(param_2 + 0x38);\n      in_t0 = *(uint ***)(param_2 + 0x28);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      *(undefined1 *)(param_2 + 0xb6) = 1;\n      if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar18 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) goto LAB_00014c7c;\nLAB_00014a30:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);\n    in_t0 = *(uint ***)(param_2 + 0x28);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n    uVar18 = 1;\n    ppuVar28 = *(uint ***)puVar4;\n    *(undefined1 *)(param_2 + 0xbb) = *(undefined1 *)(param_2 + 0xb4);\n  }" else (compound_statement "{\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb6) == '\0') {\n      in_t3 = *(uint *)(param_2 + 0x3c);\n      in_t2 = *(uint **)(param_2 + 0x38);\n      in_t0 = *(uint ***)(param_2 + 0x28);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      *(undefined1 *)(param_2 + 0xb6) = 1;\n      if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar18 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) goto LAB_00014c7c;\nLAB_00014a30:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);\n    in_t0 = *(uint ***)(param_2 + 0x28);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n    uVar18 = 1;\n    ppuVar28 = *(uint ***)puVar4;\n    *(undefined1 *)(param_2 + 0xbb) = *(undefined1 *)(param_2 + 0xb4);\n  }" { (expression_statement "ppuVar28 = *(uint ***)PTR_stderr_00038360;" (assignment_expression "ppuVar28 = *(uint ***)PTR_stderr_00038360" identifier = (pointer_expression "*(uint ***)PTR_stderr_00038360" * (cast_expression "(uint ***)PTR_stderr_00038360" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (if_statement "if (*(char *)(param_2 + 0xb6) == '\0') {\n      in_t3 = *(uint *)(param_2 + 0x3c);\n      in_t2 = *(uint **)(param_2 + 0x38);\n      in_t0 = *(uint ***)(param_2 + 0x28);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      *(undefined1 *)(param_2 + 0xb6) = 1;\n      if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar18 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) goto LAB_00014c7c;" if (parenthesized_expression "(*(char *)(param_2 + 0xb6) == '\0')" ( (binary_expression "*(char *)(param_2 + 0xb6) == '\0'" (pointer_expression "*(char *)(param_2 + 0xb6)" * (cast_expression "(char *)(param_2 + 0xb6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb6)" ( (binary_expression "param_2 + 0xb6" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      in_t3 = *(uint *)(param_2 + 0x3c);\n      in_t2 = *(uint **)(param_2 + 0x38);\n      in_t0 = *(uint ***)(param_2 + 0x28);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      *(undefined1 *)(param_2 + 0xb6) = 1;\n      if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar18 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }" { (expression_statement "in_t3 = *(uint *)(param_2 + 0x3c);" (assignment_expression "in_t3 = *(uint *)(param_2 + 0x3c)" identifier = (pointer_expression "*(uint *)(param_2 + 0x3c)" * (cast_expression "(uint *)(param_2 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3c)" ( (binary_expression "param_2 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "in_t2 = *(uint **)(param_2 + 0x38);" (assignment_expression "in_t2 = *(uint **)(param_2 + 0x38)" identifier = (pointer_expression "*(uint **)(param_2 + 0x38)" * (cast_expression "(uint **)(param_2 + 0x38)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x38)" ( (binary_expression "param_2 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "in_t0 = *(uint ***)(param_2 + 0x28);" (assignment_expression "in_t0 = *(uint ***)(param_2 + 0x28)" identifier = (pointer_expression "*(uint ***)(param_2 + 0x28)" * (cast_expression "(uint ***)(param_2 + 0x28)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);" (call_expression "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" ( (pointer_expression "*(code *)PTR___fprintf_chk_00038280" * (cast_expression "(code *)PTR___fprintf_chk_00038280" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppuVar28,1,PTR_LAB_0003811c + 0x5138)" ( identifier , number_literal , (binary_expression "PTR_LAB_0003811c + 0x5138" identifier + number_literal) ))) ;) (expression_statement "*(undefined1 *)(param_2 + 0xb6) = 1;" (assignment_expression "*(undefined1 *)(param_2 + 0xb6) = 1" (pointer_expression "*(undefined1 *)(param_2 + 0xb6)" * (cast_expression "(undefined1 *)(param_2 + 0xb6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb6)" ( (binary_expression "param_2 + 0xb6" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar18 = 1;\n        goto LAB_00014a80;\n      }" if (parenthesized_expression "(*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb))" ( (binary_expression "*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)" (pointer_expression "*(char *)(param_2 + 0xb4)" * (cast_expression "(char *)(param_2 + 0xb4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb4)" ( (binary_expression "param_2 + 0xb4" identifier + number_literal) )))) == (pointer_expression "*(char *)(param_2 + 0xbb)" * (cast_expression "(char *)(param_2 + 0xbb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xbb)" ( (binary_expression "param_2 + 0xbb" identifier + number_literal) ))))) )) (compound_statement "{\n        ppuVar28 = *(uint ***)puVar4;\n        uVar18 = 1;\n        goto LAB_00014a80;\n      }" { (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00014a80;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);" (call_expression "(*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4)" (parenthesized_expression "(*(code *)PTR_fputc_00038298)" ( (pointer_expression "*(code *)PTR_fputc_00038298" * (cast_expression "(code *)PTR_fputc_00038298" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x20,*(undefined4 *)puVar4)" ( number_literal , (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) }) (else_clause "else if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) goto LAB_00014c7c;" else (if_statement "if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) goto LAB_00014c7c;" if (parenthesized_expression "(*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb))" ( (binary_expression "*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)" (pointer_expression "*(char *)(param_2 + 0xb4)" * (cast_expression "(char *)(param_2 + 0xb4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb4)" ( (binary_expression "param_2 + 0xb4" identifier + number_literal) )))) == (pointer_expression "*(char *)(param_2 + 0xbb)" * (cast_expression "(char *)(param_2 + 0xbb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xbb)" ( (binary_expression "param_2 + 0xbb" identifier + number_literal) ))))) )) (goto_statement "goto LAB_00014c7c;" goto statement_identifier ;)))) (labeled_statement "LAB_00014a30:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);" statement_identifier : (expression_statement "uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);" (assignment_expression "uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00038338)" ( (pointer_expression "*(code *)PTR_dcgettext_00038338" * (cast_expression "(code *)PTR_dcgettext_00038338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_LAB_0003811c + 0x5158,5)" ( number_literal , (binary_expression "PTR_LAB_0003811c + 0x5158" identifier + number_literal) , number_literal )))) ;)) (expression_statement "in_t0 = *(uint ***)(param_2 + 0x28);" (assignment_expression "in_t0 = *(uint ***)(param_2 + 0x28)" identifier = (pointer_expression "*(uint ***)(param_2 + 0x28)" * (cast_expression "(uint ***)(param_2 + 0x28)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);" (call_expression "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" ( (pointer_expression "*(code *)PTR___fprintf_chk_00038280" * (cast_expression "(code *)PTR___fprintf_chk_00038280" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppuVar28,1,uVar5)" ( identifier , number_literal , identifier ))) ;) (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" identifier = number_literal) ;) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (expression_statement "*(undefined1 *)(param_2 + 0xbb) = *(undefined1 *)(param_2 + 0xb4);" (assignment_expression "*(undefined1 *)(param_2 + 0xbb) = *(undefined1 *)(param_2 + 0xb4)" (pointer_expression "*(undefined1 *)(param_2 + 0xbb)" * (cast_expression "(undefined1 *)(param_2 + 0xbb)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xbb)" ( (binary_expression "param_2 + 0xbb" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(param_2 + 0xb4)" * (cast_expression "(undefined1 *)(param_2 + 0xb4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb4)" ( (binary_expression "param_2 + 0xb4" identifier + number_literal) ))))) ;) }))) (labeled_statement "LAB_00014a80:\n  if ((*(int *)(param_2 + 0xac) == 0) || (*(char *)(param_2 + 0xb9) != '\0')) {\n    if ((*(int *)(param_2 + 0xa0) != 0) && (*(char *)(param_2 + 0xb7) == '\0')) {\n      if (uVar18 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);\n      uVar5 = FUN_00014838(param_2,auStack_80);\n      in_t0 = *(uint ***)(param_2 + 8);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar18 = 1;\n      *(undefined1 *)(param_2 + 0xb7) = 1;\n    }\n  }\n  else {\n    in_t3 = *(uint *)(param_2 + 0x54);\n    in_t2 = *(uint **)(param_2 + 0x50);\n    in_t0 = *(uint ***)(param_2 + 0x48);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168);\n    if (*(int *)(param_2 + 0x5c) != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }\n    ppuVar28 = *(uint ***)puVar4;\n    if (*(int *)(param_2 + 0x1c) == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    *(undefined1 *)(param_2 + 0xb9) = 1;\n    if (*(int *)(param_2 + 0xa0) == 0) {\n      uVar18 = 1;\n    }\n    else {\n      uVar18 = (uint)*(byte *)(param_2 + 0xb7);\n      if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }\n  }" statement_identifier : (if_statement "if ((*(int *)(param_2 + 0xac) == 0) || (*(char *)(param_2 + 0xb9) != '\0')) {\n    if ((*(int *)(param_2 + 0xa0) != 0) && (*(char *)(param_2 + 0xb7) == '\0')) {\n      if (uVar18 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);\n      uVar5 = FUN_00014838(param_2,auStack_80);\n      in_t0 = *(uint ***)(param_2 + 8);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar18 = 1;\n      *(undefined1 *)(param_2 + 0xb7) = 1;\n    }\n  }\n  else {\n    in_t3 = *(uint *)(param_2 + 0x54);\n    in_t2 = *(uint **)(param_2 + 0x50);\n    in_t0 = *(uint ***)(param_2 + 0x48);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168);\n    if (*(int *)(param_2 + 0x5c) != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }\n    ppuVar28 = *(uint ***)puVar4;\n    if (*(int *)(param_2 + 0x1c) == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    *(undefined1 *)(param_2 + 0xb9) = 1;\n    if (*(int *)(param_2 + 0xa0) == 0) {\n      uVar18 = 1;\n    }\n    else {\n      uVar18 = (uint)*(byte *)(param_2 + 0xb7);\n      if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }\n  }" if (parenthesized_expression "((*(int *)(param_2 + 0xac) == 0) || (*(char *)(param_2 + 0xb9) != '\0'))" ( (binary_expression "(*(int *)(param_2 + 0xac) == 0) || (*(char *)(param_2 + 0xb9) != '\0')" (parenthesized_expression "(*(int *)(param_2 + 0xac) == 0)" ( (binary_expression "*(int *)(param_2 + 0xac) == 0" (pointer_expression "*(int *)(param_2 + 0xac)" * (cast_expression "(int *)(param_2 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xac)" ( (binary_expression "param_2 + 0xac" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(char *)(param_2 + 0xb9) != '\0')" ( (binary_expression "*(char *)(param_2 + 0xb9) != '\0'" (pointer_expression "*(char *)(param_2 + 0xb9)" * (cast_expression "(char *)(param_2 + 0xb9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb9)" ( (binary_expression "param_2 + 0xb9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    if ((*(int *)(param_2 + 0xa0) != 0) && (*(char *)(param_2 + 0xb7) == '\0')) {\n      if (uVar18 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);\n      uVar5 = FUN_00014838(param_2,auStack_80);\n      in_t0 = *(uint ***)(param_2 + 8);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar18 = 1;\n      *(undefined1 *)(param_2 + 0xb7) = 1;\n    }\n  }" { (if_statement "if ((*(int *)(param_2 + 0xa0) != 0) && (*(char *)(param_2 + 0xb7) == '\0')) {\n      if (uVar18 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);\n      uVar5 = FUN_00014838(param_2,auStack_80);\n      in_t0 = *(uint ***)(param_2 + 8);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar18 = 1;\n      *(undefined1 *)(param_2 + 0xb7) = 1;\n    }" if (parenthesized_expression "((*(int *)(param_2 + 0xa0) != 0) && (*(char *)(param_2 + 0xb7) == '\0'))" ( (binary_expression "(*(int *)(param_2 + 0xa0) != 0) && (*(char *)(param_2 + 0xb7) == '\0')" (parenthesized_expression "(*(int *)(param_2 + 0xa0) != 0)" ( (binary_expression "*(int *)(param_2 + 0xa0) != 0" (pointer_expression "*(int *)(param_2 + 0xa0)" * (cast_expression "(int *)(param_2 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xa0)" ( (binary_expression "param_2 + 0xa0" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(char *)(param_2 + 0xb7) == '\0')" ( (binary_expression "*(char *)(param_2 + 0xb7) == '\0'" (pointer_expression "*(char *)(param_2 + 0xb7)" * (cast_expression "(char *)(param_2 + 0xb7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb7)" ( (binary_expression "param_2 + 0xb7" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      if (uVar18 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);\n      uVar5 = FUN_00014838(param_2,auStack_80);\n      in_t0 = *(uint ***)(param_2 + 8);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar18 = 1;\n      *(undefined1 *)(param_2 + 0xb7) = 1;\n    }" { (if_statement "if (uVar18 != 0) goto LAB_00014d08;" if (parenthesized_expression "(uVar18 != 0)" ( (binary_expression "uVar18 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00014d08;" goto statement_identifier ;)) (labeled_statement "LAB_00014ab8:\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);" statement_identifier : (expression_statement "unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);" (assignment_expression "unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5)" identifier = (cast_expression "(undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00038338)" ( (pointer_expression "*(code *)PTR_dcgettext_00038338" * (cast_expression "(code *)PTR_dcgettext_00038338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_LAB_0003811c + 0x518c,5)" ( number_literal , (binary_expression "PTR_LAB_0003811c + 0x518c" identifier + number_literal) , number_literal ))))) ;)) (expression_statement "uVar5 = FUN_00014838(param_2,auStack_80);" (assignment_expression "uVar5 = FUN_00014838(param_2,auStack_80)" identifier = (call_expression "FUN_00014838(param_2,auStack_80)" identifier (argument_list "(param_2,auStack_80)" ( identifier , identifier )))) ;) (expression_statement "in_t0 = *(uint ***)(param_2 + 8);" (assignment_expression "in_t0 = *(uint ***)(param_2 + 8)" identifier = (pointer_expression "*(uint ***)(param_2 + 8)" * (cast_expression "(uint ***)(param_2 + 8)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);" (call_expression "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" ( (pointer_expression "*(code *)PTR___fprintf_chk_00038280" * (cast_expression "(code *)PTR___fprintf_chk_00038280" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppuVar28,1,unaff_s4,uVar5)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" identifier = number_literal) ;) (expression_statement "*(undefined1 *)(param_2 + 0xb7) = 1;" (assignment_expression "*(undefined1 *)(param_2 + 0xb7) = 1" (pointer_expression "*(undefined1 *)(param_2 + 0xb7)" * (cast_expression "(undefined1 *)(param_2 + 0xb7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb7)" ( (binary_expression "param_2 + 0xb7" identifier + number_literal) )))) = number_literal) ;) })) }) (else_clause "else {\n    in_t3 = *(uint *)(param_2 + 0x54);\n    in_t2 = *(uint **)(param_2 + 0x50);\n    in_t0 = *(uint ***)(param_2 + 0x48);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168);\n    if (*(int *)(param_2 + 0x5c) != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }\n    ppuVar28 = *(uint ***)puVar4;\n    if (*(int *)(param_2 + 0x1c) == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    *(undefined1 *)(param_2 + 0xb9) = 1;\n    if (*(int *)(param_2 + 0xa0) == 0) {\n      uVar18 = 1;\n    }\n    else {\n      uVar18 = (uint)*(byte *)(param_2 + 0xb7);\n      if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }\n  }" else (compound_statement "{\n    in_t3 = *(uint *)(param_2 + 0x54);\n    in_t2 = *(uint **)(param_2 + 0x50);\n    in_t0 = *(uint ***)(param_2 + 0x48);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168);\n    if (*(int *)(param_2 + 0x5c) != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }\n    ppuVar28 = *(uint ***)puVar4;\n    if (*(int *)(param_2 + 0x1c) == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    *(undefined1 *)(param_2 + 0xb9) = 1;\n    if (*(int *)(param_2 + 0xa0) == 0) {\n      uVar18 = 1;\n    }\n    else {\n      uVar18 = (uint)*(byte *)(param_2 + 0xb7);\n      if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }\n  }" { (expression_statement "in_t3 = *(uint *)(param_2 + 0x54);" (assignment_expression "in_t3 = *(uint *)(param_2 + 0x54)" identifier = (pointer_expression "*(uint *)(param_2 + 0x54)" * (cast_expression "(uint *)(param_2 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "in_t2 = *(uint **)(param_2 + 0x50);" (assignment_expression "in_t2 = *(uint **)(param_2 + 0x50)" identifier = (pointer_expression "*(uint **)(param_2 + 0x50)" * (cast_expression "(uint **)(param_2 + 0x50)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x50)" ( (binary_expression "param_2 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "in_t0 = *(uint ***)(param_2 + 0x48);" (assignment_expression "in_t0 = *(uint ***)(param_2 + 0x48)" identifier = (pointer_expression "*(uint ***)(param_2 + 0x48)" * (cast_expression "(uint ***)(param_2 + 0x48)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(param_2 + 0x48)" ( (binary_expression "param_2 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168);" (call_expression "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" ( (pointer_expression "*(code *)PTR___fprintf_chk_00038280" * (cast_expression "(code *)PTR___fprintf_chk_00038280" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168)" ( identifier , number_literal , (binary_expression "PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168" (binary_expression "PTR_LAB_0003811c + (uVar18 ^ 1)" identifier + (parenthesized_expression "(uVar18 ^ 1)" ( (binary_expression "uVar18 ^ 1" identifier ^ number_literal) ))) + number_literal) ))) ;) (if_statement "if (*(int *)(param_2 + 0x5c) != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }" if (parenthesized_expression "(*(int *)(param_2 + 0x5c) != 0)" ( (binary_expression "*(int *)(param_2 + 0x5c) != 0" (pointer_expression "*(int *)(param_2 + 0x5c)" * (cast_expression "(int *)(param_2 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x5c)" ( (binary_expression "param_2 + 0x5c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }" { (expression_statement "(*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);" (call_expression "(*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" ( (pointer_expression "*(code *)PTR___fprintf_chk_00038280" * (cast_expression "(code *)PTR___fprintf_chk_00038280" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180)" ( (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , (binary_expression "PTR_LAB_0003811c + 0x5180" identifier + number_literal) ))) ;) })) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (if_statement "if (*(int *)(param_2 + 0x1c) == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }" if (parenthesized_expression "(*(int *)(param_2 + 0x1c) == 1)" ( (binary_expression "*(int *)(param_2 + 0x1c) == 1" (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }" { (expression_statement "(*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);" (call_expression "(*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28)" (parenthesized_expression "(*(code *)PTR_fwrite_00038324)" ( (pointer_expression "*(code *)PTR_fwrite_00038324" * (cast_expression "(code *)PTR_fwrite_00038324" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28)" ( (binary_expression "PTR_LAB_0003811c + 0x5188" identifier + number_literal) , number_literal , number_literal , identifier ))) ;) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) })) (expression_statement "*(undefined1 *)(param_2 + 0xb9) = 1;" (assignment_expression "*(undefined1 *)(param_2 + 0xb9) = 1" (pointer_expression "*(undefined1 *)(param_2 + 0xb9)" * (cast_expression "(undefined1 *)(param_2 + 0xb9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb9)" ( (binary_expression "param_2 + 0xb9" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(int *)(param_2 + 0xa0) == 0) {\n      uVar18 = 1;\n    }\n    else {\n      uVar18 = (uint)*(byte *)(param_2 + 0xb7);\n      if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }" if (parenthesized_expression "(*(int *)(param_2 + 0xa0) == 0)" ( (binary_expression "*(int *)(param_2 + 0xa0) == 0" (pointer_expression "*(int *)(param_2 + 0xa0)" * (cast_expression "(int *)(param_2 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xa0)" ( (binary_expression "param_2 + 0xa0" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      uVar18 = 1;\n    }" { (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      uVar18 = (uint)*(byte *)(param_2 + 0xb7);\n      if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }" else (compound_statement "{\n      uVar18 = (uint)*(byte *)(param_2 + 0xb7);\n      if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }" { (expression_statement "uVar18 = (uint)*(byte *)(param_2 + 0xb7);" (assignment_expression "uVar18 = (uint)*(byte *)(param_2 + 0xb7)" identifier = (binary_expression "(uint)*(byte *)(param_2 + 0xb7)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(param_2 + 0xb7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb7)" ( (binary_expression "param_2 + 0xb7" identifier + number_literal) ))))) ;) (if_statement "if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }" if (parenthesized_expression "(uVar18 == 0)" ( (binary_expression "uVar18 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }" { (labeled_statement "LAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);" statement_identifier : (expression_statement "(*(code *)PTR_fputc_00038298)(0x20,ppuVar28);" (call_expression "(*(code *)PTR_fputc_00038298)(0x20,ppuVar28)" (parenthesized_expression "(*(code *)PTR_fputc_00038298)" ( (pointer_expression "*(code *)PTR_fputc_00038298" * (cast_expression "(code *)PTR_fputc_00038298" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x20,ppuVar28)" ( number_literal , identifier ))) ;)) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (goto_statement "goto LAB_00014ab8;" goto statement_identifier ;) })) }))) })))) (if_statement "if ((*(int *)(param_2 + 0xa4) == 0) || (*(char *)(param_2 + 0xb8) != '\0')) {\n    if ((*(int *)(param_2 + 0xb0) == 0) ||\n       (unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0')) {\n      if (*(char *)(param_2 + 0x98) == '\0') goto LAB_00014bb0;\n      param_2 = *(int *)(param_2 + 0x58);\n      unaff_s4 = (undefined *)(param_2 >> 0x1f);\n      if (uVar18 != 0) goto LAB_00014d8c;\n      goto LAB_00014c1c;\n    }\n    unaff_s4 = PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5130;\nLAB_00014d38:\n    uVar5 = FUN_00013f30(*(undefined4 *)(param_2 + 0x18),auStack_80);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n    *(undefined1 *)(param_2 + 0xba) = 1;\n    if (*(char *)(param_2 + 0x98) != '\0') {\n      param_2 = *(int *)(param_2 + 0x58);\n      ppuVar28 = *(uint ***)puVar4;\n      goto LAB_00014d88;\n    }\n  }\n  else {\n    (*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac,*(undefined4 *)(param_2 + 0x14));\n    *(undefined1 *)(param_2 + 0xb8) = 1;\n    if (*(int *)(param_2 + 0xb0) == 0) {\n      cVar1 = *(char *)(param_2 + 0x98);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (*(char *)(param_2 + 0xba) == '\0') {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = *(char *)(param_2 + 0x98);\n    }\n    if (cVar1 == '\0') goto LAB_00014bb0;\n    param_2 = *(int *)(param_2 + 0x58);\nLAB_00014d88:\n    unaff_s4 = (undefined *)(param_2 >> 0x1f);\nLAB_00014d8c:\n    (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n    ppuVar28 = *(uint ***)puVar4;\nLAB_00014c1c:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n  }" if (parenthesized_expression "((*(int *)(param_2 + 0xa4) == 0) || (*(char *)(param_2 + 0xb8) != '\0'))" ( (binary_expression "(*(int *)(param_2 + 0xa4) == 0) || (*(char *)(param_2 + 0xb8) != '\0')" (parenthesized_expression "(*(int *)(param_2 + 0xa4) == 0)" ( (binary_expression "*(int *)(param_2 + 0xa4) == 0" (pointer_expression "*(int *)(param_2 + 0xa4)" * (cast_expression "(int *)(param_2 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xa4)" ( (binary_expression "param_2 + 0xa4" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(char *)(param_2 + 0xb8) != '\0')" ( (binary_expression "*(char *)(param_2 + 0xb8) != '\0'" (pointer_expression "*(char *)(param_2 + 0xb8)" * (cast_expression "(char *)(param_2 + 0xb8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb8)" ( (binary_expression "param_2 + 0xb8" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    if ((*(int *)(param_2 + 0xb0) == 0) ||\n       (unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0')) {\n      if (*(char *)(param_2 + 0x98) == '\0') goto LAB_00014bb0;\n      param_2 = *(int *)(param_2 + 0x58);\n      unaff_s4 = (undefined *)(param_2 >> 0x1f);\n      if (uVar18 != 0) goto LAB_00014d8c;\n      goto LAB_00014c1c;\n    }\n    unaff_s4 = PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5130;\nLAB_00014d38:\n    uVar5 = FUN_00013f30(*(undefined4 *)(param_2 + 0x18),auStack_80);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n    *(undefined1 *)(param_2 + 0xba) = 1;\n    if (*(char *)(param_2 + 0x98) != '\0') {\n      param_2 = *(int *)(param_2 + 0x58);\n      ppuVar28 = *(uint ***)puVar4;\n      goto LAB_00014d88;\n    }\n  }" { (if_statement "if ((*(int *)(param_2 + 0xb0) == 0) ||\n       (unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0')) {\n      if (*(char *)(param_2 + 0x98) == '\0') goto LAB_00014bb0;\n      param_2 = *(int *)(param_2 + 0x58);\n      unaff_s4 = (undefined *)(param_2 >> 0x1f);\n      if (uVar18 != 0) goto LAB_00014d8c;\n      goto LAB_00014c1c;\n    }" if (parenthesized_expression "((*(int *)(param_2 + 0xb0) == 0) ||\n       (unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0'))" ( (binary_expression "(*(int *)(param_2 + 0xb0) == 0) ||\n       (unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0')" (parenthesized_expression "(*(int *)(param_2 + 0xb0) == 0)" ( (binary_expression "*(int *)(param_2 + 0xb0) == 0" (pointer_expression "*(int *)(param_2 + 0xb0)" * (cast_expression "(int *)(param_2 + 0xb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb0)" ( (binary_expression "param_2 + 0xb0" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0')" ( (comma_expression "unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0'" (assignment_expression "unaff_s4 = PTR_LAB_0003811c" identifier = identifier) , (binary_expression "*(char *)(param_2 + 0xba) != '\0'" (pointer_expression "*(char *)(param_2 + 0xba)" * (cast_expression "(char *)(param_2 + 0xba)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xba)" ( (binary_expression "param_2 + 0xba" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n      if (*(char *)(param_2 + 0x98) == '\0') goto LAB_00014bb0;\n      param_2 = *(int *)(param_2 + 0x58);\n      unaff_s4 = (undefined *)(param_2 >> 0x1f);\n      if (uVar18 != 0) goto LAB_00014d8c;\n      goto LAB_00014c1c;\n    }" { (if_statement "if (*(char *)(param_2 + 0x98) == '\0') goto LAB_00014bb0;" if (parenthesized_expression "(*(char *)(param_2 + 0x98) == '\0')" ( (binary_expression "*(char *)(param_2 + 0x98) == '\0'" (pointer_expression "*(char *)(param_2 + 0x98)" * (cast_expression "(char *)(param_2 + 0x98)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x98)" ( (binary_expression "param_2 + 0x98" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00014bb0;" goto statement_identifier ;)) (expression_statement "param_2 = *(int *)(param_2 + 0x58);" (assignment_expression "param_2 = *(int *)(param_2 + 0x58)" identifier = (pointer_expression "*(int *)(param_2 + 0x58)" * (cast_expression "(int *)(param_2 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x58)" ( (binary_expression "param_2 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "unaff_s4 = (undefined *)(param_2 >> 0x1f);" (assignment_expression "unaff_s4 = (undefined *)(param_2 >> 0x1f)" identifier = (cast_expression "(undefined *)(param_2 >> 0x1f)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 >> 0x1f)" ( (binary_expression "param_2 >> 0x1f" identifier >> number_literal) )))) ;) (if_statement "if (uVar18 != 0) goto LAB_00014d8c;" if (parenthesized_expression "(uVar18 != 0)" ( (binary_expression "uVar18 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00014d8c;" goto statement_identifier ;)) (goto_statement "goto LAB_00014c1c;" goto statement_identifier ;) })) (expression_statement "unaff_s4 = PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5130;" (assignment_expression "unaff_s4 = PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5130" identifier = (binary_expression "PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5130" (binary_expression "PTR_LAB_0003811c + (uVar18 ^ 1)" identifier + (parenthesized_expression "(uVar18 ^ 1)" ( (binary_expression "uVar18 ^ 1" identifier ^ number_literal) ))) + number_literal)) ;) (labeled_statement "LAB_00014d38:\n    uVar5 = FUN_00013f30(*(undefined4 *)(param_2 + 0x18),auStack_80);" statement_identifier : (expression_statement "uVar5 = FUN_00013f30(*(undefined4 *)(param_2 + 0x18),auStack_80);" (assignment_expression "uVar5 = FUN_00013f30(*(undefined4 *)(param_2 + 0x18),auStack_80)" identifier = (call_expression "FUN_00013f30(*(undefined4 *)(param_2 + 0x18),auStack_80)" identifier (argument_list "(*(undefined4 *)(param_2 + 0x18),auStack_80)" ( (pointer_expression "*(undefined4 *)(param_2 + 0x18)" * (cast_expression "(undefined4 *)(param_2 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) )))) , identifier )))) ;)) (expression_statement "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);" (call_expression "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" ( (pointer_expression "*(code *)PTR___fprintf_chk_00038280" * (cast_expression "(code *)PTR___fprintf_chk_00038280" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppuVar28,1,unaff_s4,uVar5)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "*(undefined1 *)(param_2 + 0xba) = 1;" (assignment_expression "*(undefined1 *)(param_2 + 0xba) = 1" (pointer_expression "*(undefined1 *)(param_2 + 0xba)" * (cast_expression "(undefined1 *)(param_2 + 0xba)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xba)" ( (binary_expression "param_2 + 0xba" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(char *)(param_2 + 0x98) != '\0') {\n      param_2 = *(int *)(param_2 + 0x58);\n      ppuVar28 = *(uint ***)puVar4;\n      goto LAB_00014d88;\n    }" if (parenthesized_expression "(*(char *)(param_2 + 0x98) != '\0')" ( (binary_expression "*(char *)(param_2 + 0x98) != '\0'" (pointer_expression "*(char *)(param_2 + 0x98)" * (cast_expression "(char *)(param_2 + 0x98)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x98)" ( (binary_expression "param_2 + 0x98" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      param_2 = *(int *)(param_2 + 0x58);\n      ppuVar28 = *(uint ***)puVar4;\n      goto LAB_00014d88;\n    }" { (expression_statement "param_2 = *(int *)(param_2 + 0x58);" (assignment_expression "param_2 = *(int *)(param_2 + 0x58)" identifier = (pointer_expression "*(int *)(param_2 + 0x58)" * (cast_expression "(int *)(param_2 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x58)" ( (binary_expression "param_2 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (goto_statement "goto LAB_00014d88;" goto statement_identifier ;) })) }) (else_clause "else {\n    (*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac,*(undefined4 *)(param_2 + 0x14));\n    *(undefined1 *)(param_2 + 0xb8) = 1;\n    if (*(int *)(param_2 + 0xb0) == 0) {\n      cVar1 = *(char *)(param_2 + 0x98);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (*(char *)(param_2 + 0xba) == '\0') {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = *(char *)(param_2 + 0x98);\n    }\n    if (cVar1 == '\0') goto LAB_00014bb0;\n    param_2 = *(int *)(param_2 + 0x58);\nLAB_00014d88:\n    unaff_s4 = (undefined *)(param_2 >> 0x1f);\nLAB_00014d8c:\n    (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n    ppuVar28 = *(uint ***)puVar4;\nLAB_00014c1c:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n  }" else (compound_statement "{\n    (*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac,*(undefined4 *)(param_2 + 0x14));\n    *(undefined1 *)(param_2 + 0xb8) = 1;\n    if (*(int *)(param_2 + 0xb0) == 0) {\n      cVar1 = *(char *)(param_2 + 0x98);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (*(char *)(param_2 + 0xba) == '\0') {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = *(char *)(param_2 + 0x98);\n    }\n    if (cVar1 == '\0') goto LAB_00014bb0;\n    param_2 = *(int *)(param_2 + 0x58);\nLAB_00014d88:\n    unaff_s4 = (undefined *)(param_2 >> 0x1f);\nLAB_00014d8c:\n    (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n    ppuVar28 = *(uint ***)puVar4;\nLAB_00014c1c:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n  }" { (expression_statement "(*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac,*(undefined4 *)(param_2 + 0x14));" (call_expression "(*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac,*(undefined4 *)(param_2 + 0x14))" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" ( (pointer_expression "*(code *)PTR___fprintf_chk_00038280" * (cast_expression "(code *)PTR___fprintf_chk_00038280" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac,*(undefined4 *)(param_2 + 0x14))" ( identifier , number_literal , (binary_expression "PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac" (binary_expression "PTR_LAB_0003811c + (uVar18 ^ 1)" identifier + (parenthesized_expression "(uVar18 ^ 1)" ( (binary_expression "uVar18 ^ 1" identifier ^ number_literal) ))) + number_literal) , (pointer_expression "*(undefined4 *)(param_2 + 0x14)" * (cast_expression "(undefined4 *)(param_2 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x14)" ( (binary_expression "param_2 + 0x14" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined1 *)(param_2 + 0xb8) = 1;" (assignment_expression "*(undefined1 *)(param_2 + 0xb8) = 1" (pointer_expression "*(undefined1 *)(param_2 + 0xb8)" * (cast_expression "(undefined1 *)(param_2 + 0xb8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb8)" ( (binary_expression "param_2 + 0xb8" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(int *)(param_2 + 0xb0) == 0) {\n      cVar1 = *(char *)(param_2 + 0x98);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (*(char *)(param_2 + 0xba) == '\0') {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = *(char *)(param_2 + 0x98);\n    }" if (parenthesized_expression "(*(int *)(param_2 + 0xb0) == 0)" ( (binary_expression "*(int *)(param_2 + 0xb0) == 0" (pointer_expression "*(int *)(param_2 + 0xb0)" * (cast_expression "(int *)(param_2 + 0xb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb0)" ( (binary_expression "param_2 + 0xb0" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      cVar1 = *(char *)(param_2 + 0x98);\n      ppuVar28 = *(uint ***)puVar4;\n    }" { (expression_statement "cVar1 = *(char *)(param_2 + 0x98);" (assignment_expression "cVar1 = *(char *)(param_2 + 0x98)" identifier = (pointer_expression "*(char *)(param_2 + 0x98)" * (cast_expression "(char *)(param_2 + 0x98)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x98)" ( (binary_expression "param_2 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) }) (else_clause "else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (*(char *)(param_2 + 0xba) == '\0') {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = *(char *)(param_2 + 0x98);\n    }" else (compound_statement "{\n      ppuVar28 = *(uint ***)puVar4;\n      if (*(char *)(param_2 + 0xba) == '\0') {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = *(char *)(param_2 + 0x98);\n    }" { (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (if_statement "if (*(char *)(param_2 + 0xba) == '\0') {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }" if (parenthesized_expression "(*(char *)(param_2 + 0xba) == '\0')" ( (binary_expression "*(char *)(param_2 + 0xba) == '\0'" (pointer_expression "*(char *)(param_2 + 0xba)" * (cast_expression "(char *)(param_2 + 0xba)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xba)" ( (binary_expression "param_2 + 0xba" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }" { (expression_statement "unaff_s4 = PTR_LAB_0003811c + 0x5130;" (assignment_expression "unaff_s4 = PTR_LAB_0003811c + 0x5130" identifier = (binary_expression "PTR_LAB_0003811c + 0x5130" identifier + number_literal)) ;) (goto_statement "goto LAB_00014d38;" goto statement_identifier ;) })) (expression_statement "cVar1 = *(char *)(param_2 + 0x98);" (assignment_expression "cVar1 = *(char *)(param_2 + 0x98)" identifier = (pointer_expression "*(char *)(param_2 + 0x98)" * (cast_expression "(char *)(param_2 + 0x98)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x98)" ( (binary_expression "param_2 + 0x98" identifier + number_literal) ))))) ;) }))) (if_statement "if (cVar1 == '\0') goto LAB_00014bb0;" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00014bb0;" goto statement_identifier ;)) (expression_statement "param_2 = *(int *)(param_2 + 0x58);" (assignment_expression "param_2 = *(int *)(param_2 + 0x58)" identifier = (pointer_expression "*(int *)(param_2 + 0x58)" * (cast_expression "(int *)(param_2 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x58)" ( (binary_expression "param_2 + 0x58" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00014d88:\n    unaff_s4 = (undefined *)(param_2 >> 0x1f);" statement_identifier : (expression_statement "unaff_s4 = (undefined *)(param_2 >> 0x1f);" (assignment_expression "unaff_s4 = (undefined *)(param_2 >> 0x1f)" identifier = (cast_expression "(undefined *)(param_2 >> 0x1f)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 >> 0x1f)" ( (binary_expression "param_2 >> 0x1f" identifier >> number_literal) )))) ;)) (labeled_statement "LAB_00014d8c:\n    (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);" statement_identifier : (expression_statement "(*(code *)PTR_fputc_00038298)(0x20,ppuVar28);" (call_expression "(*(code *)PTR_fputc_00038298)(0x20,ppuVar28)" (parenthesized_expression "(*(code *)PTR_fputc_00038298)" ( (pointer_expression "*(code *)PTR_fputc_00038298" * (cast_expression "(code *)PTR_fputc_00038298" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x20,ppuVar28)" ( number_literal , identifier ))) ;)) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (labeled_statement "LAB_00014c1c:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);" statement_identifier : (expression_statement "uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);" (assignment_expression "uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00038338)" ( (pointer_expression "*(code *)PTR_dcgettext_00038338" * (cast_expression "(code *)PTR_dcgettext_00038338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_LAB_0003811c + 0x51b8,5)" ( number_literal , (binary_expression "PTR_LAB_0003811c + 0x51b8" identifier + number_literal) , number_literal )))) ;)) (expression_statement "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);" (call_expression "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" ( (pointer_expression "*(code *)PTR___fprintf_chk_00038280" * (cast_expression "(code *)PTR___fprintf_chk_00038280" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppuVar28,1,uVar5)" ( identifier , number_literal , identifier ))) ;) }))) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" identifier = (pointer_expression "*(uint ***)puVar4" * (cast_expression "(uint ***)puVar4" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (labeled_statement "LAB_00014bb0:\n  puVar14 = (undefined4 *)&DAT_0000000a;" statement_identifier : (expression_statement "puVar14 = (undefined4 *)&DAT_0000000a;" (assignment_expression "puVar14 = (undefined4 *)&DAT_0000000a" identifier = (cast_expression "(undefined4 *)&DAT_0000000a" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000000a" & identifier))) ;)) (expression_statement "ppuVar21 = ppuVar28;" (assignment_expression "ppuVar21 = ppuVar28" identifier = identifier) ;) (expression_statement "(*(code *)PTR_fputc_00038298)();" (call_expression "(*(code *)PTR_fputc_00038298)()" (parenthesized_expression "(*(code *)PTR_fputc_00038298)" ( (pointer_expression "*(code *)PTR_fputc_00038298" * (cast_expression "(code *)PTR_fputc_00038298" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar6 = *(int *)puVar3;" (assignment_expression "iVar6 = *(int *)puVar3" identifier = (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (local_1c == iVar6) {\n    return iVar6;\n  }" if (parenthesized_expression "(local_1c == iVar6)" ( (binary_expression "local_1c == iVar6" identifier == identifier) )) (compound_statement "{\n    return iVar6;\n  }" { (return_statement "return iVar6;" return identifier ;) })) (expression_statement "puVar33 = PTR___stack_chk_fail_00038334;" (assignment_expression "puVar33 = PTR___stack_chk_fail_00038334" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00038334)();" (call_expression "(*(code *)PTR___stack_chk_fail_00038334)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00038334)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00038334" * (cast_expression "(code *)PTR___stack_chk_fail_00038334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar7 = *(int **)(puVar33 + 0x234a4);" (assignment_expression "piVar7 = *(int **)(puVar33 + 0x234a4)" identifier = (pointer_expression "*(int **)(puVar33 + 0x234a4)" * (cast_expression "(int **)(puVar33 + 0x234a4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x234a4)" ( (binary_expression "puVar33 + 0x234a4" identifier + number_literal) ))))) ;) (expression_statement "uVar18 = 0xfffffffe;" (assignment_expression "uVar18 = 0xfffffffe" identifier = number_literal) ;) (expression_statement "puStack_cc = puVar3;" (assignment_expression "puStack_cc = puVar3" identifier = identifier) ;) (expression_statement "puVar31 = (uint *)&DAT_00000026;" (assignment_expression "puVar31 = (uint *)&DAT_00000026" identifier = (cast_expression "(uint *)&DAT_00000026" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000026" & identifier))) ;) (expression_statement "iStack_dc = *piVar7;" (assignment_expression "iStack_dc = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "iVar6 = *(int *)(puVar33 + 0x23270);" (assignment_expression "iVar6 = *(int *)(puVar33 + 0x23270)" identifier = (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) ;) (expression_statement "puStack_c8 = unaff_s4;" (assignment_expression "puStack_c8 = unaff_s4" identifier = identifier) ;) (expression_statement "puStack_d0 = puVar4;" (assignment_expression "puStack_d0 = puVar4" identifier = identifier) ;) (expression_statement "puVar13 = auStack_550;" (assignment_expression "puVar13 = auStack_550" identifier = identifier) ;) (expression_statement "ppuStack_d4 = ppuVar28;" (assignment_expression "ppuStack_d4 = ppuVar28" identifier = identifier) ;) (expression_statement "puVar29 = (uint *)0xfffffffe;" (assignment_expression "puVar29 = (uint *)0xfffffffe" identifier = (cast_expression "(uint *)0xfffffffe" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar30 = *(int *)(puVar33 + 0x23270) + 0x6250;" (assignment_expression "iVar30 = *(int *)(puVar33 + 0x23270) + 0x6250" identifier = (binary_expression "*(int *)(puVar33 + 0x23270) + 0x6250" (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iStack_d8 = param_2;" (assignment_expression "iStack_d8 = param_2" identifier = identifier) ;) (expression_statement "puVar25 = (uint *)0x0;" (assignment_expression "puVar25 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar8 = *(int *)(puVar33 + 0x23270) + 0x62c4;" (assignment_expression "iVar8 = *(int *)(puVar33 + 0x23270) + 0x62c4" identifier = (binary_expression "*(int *)(puVar33 + 0x23270) + 0x62c4" (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "asStack_578[0] = 0;" (assignment_expression "asStack_578[0] = 0" (subscript_expression "asStack_578[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iStack_670 = 0;" (assignment_expression "iStack_670 = 0" identifier = number_literal) ;) (expression_statement "psVar32 = asStack_578;" (assignment_expression "psVar32 = asStack_578" identifier = identifier) ;) (labeled_statement "LAB_00014f50:\n  ppuVar28 = (uint **)0x800000;" statement_identifier : (expression_statement "ppuVar28 = (uint **)0x800000;" (assignment_expression "ppuVar28 = (uint **)0x800000" identifier = (cast_expression "(uint **)0x800000" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;)) (expression_statement "puVar19 = puVar31;" (assignment_expression "puVar19 = puVar31" identifier = identifier) ;) (if_statement "if (puVar29 == (uint *)0xfffffffe) {\n    ppuVar21 = (uint **)*puVar14;\n    in_t2 = (uint *)0x1;\n    ppuVar28 = (uint **)0x80001f;\n    in_t4 = (uint **)0x2d;\n    bVar12 = *(byte *)ppuVar21;\n    in_t5 = 0x2b;\n    in_t6 = 0x28;\n    uVar18 = 0x29;\nLAB_000152f0:\n    in_t0 = (uint **)(int)(char)bVar12;\n    uVar15 = (uint)bVar12;\nLAB_000152f4:\n    uVar22 = uVar15 - 9;\n    ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n    if (ppuVar16 == (uint **)0x0) goto LAB_000153a8;\nLAB_00015308:\n    ppuVar11 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f);\n    while (ppuVar11 != (uint **)0x0) {\n      ppuVar21 = (uint **)((int)ppuVar21 + 1);\n      *puVar14 = ppuVar21;\n      in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n      uVar15 = (uint)*(byte *)ppuVar21;\n      ppuVar16 = (uint **)(uVar15 - 9);\n      if ((uint **)0x17 < ppuVar16) goto LAB_000153a8;\n      ppuVar16 = (uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f);\n      ppuVar11 = ppuVar16;\n    }\nLAB_00015344:\n    in_t3 = 0xffffffff;\n    if (uVar15 == 0x2d) goto LAB_00015358;\n    if (uVar15 == 0x2b) goto LAB_00015354;\n    if ((0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))\n       ) {\n      pbVar26 = (byte *)*puVar14;\n      ppuVar16 = (uint **)(abStack_f1 + 1);\n      in_t0 = (uint **)(abStack_f1 + 0x14);\n      ppuVar28 = (uint **)&DAT_0000002e;\n      ppuVar21 = ppuVar16;\n      do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        *puVar14 = pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));\n      *(byte *)ppuVar21 = 0;\n      ppuVar21 = ppuVar16;\n      bVar12 = abStack_f1[1];\n      while (bVar12 != 0) {\n        if (bVar12 - 0x61 < 0x1a) {\n          bVar12 = bVar12 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar12;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar12 = *(byte *)ppuVar21;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);\n      do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16);\n      if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);\n      do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      iVar9 = *(int *)(puVar33 + 0x2326c);\n      ppuVar21 = ppuVar16;\n      iVar10 = FUN_00014388(puVar14);\n      unaff_s6 = asStack_578;\n      if (iVar10 != 0) {\n        puVar29 = *(uint **)(iVar10 + 4);\n        apuStack_5e8[1] = *(uint **)(iVar10 + 8);\n        apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);\n      iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n      if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        ppuVar16 = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);\n      ppuVar11 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);\n      ppuVar21 = ppuVar11;\n      psVar27 = unaff_s6;\n      do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);\n      pbVar26 = (byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1));\n      if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar11 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);\n      pcVar34 = *(code **)(puVar33 + 0x234c8);\n      do {\n        iVar10 = (*pcVar34)(ppuVar16);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);\n      if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar11 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }\n      if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = ppuVar16;\n        ppuVar11 = ppuVar16;\n        bVar12 = abStack_f1[1];\n        do {\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        } while (bVar12 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }\n      ppuVar21 = *(uint ***)(puVar33 + 0x23270);\n      if (*(char *)((int)puVar14 + 0xb5) == '\0') goto LAB_00017ae0;\n      uVar5 = (**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5);\n      puVar29 = (uint *)0x3f;\n      FUN_00014188(uVar5);\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n      goto LAB_00014f74;\n    }\n    iVar9 = 0;\n    if (uVar15 == 0x28) {\n      ppuVar21 = (uint **)*puVar14;\n      goto LAB_000157a8;\n    }\n    *puVar14 = (byte *)((int)ppuVar21 + 1);\n    puVar29 = (uint *)(uint)*(byte *)ppuVar21;\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if (puVar29 != (uint *)0x0) goto LAB_0001558c;\n    uVar15 = 0;\n    goto LAB_00014f74;\n  }" if (parenthesized_expression "(puVar29 == (uint *)0xfffffffe)" ( (binary_expression "puVar29 == (uint *)0xfffffffe" identifier == (cast_expression "(uint *)0xfffffffe" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    ppuVar21 = (uint **)*puVar14;\n    in_t2 = (uint *)0x1;\n    ppuVar28 = (uint **)0x80001f;\n    in_t4 = (uint **)0x2d;\n    bVar12 = *(byte *)ppuVar21;\n    in_t5 = 0x2b;\n    in_t6 = 0x28;\n    uVar18 = 0x29;\nLAB_000152f0:\n    in_t0 = (uint **)(int)(char)bVar12;\n    uVar15 = (uint)bVar12;\nLAB_000152f4:\n    uVar22 = uVar15 - 9;\n    ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n    if (ppuVar16 == (uint **)0x0) goto LAB_000153a8;\nLAB_00015308:\n    ppuVar11 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f);\n    while (ppuVar11 != (uint **)0x0) {\n      ppuVar21 = (uint **)((int)ppuVar21 + 1);\n      *puVar14 = ppuVar21;\n      in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n      uVar15 = (uint)*(byte *)ppuVar21;\n      ppuVar16 = (uint **)(uVar15 - 9);\n      if ((uint **)0x17 < ppuVar16) goto LAB_000153a8;\n      ppuVar16 = (uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f);\n      ppuVar11 = ppuVar16;\n    }\nLAB_00015344:\n    in_t3 = 0xffffffff;\n    if (uVar15 == 0x2d) goto LAB_00015358;\n    if (uVar15 == 0x2b) goto LAB_00015354;\n    if ((0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))\n       ) {\n      pbVar26 = (byte *)*puVar14;\n      ppuVar16 = (uint **)(abStack_f1 + 1);\n      in_t0 = (uint **)(abStack_f1 + 0x14);\n      ppuVar28 = (uint **)&DAT_0000002e;\n      ppuVar21 = ppuVar16;\n      do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        *puVar14 = pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));\n      *(byte *)ppuVar21 = 0;\n      ppuVar21 = ppuVar16;\n      bVar12 = abStack_f1[1];\n      while (bVar12 != 0) {\n        if (bVar12 - 0x61 < 0x1a) {\n          bVar12 = bVar12 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar12;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar12 = *(byte *)ppuVar21;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);\n      do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16);\n      if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);\n      do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      iVar9 = *(int *)(puVar33 + 0x2326c);\n      ppuVar21 = ppuVar16;\n      iVar10 = FUN_00014388(puVar14);\n      unaff_s6 = asStack_578;\n      if (iVar10 != 0) {\n        puVar29 = *(uint **)(iVar10 + 4);\n        apuStack_5e8[1] = *(uint **)(iVar10 + 8);\n        apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);\n      iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n      if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        ppuVar16 = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);\n      ppuVar11 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);\n      ppuVar21 = ppuVar11;\n      psVar27 = unaff_s6;\n      do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);\n      pbVar26 = (byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1));\n      if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar11 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);\n      pcVar34 = *(code **)(puVar33 + 0x234c8);\n      do {\n        iVar10 = (*pcVar34)(ppuVar16);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);\n      if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar11 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }\n      if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = ppuVar16;\n        ppuVar11 = ppuVar16;\n        bVar12 = abStack_f1[1];\n        do {\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        } while (bVar12 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }\n      ppuVar21 = *(uint ***)(puVar33 + 0x23270);\n      if (*(char *)((int)puVar14 + 0xb5) == '\0') goto LAB_00017ae0;\n      uVar5 = (**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5);\n      puVar29 = (uint *)0x3f;\n      FUN_00014188(uVar5);\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n      goto LAB_00014f74;\n    }\n    iVar9 = 0;\n    if (uVar15 == 0x28) {\n      ppuVar21 = (uint **)*puVar14;\n      goto LAB_000157a8;\n    }\n    *puVar14 = (byte *)((int)ppuVar21 + 1);\n    puVar29 = (uint *)(uint)*(byte *)ppuVar21;\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if (puVar29 != (uint *)0x0) goto LAB_0001558c;\n    uVar15 = 0;\n    goto LAB_00014f74;\n  }" { (expression_statement "ppuVar21 = (uint **)*puVar14;" (assignment_expression "ppuVar21 = (uint **)*puVar14" identifier = (cast_expression "(uint **)*puVar14" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar14" * identifier))) ;) (expression_statement "in_t2 = (uint *)0x1;" (assignment_expression "in_t2 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppuVar28 = (uint **)0x80001f;" (assignment_expression "ppuVar28 = (uint **)0x80001f" identifier = (cast_expression "(uint **)0x80001f" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "in_t4 = (uint **)0x2d;" (assignment_expression "in_t4 = (uint **)0x2d" identifier = (cast_expression "(uint **)0x2d" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "bVar12 = *(byte *)ppuVar21;" (assignment_expression "bVar12 = *(byte *)ppuVar21" identifier = (pointer_expression "*(byte *)ppuVar21" * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "in_t5 = 0x2b;" (assignment_expression "in_t5 = 0x2b" identifier = number_literal) ;) (expression_statement "in_t6 = 0x28;" (assignment_expression "in_t6 = 0x28" identifier = number_literal) ;) (expression_statement "uVar18 = 0x29;" (assignment_expression "uVar18 = 0x29" identifier = number_literal) ;) (labeled_statement "LAB_000152f0:\n    in_t0 = (uint **)(int)(char)bVar12;" statement_identifier : (expression_statement "in_t0 = (uint **)(int)(char)bVar12;" (assignment_expression "in_t0 = (uint **)(int)(char)bVar12" identifier = (cast_expression "(uint **)(int)(char)bVar12" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)(char)bVar12" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar12" ( (type_descriptor "char" primitive_type) ) identifier)))) ;)) (expression_statement "uVar15 = (uint)bVar12;" (assignment_expression "uVar15 = (uint)bVar12" identifier = (cast_expression "(uint)bVar12" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (labeled_statement "LAB_000152f4:\n    uVar22 = uVar15 - 9;" statement_identifier : (expression_statement "uVar22 = uVar15 - 9;" (assignment_expression "uVar22 = uVar15 - 9" identifier = (binary_expression "uVar15 - 9" identifier - number_literal)) ;)) (expression_statement "ppuVar16 = (uint **)(uint)(uVar22 < 0x18);" (assignment_expression "ppuVar16 = (uint **)(uint)(uVar22 < 0x18)" identifier = (cast_expression "(uint **)(uint)(uVar22 < 0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(uint)(uVar22 < 0x18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar22 < 0x18)" ( (binary_expression "uVar22 < 0x18" identifier < number_literal) ))))) ;) (if_statement "if (ppuVar16 == (uint **)0x0) goto LAB_000153a8;" if (parenthesized_expression "(ppuVar16 == (uint **)0x0)" ( (binary_expression "ppuVar16 == (uint **)0x0" identifier == (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_000153a8;" goto statement_identifier ;)) (labeled_statement "LAB_00015308:\n    ppuVar11 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f);" statement_identifier : (expression_statement "ppuVar11 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f);" (assignment_expression "ppuVar11 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f)" identifier = (cast_expression "(uint **)(1 << (uVar22 & 0x1f) & 0x80001f)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(1 << (uVar22 & 0x1f) & 0x80001f)" ( (binary_expression "1 << (uVar22 & 0x1f) & 0x80001f" (binary_expression "1 << (uVar22 & 0x1f)" number_literal << (parenthesized_expression "(uVar22 & 0x1f)" ( (binary_expression "uVar22 & 0x1f" identifier & number_literal) ))) & number_literal) )))) ;)) (while_statement "while (ppuVar11 != (uint **)0x0) {\n      ppuVar21 = (uint **)((int)ppuVar21 + 1);\n      *puVar14 = ppuVar21;\n      in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n      uVar15 = (uint)*(byte *)ppuVar21;\n      ppuVar16 = (uint **)(uVar15 - 9);\n      if ((uint **)0x17 < ppuVar16) goto LAB_000153a8;\n      ppuVar16 = (uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f);\n      ppuVar11 = ppuVar16;\n    }" while (parenthesized_expression "(ppuVar11 != (uint **)0x0)" ( (binary_expression "ppuVar11 != (uint **)0x0" identifier != (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n      ppuVar21 = (uint **)((int)ppuVar21 + 1);\n      *puVar14 = ppuVar21;\n      in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n      uVar15 = (uint)*(byte *)ppuVar21;\n      ppuVar16 = (uint **)(uVar15 - 9);\n      if ((uint **)0x17 < ppuVar16) goto LAB_000153a8;\n      ppuVar16 = (uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f);\n      ppuVar11 = ppuVar16;\n    }" { (expression_statement "ppuVar21 = (uint **)((int)ppuVar21 + 1);" (assignment_expression "ppuVar21 = (uint **)((int)ppuVar21 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar21 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar21 + 1)" ( (binary_expression "(int)ppuVar21 + 1" (cast_expression "(int)ppuVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*puVar14 = ppuVar21;" (assignment_expression "*puVar14 = ppuVar21" (pointer_expression "*puVar14" * identifier) = identifier) ;) (expression_statement "in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;" (assignment_expression "in_t0 = (uint **)(int)(char)*(byte *)ppuVar21" identifier = (cast_expression "(uint **)(int)(char)*(byte *)ppuVar21" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)(char)*(byte *)ppuVar21" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)ppuVar21" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)ppuVar21" * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))))) ;) (expression_statement "uVar15 = (uint)*(byte *)ppuVar21;" (assignment_expression "uVar15 = (uint)*(byte *)ppuVar21" identifier = (binary_expression "(uint)*(byte *)ppuVar21" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "ppuVar16 = (uint **)(uVar15 - 9);" (assignment_expression "ppuVar16 = (uint **)(uVar15 - 9)" identifier = (cast_expression "(uint **)(uVar15 - 9)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar15 - 9)" ( (binary_expression "uVar15 - 9" identifier - number_literal) )))) ;) (if_statement "if ((uint **)0x17 < ppuVar16) goto LAB_000153a8;" if (parenthesized_expression "((uint **)0x17 < ppuVar16)" ( (binary_expression "(uint **)0x17 < ppuVar16" (cast_expression "(uint **)0x17" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) < identifier) )) (goto_statement "goto LAB_000153a8;" goto statement_identifier ;)) (expression_statement "ppuVar16 = (uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f);" (assignment_expression "ppuVar16 = (uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f)" identifier = (cast_expression "(uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f)" ( (binary_expression "1 << ((uint)ppuVar16 & 0x1f) & 0x80001f" (binary_expression "1 << ((uint)ppuVar16 & 0x1f)" number_literal << (parenthesized_expression "((uint)ppuVar16 & 0x1f)" ( (binary_expression "(uint)ppuVar16 & 0x1f" (cast_expression "(uint)ppuVar16" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) & number_literal) )))) ;) (expression_statement "ppuVar11 = ppuVar16;" (assignment_expression "ppuVar11 = ppuVar16" identifier = identifier) ;) })) (labeled_statement "LAB_00015344:\n    in_t3 = 0xffffffff;" statement_identifier : (expression_statement "in_t3 = 0xffffffff;" (assignment_expression "in_t3 = 0xffffffff" identifier = number_literal) ;)) (if_statement "if (uVar15 == 0x2d) goto LAB_00015358;" if (parenthesized_expression "(uVar15 == 0x2d)" ( (binary_expression "uVar15 == 0x2d" identifier == number_literal) )) (goto_statement "goto LAB_00015358;" goto statement_identifier ;)) (if_statement "if (uVar15 == 0x2b) goto LAB_00015354;" if (parenthesized_expression "(uVar15 == 0x2b)" ( (binary_expression "uVar15 == 0x2b" identifier == number_literal) )) (goto_statement "goto LAB_00015354;" goto statement_identifier ;)) (if_statement "if ((0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))\n       ) {\n      pbVar26 = (byte *)*puVar14;\n      ppuVar16 = (uint **)(abStack_f1 + 1);\n      in_t0 = (uint **)(abStack_f1 + 0x14);\n      ppuVar28 = (uint **)&DAT_0000002e;\n      ppuVar21 = ppuVar16;\n      do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        *puVar14 = pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));\n      *(byte *)ppuVar21 = 0;\n      ppuVar21 = ppuVar16;\n      bVar12 = abStack_f1[1];\n      while (bVar12 != 0) {\n        if (bVar12 - 0x61 < 0x1a) {\n          bVar12 = bVar12 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar12;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar12 = *(byte *)ppuVar21;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);\n      do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16);\n      if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);\n      do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      iVar9 = *(int *)(puVar33 + 0x2326c);\n      ppuVar21 = ppuVar16;\n      iVar10 = FUN_00014388(puVar14);\n      unaff_s6 = asStack_578;\n      if (iVar10 != 0) {\n        puVar29 = *(uint **)(iVar10 + 4);\n        apuStack_5e8[1] = *(uint **)(iVar10 + 8);\n        apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);\n      iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n      if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        ppuVar16 = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);\n      ppuVar11 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);\n      ppuVar21 = ppuVar11;\n      psVar27 = unaff_s6;\n      do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);\n      pbVar26 = (byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1));\n      if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar11 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);\n      pcVar34 = *(code **)(puVar33 + 0x234c8);\n      do {\n        iVar10 = (*pcVar34)(ppuVar16);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);\n      if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar11 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }\n      if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = ppuVar16;\n        ppuVar11 = ppuVar16;\n        bVar12 = abStack_f1[1];\n        do {\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        } while (bVar12 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }\n      ppuVar21 = *(uint ***)(puVar33 + 0x23270);\n      if (*(char *)((int)puVar14 + 0xb5) == '\0') goto LAB_00017ae0;\n      uVar5 = (**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5);\n      puVar29 = (uint *)0x3f;\n      FUN_00014188(uVar5);\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n      goto LAB_00014f74;\n    }" if (parenthesized_expression "((0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))\n       )" ( (binary_expression "(0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))" (parenthesized_expression "(0x40 < (int)in_t0)" ( (binary_expression "0x40 < (int)in_t0" number_literal < (cast_expression "(int)in_t0" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))" ( (parenthesized_expression "((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a))" ( (binary_expression "(int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)" (binary_expression "(int)in_t0 < 0x5b" (cast_expression "(int)in_t0" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) || (parenthesized_expression "(((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)" ( (binary_expression "((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a" (parenthesized_expression "((uint)((int)in_t0 + -0x61) & 0xff)" ( (binary_expression "(uint)((int)in_t0 + -0x61) & 0xff" (call_expression "(uint)((int)in_t0 + -0x61)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)in_t0 + -0x61)" ( (binary_expression "(int)in_t0 + -0x61" (cast_expression "(int)in_t0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) & number_literal) )) < number_literal) ))) )) ))) )) (compound_statement "{\n      pbVar26 = (byte *)*puVar14;\n      ppuVar16 = (uint **)(abStack_f1 + 1);\n      in_t0 = (uint **)(abStack_f1 + 0x14);\n      ppuVar28 = (uint **)&DAT_0000002e;\n      ppuVar21 = ppuVar16;\n      do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        *puVar14 = pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));\n      *(byte *)ppuVar21 = 0;\n      ppuVar21 = ppuVar16;\n      bVar12 = abStack_f1[1];\n      while (bVar12 != 0) {\n        if (bVar12 - 0x61 < 0x1a) {\n          bVar12 = bVar12 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar12;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar12 = *(byte *)ppuVar21;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);\n      do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16);\n      if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);\n      do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      iVar9 = *(int *)(puVar33 + 0x2326c);\n      ppuVar21 = ppuVar16;\n      iVar10 = FUN_00014388(puVar14);\n      unaff_s6 = asStack_578;\n      if (iVar10 != 0) {\n        puVar29 = *(uint **)(iVar10 + 4);\n        apuStack_5e8[1] = *(uint **)(iVar10 + 8);\n        apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);\n      iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n      if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        ppuVar16 = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);\n      ppuVar11 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);\n      ppuVar21 = ppuVar11;\n      psVar27 = unaff_s6;\n      do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);\n      pbVar26 = (byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1));\n      if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar11 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);\n      pcVar34 = *(code **)(puVar33 + 0x234c8);\n      do {\n        iVar10 = (*pcVar34)(ppuVar16);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);\n      if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar11 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }\n      if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = ppuVar16;\n        ppuVar11 = ppuVar16;\n        bVar12 = abStack_f1[1];\n        do {\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        } while (bVar12 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }\n      ppuVar21 = *(uint ***)(puVar33 + 0x23270);\n      if (*(char *)((int)puVar14 + 0xb5) == '\0') goto LAB_00017ae0;\n      uVar5 = (**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5);\n      puVar29 = (uint *)0x3f;\n      FUN_00014188(uVar5);\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n      goto LAB_00014f74;\n    }" { (expression_statement "pbVar26 = (byte *)*puVar14;" (assignment_expression "pbVar26 = (byte *)*puVar14" identifier = (cast_expression "(byte *)*puVar14" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar14" * identifier))) ;) (expression_statement "ppuVar16 = (uint **)(abStack_f1 + 1);" (assignment_expression "ppuVar16 = (uint **)(abStack_f1 + 1)" identifier = (cast_expression "(uint **)(abStack_f1 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(abStack_f1 + 1)" ( (binary_expression "abStack_f1 + 1" identifier + number_literal) )))) ;) (expression_statement "in_t0 = (uint **)(abStack_f1 + 0x14);" (assignment_expression "in_t0 = (uint **)(abStack_f1 + 0x14)" identifier = (cast_expression "(uint **)(abStack_f1 + 0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(abStack_f1 + 0x14)" ( (binary_expression "abStack_f1 + 0x14" identifier + number_literal) )))) ;) (expression_statement "ppuVar28 = (uint **)&DAT_0000002e;" (assignment_expression "ppuVar28 = (uint **)&DAT_0000002e" identifier = (cast_expression "(uint **)&DAT_0000002e" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_0000002e" & identifier))) ;) (expression_statement "ppuVar21 = ppuVar16;" (assignment_expression "ppuVar21 = ppuVar16" identifier = identifier) ;) (do_statement "do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        *puVar14 = pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));" do (compound_statement "{\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        *puVar14 = pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      }" { (expression_statement "pbVar26 = pbVar26 + 1;" (assignment_expression "pbVar26 = pbVar26 + 1" identifier = (binary_expression "pbVar26 + 1" identifier + number_literal)) ;) (if_statement "if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }" if (parenthesized_expression "(ppuVar21 < in_t0)" ( (binary_expression "ppuVar21 < in_t0" identifier < identifier) )) (compound_statement "{\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }" { (expression_statement "*(byte *)ppuVar21 = (byte)uVar15;" (assignment_expression "*(byte *)ppuVar21 = (byte)uVar15" (pointer_expression "*(byte *)ppuVar21" * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(byte)uVar15" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "ppuVar21 = (uint **)((int)ppuVar21 + 1);" (assignment_expression "ppuVar21 = (uint **)((int)ppuVar21 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar21 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar21 + 1)" ( (binary_expression "(int)ppuVar21 + 1" (cast_expression "(int)ppuVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "*puVar14 = pbVar26;" (assignment_expression "*puVar14 = pbVar26" (pointer_expression "*puVar14" * identifier) = identifier) ;) (expression_statement "iVar9 = (int)(char)*pbVar26;" (assignment_expression "iVar9 = (int)(char)*pbVar26" identifier = (cast_expression "(int)(char)*pbVar26" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar26" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar26" * identifier)))) ;) (expression_statement "uVar15 = (uint)*pbVar26;" (assignment_expression "uVar15 = (uint)*pbVar26" identifier = (binary_expression "(uint)*pbVar26" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) }) while (parenthesized_expression "(((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e))" ( (binary_expression "((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e)" (parenthesized_expression "((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a))))" ( (binary_expression "(0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))" (parenthesized_expression "(0x40 < iVar9)" ( (binary_expression "0x40 < iVar9" number_literal < identifier) )) && (parenthesized_expression "((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))" ( (parenthesized_expression "(iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a))" ( (binary_expression "iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)" (binary_expression "iVar9 < 0x5b" identifier < number_literal) || (parenthesized_expression "((iVar9 - 0x61U & 0xff) < 0x1a)" ( (binary_expression "(iVar9 - 0x61U & 0xff) < 0x1a" (parenthesized_expression "(iVar9 - 0x61U & 0xff)" ( (binary_expression "iVar9 - 0x61U & 0xff" (binary_expression "iVar9 - 0x61U" identifier - number_literal) & number_literal) )) < number_literal) ))) )) ))) )) || (parenthesized_expression "(uVar15 == 0x2e)" ( (binary_expression "uVar15 == 0x2e" identifier == number_literal) ))) )) ;) (expression_statement "*(byte *)ppuVar21 = 0;" (assignment_expression "*(byte *)ppuVar21 = 0" (pointer_expression "*(byte *)ppuVar21" * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "ppuVar21 = ppuVar16;" (assignment_expression "ppuVar21 = ppuVar16" identifier = identifier) ;) (expression_statement "bVar12 = abStack_f1[1];" (assignment_expression "bVar12 = abStack_f1[1]" identifier = (subscript_expression "abStack_f1[1]" identifier [ number_literal ])) ;) (while_statement "while (bVar12 != 0) {\n        if (bVar12 - 0x61 < 0x1a) {\n          bVar12 = bVar12 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar12;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar12 = *(byte *)ppuVar21;\n      }" while (parenthesized_expression "(bVar12 != 0)" ( (binary_expression "bVar12 != 0" identifier != number_literal) )) (compound_statement "{\n        if (bVar12 - 0x61 < 0x1a) {\n          bVar12 = bVar12 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar12;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar12 = *(byte *)ppuVar21;\n      }" { (if_statement "if (bVar12 - 0x61 < 0x1a) {\n          bVar12 = bVar12 - 0x20;\n        }" if (parenthesized_expression "(bVar12 - 0x61 < 0x1a)" ( (binary_expression "bVar12 - 0x61 < 0x1a" (binary_expression "bVar12 - 0x61" identifier - number_literal) < number_literal) )) (compound_statement "{\n          bVar12 = bVar12 - 0x20;\n        }" { (expression_statement "bVar12 = bVar12 - 0x20;" (assignment_expression "bVar12 = bVar12 - 0x20" identifier = (binary_expression "bVar12 - 0x20" identifier - number_literal)) ;) })) (expression_statement "*(byte *)ppuVar21 = bVar12;" (assignment_expression "*(byte *)ppuVar21 = bVar12" (pointer_expression "*(byte *)ppuVar21" * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "ppuVar21 = (uint **)((int)ppuVar21 + 1);" (assignment_expression "ppuVar21 = (uint **)((int)ppuVar21 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar21 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar21 + 1)" ( (binary_expression "(int)ppuVar21 + 1" (cast_expression "(int)ppuVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar12 = *(byte *)ppuVar21;" (assignment_expression "bVar12 = *(byte *)ppuVar21" identifier = (pointer_expression "*(byte *)ppuVar21" * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) })) (expression_statement "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);" (assignment_expression "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98)" identifier = (cast_expression "(short *)(*(int *)(puVar33 + 0x23268) + 0x7f98)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23268) + 0x7f98)" ( (binary_expression "*(int *)(puVar33 + 0x23268) + 0x7f98" (pointer_expression "*(int *)(puVar33 + 0x23268)" * (cast_expression "(int *)(puVar33 + 0x23268)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23268)" ( (binary_expression "puVar33 + 0x23268" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);" (assignment_expression "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0)" identifier = (cast_expression "(uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23270) + 0x51d0)" ( (binary_expression "*(int *)(puVar33 + 0x23270) + 0x51d0" (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);" do (compound_statement "{\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      }" { (expression_statement "iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);" (assignment_expression "iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16)" identifier = (call_expression "(**(code **)(puVar33 + 0x234c8))(ppuVar16)" (parenthesized_expression "(**(code **)(puVar33 + 0x234c8))" ( (pointer_expression "**(code **)(puVar33 + 0x234c8)" * (pointer_expression "*(code **)(puVar33 + 0x234c8)" * (cast_expression "(code **)(puVar33 + 0x234c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x234c8)" ( (binary_expression "puVar33 + 0x234c8" identifier + number_literal) ))))) )) (argument_list "(ppuVar16)" ( identifier )))) ;) (expression_statement "puStack_674 = puVar25;" (assignment_expression "puStack_674 = puVar25" identifier = identifier) ;) (if_statement "if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }" { (labeled_statement "LAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);" statement_identifier : (expression_statement "puVar29 = *(uint **)(unaff_s6 + 2);" (assignment_expression "puVar29 = *(uint **)(unaff_s6 + 2)" identifier = (pointer_expression "*(uint **)(unaff_s6 + 2)" * (cast_expression "(uint **)(unaff_s6 + 2)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s6 + 2)" ( (binary_expression "unaff_s6 + 2" identifier + number_literal) ))))) ;)) (expression_statement "apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);" (assignment_expression "apuStack_5e8[1] = *(uint **)(unaff_s6 + 4)" (subscript_expression "apuStack_5e8[1]" identifier [ number_literal ]) = (pointer_expression "*(uint **)(unaff_s6 + 4)" * (cast_expression "(uint **)(unaff_s6 + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s6 + 4)" ( (binary_expression "unaff_s6 + 4" identifier + number_literal) ))))) ;) (expression_statement "apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);" (assignment_expression "apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f)" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = (cast_expression "(uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*(uint **)(unaff_s6 + 4) >> 0x1f)" ( (binary_expression "(int)*(uint **)(unaff_s6 + 4) >> 0x1f" (cast_expression "(int)*(uint **)(unaff_s6 + 4)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint **)(unaff_s6 + 4)" * (cast_expression "(uint **)(unaff_s6 + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s6 + 4)" ( (binary_expression "unaff_s6 + 4" identifier + number_literal) ))))) >> number_literal) )))) ;) (goto_statement "goto LAB_00014f5c;" goto statement_identifier ;) })) (expression_statement "unaff_s6 = unaff_s6 + 6;" (assignment_expression "unaff_s6 = unaff_s6 + 6" identifier = (binary_expression "unaff_s6 + 6" identifier + number_literal)) ;) (expression_statement "ppuVar21 = *(uint ***)unaff_s6;" (assignment_expression "ppuVar21 = *(uint ***)unaff_s6" identifier = (pointer_expression "*(uint ***)unaff_s6" * (cast_expression "(uint ***)unaff_s6" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) }) while (parenthesized_expression "(ppuVar21 != (uint **)0x0)" ( (binary_expression "ppuVar21 != (uint **)0x0" identifier != (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) ;) (expression_statement "puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16);" (assignment_expression "puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16)" identifier = (cast_expression "(uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar33 + 0x23438))(ppuVar16)" (parenthesized_expression "(**(code **)(puVar33 + 0x23438))" ( (pointer_expression "**(code **)(puVar33 + 0x23438)" * (pointer_expression "*(code **)(puVar33 + 0x23438)" * (cast_expression "(code **)(puVar33 + 0x23438)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x23438)" ( (binary_expression "puVar33 + 0x23438" identifier + number_literal) ))))) )) (argument_list "(ppuVar16)" ( identifier ))))) ;) (if_statement "if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }" if (parenthesized_expression "(puStack_674 == (uint *)0x3)" ( (binary_expression "puStack_674 == (uint *)0x3" identifier == (cast_expression "(uint *)0x3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        bVar2 = true;\n      }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) }) (else_clause "else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }" else (if_statement "if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }" if (parenthesized_expression "(puStack_674 == (uint *)0x4)" ( (binary_expression "puStack_674 == (uint *)0x4" identifier == (cast_expression "(uint *)0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        bVar2 = abStack_f1[4] == '.';\n      }" { (expression_statement "bVar2 = abStack_f1[4] == '.';" (assignment_expression "bVar2 = abStack_f1[4] == '.'" identifier = (binary_expression "abStack_f1[4] == '.'" (subscript_expression "abStack_f1[4]" identifier [ number_literal ]) == (char_literal "'.'" ' character '))) ;) }) (else_clause "else {\n        bVar2 = false;\n      }" else (compound_statement "{\n        bVar2 = false;\n      }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) }))))) (expression_statement "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);" (assignment_expression "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c)" identifier = (cast_expression "(short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23268) + 0x7e6c)" ( (binary_expression "*(int *)(puVar33 + 0x23268) + 0x7e6c" (pointer_expression "*(int *)(puVar33 + 0x23268)" * (cast_expression "(int *)(puVar33 + 0x23268)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23268)" ( (binary_expression "puVar33 + 0x23268" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);" (assignment_expression "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4)" identifier = (cast_expression "(uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23270) + 0x51d4)" ( (binary_expression "*(int *)(puVar33 + 0x23270) + 0x51d4" (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);" do (compound_statement "{\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      }" { (if_statement "if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }" { (expression_statement "iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);" (assignment_expression "iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3)" identifier = (call_expression "(**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3)" (parenthesized_expression "(**(code **)(puVar33 + 0x233c8))" ( (pointer_expression "**(code **)(puVar33 + 0x233c8)" * (pointer_expression "*(code **)(puVar33 + 0x233c8)" * (cast_expression "(code **)(puVar33 + 0x233c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x233c8)" ( (binary_expression "puVar33 + 0x233c8" identifier + number_literal) ))))) )) (argument_list "(ppuVar16,ppuVar21,3)" ( identifier , identifier , number_literal )))) ;) }) (else_clause "else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }" else (compound_statement "{\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }" { (expression_statement "iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);" (assignment_expression "iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16)" identifier = (call_expression "(**(code **)(puVar33 + 0x234c8))(ppuVar16)" (parenthesized_expression "(**(code **)(puVar33 + 0x234c8))" ( (pointer_expression "**(code **)(puVar33 + 0x234c8)" * (pointer_expression "*(code **)(puVar33 + 0x234c8)" * (cast_expression "(code **)(puVar33 + 0x234c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x234c8)" ( (binary_expression "puVar33 + 0x234c8" identifier + number_literal) ))))) )) (argument_list "(ppuVar16)" ( identifier )))) ;) }))) (expression_statement "puStack_66c = puVar25;" (assignment_expression "puStack_66c = puVar25" identifier = identifier) ;) (if_statement "if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }" { (expression_statement "puVar29 = *(uint **)(unaff_s6 + 2);" (assignment_expression "puVar29 = *(uint **)(unaff_s6 + 2)" identifier = (pointer_expression "*(uint **)(unaff_s6 + 2)" * (cast_expression "(uint **)(unaff_s6 + 2)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s6 + 2)" ( (binary_expression "unaff_s6 + 2" identifier + number_literal) ))))) ;) (expression_statement "apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);" (assignment_expression "apuStack_5e8[1] = *(uint **)(unaff_s6 + 4)" (subscript_expression "apuStack_5e8[1]" identifier [ number_literal ]) = (pointer_expression "*(uint **)(unaff_s6 + 4)" * (cast_expression "(uint **)(unaff_s6 + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s6 + 4)" ( (binary_expression "unaff_s6 + 4" identifier + number_literal) ))))) ;) (expression_statement "apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);" (assignment_expression "apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f)" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = (cast_expression "(uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*(uint **)(unaff_s6 + 4) >> 0x1f)" ( (binary_expression "(int)*(uint **)(unaff_s6 + 4) >> 0x1f" (cast_expression "(int)*(uint **)(unaff_s6 + 4)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint **)(unaff_s6 + 4)" * (cast_expression "(uint **)(unaff_s6 + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s6 + 4)" ( (binary_expression "unaff_s6 + 4" identifier + number_literal) ))))) >> number_literal) )))) ;) (goto_statement "goto LAB_00014f5c;" goto statement_identifier ;) })) (expression_statement "unaff_s6 = unaff_s6 + 6;" (assignment_expression "unaff_s6 = unaff_s6 + 6" identifier = (binary_expression "unaff_s6 + 6" identifier + number_literal)) ;) (expression_statement "ppuVar21 = *(uint ***)unaff_s6;" (assignment_expression "ppuVar21 = *(uint ***)unaff_s6" identifier = (pointer_expression "*(uint ***)unaff_s6" * (cast_expression "(uint ***)unaff_s6" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) }) while (parenthesized_expression "(ppuVar21 != (uint **)0x0)" ( (binary_expression "ppuVar21 != (uint **)0x0" identifier != (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) ;) (expression_statement "iVar9 = *(int *)(puVar33 + 0x2326c);" (assignment_expression "iVar9 = *(int *)(puVar33 + 0x2326c)" identifier = (pointer_expression "*(int *)(puVar33 + 0x2326c)" * (cast_expression "(int *)(puVar33 + 0x2326c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x2326c)" ( (binary_expression "puVar33 + 0x2326c" identifier + number_literal) ))))) ;) (expression_statement "ppuVar21 = ppuVar16;" (assignment_expression "ppuVar21 = ppuVar16" identifier = identifier) ;) (expression_statement "iVar10 = FUN_00014388(puVar14);" (assignment_expression "iVar10 = FUN_00014388(puVar14)" identifier = (call_expression "FUN_00014388(puVar14)" identifier (argument_list "(puVar14)" ( identifier )))) ;) (expression_statement "unaff_s6 = asStack_578;" (assignment_expression "unaff_s6 = asStack_578" identifier = identifier) ;) (if_statement "if (iVar10 != 0) {\n        puVar29 = *(uint **)(iVar10 + 4);\n        apuStack_5e8[1] = *(uint **)(iVar10 + 8);\n        apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n        puVar29 = *(uint **)(iVar10 + 4);\n        apuStack_5e8[1] = *(uint **)(iVar10 + 8);\n        apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }" { (expression_statement "puVar29 = *(uint **)(iVar10 + 4);" (assignment_expression "puVar29 = *(uint **)(iVar10 + 4)" identifier = (pointer_expression "*(uint **)(iVar10 + 4)" * (cast_expression "(uint **)(iVar10 + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 4)" ( (binary_expression "iVar10 + 4" identifier + number_literal) ))))) ;) (expression_statement "apuStack_5e8[1] = *(uint **)(iVar10 + 8);" (assignment_expression "apuStack_5e8[1] = *(uint **)(iVar10 + 8)" (subscript_expression "apuStack_5e8[1]" identifier [ number_literal ]) = (pointer_expression "*(uint **)(iVar10 + 8)" * (cast_expression "(uint **)(iVar10 + 8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) ;) (expression_statement "apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);" (assignment_expression "apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f)" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = (cast_expression "(uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*(uint **)(iVar10 + 8) >> 0x1f)" ( (binary_expression "(int)*(uint **)(iVar10 + 8) >> 0x1f" (cast_expression "(int)*(uint **)(iVar10 + 8)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint **)(iVar10 + 8)" * (cast_expression "(uint **)(iVar10 + 8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) >> number_literal) )))) ;) (expression_statement "puStack_66c = (uint *)0x0;" (assignment_expression "puStack_66c = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00014f5c;" goto statement_identifier ;) })) (expression_statement "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);" (assignment_expression "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0)" identifier = (cast_expression "(uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23270) + 0x51f0)" ( (binary_expression "*(int *)(puVar33 + 0x23270) + 0x51f0" (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);" (assignment_expression "iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16)" identifier = (call_expression "(**(code **)(puVar33 + 0x234c8))(ppuVar16)" (parenthesized_expression "(**(code **)(puVar33 + 0x234c8))" ( (pointer_expression "**(code **)(puVar33 + 0x234c8)" * (pointer_expression "*(code **)(puVar33 + 0x234c8)" * (cast_expression "(code **)(puVar33 + 0x234c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x234c8)" ( (binary_expression "puVar33 + 0x234c8" identifier + number_literal) ))))) )) (argument_list "(ppuVar16)" ( identifier )))) ;) (if_statement "if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        ppuVar16 = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        ppuVar16 = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }" { (expression_statement "puVar29 = (uint *)0x103;" (assignment_expression "puVar29 = (uint *)0x103" identifier = (cast_expression "(uint *)0x103" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "apuStack_5e8[1] = (uint *)0x0;" (assignment_expression "apuStack_5e8[1] = (uint *)0x0" (subscript_expression "apuStack_5e8[1]" identifier [ number_literal ]) = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "apuStack_5e8[0] = (uint *)0x0;" (assignment_expression "apuStack_5e8[0] = (uint *)0x0" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);" statement_identifier : (expression_statement "iVar9 = *(int *)(puVar33 + 0x23270);" (assignment_expression "iVar9 = *(int *)(puVar33 + 0x23270)" identifier = (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) ;)) (expression_statement "ppuVar16 = ppuVar21;" (assignment_expression "ppuVar16 = ppuVar21" identifier = identifier) ;) (expression_statement "puStack_66c = puVar31;" (assignment_expression "puStack_66c = puVar31" identifier = identifier) ;) (goto_statement "goto LAB_0001558c;" goto statement_identifier ;) })) (expression_statement "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);" (assignment_expression "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8)" identifier = (cast_expression "(short *)(*(int *)(puVar33 + 0x23268) + 0x7de8)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23268) + 0x7de8)" ( (binary_expression "*(int *)(puVar33 + 0x23268) + 0x7de8" (pointer_expression "*(int *)(puVar33 + 0x23268)" * (cast_expression "(int *)(puVar33 + 0x23268)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23268)" ( (binary_expression "puVar33 + 0x23268" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "ppuVar11 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);" (assignment_expression "ppuVar11 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc)" identifier = (cast_expression "(uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23270) + 0x51dc)" ( (binary_expression "*(int *)(puVar33 + 0x23270) + 0x51dc" (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "ppuVar21 = ppuVar11;" (assignment_expression "ppuVar21 = ppuVar11" identifier = identifier) ;) (expression_statement "psVar27 = unaff_s6;" (assignment_expression "psVar27 = unaff_s6" identifier = identifier) ;) (do_statement "do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);" do (compound_statement "{\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      }" { (expression_statement "iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);" (assignment_expression "iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16)" identifier = (call_expression "(**(code **)(puVar33 + 0x234c8))(ppuVar16)" (parenthesized_expression "(**(code **)(puVar33 + 0x234c8))" ( (pointer_expression "**(code **)(puVar33 + 0x234c8)" * (pointer_expression "*(code **)(puVar33 + 0x234c8)" * (cast_expression "(code **)(puVar33 + 0x234c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x234c8)" ( (binary_expression "puVar33 + 0x234c8" identifier + number_literal) ))))) )) (argument_list "(ppuVar16)" ( identifier )))) ;) (if_statement "if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }" { (expression_statement "puVar29 = *(uint **)(psVar27 + 2);" (assignment_expression "puVar29 = *(uint **)(psVar27 + 2)" identifier = (pointer_expression "*(uint **)(psVar27 + 2)" * (cast_expression "(uint **)(psVar27 + 2)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(psVar27 + 2)" ( (binary_expression "psVar27 + 2" identifier + number_literal) ))))) ;) (expression_statement "apuStack_5e8[1] = *(uint **)(psVar27 + 4);" (assignment_expression "apuStack_5e8[1] = *(uint **)(psVar27 + 4)" (subscript_expression "apuStack_5e8[1]" identifier [ number_literal ]) = (pointer_expression "*(uint **)(psVar27 + 4)" * (cast_expression "(uint **)(psVar27 + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(psVar27 + 4)" ( (binary_expression "psVar27 + 4" identifier + number_literal) ))))) ;) (expression_statement "apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);" (assignment_expression "apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f)" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = (cast_expression "(uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*(uint **)(psVar27 + 4) >> 0x1f)" ( (binary_expression "(int)*(uint **)(psVar27 + 4) >> 0x1f" (cast_expression "(int)*(uint **)(psVar27 + 4)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint **)(psVar27 + 4)" * (cast_expression "(uint **)(psVar27 + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(psVar27 + 4)" ( (binary_expression "psVar27 + 4" identifier + number_literal) ))))) >> number_literal) )))) ;) (goto_statement "goto LAB_00014f5c;" goto statement_identifier ;) })) (expression_statement "psVar27 = psVar27 + 6;" (assignment_expression "psVar27 = psVar27 + 6" identifier = (binary_expression "psVar27 + 6" identifier + number_literal)) ;) (expression_statement "ppuVar21 = *(uint ***)psVar27;" (assignment_expression "ppuVar21 = *(uint ***)psVar27" identifier = (pointer_expression "*(uint ***)psVar27" * (cast_expression "(uint ***)psVar27" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) }) while (parenthesized_expression "(ppuVar21 != (uint **)0x0)" ( (binary_expression "ppuVar21 != (uint **)0x0" identifier != (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) ;) (expression_statement "pbVar26 = (byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1));" (assignment_expression "pbVar26 = (byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1))" identifier = (cast_expression "(byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar16 + (int)((int)puStack_674 + -1))" ( (binary_expression "(int)ppuVar16 + (int)((int)puStack_674 + -1)" (cast_expression "(int)ppuVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)((int)puStack_674 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)puStack_674 + -1)" ( (binary_expression "(int)puStack_674 + -1" (cast_expression "(int)puStack_674" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (if_statement "if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar11 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }" if (parenthesized_expression "(*pbVar26 == 0x53)" ( (binary_expression "*pbVar26 == 0x53" (pointer_expression "*pbVar26" * identifier) == number_literal) )) (compound_statement "{\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar11 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }" { (expression_statement "*pbVar26 = 0;" (assignment_expression "*pbVar26 = 0" (pointer_expression "*pbVar26" * identifier) = number_literal) ;) (expression_statement "pcVar34 = *(code **)(puVar33 + 0x234c8);" (assignment_expression "pcVar34 = *(code **)(puVar33 + 0x234c8)" identifier = (pointer_expression "*(code **)(puVar33 + 0x234c8)" * (cast_expression "(code **)(puVar33 + 0x234c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x234c8)" ( (binary_expression "puVar33 + 0x234c8" identifier + number_literal) ))))) ;) (do_statement "do {\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar11 != (uint **)0x0);" do (compound_statement "{\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        }" { (expression_statement "iVar10 = (*pcVar34)(ppuVar16);" (assignment_expression "iVar10 = (*pcVar34)(ppuVar16)" identifier = (call_expression "(*pcVar34)(ppuVar16)" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "(ppuVar16)" ( identifier )))) ;) (expression_statement "ppuVar21 = ppuVar11;" (assignment_expression "ppuVar21 = ppuVar11" identifier = identifier) ;) (expression_statement "puStack_66c = puVar31;" (assignment_expression "puStack_66c = puVar31" identifier = identifier) ;) (if_statement "if (iVar10 == 0) goto LAB_00015708;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00015708;" goto statement_identifier ;)) (expression_statement "unaff_s6 = unaff_s6 + 6;" (assignment_expression "unaff_s6 = unaff_s6 + 6" identifier = (binary_expression "unaff_s6 + 6" identifier + number_literal)) ;) (expression_statement "ppuVar11 = *(uint ***)unaff_s6;" (assignment_expression "ppuVar11 = *(uint ***)unaff_s6" identifier = (pointer_expression "*(uint ***)unaff_s6" * (cast_expression "(uint ***)unaff_s6" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (expression_statement "pcVar34 = *(code **)(puVar33 + 0x234c8);" (assignment_expression "pcVar34 = *(code **)(puVar33 + 0x234c8)" identifier = (pointer_expression "*(code **)(puVar33 + 0x234c8)" * (cast_expression "(code **)(puVar33 + 0x234c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x234c8)" ( (binary_expression "puVar33 + 0x234c8" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(ppuVar11 != (uint **)0x0)" ( (binary_expression "ppuVar11 != (uint **)0x0" identifier != (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) ;) (expression_statement "*pbVar26 = 0x53;" (assignment_expression "*pbVar26 = 0x53" (pointer_expression "*pbVar26" * identifier) = number_literal) ;) })) (expression_statement "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);" (assignment_expression "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec)" identifier = (cast_expression "(short *)(*(int *)(puVar33 + 0x23268) + 0x7cec)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23268) + 0x7cec)" ( (binary_expression "*(int *)(puVar33 + 0x23268) + 0x7cec" (pointer_expression "*(int *)(puVar33 + 0x23268)" * (cast_expression "(int *)(puVar33 + 0x23268)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23268)" ( (binary_expression "puVar33 + 0x23268" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);" (assignment_expression "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4)" identifier = (cast_expression "(uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23270) + 0x51e4)" ( (binary_expression "*(int *)(puVar33 + 0x23270) + 0x51e4" (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcVar34 = *(code **)(puVar33 + 0x234c8);" (assignment_expression "pcVar34 = *(code **)(puVar33 + 0x234c8)" identifier = (pointer_expression "*(code **)(puVar33 + 0x234c8)" * (cast_expression "(code **)(puVar33 + 0x234c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x234c8)" ( (binary_expression "puVar33 + 0x234c8" identifier + number_literal) ))))) ;) (do_statement "do {\n        iVar10 = (*pcVar34)(ppuVar16);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);" do (compound_statement "{\n        iVar10 = (*pcVar34)(ppuVar16);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      }" { (expression_statement "iVar10 = (*pcVar34)(ppuVar16);" (assignment_expression "iVar10 = (*pcVar34)(ppuVar16)" identifier = (call_expression "(*pcVar34)(ppuVar16)" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "(ppuVar16)" ( identifier )))) ;) (expression_statement "puStack_66c = puVar31;" (assignment_expression "puStack_66c = puVar31" identifier = identifier) ;) (if_statement "if (iVar10 == 0) goto LAB_00015708;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00015708;" goto statement_identifier ;)) (expression_statement "unaff_s6 = unaff_s6 + 6;" (assignment_expression "unaff_s6 = unaff_s6 + 6" identifier = (binary_expression "unaff_s6 + 6" identifier + number_literal)) ;) (expression_statement "ppuVar21 = *(uint ***)unaff_s6;" (assignment_expression "ppuVar21 = *(uint ***)unaff_s6" identifier = (pointer_expression "*(uint ***)unaff_s6" * (cast_expression "(uint ***)unaff_s6" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (expression_statement "pcVar34 = *(code **)(puVar33 + 0x234c8);" (assignment_expression "pcVar34 = *(code **)(puVar33 + 0x234c8)" identifier = (pointer_expression "*(code **)(puVar33 + 0x234c8)" * (cast_expression "(code **)(puVar33 + 0x234c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x234c8)" ( (binary_expression "puVar33 + 0x234c8" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(ppuVar21 != (uint **)0x0)" ( (binary_expression "ppuVar21 != (uint **)0x0" identifier != (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) ;) (if_statement "if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar11 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }" if (parenthesized_expression "(puStack_674 == (uint *)0x1)" ( (binary_expression "puStack_674 == (uint *)0x1" identifier == (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar11 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }" { (expression_statement "ppuVar21 = *(uint ***)(puVar33 + 0x23268);" (assignment_expression "ppuVar21 = *(uint ***)(puVar33 + 0x23268)" identifier = (pointer_expression "*(uint ***)(puVar33 + 0x23268)" * (cast_expression "(uint ***)(puVar33 + 0x23268)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar33 + 0x23268)" ( (binary_expression "puVar33 + 0x23268" identifier + number_literal) ))))) ;) (if_statement "if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }" if (parenthesized_expression "(abStack_f1[1] == 0x41)" ( (binary_expression "abStack_f1[1] == 0x41" (subscript_expression "abStack_f1[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }" { (expression_statement "puVar29 = (uint *)0x111;" (assignment_expression "puVar29 = (uint *)0x111" identifier = (cast_expression "(uint *)0x111" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "apuStack_5e8[1] = (uint *)0xfffff1f0;" (assignment_expression "apuStack_5e8[1] = (uint *)0xfffff1f0" (subscript_expression "apuStack_5e8[1]" identifier [ number_literal ]) = (cast_expression "(uint *)0xfffff1f0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "apuStack_5e8[0] = (uint *)0xffffffff;" (assignment_expression "apuStack_5e8[0] = (uint *)0xffffffff" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = (cast_expression "(uint *)0xffffffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00015588;" goto statement_identifier ;) })) (expression_statement "ppuVar11 = ppuVar21 + 0x1e51;" (assignment_expression "ppuVar11 = ppuVar21 + 0x1e51" identifier = (binary_expression "ppuVar21 + 0x1e51" identifier + number_literal)) ;) (while_statement "while( true ) {\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }" { (expression_statement "ppuVar21 = ppuVar11;" (assignment_expression "ppuVar21 = ppuVar11" identifier = identifier) ;) (if_statement "if (ppuVar21[3] == (uint *)0x0) break;" if (parenthesized_expression "(ppuVar21[3] == (uint *)0x0)" ( (binary_expression "ppuVar21[3] == (uint *)0x0" (subscript_expression "ppuVar21[3]" identifier [ number_literal ]) == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "ppuVar11 = ppuVar21 + 3;" (assignment_expression "ppuVar11 = ppuVar21 + 3" identifier = (binary_expression "ppuVar21 + 3" identifier + number_literal)) ;) (if_statement "if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }" if (parenthesized_expression "(*(byte *)ppuVar21[3] == abStack_f1[1])" ( (binary_expression "*(byte *)ppuVar21[3] == abStack_f1[1]" (pointer_expression "*(byte *)ppuVar21[3]" * (cast_expression "(byte *)ppuVar21[3]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppuVar21[3]" identifier [ number_literal ]))) == (subscript_expression "abStack_f1[1]" identifier [ number_literal ])) )) (compound_statement "{\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }" { (expression_statement "puVar29 = ppuVar21[4];" (assignment_expression "puVar29 = ppuVar21[4]" identifier = (subscript_expression "ppuVar21[4]" identifier [ number_literal ])) ;) (expression_statement "apuStack_5e8[1] = ppuVar21[5];" (assignment_expression "apuStack_5e8[1] = ppuVar21[5]" (subscript_expression "apuStack_5e8[1]" identifier [ number_literal ]) = (subscript_expression "ppuVar21[5]" identifier [ number_literal ])) ;) (expression_statement "apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);" (assignment_expression "apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f)" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = (cast_expression "(uint *)((int)ppuVar21[5] >> 0x1f)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar21[5] >> 0x1f)" ( (binary_expression "(int)ppuVar21[5] >> 0x1f" (cast_expression "(int)ppuVar21[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppuVar21[5]" identifier [ number_literal ])) >> number_literal) )))) ;) (goto_statement "goto LAB_00014f5c;" goto statement_identifier ;) })) })) })) (if_statement "if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = ppuVar16;\n        ppuVar11 = ppuVar16;\n        bVar12 = abStack_f1[1];\n        do {\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        } while (bVar12 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }" if (parenthesized_expression "(abStack_f1[1] != 0)" ( (binary_expression "abStack_f1[1] != 0" (subscript_expression "abStack_f1[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        bVar2 = false;\n        ppuVar21 = ppuVar16;\n        ppuVar11 = ppuVar16;\n        bVar12 = abStack_f1[1];\n        do {\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        } while (bVar12 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "ppuVar21 = ppuVar16;" (assignment_expression "ppuVar21 = ppuVar16" identifier = identifier) ;) (expression_statement "ppuVar11 = ppuVar16;" (assignment_expression "ppuVar11 = ppuVar16" identifier = identifier) ;) (expression_statement "bVar12 = abStack_f1[1];" (assignment_expression "bVar12 = abStack_f1[1]" identifier = (subscript_expression "abStack_f1[1]" identifier [ number_literal ])) ;) (do_statement "do {\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        } while (bVar12 != 0);" do (compound_statement "{\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        }" { (if_statement "if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }" if (parenthesized_expression "(bVar12 == 0x2e)" ( (binary_expression "bVar12 == 0x2e" identifier == number_literal) )) (compound_statement "{\n            bVar2 = true;\n          }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) }) (else_clause "else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }" else (compound_statement "{\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }" { (expression_statement "ppuVar21 = (uint **)((int)ppuVar21 + 1);" (assignment_expression "ppuVar21 = (uint **)((int)ppuVar21 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar21 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar21 + 1)" ( (binary_expression "(int)ppuVar21 + 1" (cast_expression "(int)ppuVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) (expression_statement "ppuVar11 = (uint **)((int)ppuVar11 + 1);" (assignment_expression "ppuVar11 = (uint **)((int)ppuVar11 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar11 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar11 + 1)" ( (binary_expression "(int)ppuVar11 + 1" (cast_expression "(int)ppuVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar12 = *(byte *)ppuVar11;" (assignment_expression "bVar12 = *(byte *)ppuVar11" identifier = (pointer_expression "*(byte *)ppuVar11" * (cast_expression "(byte *)ppuVar11" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(byte *)ppuVar21 = bVar12;" (assignment_expression "*(byte *)ppuVar21 = bVar12" (pointer_expression "*(byte *)ppuVar21" * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) }) while (parenthesized_expression "(bVar12 != 0)" ( (binary_expression "bVar12 != 0" identifier != number_literal) )) ;) (expression_statement "puStack_674 = puVar31;" (assignment_expression "puStack_674 = puVar31" identifier = identifier) ;) (if_statement "if ((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }" if (parenthesized_expression "((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0))" ( (binary_expression "(bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)" (parenthesized_expression "(bVar2)" ( identifier )) && (parenthesized_expression "(ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)" ( (comma_expression "ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0" (assignment_expression "ppuVar21 = ppuVar16" identifier = identifier) , (comma_expression "iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0" (assignment_expression "iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14)" identifier = (call_expression "(*(code *)(iVar9 + 0x4388))(puVar14)" (parenthesized_expression "(*(code *)(iVar9 + 0x4388))" ( (pointer_expression "*(code *)(iVar9 + 0x4388)" * (cast_expression "(code *)(iVar9 + 0x4388)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4388)" ( (binary_expression "iVar9 + 0x4388" identifier + number_literal) )))) )) (argument_list "(puVar14)" ( identifier )))) , (binary_expression "iVar9 != 0" identifier != number_literal))) ))) )) (compound_statement "{\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }" { (expression_statement "puVar29 = *(uint **)(iVar9 + 4);" (assignment_expression "puVar29 = *(uint **)(iVar9 + 4)" identifier = (pointer_expression "*(uint **)(iVar9 + 4)" * (cast_expression "(uint **)(iVar9 + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) ))))) ;) (expression_statement "apuStack_5e8[1] = *(uint **)(iVar9 + 8);" (assignment_expression "apuStack_5e8[1] = *(uint **)(iVar9 + 8)" (subscript_expression "apuStack_5e8[1]" identifier [ number_literal ]) = (pointer_expression "*(uint **)(iVar9 + 8)" * (cast_expression "(uint **)(iVar9 + 8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) ))))) ;) (expression_statement "apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);" (assignment_expression "apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f)" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = (cast_expression "(uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*(uint **)(iVar9 + 8) >> 0x1f)" ( (binary_expression "(int)*(uint **)(iVar9 + 8) >> 0x1f" (cast_expression "(int)*(uint **)(iVar9 + 8)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint **)(iVar9 + 8)" * (cast_expression "(uint **)(iVar9 + 8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) ))))) >> number_literal) )))) ;) (goto_statement "goto LAB_00014f5c;" goto statement_identifier ;) })) })) (expression_statement "ppuVar21 = *(uint ***)(puVar33 + 0x23270);" (assignment_expression "ppuVar21 = *(uint ***)(puVar33 + 0x23270)" identifier = (pointer_expression "*(uint ***)(puVar33 + 0x23270)" * (cast_expression "(uint ***)(puVar33 + 0x23270)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)((int)puVar14 + 0xb5) == '\0') goto LAB_00017ae0;" if (parenthesized_expression "(*(char *)((int)puVar14 + 0xb5) == '\0')" ( (binary_expression "*(char *)((int)puVar14 + 0xb5) == '\0'" (pointer_expression "*(char *)((int)puVar14 + 0xb5)" * (cast_expression "(char *)((int)puVar14 + 0xb5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + 0xb5)" ( (binary_expression "(int)puVar14 + 0xb5" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00017ae0;" goto statement_identifier ;)) (expression_statement "uVar5 = (**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5);" (assignment_expression "uVar5 = (**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5)" identifier = (call_expression "(**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5)" (parenthesized_expression "(**(code **)(puVar33 + 0x2348c))" ( (pointer_expression "**(code **)(puVar33 + 0x2348c)" * (pointer_expression "*(code **)(puVar33 + 0x2348c)" * (cast_expression "(code **)(puVar33 + 0x2348c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x2348c)" ( (binary_expression "puVar33 + 0x2348c" identifier + number_literal) ))))) )) (argument_list "(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5)" ( number_literal , (binary_expression "*(uint ***)(puVar33 + 0x23270) + 0x147d" (pointer_expression "*(uint ***)(puVar33 + 0x23270)" * (cast_expression "(uint ***)(puVar33 + 0x23270)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "puVar29 = (uint *)0x3f;" (assignment_expression "puVar29 = (uint *)0x3f" identifier = (cast_expression "(uint *)0x3f" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_00014188(uVar5);" (call_expression "FUN_00014188(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "uVar15 = 2;" (assignment_expression "uVar15 = 2" identifier = number_literal) ;) (expression_statement "puVar19 = (uint *)((int)puVar31 + 2);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + 2)" identifier = (cast_expression "(uint *)((int)puVar31 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar31 + 2)" ( (binary_expression "(int)puVar31 + 2" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (goto_statement "goto LAB_00014f74;" goto statement_identifier ;) })) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (if_statement "if (uVar15 == 0x28) {\n      ppuVar21 = (uint **)*puVar14;\n      goto LAB_000157a8;\n    }" if (parenthesized_expression "(uVar15 == 0x28)" ( (binary_expression "uVar15 == 0x28" identifier == number_literal) )) (compound_statement "{\n      ppuVar21 = (uint **)*puVar14;\n      goto LAB_000157a8;\n    }" { (expression_statement "ppuVar21 = (uint **)*puVar14;" (assignment_expression "ppuVar21 = (uint **)*puVar14" identifier = (cast_expression "(uint **)*puVar14" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar14" * identifier))) ;) (goto_statement "goto LAB_000157a8;" goto statement_identifier ;) })) (expression_statement "*puVar14 = (byte *)((int)ppuVar21 + 1);" (assignment_expression "*puVar14 = (byte *)((int)ppuVar21 + 1)" (pointer_expression "*puVar14" * identifier) = (cast_expression "(byte *)((int)ppuVar21 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar21 + 1)" ( (binary_expression "(int)ppuVar21 + 1" (cast_expression "(int)ppuVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar29 = (uint *)(uint)*(byte *)ppuVar21;" (assignment_expression "puVar29 = (uint *)(uint)*(byte *)ppuVar21" identifier = (binary_expression "(uint *)(uint)*(byte *)ppuVar21" (cast_expression "(uint *)(uint)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar9 = *(int *)(puVar33 + 0x23270);" (assignment_expression "iVar9 = *(int *)(puVar33 + 0x23270)" identifier = (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) ;) (if_statement "if (puVar29 != (uint *)0x0) goto LAB_0001558c;" if (parenthesized_expression "(puVar29 != (uint *)0x0)" ( (binary_expression "puVar29 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001558c;" goto statement_identifier ;)) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00014f74;" goto statement_identifier ;) })) (labeled_statement "LAB_00014f5c:\n  ppuVar16 = ppuVar21;" statement_identifier : (expression_statement "ppuVar16 = ppuVar21;" (assignment_expression "ppuVar16 = ppuVar21" identifier = identifier) ;)) (if_statement "if ((int)puVar29 < 1) {\nLAB_000152b8:\n    uVar15 = 0;\n    puVar29 = (uint *)0x0;\n  }\n  else {\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if ((int)puVar29 < 0x116) {\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }\n    else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }\n  }" if (parenthesized_expression "((int)puVar29 < 1)" ( (binary_expression "(int)puVar29 < 1" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\nLAB_000152b8:\n    uVar15 = 0;\n    puVar29 = (uint *)0x0;\n  }" { (labeled_statement "LAB_000152b8:\n    uVar15 = 0;" statement_identifier : (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;)) (expression_statement "puVar29 = (uint *)0x0;" (assignment_expression "puVar29 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if ((int)puVar29 < 0x116) {\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }\n    else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }\n  }" else (compound_statement "{\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if ((int)puVar29 < 0x116) {\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }\n    else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }\n  }" { (expression_statement "iVar9 = *(int *)(puVar33 + 0x23270);" (assignment_expression "iVar9 = *(int *)(puVar33 + 0x23270)" identifier = (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) ;) (if_statement "if ((int)puVar29 < 0x116) {\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }\n    else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }" if (parenthesized_expression "((int)puVar29 < 0x116)" ( (binary_expression "(int)puVar29 < 0x116" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }" { (labeled_statement "LAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);" statement_identifier : (expression_statement "uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);" (assignment_expression "uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458)" identifier = (binary_expression "(uint)*(byte *)((int)puVar29 + iVar9 + 0x6458)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)puVar29 + iVar9 + 0x6458)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + iVar9 + 0x6458)" ( (binary_expression "(int)puVar29 + iVar9 + 0x6458" (binary_expression "(int)puVar29 + iVar9" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;)) (expression_statement "puVar19 = (uint *)((int)puVar31 + uVar15);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + uVar15)" identifier = (cast_expression "(uint *)((int)puVar31 + uVar15)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar31 + uVar15)" ( (binary_expression "(int)puVar31 + uVar15" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }" else (compound_statement "{\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }" { (expression_statement "uVar15 = 2;" (assignment_expression "uVar15 = 2" identifier = number_literal) ;) (expression_statement "puVar19 = (uint *)((int)puVar31 + 2);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + 2)" identifier = (cast_expression "(uint *)((int)puVar31 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar31 + 2)" ( (binary_expression "(int)puVar31 + 2" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) }))) (goto_statement "goto LAB_00014f74;" goto statement_identifier ;) (labeled_statement "LAB_00015354:\n  do {\n    in_t3 = 1;\nLAB_00015358:\n    while( true ) {\n      ppuVar21 = (uint **)*puVar14;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n      if (ppuVar16 != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }\n    in_t3 = 0;\n  } while (uVar15 == 0x2b);" statement_identifier : (do_statement "do {\n    in_t3 = 1;\nLAB_00015358:\n    while( true ) {\n      ppuVar21 = (uint **)*puVar14;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n      if (ppuVar16 != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }\n    in_t3 = 0;\n  } while (uVar15 == 0x2b);" do (compound_statement "{\n    in_t3 = 1;\nLAB_00015358:\n    while( true ) {\n      ppuVar21 = (uint **)*puVar14;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n      if (ppuVar16 != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }\n    in_t3 = 0;\n  }" { (expression_statement "in_t3 = 1;" (assignment_expression "in_t3 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00015358:\n    while( true ) {\n      ppuVar21 = (uint **)*puVar14;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n      if (ppuVar16 != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }" statement_identifier : (while_statement "while( true ) {\n      ppuVar21 = (uint **)*puVar14;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n      if (ppuVar16 != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      ppuVar21 = (uint **)*puVar14;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n      if (ppuVar16 != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }" { (expression_statement "ppuVar21 = (uint **)*puVar14;" (assignment_expression "ppuVar21 = (uint **)*puVar14" identifier = (cast_expression "(uint **)*puVar14" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar14" * identifier))) ;) (do_statement "do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);" do (compound_statement "{\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      }" { (expression_statement "ppuVar21 = (uint **)((int)ppuVar21 + 1);" (assignment_expression "ppuVar21 = (uint **)((int)ppuVar21 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar21 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar21 + 1)" ( (binary_expression "(int)ppuVar21 + 1" (cast_expression "(int)ppuVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*puVar14 = ppuVar21;" (assignment_expression "*puVar14 = ppuVar21" (pointer_expression "*puVar14" * identifier) = identifier) ;) (expression_statement "in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;" (assignment_expression "in_t0 = (uint **)(int)(char)*(byte *)ppuVar21" identifier = (cast_expression "(uint **)(int)(char)*(byte *)ppuVar21" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)(char)*(byte *)ppuVar21" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)ppuVar21" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)ppuVar21" * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))))) ;) (expression_statement "uVar15 = (uint)*(byte *)ppuVar21;" (assignment_expression "uVar15 = (uint)*(byte *)ppuVar21" identifier = (binary_expression "(uint)*(byte *)ppuVar21" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)ppuVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "in_t8 = (uint)(uVar15 - 9 < 0x18);" (assignment_expression "in_t8 = (uint)(uVar15 - 9 < 0x18)" identifier = (call_expression "(uint)(uVar15 - 9 < 0x18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar15 - 9 < 0x18)" ( (binary_expression "uVar15 - 9 < 0x18" (binary_expression "uVar15 - 9" identifier - number_literal) < number_literal) )))) ;) (if_statement "if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }" if (parenthesized_expression "(in_t8 == 0)" ( (binary_expression "in_t8 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }" { (expression_statement "uVar22 = uVar15 - 0x30;" (assignment_expression "uVar22 = uVar15 - 0x30" identifier = (binary_expression "uVar15 - 0x30" identifier - number_literal)) ;) (if_statement "if (9 < uVar22) goto LAB_000152f4;" if (parenthesized_expression "(9 < uVar22)" ( (binary_expression "9 < uVar22" number_literal < identifier) )) (goto_statement "goto LAB_000152f4;" goto statement_identifier ;)) (goto_statement "goto LAB_000153dc;" goto statement_identifier ;) })) }) while (parenthesized_expression "((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0)" ( (binary_expression "(1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0" (parenthesized_expression "(1 << (uVar15 - 9 & 0x1f) & 0x80001fU)" ( (binary_expression "1 << (uVar15 - 9 & 0x1f) & 0x80001fU" (binary_expression "1 << (uVar15 - 9 & 0x1f)" number_literal << (parenthesized_expression "(uVar15 - 9 & 0x1f)" ( (binary_expression "uVar15 - 9 & 0x1f" (binary_expression "uVar15 - 9" identifier - number_literal) & number_literal) ))) & number_literal) )) != number_literal) )) ;) (expression_statement "uVar22 = uVar15 - 9;" (assignment_expression "uVar22 = uVar15 - 9" identifier = (binary_expression "uVar15 - 9" identifier - number_literal)) ;) (expression_statement "ppuVar16 = (uint **)(uint)(uVar22 < 0x18);" (assignment_expression "ppuVar16 = (uint **)(uint)(uVar22 < 0x18)" identifier = (cast_expression "(uint **)(uint)(uVar22 < 0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(uint)(uVar22 < 0x18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar22 < 0x18)" ( (binary_expression "uVar22 < 0x18" identifier < number_literal) ))))) ;) (if_statement "if (ppuVar16 != (uint **)0x0) goto LAB_00015308;" if (parenthesized_expression "(ppuVar16 != (uint **)0x0)" ( (binary_expression "ppuVar16 != (uint **)0x0" identifier != (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_00015308;" goto statement_identifier ;)) (labeled_statement "LAB_000153a8:\n      uVar22 = uVar15 - 0x30;" statement_identifier : (expression_statement "uVar22 = uVar15 - 0x30;" (assignment_expression "uVar22 = uVar15 - 0x30" identifier = (binary_expression "uVar15 - 0x30" identifier - number_literal)) ;)) (if_statement "if (9 < uVar22) goto LAB_00015344;" if (parenthesized_expression "(9 < uVar22)" ( (binary_expression "9 < uVar22" number_literal < identifier) )) (goto_statement "goto LAB_00015344;" goto statement_identifier ;)) (if_statement "if (uVar15 != 0x2d) break;" if (parenthesized_expression "(uVar15 != 0x2d)" ( (binary_expression "uVar15 != 0x2d" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "in_t3 = 0xffffffff;" (assignment_expression "in_t3 = 0xffffffff" identifier = number_literal) ;) }))) (expression_statement "in_t3 = 0;" (assignment_expression "in_t3 = 0" identifier = number_literal) ;) }) while (parenthesized_expression "(uVar15 == 0x2b)" ( (binary_expression "uVar15 == 0x2b" identifier == number_literal) )) ;)) (expression_statement "ppuVar21 = (uint **)*puVar14;" (assignment_expression "ppuVar21 = (uint **)*puVar14" identifier = (cast_expression "(uint **)*puVar14" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar14" * identifier))) ;) (labeled_statement "LAB_000153dc:\n  ppuVar16 = (uint **)0x0;" statement_identifier : (expression_statement "ppuVar16 = (uint **)0x0;" (assignment_expression "ppuVar16 = (uint **)0x0" identifier = (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;)) (expression_statement "puVar29 = (uint *)0x0;" (assignment_expression "puVar29 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "in_t5 = 0xffffffff;" (assignment_expression "in_t5 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar18 = 0x30;" (assignment_expression "uVar18 = 0x30" identifier = number_literal) ;) (expression_statement "in_t8 = 10;" (assignment_expression "in_t8 = 10" identifier = number_literal) ;) (expression_statement "ppuVar28 = ppuVar21;" (assignment_expression "ppuVar28 = ppuVar21" identifier = identifier) ;) (labeled_statement "LAB_000153f8:\n  if (in_t3 == 0xffffffff) {\n    uVar22 = 0x30 - uVar15;\n  }" statement_identifier : (if_statement "if (in_t3 == 0xffffffff) {\n    uVar22 = 0x30 - uVar15;\n  }" if (parenthesized_expression "(in_t3 == 0xffffffff)" ( (binary_expression "in_t3 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n    uVar22 = 0x30 - uVar15;\n  }" { (expression_statement "uVar22 = 0x30 - uVar15;" (assignment_expression "uVar22 = 0x30 - uVar15" identifier = (binary_expression "0x30 - uVar15" number_literal - identifier)) ;) }))) (expression_statement "uVar15 = (int)uVar22 >> 0x1f;" (assignment_expression "uVar15 = (int)uVar22 >> 0x1f" identifier = (binary_expression "(int)uVar22 >> 0x1f" (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "puVar17 = (uint *)((int)puVar29 + uVar22);" (assignment_expression "puVar17 = (uint *)((int)puVar29 + uVar22)" identifier = (cast_expression "(uint *)((int)puVar29 + uVar22)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + uVar22)" ( (binary_expression "(int)puVar29 + uVar22" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "in_t2 = (uint *)((int)ppuVar16 + (puVar17 < puVar29) + uVar15);" (assignment_expression "in_t2 = (uint *)((int)ppuVar16 + (puVar17 < puVar29) + uVar15)" identifier = (cast_expression "(uint *)((int)ppuVar16 + (puVar17 < puVar29) + uVar15)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar16 + (puVar17 < puVar29) + uVar15)" ( (binary_expression "(int)ppuVar16 + (puVar17 < puVar29) + uVar15" (binary_expression "(int)ppuVar16 + (puVar17 < puVar29)" (cast_expression "(int)ppuVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(puVar17 < puVar29)" ( (binary_expression "puVar17 < puVar29" identifier < identifier) ))) + identifier) )))) ;) (expression_statement "in_t4 = (uint **)((uint)in_t2 ^ uVar15);" (assignment_expression "in_t4 = (uint **)((uint)in_t2 ^ uVar15)" identifier = (cast_expression "(uint **)((uint)in_t2 ^ uVar15)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((uint)in_t2 ^ uVar15)" ( (binary_expression "(uint)in_t2 ^ uVar15" (cast_expression "(uint)in_t2" ( (type_descriptor "uint" type_identifier) ) identifier) ^ identifier) )))) ;) (expression_statement "ppuVar16 = (uint **)((uint)in_t4 & ~((uint)ppuVar16 ^ uVar15));" (assignment_expression "ppuVar16 = (uint **)((uint)in_t4 & ~((uint)ppuVar16 ^ uVar15))" identifier = (cast_expression "(uint **)((uint)in_t4 & ~((uint)ppuVar16 ^ uVar15))" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((uint)in_t4 & ~((uint)ppuVar16 ^ uVar15))" ( (binary_expression "(uint)in_t4 & ~((uint)ppuVar16 ^ uVar15)" (cast_expression "(uint)in_t4" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "~((uint)ppuVar16 ^ uVar15)" ~ (parenthesized_expression "((uint)ppuVar16 ^ uVar15)" ( (binary_expression "(uint)ppuVar16 ^ uVar15" (cast_expression "(uint)ppuVar16" ( (type_descriptor "uint" type_identifier) ) identifier) ^ identifier) )))) )))) ;) (if_statement "if ((int)ppuVar16 < 0) goto LAB_00017ad0;" if (parenthesized_expression "((int)ppuVar16 < 0)" ( (binary_expression "(int)ppuVar16 < 0" (cast_expression "(int)ppuVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00017ad0;" goto statement_identifier ;)) (expression_statement "uVar15 = (uint)*(byte *)((int)ppuVar28 + 1);" (assignment_expression "uVar15 = (uint)*(byte *)((int)ppuVar28 + 1)" identifier = (binary_expression "(uint)*(byte *)((int)ppuVar28 + 1)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)ppuVar28 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar28 + 1)" ( (binary_expression "(int)ppuVar28 + 1" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar22 = uVar15 - 0x30;" (assignment_expression "uVar22 = uVar15 - 0x30" identifier = (binary_expression "uVar15 - 0x30" identifier - number_literal)) ;) (expression_statement "in_t4 = (uint **)((int)ppuVar28 + 1);" (assignment_expression "in_t4 = (uint **)((int)ppuVar28 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar28 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar28 + 1)" ( (binary_expression "(int)ppuVar28 + 1" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (uVar22 < 10) goto LAB_00015528;" if (parenthesized_expression "(uVar22 < 10)" ( (binary_expression "uVar22 < 10" identifier < number_literal) )) (goto_statement "goto LAB_00015528;" goto statement_identifier ;)) (expression_statement "ppuVar16 = (uint **)0xfffffffd;" (assignment_expression "ppuVar16 = (uint **)0xfffffffd" identifier = (cast_expression "(uint **)0xfffffffd" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (if_statement "if (((*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c) ||\n     (puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29)) {\n    *puVar14 = in_t4;\n    uVar15 = 0x13;\n    apuStack_5e8[0] = (uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_);\n    puVar29 = (uint *)0x112;\n    if (in_t3 == 0) {\n      uVar15 = 0x14;\n    }\n    iStack_660 = (int)in_t4 - (int)ppuVar21;\n    if (in_t3 == 0) {\n      puVar29 = (uint *)0x113;\n    }\n    puVar19 = (uint *)((int)puVar31 + uVar15);\n    puStack_65c = in_t2;\n    puStack_630 = puVar17;\n    goto LAB_00014f74;\n  }" if (parenthesized_expression "(((*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c) ||\n     (puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29))" ( (binary_expression "((*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c) ||\n     (puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29)" (parenthesized_expression "((*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c)" ( (binary_expression "(*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c" (parenthesized_expression "(*(byte *)((int)ppuVar28 + 1) & 0xfd)" ( (binary_expression "*(byte *)((int)ppuVar28 + 1) & 0xfd" (pointer_expression "*(byte *)((int)ppuVar28 + 1)" * (cast_expression "(byte *)((int)ppuVar28 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar28 + 1)" ( (binary_expression "(int)ppuVar28 + 1" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "(puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29)" ( (comma_expression "puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29" (assignment_expression "puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30)" identifier = (cast_expression "(uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((char)*(byte *)((int)ppuVar28 + 2) + -0x30)" ( (binary_expression "(char)*(byte *)((int)ppuVar28 + 2) + -0x30" (cast_expression "(char)*(byte *)((int)ppuVar28 + 2)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((int)ppuVar28 + 2)" * (cast_expression "(byte *)((int)ppuVar28 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar28 + 2)" ( (binary_expression "(int)ppuVar28 + 2" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) + number_literal) )))) , (binary_expression "&DAT_00000009 < puVar29" (pointer_expression "&DAT_00000009" & identifier) < identifier)) ))) )) (compound_statement "{\n    *puVar14 = in_t4;\n    uVar15 = 0x13;\n    apuStack_5e8[0] = (uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_);\n    puVar29 = (uint *)0x112;\n    if (in_t3 == 0) {\n      uVar15 = 0x14;\n    }\n    iStack_660 = (int)in_t4 - (int)ppuVar21;\n    if (in_t3 == 0) {\n      puVar29 = (uint *)0x113;\n    }\n    puVar19 = (uint *)((int)puVar31 + uVar15);\n    puStack_65c = in_t2;\n    puStack_630 = puVar17;\n    goto LAB_00014f74;\n  }" { (expression_statement "*puVar14 = in_t4;" (assignment_expression "*puVar14 = in_t4" (pointer_expression "*puVar14" * identifier) = identifier) ;) (expression_statement "uVar15 = 0x13;" (assignment_expression "uVar15 = 0x13" identifier = number_literal) ;) (expression_statement "apuStack_5e8[0] = (uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_);" (assignment_expression "apuStack_5e8[0] = (uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_)" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = (cast_expression "(uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_)" identifier (argument_list "((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_)" ( (call_expression "(byte)(in_t3 >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(in_t3 >> 0x1f)" ( (binary_expression "in_t3 >> 0x1f" identifier >> number_literal) ))) , (field_expression "apuStack_5e8[0]._1_3_" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) . field_identifier) ))))) ;) (expression_statement "puVar29 = (uint *)0x112;" (assignment_expression "puVar29 = (uint *)0x112" identifier = (cast_expression "(uint *)0x112" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (in_t3 == 0) {\n      uVar15 = 0x14;\n    }" if (parenthesized_expression "(in_t3 == 0)" ( (binary_expression "in_t3 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar15 = 0x14;\n    }" { (expression_statement "uVar15 = 0x14;" (assignment_expression "uVar15 = 0x14" identifier = number_literal) ;) })) (expression_statement "iStack_660 = (int)in_t4 - (int)ppuVar21;" (assignment_expression "iStack_660 = (int)in_t4 - (int)ppuVar21" identifier = (binary_expression "(int)in_t4 - (int)ppuVar21" (cast_expression "(int)in_t4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppuVar21" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (in_t3 == 0) {\n      puVar29 = (uint *)0x113;\n    }" if (parenthesized_expression "(in_t3 == 0)" ( (binary_expression "in_t3 == 0" identifier == number_literal) )) (compound_statement "{\n      puVar29 = (uint *)0x113;\n    }" { (expression_statement "puVar29 = (uint *)0x113;" (assignment_expression "puVar29 = (uint *)0x113" identifier = (cast_expression "(uint *)0x113" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "puVar19 = (uint *)((int)puVar31 + uVar15);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + uVar15)" identifier = (cast_expression "(uint *)((int)puVar31 + uVar15)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar31 + uVar15)" ( (binary_expression "(int)puVar31 + uVar15" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "puStack_65c = in_t2;" (assignment_expression "puStack_65c = in_t2" identifier = identifier) ;) (expression_statement "puStack_630 = puVar17;" (assignment_expression "puStack_630 = puVar17" identifier = identifier) ;) (goto_statement "goto LAB_00014f74;" goto statement_identifier ;) })) (expression_statement "in_t2 = (uint *)((int)in_t2 + (uint)(puVar17 + -0x20000000 < puVar17));" (assignment_expression "in_t2 = (uint *)((int)in_t2 + (uint)(puVar17 + -0x20000000 < puVar17))" identifier = (cast_expression "(uint *)((int)in_t2 + (uint)(puVar17 + -0x20000000 < puVar17))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_t2 + (uint)(puVar17 + -0x20000000 < puVar17))" ( (binary_expression "(int)in_t2 + (uint)(puVar17 + -0x20000000 < puVar17)" (cast_expression "(int)in_t2" ( (type_descriptor "int" primitive_type) ) identifier) + (call_expression "(uint)(puVar17 + -0x20000000 < puVar17)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar17 + -0x20000000 < puVar17)" ( (binary_expression "puVar17 + -0x20000000 < puVar17" (binary_expression "puVar17 + -0x20000000" identifier + number_literal) < identifier) )))) )))) ;) (expression_statement "iVar9 = 8;" (assignment_expression "iVar9 = 8" identifier = number_literal) ;) (expression_statement "ppuVar21 = ppuVar16;" (assignment_expression "ppuVar21 = ppuVar16" identifier = identifier) ;) (if_statement "if (in_t2 != (uint *)0x0) goto LAB_00017ae0;" if (parenthesized_expression "(in_t2 != (uint *)0x0)" ( (binary_expression "in_t2 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00017ae0;" goto statement_identifier ;)) (expression_statement "in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 3);" (assignment_expression "in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 3)" identifier = (cast_expression "(uint **)(int)(char)*(byte *)((int)ppuVar28 + 3)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)(char)*(byte *)((int)ppuVar28 + 3)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)((int)ppuVar28 + 3)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((int)ppuVar28 + 3)" * (cast_expression "(byte *)((int)ppuVar28 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar28 + 3)" ( (binary_expression "(int)ppuVar28 + 3" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))))) ;) (expression_statement "ppuVar28 = (uint **)((int)ppuVar28 + 3);" (assignment_expression "ppuVar28 = (uint **)((int)ppuVar28 + 3)" identifier = (cast_expression "(uint **)((int)ppuVar28 + 3)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar28 + 3)" ( (binary_expression "(int)ppuVar28 + 3" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "ppuVar21 = in_t0 + -0xc;" (assignment_expression "ppuVar21 = in_t0 + -0xc" identifier = (binary_expression "in_t0 + -0xc" identifier + number_literal)) ;) (expression_statement "ppuVar16 = (uint **)((int)puVar29 * 4);" (assignment_expression "ppuVar16 = (uint **)((int)puVar29 * 4)" identifier = (cast_expression "(uint **)((int)puVar29 * 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar29 * 4)" ( (binary_expression "(int)puVar29 * 4" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (do_statement "do {\n    puVar29 = (uint *)((int)((int)ppuVar16 + (int)puVar29) * 2);\n    if (ppuVar21 < &DAT_0000000a) {\n      in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);\n      puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n      ppuVar21 = in_t0 + -0xc;\n    }\n    iVar9 = iVar9 + -1;\n    ppuVar16 = (uint **)((int)puVar29 << 2);\n  } while (iVar9 != 0);" do (compound_statement "{\n    puVar29 = (uint *)((int)((int)ppuVar16 + (int)puVar29) * 2);\n    if (ppuVar21 < &DAT_0000000a) {\n      in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);\n      puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n      ppuVar21 = in_t0 + -0xc;\n    }\n    iVar9 = iVar9 + -1;\n    ppuVar16 = (uint **)((int)puVar29 << 2);\n  }" { (expression_statement "puVar29 = (uint *)((int)((int)ppuVar16 + (int)puVar29) * 2);" (assignment_expression "puVar29 = (uint *)((int)((int)ppuVar16 + (int)puVar29) * 2)" identifier = (cast_expression "(uint *)((int)((int)ppuVar16 + (int)puVar29) * 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)((int)ppuVar16 + (int)puVar29) * 2)" ( (binary_expression "(int)((int)ppuVar16 + (int)puVar29) * 2" (cast_expression "(int)((int)ppuVar16 + (int)puVar29)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)ppuVar16 + (int)puVar29)" ( (binary_expression "(int)ppuVar16 + (int)puVar29" (cast_expression "(int)ppuVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier)) ))) * number_literal) )))) ;) (if_statement "if (ppuVar21 < &DAT_0000000a) {\n      in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);\n      puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n      ppuVar21 = in_t0 + -0xc;\n    }" if (parenthesized_expression "(ppuVar21 < &DAT_0000000a)" ( (binary_expression "ppuVar21 < &DAT_0000000a" identifier < (pointer_expression "&DAT_0000000a" & identifier)) )) (compound_statement "{\n      in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);\n      puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n      ppuVar21 = in_t0 + -0xc;\n    }" { (expression_statement "in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);" (assignment_expression "in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1)" identifier = (cast_expression "(uint **)(int)(char)*(byte *)((int)ppuVar28 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)(char)*(byte *)((int)ppuVar28 + 1)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)((int)ppuVar28 + 1)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((int)ppuVar28 + 1)" * (cast_expression "(byte *)((int)ppuVar28 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar28 + 1)" ( (binary_expression "(int)ppuVar28 + 1" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))))) ;) (expression_statement "puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);" (assignment_expression "puVar29 = (uint *)((int)puVar29 + (int)ppuVar21)" identifier = (cast_expression "(uint *)((int)puVar29 + (int)ppuVar21)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + (int)ppuVar21)" ( (binary_expression "(int)puVar29 + (int)ppuVar21" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)ppuVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "ppuVar28 = (uint **)((int)ppuVar28 + 1);" (assignment_expression "ppuVar28 = (uint **)((int)ppuVar28 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar28 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar28 + 1)" ( (binary_expression "(int)ppuVar28 + 1" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "ppuVar21 = in_t0 + -0xc;" (assignment_expression "ppuVar21 = in_t0 + -0xc" identifier = (binary_expression "in_t0 + -0xc" identifier + number_literal)) ;) })) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "ppuVar16 = (uint **)((int)puVar29 << 2);" (assignment_expression "ppuVar16 = (uint **)((int)puVar29 << 2)" identifier = (cast_expression "(uint **)((int)puVar29 << 2)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar29 << 2)" ( (binary_expression "(int)puVar29 << 2" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) }) while (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) ;) (expression_statement "in_t2 = puVar17;" (assignment_expression "in_t2 = puVar17" identifier = identifier) ;) (if_statement "if (in_t3 == 0xffffffff) {\n    ppuVar11 = in_t0;\n    if (ppuVar21 < &DAT_0000000a) {\n      do {\n        if (ppuVar11 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar11 = ppuVar16;\n      } while (ppuVar16 + -0xc <= &DAT_00000009);\n    }\nLAB_00015c20:\n    if (puVar29 != (uint *)0x0) {\n      in_t2 = (uint *)((int)puVar17 + -1);\n      ppuVar21 = ppuVar16;\n      if (puVar17 == (uint *)0x80000000) {\nLAB_00017ae0:\n        ppuVar16 = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }\n    uVar15 = 0x15;\n    apuStack_5e8[1] = puVar29;\n    apuStack_5e8[0] = in_t2;\n    puVar29 = (uint *)0x114;\n    *puVar14 = ppuVar28;\n    puVar19 = (uint *)((int)puVar31 + 0x15);\n    goto LAB_00014f74;\n  }" if (parenthesized_expression "(in_t3 == 0xffffffff)" ( (binary_expression "in_t3 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n    ppuVar11 = in_t0;\n    if (ppuVar21 < &DAT_0000000a) {\n      do {\n        if (ppuVar11 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar11 = ppuVar16;\n      } while (ppuVar16 + -0xc <= &DAT_00000009);\n    }\nLAB_00015c20:\n    if (puVar29 != (uint *)0x0) {\n      in_t2 = (uint *)((int)puVar17 + -1);\n      ppuVar21 = ppuVar16;\n      if (puVar17 == (uint *)0x80000000) {\nLAB_00017ae0:\n        ppuVar16 = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }\n    uVar15 = 0x15;\n    apuStack_5e8[1] = puVar29;\n    apuStack_5e8[0] = in_t2;\n    puVar29 = (uint *)0x114;\n    *puVar14 = ppuVar28;\n    puVar19 = (uint *)((int)puVar31 + 0x15);\n    goto LAB_00014f74;\n  }" { (expression_statement "ppuVar11 = in_t0;" (assignment_expression "ppuVar11 = in_t0" identifier = identifier) ;) (if_statement "if (ppuVar21 < &DAT_0000000a) {\n      do {\n        if (ppuVar11 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar11 = ppuVar16;\n      } while (ppuVar16 + -0xc <= &DAT_00000009);\n    }" if (parenthesized_expression "(ppuVar21 < &DAT_0000000a)" ( (binary_expression "ppuVar21 < &DAT_0000000a" identifier < (pointer_expression "&DAT_0000000a" & identifier)) )) (compound_statement "{\n      do {\n        if (ppuVar11 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar11 = ppuVar16;\n      } while (ppuVar16 + -0xc <= &DAT_00000009);\n    }" { (do_statement "do {\n        if (ppuVar11 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar11 = ppuVar16;\n      } while (ppuVar16 + -0xc <= &DAT_00000009);" do (compound_statement "{\n        if (ppuVar11 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar11 = ppuVar16;\n      }" { (if_statement "if (ppuVar11 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }" if (parenthesized_expression "(ppuVar11 != (uint **)0x30)" ( (binary_expression "ppuVar11 != (uint **)0x30" identifier != (cast_expression "(uint **)0x30" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }" { (expression_statement "puVar29 = (uint *)((int)puVar29 + 1);" (assignment_expression "puVar29 = (uint *)((int)puVar29 + 1)" identifier = (cast_expression "(uint *)((int)puVar29 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + 1)" ( (binary_expression "(int)puVar29 + 1" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;" if (parenthesized_expression "((int)(char)*(byte *)ppuVar28 - 0x30U < 10)" ( (binary_expression "(int)(char)*(byte *)ppuVar28 - 0x30U < 10" (binary_expression "(int)(char)*(byte *)ppuVar28 - 0x30U" (cast_expression "(int)(char)*(byte *)ppuVar28" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)ppuVar28" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)ppuVar28" * (cast_expression "(byte *)ppuVar28" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) - number_literal) < number_literal) )) (goto_statement "goto LAB_000154dc;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "ppuVar28 = (uint **)((int)ppuVar28 + 1);" (assignment_expression "ppuVar28 = (uint **)((int)ppuVar28 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar28 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar28 + 1)" ( (binary_expression "(int)ppuVar28 + 1" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;" (assignment_expression "ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28" identifier = (cast_expression "(uint **)(int)(char)*(byte *)ppuVar28" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)(char)*(byte *)ppuVar28" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)ppuVar28" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)ppuVar28" * (cast_expression "(byte *)ppuVar28" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))))) ;) (expression_statement "ppuVar11 = ppuVar16;" (assignment_expression "ppuVar11 = ppuVar16" identifier = identifier) ;) }) while (parenthesized_expression "(ppuVar16 + -0xc <= &DAT_00000009)" ( (binary_expression "ppuVar16 + -0xc <= &DAT_00000009" (binary_expression "ppuVar16 + -0xc" identifier + number_literal) <= (pointer_expression "&DAT_00000009" & identifier)) )) ;) })) (labeled_statement "LAB_00015c20:\n    if (puVar29 != (uint *)0x0) {\n      in_t2 = (uint *)((int)puVar17 + -1);\n      ppuVar21 = ppuVar16;\n      if (puVar17 == (uint *)0x80000000) {\nLAB_00017ae0:\n        ppuVar16 = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }" statement_identifier : (if_statement "if (puVar29 != (uint *)0x0) {\n      in_t2 = (uint *)((int)puVar17 + -1);\n      ppuVar21 = ppuVar16;\n      if (puVar17 == (uint *)0x80000000) {\nLAB_00017ae0:\n        ppuVar16 = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }" if (parenthesized_expression "(puVar29 != (uint *)0x0)" ( (binary_expression "puVar29 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      in_t2 = (uint *)((int)puVar17 + -1);\n      ppuVar21 = ppuVar16;\n      if (puVar17 == (uint *)0x80000000) {\nLAB_00017ae0:\n        ppuVar16 = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }" { (expression_statement "in_t2 = (uint *)((int)puVar17 + -1);" (assignment_expression "in_t2 = (uint *)((int)puVar17 + -1)" identifier = (cast_expression "(uint *)((int)puVar17 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + -1)" ( (binary_expression "(int)puVar17 + -1" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "ppuVar21 = ppuVar16;" (assignment_expression "ppuVar21 = ppuVar16" identifier = identifier) ;) (if_statement "if (puVar17 == (uint *)0x80000000) {\nLAB_00017ae0:\n        ppuVar16 = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }" if (parenthesized_expression "(puVar17 == (uint *)0x80000000)" ( (binary_expression "puVar17 == (uint *)0x80000000" identifier == (cast_expression "(uint *)0x80000000" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00017ae0:\n        ppuVar16 = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }" { (labeled_statement "LAB_00017ae0:\n        ppuVar16 = ppuVar21;" statement_identifier : (expression_statement "ppuVar16 = ppuVar21;" (assignment_expression "ppuVar16 = ppuVar21" identifier = identifier) ;)) (expression_statement "uVar15 = 2;" (assignment_expression "uVar15 = 2" identifier = number_literal) ;) (expression_statement "puVar29 = (uint *)0x3f;" (assignment_expression "puVar29 = (uint *)0x3f" identifier = (cast_expression "(uint *)0x3f" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar19 = (uint *)((int)puVar31 + 2);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + 2)" identifier = (cast_expression "(uint *)((int)puVar31 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar31 + 2)" ( (binary_expression "(int)puVar31 + 2" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (goto_statement "goto LAB_00014f74;" goto statement_identifier ;) })) (expression_statement "puVar29 = (uint *)(1000000000 - (int)puVar29);" (assignment_expression "puVar29 = (uint *)(1000000000 - (int)puVar29)" identifier = (cast_expression "(uint *)(1000000000 - (int)puVar29)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(1000000000 - (int)puVar29)" ( (binary_expression "1000000000 - (int)puVar29" number_literal - (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }))) (expression_statement "uVar15 = 0x15;" (assignment_expression "uVar15 = 0x15" identifier = number_literal) ;) (expression_statement "apuStack_5e8[1] = puVar29;" (assignment_expression "apuStack_5e8[1] = puVar29" (subscript_expression "apuStack_5e8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "apuStack_5e8[0] = in_t2;" (assignment_expression "apuStack_5e8[0] = in_t2" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar29 = (uint *)0x114;" (assignment_expression "puVar29 = (uint *)0x114" identifier = (cast_expression "(uint *)0x114" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*puVar14 = ppuVar28;" (assignment_expression "*puVar14 = ppuVar28" (pointer_expression "*puVar14" * identifier) = identifier) ;) (expression_statement "puVar19 = (uint *)((int)puVar31 + 0x15);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + 0x15)" identifier = (cast_expression "(uint *)((int)puVar31 + 0x15)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar31 + 0x15)" ( (binary_expression "(int)puVar31 + 0x15" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (goto_statement "goto LAB_00014f74;" goto statement_identifier ;) })) (if_statement "if (ppuVar21 < &DAT_0000000a) {\nLAB_000154dc:\n    do {\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    } while ((int)(char)*(byte *)ppuVar28 - 0x30U < 10);\n    if (in_t3 == 0xffffffff) goto LAB_00015c20;\n  }" if (parenthesized_expression "(ppuVar21 < &DAT_0000000a)" ( (binary_expression "ppuVar21 < &DAT_0000000a" identifier < (pointer_expression "&DAT_0000000a" & identifier)) )) (compound_statement "{\nLAB_000154dc:\n    do {\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    } while ((int)(char)*(byte *)ppuVar28 - 0x30U < 10);\n    if (in_t3 == 0xffffffff) goto LAB_00015c20;\n  }" { (labeled_statement "LAB_000154dc:\n    do {\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    } while ((int)(char)*(byte *)ppuVar28 - 0x30U < 10);" statement_identifier : (do_statement "do {\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    } while ((int)(char)*(byte *)ppuVar28 - 0x30U < 10);" do (compound_statement "{\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    }" { (expression_statement "ppuVar28 = (uint **)((int)ppuVar28 + 1);" (assignment_expression "ppuVar28 = (uint **)((int)ppuVar28 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar28 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar28 + 1)" ( (binary_expression "(int)ppuVar28 + 1" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((int)(char)*(byte *)ppuVar28 - 0x30U < 10)" ( (binary_expression "(int)(char)*(byte *)ppuVar28 - 0x30U < 10" (binary_expression "(int)(char)*(byte *)ppuVar28 - 0x30U" (cast_expression "(int)(char)*(byte *)ppuVar28" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)ppuVar28" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)ppuVar28" * (cast_expression "(byte *)ppuVar28" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) - number_literal) < number_literal) )) ;)) (if_statement "if (in_t3 == 0xffffffff) goto LAB_00015c20;" if (parenthesized_expression "(in_t3 == 0xffffffff)" ( (binary_expression "in_t3 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_00015c20;" goto statement_identifier ;)) })) (expression_statement "apuStack_5e8[0] = puVar17;" (assignment_expression "apuStack_5e8[0] = puVar17" (subscript_expression "apuStack_5e8[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar15 = 0x16;" (assignment_expression "uVar15 = 0x16" identifier = number_literal) ;) (expression_statement "apuStack_5e8[1] = puVar29;" (assignment_expression "apuStack_5e8[1] = puVar29" (subscript_expression "apuStack_5e8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar29 = (uint *)0x115;" (assignment_expression "puVar29 = (uint *)0x115" identifier = (cast_expression "(uint *)0x115" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*puVar14 = ppuVar28;" (assignment_expression "*puVar14 = ppuVar28" (pointer_expression "*puVar14" * identifier) = identifier) ;) (if_statement "if (in_t3 != 0) {\n    uVar15 = 0x15;\n    puVar29 = (uint *)0x114;\n  }" if (parenthesized_expression "(in_t3 != 0)" ( (binary_expression "in_t3 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar15 = 0x15;\n    puVar29 = (uint *)0x114;\n  }" { (expression_statement "uVar15 = 0x15;" (assignment_expression "uVar15 = 0x15" identifier = number_literal) ;) (expression_statement "puVar29 = (uint *)0x114;" (assignment_expression "puVar29 = (uint *)0x114" identifier = (cast_expression "(uint *)0x114" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "puVar19 = (uint *)((int)puVar31 + uVar15);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + uVar15)" identifier = (cast_expression "(uint *)((int)puVar31 + uVar15)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar31 + uVar15)" ( (binary_expression "(int)puVar31 + uVar15" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (labeled_statement "LAB_00014f74:\n  psVar27 = psVar32;" statement_identifier : (expression_statement "psVar27 = psVar32;" (assignment_expression "psVar27 = psVar32" identifier = identifier) ;)) (if_statement "if ((uint *)0x70 < puVar19) goto LAB_0001504c;" if (parenthesized_expression "((uint *)0x70 < puVar19)" ( (binary_expression "(uint *)0x70 < puVar19" (cast_expression "(uint *)0x70" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (goto_statement "goto LAB_0001504c;" goto statement_identifier ;)) (expression_statement "iVar9 = *(int *)(puVar33 + 0x23270);" (assignment_expression "iVar9 = *(int *)(puVar33 + 0x23270)" identifier = (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) ;) (if_statement "if ((int)(char)*(byte *)((int)puVar19 + iVar30) != uVar15) goto LAB_00015050;" if (parenthesized_expression "((int)(char)*(byte *)((int)puVar19 + iVar30) != uVar15)" ( (binary_expression "(int)(char)*(byte *)((int)puVar19 + iVar30) != uVar15" (cast_expression "(int)(char)*(byte *)((int)puVar19 + iVar30)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)((int)puVar19 + iVar30)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((int)puVar19 + iVar30)" * (cast_expression "(byte *)((int)puVar19 + iVar30)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + iVar30)" ( (binary_expression "(int)puVar19 + iVar30" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))))) != identifier) )) (goto_statement "goto LAB_00015050;" goto statement_identifier ;)) (expression_statement "puVar25 = (uint *)(uint)*(byte *)((int)puVar19 + iVar8);" (assignment_expression "puVar25 = (uint *)(uint)*(byte *)((int)puVar19 + iVar8)" identifier = (binary_expression "(uint *)(uint)*(byte *)((int)puVar19 + iVar8)" (cast_expression "(uint *)(uint)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)((int)puVar19 + iVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + iVar8)" ( (binary_expression "(int)puVar19 + iVar8" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (if_statement "if (puVar25 == (uint *)0x0) {\n    puStack_66c = auStack_5b0;\n    puVar25 = puVar13 + 0xe;\n    puVar31 = puStack_66c;\n    do {\n      puVar17 = puVar31;\n      puVar19 = puVar25;\n      puVar25 = puVar19 + 4;\n      uVar22 = puVar19[1];\n      uVar15 = puVar19[2];\n      uVar18 = puVar19[3];\n      *puVar17 = *puVar19;\n      puVar17[1] = uVar22;\n      puVar17[2] = uVar15;\n      puVar17[3] = uVar18;\n      puVar31 = puVar17 + 4;\n    } while (puVar25 != puVar13 + 0x1a);\n    uVar18 = puVar19[5];\n    iVar10 = -0x1c;\n    puVar17[4] = *puVar25;\n    puVar17[5] = uVar18;\n    puStack_674 = (uint *)puVar13[0x13];\n    in_t3 = puVar13[0x11];\n    in_t2 = (uint *)puVar13[0x10];\n    unaff_s6 = (short *)puVar13[0x12];\n    ppuVar28 = (uint **)puVar13[0x15];\n    in_t0 = (uint **)puVar13[0x14];\n    in_t5 = puVar13[0x17];\n    in_t4 = (uint **)puVar13[0x16];\n    uVar18 = puVar13[0x18];\n    in_t6 = puVar13[0x19];\n    in_t8 = puVar13[0x1a];\n    iVar9 = 0;\n    goto LAB_00015adc;\n  }" if (parenthesized_expression "(puVar25 == (uint *)0x0)" ( (binary_expression "puVar25 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puStack_66c = auStack_5b0;\n    puVar25 = puVar13 + 0xe;\n    puVar31 = puStack_66c;\n    do {\n      puVar17 = puVar31;\n      puVar19 = puVar25;\n      puVar25 = puVar19 + 4;\n      uVar22 = puVar19[1];\n      uVar15 = puVar19[2];\n      uVar18 = puVar19[3];\n      *puVar17 = *puVar19;\n      puVar17[1] = uVar22;\n      puVar17[2] = uVar15;\n      puVar17[3] = uVar18;\n      puVar31 = puVar17 + 4;\n    } while (puVar25 != puVar13 + 0x1a);\n    uVar18 = puVar19[5];\n    iVar10 = -0x1c;\n    puVar17[4] = *puVar25;\n    puVar17[5] = uVar18;\n    puStack_674 = (uint *)puVar13[0x13];\n    in_t3 = puVar13[0x11];\n    in_t2 = (uint *)puVar13[0x10];\n    unaff_s6 = (short *)puVar13[0x12];\n    ppuVar28 = (uint **)puVar13[0x15];\n    in_t0 = (uint **)puVar13[0x14];\n    in_t5 = puVar13[0x17];\n    in_t4 = (uint **)puVar13[0x16];\n    uVar18 = puVar13[0x18];\n    in_t6 = puVar13[0x19];\n    in_t8 = puVar13[0x1a];\n    iVar9 = 0;\n    goto LAB_00015adc;\n  }" { (expression_statement "puStack_66c = auStack_5b0;" (assignment_expression "puStack_66c = auStack_5b0" identifier = identifier) ;) (expression_statement "puVar25 = puVar13 + 0xe;" (assignment_expression "puVar25 = puVar13 + 0xe" identifier = (binary_expression "puVar13 + 0xe" identifier + number_literal)) ;) (expression_statement "puVar31 = puStack_66c;" (assignment_expression "puVar31 = puStack_66c" identifier = identifier) ;) (do_statement "do {\n      puVar17 = puVar31;\n      puVar19 = puVar25;\n      puVar25 = puVar19 + 4;\n      uVar22 = puVar19[1];\n      uVar15 = puVar19[2];\n      uVar18 = puVar19[3];\n      *puVar17 = *puVar19;\n      puVar17[1] = uVar22;\n      puVar17[2] = uVar15;\n      puVar17[3] = uVar18;\n      puVar31 = puVar17 + 4;\n    } while (puVar25 != puVar13 + 0x1a);" do (compound_statement "{\n      puVar17 = puVar31;\n      puVar19 = puVar25;\n      puVar25 = puVar19 + 4;\n      uVar22 = puVar19[1];\n      uVar15 = puVar19[2];\n      uVar18 = puVar19[3];\n      *puVar17 = *puVar19;\n      puVar17[1] = uVar22;\n      puVar17[2] = uVar15;\n      puVar17[3] = uVar18;\n      puVar31 = puVar17 + 4;\n    }" { (expression_statement "puVar17 = puVar31;" (assignment_expression "puVar17 = puVar31" identifier = identifier) ;) (expression_statement "puVar19 = puVar25;" (assignment_expression "puVar19 = puVar25" identifier = identifier) ;) (expression_statement "puVar25 = puVar19 + 4;" (assignment_expression "puVar25 = puVar19 + 4" identifier = (binary_expression "puVar19 + 4" identifier + number_literal)) ;) (expression_statement "uVar22 = puVar19[1];" (assignment_expression "uVar22 = puVar19[1]" identifier = (subscript_expression "puVar19[1]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = puVar19[2];" (assignment_expression "uVar15 = puVar19[2]" identifier = (subscript_expression "puVar19[2]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = puVar19[3];" (assignment_expression "uVar18 = puVar19[3]" identifier = (subscript_expression "puVar19[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar17 = *puVar19;" (assignment_expression "*puVar17 = *puVar19" (pointer_expression "*puVar17" * identifier) = (pointer_expression "*puVar19" * identifier)) ;) (expression_statement "puVar17[1] = uVar22;" (assignment_expression "puVar17[1] = uVar22" (subscript_expression "puVar17[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[2] = uVar15;" (assignment_expression "puVar17[2] = uVar15" (subscript_expression "puVar17[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[3] = uVar18;" (assignment_expression "puVar17[3] = uVar18" (subscript_expression "puVar17[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar31 = puVar17 + 4;" (assignment_expression "puVar31 = puVar17 + 4" identifier = (binary_expression "puVar17 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar25 != puVar13 + 0x1a)" ( (binary_expression "puVar25 != puVar13 + 0x1a" identifier != (binary_expression "puVar13 + 0x1a" identifier + number_literal)) )) ;) (expression_statement "uVar18 = puVar19[5];" (assignment_expression "uVar18 = puVar19[5]" identifier = (subscript_expression "puVar19[5]" identifier [ number_literal ])) ;) (expression_statement "iVar10 = -0x1c;" (assignment_expression "iVar10 = -0x1c" identifier = number_literal) ;) (expression_statement "puVar17[4] = *puVar25;" (assignment_expression "puVar17[4] = *puVar25" (subscript_expression "puVar17[4]" identifier [ number_literal ]) = (pointer_expression "*puVar25" * identifier)) ;) (expression_statement "puVar17[5] = uVar18;" (assignment_expression "puVar17[5] = uVar18" (subscript_expression "puVar17[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puStack_674 = (uint *)puVar13[0x13];" (assignment_expression "puStack_674 = (uint *)puVar13[0x13]" identifier = (cast_expression "(uint *)puVar13[0x13]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[0x13]" identifier [ number_literal ]))) ;) (expression_statement "in_t3 = puVar13[0x11];" (assignment_expression "in_t3 = puVar13[0x11]" identifier = (subscript_expression "puVar13[0x11]" identifier [ number_literal ])) ;) (expression_statement "in_t2 = (uint *)puVar13[0x10];" (assignment_expression "in_t2 = (uint *)puVar13[0x10]" identifier = (cast_expression "(uint *)puVar13[0x10]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[0x10]" identifier [ number_literal ]))) ;) (expression_statement "unaff_s6 = (short *)puVar13[0x12];" (assignment_expression "unaff_s6 = (short *)puVar13[0x12]" identifier = (cast_expression "(short *)puVar13[0x12]" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[0x12]" identifier [ number_literal ]))) ;) (expression_statement "ppuVar28 = (uint **)puVar13[0x15];" (assignment_expression "ppuVar28 = (uint **)puVar13[0x15]" identifier = (cast_expression "(uint **)puVar13[0x15]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar13[0x15]" identifier [ number_literal ]))) ;) (expression_statement "in_t0 = (uint **)puVar13[0x14];" (assignment_expression "in_t0 = (uint **)puVar13[0x14]" identifier = (cast_expression "(uint **)puVar13[0x14]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar13[0x14]" identifier [ number_literal ]))) ;) (expression_statement "in_t5 = puVar13[0x17];" (assignment_expression "in_t5 = puVar13[0x17]" identifier = (subscript_expression "puVar13[0x17]" identifier [ number_literal ])) ;) (expression_statement "in_t4 = (uint **)puVar13[0x16];" (assignment_expression "in_t4 = (uint **)puVar13[0x16]" identifier = (cast_expression "(uint **)puVar13[0x16]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar13[0x16]" identifier [ number_literal ]))) ;) (expression_statement "uVar18 = puVar13[0x18];" (assignment_expression "uVar18 = puVar13[0x18]" identifier = (subscript_expression "puVar13[0x18]" identifier [ number_literal ])) ;) (expression_statement "in_t6 = puVar13[0x19];" (assignment_expression "in_t6 = puVar13[0x19]" identifier = (subscript_expression "puVar13[0x19]" identifier [ number_literal ])) ;) (expression_statement "in_t8 = puVar13[0x1a];" (assignment_expression "in_t8 = puVar13[0x1a]" identifier = (subscript_expression "puVar13[0x1a]" identifier [ number_literal ])) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00015adc;" goto statement_identifier ;) })) (if_statement "if (iStack_670 != 0) {\n    iStack_670 = iStack_670 + -1;\n  }" if (parenthesized_expression "(iStack_670 != 0)" ( (binary_expression "iStack_670 != 0" identifier != number_literal) )) (compound_statement "{\n    iStack_670 = iStack_670 + -1;\n  }" { (expression_statement "iStack_670 = iStack_670 + -1;" (assignment_expression "iStack_670 = iStack_670 + -1" identifier = (binary_expression "iStack_670 + -1" identifier + number_literal)) ;) })) (expression_statement "puVar13 = puVar13 + 0xe;" (assignment_expression "puVar13 = puVar13 + 0xe" identifier = (binary_expression "puVar13 + 0xe" identifier + number_literal)) ;) (expression_statement "in_t0 = apuStack_5b8;" (assignment_expression "in_t0 = apuStack_5b8" identifier = identifier) ;) (expression_statement "apuStack_5e8[3] = puStack_630;" (assignment_expression "apuStack_5e8[3] = puStack_630" (subscript_expression "apuStack_5e8[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "apuStack_5e8[2] = puStack_65c;" (assignment_expression "apuStack_5e8[2] = puStack_65c" (subscript_expression "apuStack_5e8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iStack_5d8 = iStack_660;" (assignment_expression "iStack_5d8 = iStack_660" identifier = identifier) ;) (expression_statement "ppuVar21 = apuStack_5e8;" (assignment_expression "ppuVar21 = apuStack_5e8" identifier = identifier) ;) (expression_statement "puVar29 = puVar13;" (assignment_expression "puVar29 = puVar13" identifier = identifier) ;) (do_statement "do {\n    puVar31 = puVar29;\n    ppuVar11 = ppuVar21;\n    ppuVar21 = ppuVar11 + 4;\n    puVar19 = ppuVar11[1];\n    ppuVar16 = (uint **)ppuVar11[2];\n    puVar29 = ppuVar11[3];\n    *puVar31 = (uint)*ppuVar11;\n    puVar31[1] = (uint)puVar19;\n    puVar31[2] = (uint)ppuVar16;\n    puVar31[3] = (uint)puVar29;\n    puVar29 = puVar31 + 4;\n  } while (ppuVar21 != in_t0);" do (compound_statement "{\n    puVar31 = puVar29;\n    ppuVar11 = ppuVar21;\n    ppuVar21 = ppuVar11 + 4;\n    puVar19 = ppuVar11[1];\n    ppuVar16 = (uint **)ppuVar11[2];\n    puVar29 = ppuVar11[3];\n    *puVar31 = (uint)*ppuVar11;\n    puVar31[1] = (uint)puVar19;\n    puVar31[2] = (uint)ppuVar16;\n    puVar31[3] = (uint)puVar29;\n    puVar29 = puVar31 + 4;\n  }" { (expression_statement "puVar31 = puVar29;" (assignment_expression "puVar31 = puVar29" identifier = identifier) ;) (expression_statement "ppuVar11 = ppuVar21;" (assignment_expression "ppuVar11 = ppuVar21" identifier = identifier) ;) (expression_statement "ppuVar21 = ppuVar11 + 4;" (assignment_expression "ppuVar21 = ppuVar11 + 4" identifier = (binary_expression "ppuVar11 + 4" identifier + number_literal)) ;) (expression_statement "puVar19 = ppuVar11[1];" (assignment_expression "puVar19 = ppuVar11[1]" identifier = (subscript_expression "ppuVar11[1]" identifier [ number_literal ])) ;) (expression_statement "ppuVar16 = (uint **)ppuVar11[2];" (assignment_expression "ppuVar16 = (uint **)ppuVar11[2]" identifier = (cast_expression "(uint **)ppuVar11[2]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "ppuVar11[2]" identifier [ number_literal ]))) ;) (expression_statement "puVar29 = ppuVar11[3];" (assignment_expression "puVar29 = ppuVar11[3]" identifier = (subscript_expression "ppuVar11[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar31 = (uint)*ppuVar11;" (assignment_expression "*puVar31 = (uint)*ppuVar11" (pointer_expression "*puVar31" * identifier) = (binary_expression "(uint)*ppuVar11" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puVar31[1] = (uint)puVar19;" (assignment_expression "puVar31[1] = (uint)puVar19" (subscript_expression "puVar31[1]" identifier [ number_literal ]) = (cast_expression "(uint)puVar19" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar31[2] = (uint)ppuVar16;" (assignment_expression "puVar31[2] = (uint)ppuVar16" (subscript_expression "puVar31[2]" identifier [ number_literal ]) = (cast_expression "(uint)ppuVar16" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar31[3] = (uint)puVar29;" (assignment_expression "puVar31[3] = (uint)puVar29" (subscript_expression "puVar31[3]" identifier [ number_literal ]) = (cast_expression "(uint)puVar29" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar29 = puVar31 + 4;" (assignment_expression "puVar29 = puVar31 + 4" identifier = (binary_expression "puVar31 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppuVar21 != in_t0)" ( (binary_expression "ppuVar21 != in_t0" identifier != identifier) )) ;) (expression_statement "puVar29 = (uint *)0xfffffffe;" (assignment_expression "puVar29 = (uint *)0xfffffffe" identifier = (cast_expression "(uint *)0xfffffffe" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar19 = ppuVar11[5];" (assignment_expression "puVar19 = ppuVar11[5]" identifier = (subscript_expression "ppuVar11[5]" identifier [ number_literal ])) ;) (expression_statement "puVar31[4] = (uint)*ppuVar21;" (assignment_expression "puVar31[4] = (uint)*ppuVar21" (subscript_expression "puVar31[4]" identifier [ number_literal ]) = (binary_expression "(uint)*ppuVar21" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puVar31[5] = (uint)puVar19;" (assignment_expression "puVar31[5] = (uint)puVar19" (subscript_expression "puVar31[5]" identifier [ number_literal ]) = (cast_expression "(uint)puVar19" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (labeled_statement "LAB_00015014:\n  psVar27 = psVar32 + 1;" statement_identifier : (expression_statement "psVar27 = psVar32 + 1;" (assignment_expression "psVar27 = psVar32 + 1" identifier = (binary_expression "psVar32 + 1" identifier + number_literal)) ;)) (expression_statement "psVar32[1] = (short)puVar25;" (assignment_expression "psVar32[1] = (short)puVar25" (subscript_expression "psVar32[1]" identifier [ number_literal ]) = (cast_expression "(short)puVar25" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (if_statement "if (&sStack_552 <= psVar27) {\n    iVar9 = 2;\nLAB_00015278:\n    do {\n      if (iStack_dc == *piVar7) {\n        return iVar9;\n      }\n      iVar9 = iStack_dc;\n      uVar5 = (**(code **)(puVar33 + 0x23488))();\n      bVar2 = ppuVar16 == (uint **)0x0;\n      puVar14[0x10] = uVar5;\n      puVar14[0x11] = iVar9;\n      if (!bVar2) {\n        ppuVar16 = (uint **)puVar13[3];\n        if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }\n        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];\n        puVar14[0xb] = -(int)ppuVar16;\n        if (!bVar2) goto code_r0x00016f40;\n      }\n      iVar9 = 1;\n    } while( true );\n  }" if (parenthesized_expression "(&sStack_552 <= psVar27)" ( (binary_expression "&sStack_552 <= psVar27" (pointer_expression "&sStack_552" & identifier) <= identifier) )) (compound_statement "{\n    iVar9 = 2;\nLAB_00015278:\n    do {\n      if (iStack_dc == *piVar7) {\n        return iVar9;\n      }\n      iVar9 = iStack_dc;\n      uVar5 = (**(code **)(puVar33 + 0x23488))();\n      bVar2 = ppuVar16 == (uint **)0x0;\n      puVar14[0x10] = uVar5;\n      puVar14[0x11] = iVar9;\n      if (!bVar2) {\n        ppuVar16 = (uint **)puVar13[3];\n        if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }\n        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];\n        puVar14[0xb] = -(int)ppuVar16;\n        if (!bVar2) goto code_r0x00016f40;\n      }\n      iVar9 = 1;\n    } while( true );\n  }" { (expression_statement "iVar9 = 2;" (assignment_expression "iVar9 = 2" identifier = number_literal) ;) (labeled_statement "LAB_00015278:\n    do {\n      if (iStack_dc == *piVar7) {\n        return iVar9;\n      }\n      iVar9 = iStack_dc;\n      uVar5 = (**(code **)(puVar33 + 0x23488))();\n      bVar2 = ppuVar16 == (uint **)0x0;\n      puVar14[0x10] = uVar5;\n      puVar14[0x11] = iVar9;\n      if (!bVar2) {\n        ppuVar16 = (uint **)puVar13[3];\n        if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }\n        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];\n        puVar14[0xb] = -(int)ppuVar16;\n        if (!bVar2) goto code_r0x00016f40;\n      }\n      iVar9 = 1;\n    } while( true );" statement_identifier : (do_statement "do {\n      if (iStack_dc == *piVar7) {\n        return iVar9;\n      }\n      iVar9 = iStack_dc;\n      uVar5 = (**(code **)(puVar33 + 0x23488))();\n      bVar2 = ppuVar16 == (uint **)0x0;\n      puVar14[0x10] = uVar5;\n      puVar14[0x11] = iVar9;\n      if (!bVar2) {\n        ppuVar16 = (uint **)puVar13[3];\n        if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }\n        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];\n        puVar14[0xb] = -(int)ppuVar16;\n        if (!bVar2) goto code_r0x00016f40;\n      }\n      iVar9 = 1;\n    } while( true );" do (compound_statement "{\n      if (iStack_dc == *piVar7) {\n        return iVar9;\n      }\n      iVar9 = iStack_dc;\n      uVar5 = (**(code **)(puVar33 + 0x23488))();\n      bVar2 = ppuVar16 == (uint **)0x0;\n      puVar14[0x10] = uVar5;\n      puVar14[0x11] = iVar9;\n      if (!bVar2) {\n        ppuVar16 = (uint **)puVar13[3];\n        if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }\n        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];\n        puVar14[0xb] = -(int)ppuVar16;\n        if (!bVar2) goto code_r0x00016f40;\n      }\n      iVar9 = 1;\n    }" { (if_statement "if (iStack_dc == *piVar7) {\n        return iVar9;\n      }" if (parenthesized_expression "(iStack_dc == *piVar7)" ( (binary_expression "iStack_dc == *piVar7" identifier == (pointer_expression "*piVar7" * identifier)) )) (compound_statement "{\n        return iVar9;\n      }" { (return_statement "return iVar9;" return identifier ;) })) (expression_statement "iVar9 = iStack_dc;" (assignment_expression "iVar9 = iStack_dc" identifier = identifier) ;) (expression_statement "uVar5 = (**(code **)(puVar33 + 0x23488))();" (assignment_expression "uVar5 = (**(code **)(puVar33 + 0x23488))()" identifier = (call_expression "(**(code **)(puVar33 + 0x23488))()" (parenthesized_expression "(**(code **)(puVar33 + 0x23488))" ( (pointer_expression "**(code **)(puVar33 + 0x23488)" * (pointer_expression "*(code **)(puVar33 + 0x23488)" * (cast_expression "(code **)(puVar33 + 0x23488)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x23488)" ( (binary_expression "puVar33 + 0x23488" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "bVar2 = ppuVar16 == (uint **)0x0;" (assignment_expression "bVar2 = ppuVar16 == (uint **)0x0" identifier = (binary_expression "ppuVar16 == (uint **)0x0" identifier == (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) ;) (expression_statement "puVar14[0x10] = uVar5;" (assignment_expression "puVar14[0x10] = uVar5" (subscript_expression "puVar14[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[0x11] = iVar9;" (assignment_expression "puVar14[0x11] = iVar9" (subscript_expression "puVar14[0x11]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (!bVar2) {\n        ppuVar16 = (uint **)puVar13[3];\n        if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }\n        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];\n        puVar14[0xb] = -(int)ppuVar16;\n        if (!bVar2) goto code_r0x00016f40;\n      }" if (parenthesized_expression "(!bVar2)" ( (unary_expression "!bVar2" ! identifier) )) (compound_statement "{\n        ppuVar16 = (uint **)puVar13[3];\n        if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }\n        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];\n        puVar14[0xb] = -(int)ppuVar16;\n        if (!bVar2) goto code_r0x00016f40;\n      }" { (expression_statement "ppuVar16 = (uint **)puVar13[3];" (assignment_expression "ppuVar16 = (uint **)puVar13[3]" identifier = (cast_expression "(uint **)puVar13[3]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar13[3]" identifier [ number_literal ]))) ;) (if_statement "if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }" if (parenthesized_expression "(puVar13[2] == 0x80000000)" ( (binary_expression "puVar13[2] == 0x80000000" (subscript_expression "puVar13[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }" { (expression_statement "bVar2 = ppuVar16 == (uint **)0x0;" (assignment_expression "bVar2 = ppuVar16 == (uint **)0x0" identifier = (binary_expression "ppuVar16 == (uint **)0x0" identifier == (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) ;) })) (expression_statement "puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];" (assignment_expression "puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2]" (subscript_expression "puVar14[10]" identifier [ number_literal ]) = (binary_expression "-(uint)(-(int)ppuVar16 != 0) - puVar13[2]" (unary_expression "-(uint)(-(int)ppuVar16 != 0)" - (call_expression "(uint)(-(int)ppuVar16 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(-(int)ppuVar16 != 0)" ( (binary_expression "-(int)ppuVar16 != 0" (unary_expression "-(int)ppuVar16" - (cast_expression "(int)ppuVar16" ( (type_descriptor "int" primitive_type) ) identifier)) != number_literal) )))) - (subscript_expression "puVar13[2]" identifier [ number_literal ]))) ;) (expression_statement "puVar14[0xb] = -(int)ppuVar16;" (assignment_expression "puVar14[0xb] = -(int)ppuVar16" (subscript_expression "puVar14[0xb]" identifier [ number_literal ]) = (unary_expression "-(int)ppuVar16" - (cast_expression "(int)ppuVar16" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (!bVar2) goto code_r0x00016f40;" if (parenthesized_expression "(!bVar2)" ( (unary_expression "!bVar2" ! identifier) )) (goto_statement "goto code_r0x00016f40;" goto statement_identifier ;)) })) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (if_statement "if (puVar25 == (uint *)0xc) {\n    iVar9 = 0;\n    goto LAB_00015278;\n  }" if (parenthesized_expression "(puVar25 == (uint *)0xc)" ( (binary_expression "puVar25 == (uint *)0xc" identifier == (cast_expression "(uint *)0xc" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar9 = 0;\n    goto LAB_00015278;\n  }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00015278;" goto statement_identifier ;) })) (expression_statement "puVar31 = (uint *)(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4);" (assignment_expression "puVar31 = (uint *)(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" identifier = (cast_expression "(uint *)(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" * (cast_expression "(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" ( (binary_expression "(int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4" (binary_expression "(int)puVar25 + *(int *)(puVar33 + 0x23270)" (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) + number_literal) )))))))) ;) (expression_statement "ppuVar21 = ppuVar16;" (assignment_expression "ppuVar21 = ppuVar16" identifier = identifier) ;) (expression_statement "psVar32 = psVar27;" (assignment_expression "psVar32 = psVar27" identifier = identifier) ;) (if_statement "if (puVar31 == (uint *)0xffffffa3) {\nLAB_0001504c:\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    psVar32 = psVar27;\nLAB_00015050:\n    uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370);\n    if (uVar15 != 0) {\n      uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);\n      puVar19 = puVar13 + (1 - uVar22) * 0xe;\n      puVar25 = puVar19;\n      puVar31 = auStack_5b0;\n      do {\n        puVar20 = puVar31;\n        puVar17 = puVar25;\n        puVar25 = puVar17 + 4;\n        uVar24 = puVar17[1];\n        uVar23 = puVar17[2];\n        uVar18 = puVar17[3];\n        *puVar20 = *puVar17;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar18;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);\n      uVar18 = puVar17[5];\n      uVar23 = uVar15 - 4 & 0xff;\n      puVar20[4] = *puVar25;\n      puVar20[5] = uVar18;\n      puStack_674 = (uint *)puVar19[5];\n      in_t3 = puVar19[3];\n      in_t2 = (uint *)puVar19[2];\n      unaff_s6 = (short *)puVar19[4];\n      ppuVar28 = (uint **)puVar19[7];\n      in_t0 = (uint **)puVar19[6];\n      in_t5 = puVar19[9];\n      in_t4 = (uint **)puVar19[8];\n      uVar18 = puVar19[10];\n      in_t6 = puVar19[0xb];\n      in_t8 = puVar19[0xc];\n      if (uVar23 < 0x58) {\n                    \n                    \n        iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();\n        return iVar6;\n      }\n      psVar32 = psVar32 + -uVar22;\n      puVar13 = puVar13 + uVar22 * -0xe;\n      iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;\n      iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);\n      puStack_66c = auStack_5b0;\n      goto LAB_00015adc;\n    }\n    if (iStack_670 == 3) {\n      if ((int)puVar29 < 1) {\n        iVar9 = 1;\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }\n    }\n    ppuVar16 = (uint **)0xffffffa3;\n    while ((((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0))) {\n      iVar9 = 1;\n      psVar27 = psVar32;\n      if (psVar32 == asStack_578) goto LAB_00015278;\n      psVar32 = psVar32 + -1;\n      puVar25 = (uint *)(int)*psVar32;\n      puVar13 = puVar13 + -0xe;\n    }\n    puVar13 = puVar13 + 0xe;\n    in_t0 = apuStack_5b8;\n    apuStack_5e8[3] = puStack_630;\n    apuStack_5e8[2] = puStack_65c;\n    iStack_5d8 = iStack_660;\n    ppuVar21 = apuStack_5e8;\n    puVar31 = puVar13;\n    do {\n      puVar19 = puVar31;\n      ppuVar11 = ppuVar21;\n      ppuVar21 = ppuVar11 + 4;\n      puVar20 = ppuVar11[1];\n      puVar17 = ppuVar11[2];\n      puVar31 = ppuVar11[3];\n      *puVar19 = (uint)*ppuVar11;\n      puVar19[1] = (uint)puVar20;\n      puVar19[2] = (uint)puVar17;\n      puVar19[3] = (uint)puVar31;\n      puVar31 = puVar19 + 4;\n    } while (ppuVar21 != in_t0);\n    ppuVar16 = (uint **)0x3;\n    puVar31 = ppuVar11[5];\n    iStack_670 = 3;\n    puVar19[4] = (uint)*ppuVar21;\n    puVar19[5] = (uint)puVar31;\n    goto LAB_00015014;\n  }" if (parenthesized_expression "(puVar31 == (uint *)0xffffffa3)" ( (binary_expression "puVar31 == (uint *)0xffffffa3" identifier == (cast_expression "(uint *)0xffffffa3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0001504c:\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    psVar32 = psVar27;\nLAB_00015050:\n    uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370);\n    if (uVar15 != 0) {\n      uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);\n      puVar19 = puVar13 + (1 - uVar22) * 0xe;\n      puVar25 = puVar19;\n      puVar31 = auStack_5b0;\n      do {\n        puVar20 = puVar31;\n        puVar17 = puVar25;\n        puVar25 = puVar17 + 4;\n        uVar24 = puVar17[1];\n        uVar23 = puVar17[2];\n        uVar18 = puVar17[3];\n        *puVar20 = *puVar17;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar18;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);\n      uVar18 = puVar17[5];\n      uVar23 = uVar15 - 4 & 0xff;\n      puVar20[4] = *puVar25;\n      puVar20[5] = uVar18;\n      puStack_674 = (uint *)puVar19[5];\n      in_t3 = puVar19[3];\n      in_t2 = (uint *)puVar19[2];\n      unaff_s6 = (short *)puVar19[4];\n      ppuVar28 = (uint **)puVar19[7];\n      in_t0 = (uint **)puVar19[6];\n      in_t5 = puVar19[9];\n      in_t4 = (uint **)puVar19[8];\n      uVar18 = puVar19[10];\n      in_t6 = puVar19[0xb];\n      in_t8 = puVar19[0xc];\n      if (uVar23 < 0x58) {\n                    \n                    \n        iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();\n        return iVar6;\n      }\n      psVar32 = psVar32 + -uVar22;\n      puVar13 = puVar13 + uVar22 * -0xe;\n      iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;\n      iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);\n      puStack_66c = auStack_5b0;\n      goto LAB_00015adc;\n    }\n    if (iStack_670 == 3) {\n      if ((int)puVar29 < 1) {\n        iVar9 = 1;\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }\n    }\n    ppuVar16 = (uint **)0xffffffa3;\n    while ((((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0))) {\n      iVar9 = 1;\n      psVar27 = psVar32;\n      if (psVar32 == asStack_578) goto LAB_00015278;\n      psVar32 = psVar32 + -1;\n      puVar25 = (uint *)(int)*psVar32;\n      puVar13 = puVar13 + -0xe;\n    }\n    puVar13 = puVar13 + 0xe;\n    in_t0 = apuStack_5b8;\n    apuStack_5e8[3] = puStack_630;\n    apuStack_5e8[2] = puStack_65c;\n    iStack_5d8 = iStack_660;\n    ppuVar21 = apuStack_5e8;\n    puVar31 = puVar13;\n    do {\n      puVar19 = puVar31;\n      ppuVar11 = ppuVar21;\n      ppuVar21 = ppuVar11 + 4;\n      puVar20 = ppuVar11[1];\n      puVar17 = ppuVar11[2];\n      puVar31 = ppuVar11[3];\n      *puVar19 = (uint)*ppuVar11;\n      puVar19[1] = (uint)puVar20;\n      puVar19[2] = (uint)puVar17;\n      puVar19[3] = (uint)puVar31;\n      puVar31 = puVar19 + 4;\n    } while (ppuVar21 != in_t0);\n    ppuVar16 = (uint **)0x3;\n    puVar31 = ppuVar11[5];\n    iStack_670 = 3;\n    puVar19[4] = (uint)*ppuVar21;\n    puVar19[5] = (uint)puVar31;\n    goto LAB_00015014;\n  }" { (labeled_statement "LAB_0001504c:\n    iVar9 = *(int *)(puVar33 + 0x23270);" statement_identifier : (expression_statement "iVar9 = *(int *)(puVar33 + 0x23270);" (assignment_expression "iVar9 = *(int *)(puVar33 + 0x23270)" identifier = (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) ;)) (expression_statement "psVar32 = psVar27;" (assignment_expression "psVar32 = psVar27" identifier = identifier) ;) (labeled_statement "LAB_00015050:\n    uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370);" statement_identifier : (expression_statement "uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370);" (assignment_expression "uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370)" identifier = (binary_expression "(uint)*(byte *)((int)puVar25 + iVar9 + 0x6370)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)puVar25 + iVar9 + 0x6370)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar25 + iVar9 + 0x6370)" ( (binary_expression "(int)puVar25 + iVar9 + 0x6370" (binary_expression "(int)puVar25 + iVar9" (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;)) (if_statement "if (uVar15 != 0) {\n      uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);\n      puVar19 = puVar13 + (1 - uVar22) * 0xe;\n      puVar25 = puVar19;\n      puVar31 = auStack_5b0;\n      do {\n        puVar20 = puVar31;\n        puVar17 = puVar25;\n        puVar25 = puVar17 + 4;\n        uVar24 = puVar17[1];\n        uVar23 = puVar17[2];\n        uVar18 = puVar17[3];\n        *puVar20 = *puVar17;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar18;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);\n      uVar18 = puVar17[5];\n      uVar23 = uVar15 - 4 & 0xff;\n      puVar20[4] = *puVar25;\n      puVar20[5] = uVar18;\n      puStack_674 = (uint *)puVar19[5];\n      in_t3 = puVar19[3];\n      in_t2 = (uint *)puVar19[2];\n      unaff_s6 = (short *)puVar19[4];\n      ppuVar28 = (uint **)puVar19[7];\n      in_t0 = (uint **)puVar19[6];\n      in_t5 = puVar19[9];\n      in_t4 = (uint **)puVar19[8];\n      uVar18 = puVar19[10];\n      in_t6 = puVar19[0xb];\n      in_t8 = puVar19[0xc];\n      if (uVar23 < 0x58) {\n                    \n                    \n        iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();\n        return iVar6;\n      }\n      psVar32 = psVar32 + -uVar22;\n      puVar13 = puVar13 + uVar22 * -0xe;\n      iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;\n      iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);\n      puStack_66c = auStack_5b0;\n      goto LAB_00015adc;\n    }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);\n      puVar19 = puVar13 + (1 - uVar22) * 0xe;\n      puVar25 = puVar19;\n      puVar31 = auStack_5b0;\n      do {\n        puVar20 = puVar31;\n        puVar17 = puVar25;\n        puVar25 = puVar17 + 4;\n        uVar24 = puVar17[1];\n        uVar23 = puVar17[2];\n        uVar18 = puVar17[3];\n        *puVar20 = *puVar17;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar18;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);\n      uVar18 = puVar17[5];\n      uVar23 = uVar15 - 4 & 0xff;\n      puVar20[4] = *puVar25;\n      puVar20[5] = uVar18;\n      puStack_674 = (uint *)puVar19[5];\n      in_t3 = puVar19[3];\n      in_t2 = (uint *)puVar19[2];\n      unaff_s6 = (short *)puVar19[4];\n      ppuVar28 = (uint **)puVar19[7];\n      in_t0 = (uint **)puVar19[6];\n      in_t5 = puVar19[9];\n      in_t4 = (uint **)puVar19[8];\n      uVar18 = puVar19[10];\n      in_t6 = puVar19[0xb];\n      in_t8 = puVar19[0xc];\n      if (uVar23 < 0x58) {\n                    \n                    \n        iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();\n        return iVar6;\n      }\n      psVar32 = psVar32 + -uVar22;\n      puVar13 = puVar13 + uVar22 * -0xe;\n      iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;\n      iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);\n      puStack_66c = auStack_5b0;\n      goto LAB_00015adc;\n    }" { (expression_statement "uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);" (assignment_expression "uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198)" identifier = (binary_expression "(uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198)" ( (binary_expression "uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198" (binary_expression "uVar15 + *(int *)(puVar33 + 0x23270)" identifier + (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "puVar19 = puVar13 + (1 - uVar22) * 0xe;" (assignment_expression "puVar19 = puVar13 + (1 - uVar22) * 0xe" identifier = (binary_expression "puVar13 + (1 - uVar22) * 0xe" identifier + (binary_expression "(1 - uVar22) * 0xe" (parenthesized_expression "(1 - uVar22)" ( (binary_expression "1 - uVar22" number_literal - identifier) )) * number_literal))) ;) (expression_statement "puVar25 = puVar19;" (assignment_expression "puVar25 = puVar19" identifier = identifier) ;) (expression_statement "puVar31 = auStack_5b0;" (assignment_expression "puVar31 = auStack_5b0" identifier = identifier) ;) (do_statement "do {\n        puVar20 = puVar31;\n        puVar17 = puVar25;\n        puVar25 = puVar17 + 4;\n        uVar24 = puVar17[1];\n        uVar23 = puVar17[2];\n        uVar18 = puVar17[3];\n        *puVar20 = *puVar17;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar18;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);" do (compound_statement "{\n        puVar20 = puVar31;\n        puVar17 = puVar25;\n        puVar25 = puVar17 + 4;\n        uVar24 = puVar17[1];\n        uVar23 = puVar17[2];\n        uVar18 = puVar17[3];\n        *puVar20 = *puVar17;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar18;\n        puVar31 = puVar20 + 4;\n      }" { (expression_statement "puVar20 = puVar31;" (assignment_expression "puVar20 = puVar31" identifier = identifier) ;) (expression_statement "puVar17 = puVar25;" (assignment_expression "puVar17 = puVar25" identifier = identifier) ;) (expression_statement "puVar25 = puVar17 + 4;" (assignment_expression "puVar25 = puVar17 + 4" identifier = (binary_expression "puVar17 + 4" identifier + number_literal)) ;) (expression_statement "uVar24 = puVar17[1];" (assignment_expression "uVar24 = puVar17[1]" identifier = (subscript_expression "puVar17[1]" identifier [ number_literal ])) ;) (expression_statement "uVar23 = puVar17[2];" (assignment_expression "uVar23 = puVar17[2]" identifier = (subscript_expression "puVar17[2]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = puVar17[3];" (assignment_expression "uVar18 = puVar17[3]" identifier = (subscript_expression "puVar17[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar20 = *puVar17;" (assignment_expression "*puVar20 = *puVar17" (pointer_expression "*puVar20" * identifier) = (pointer_expression "*puVar17" * identifier)) ;) (expression_statement "puVar20[1] = uVar24;" (assignment_expression "puVar20[1] = uVar24" (subscript_expression "puVar20[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar20[2] = uVar23;" (assignment_expression "puVar20[2] = uVar23" (subscript_expression "puVar20[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar20[3] = uVar18;" (assignment_expression "puVar20[3] = uVar18" (subscript_expression "puVar20[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar31 = puVar20 + 4;" (assignment_expression "puVar31 = puVar20 + 4" identifier = (binary_expression "puVar20 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar25 != puVar19 + 0xc)" ( (binary_expression "puVar25 != puVar19 + 0xc" identifier != (binary_expression "puVar19 + 0xc" identifier + number_literal)) )) ;) (expression_statement "uVar18 = puVar17[5];" (assignment_expression "uVar18 = puVar17[5]" identifier = (subscript_expression "puVar17[5]" identifier [ number_literal ])) ;) (expression_statement "uVar23 = uVar15 - 4 & 0xff;" (assignment_expression "uVar23 = uVar15 - 4 & 0xff" identifier = (binary_expression "uVar15 - 4 & 0xff" (binary_expression "uVar15 - 4" identifier - number_literal) & number_literal)) ;) (expression_statement "puVar20[4] = *puVar25;" (assignment_expression "puVar20[4] = *puVar25" (subscript_expression "puVar20[4]" identifier [ number_literal ]) = (pointer_expression "*puVar25" * identifier)) ;) (expression_statement "puVar20[5] = uVar18;" (assignment_expression "puVar20[5] = uVar18" (subscript_expression "puVar20[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puStack_674 = (uint *)puVar19[5];" (assignment_expression "puStack_674 = (uint *)puVar19[5]" identifier = (cast_expression "(uint *)puVar19[5]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar19[5]" identifier [ number_literal ]))) ;) (expression_statement "in_t3 = puVar19[3];" (assignment_expression "in_t3 = puVar19[3]" identifier = (subscript_expression "puVar19[3]" identifier [ number_literal ])) ;) (expression_statement "in_t2 = (uint *)puVar19[2];" (assignment_expression "in_t2 = (uint *)puVar19[2]" identifier = (cast_expression "(uint *)puVar19[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar19[2]" identifier [ number_literal ]))) ;) (expression_statement "unaff_s6 = (short *)puVar19[4];" (assignment_expression "unaff_s6 = (short *)puVar19[4]" identifier = (cast_expression "(short *)puVar19[4]" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar19[4]" identifier [ number_literal ]))) ;) (expression_statement "ppuVar28 = (uint **)puVar19[7];" (assignment_expression "ppuVar28 = (uint **)puVar19[7]" identifier = (cast_expression "(uint **)puVar19[7]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar19[7]" identifier [ number_literal ]))) ;) (expression_statement "in_t0 = (uint **)puVar19[6];" (assignment_expression "in_t0 = (uint **)puVar19[6]" identifier = (cast_expression "(uint **)puVar19[6]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar19[6]" identifier [ number_literal ]))) ;) (expression_statement "in_t5 = puVar19[9];" (assignment_expression "in_t5 = puVar19[9]" identifier = (subscript_expression "puVar19[9]" identifier [ number_literal ])) ;) (expression_statement "in_t4 = (uint **)puVar19[8];" (assignment_expression "in_t4 = (uint **)puVar19[8]" identifier = (cast_expression "(uint **)puVar19[8]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar19[8]" identifier [ number_literal ]))) ;) (expression_statement "uVar18 = puVar19[10];" (assignment_expression "uVar18 = puVar19[10]" identifier = (subscript_expression "puVar19[10]" identifier [ number_literal ])) ;) (expression_statement "in_t6 = puVar19[0xb];" (assignment_expression "in_t6 = puVar19[0xb]" identifier = (subscript_expression "puVar19[0xb]" identifier [ number_literal ])) ;) (expression_statement "in_t8 = puVar19[0xc];" (assignment_expression "in_t8 = puVar19[0xc]" identifier = (subscript_expression "puVar19[0xc]" identifier [ number_literal ])) ;) (if_statement "if (uVar23 < 0x58) {\n                    \n                    \n        iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();\n        return iVar6;\n      }" if (parenthesized_expression "(uVar23 < 0x58)" ( (binary_expression "uVar23 < 0x58" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n        iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();\n        return iVar6;\n      }" { (expression_statement "iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();" (assignment_expression "iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))()" identifier = (call_expression "(*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))()" (parenthesized_expression "(*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))" ( (pointer_expression "*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234)" * (cast_expression "(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234)" ( (binary_expression "puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234" (binary_expression "puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4)" * (cast_expression "(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4)" ( (binary_expression "*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4" (binary_expression "*(int *)(puVar33 + 0x23270) + 0x5f80" (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) )))) + number_literal) + (binary_expression "uVar23 * 4" identifier * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar6;" return identifier ;) })) (expression_statement "psVar32 = psVar32 + -uVar22;" (assignment_expression "psVar32 = psVar32 + -uVar22" identifier = (binary_expression "psVar32 + -uVar22" identifier + (unary_expression "-uVar22" - identifier))) ;) (expression_statement "puVar13 = puVar13 + uVar22 * -0xe;" (assignment_expression "puVar13 = puVar13 + uVar22 * -0xe" identifier = (binary_expression "puVar13 + uVar22 * -0xe" identifier + (binary_expression "uVar22 * -0xe" identifier * number_literal))) ;) (expression_statement "iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;" (assignment_expression "iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c" identifier = (binary_expression "*(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c" (pointer_expression "*(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15)" * (cast_expression "(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15)" ( (binary_expression "*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15" (binary_expression "*(int *)(puVar33 + 0x23270) + 0x61f4" (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) )))) + number_literal) + identifier) )))) - number_literal)) ;) (expression_statement "iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);" (assignment_expression "iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354)" identifier = (cast_expression "(int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354)" * (cast_expression "(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354)" ( (binary_expression "iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354" (binary_expression "iVar10 + *(int *)(puVar33 + 0x23270)" identifier + (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) + number_literal) )))))) ;) (expression_statement "puStack_66c = auStack_5b0;" (assignment_expression "puStack_66c = auStack_5b0" identifier = identifier) ;) (goto_statement "goto LAB_00015adc;" goto statement_identifier ;) })) (if_statement "if (iStack_670 == 3) {\n      if ((int)puVar29 < 1) {\n        iVar9 = 1;\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }\n    }" if (parenthesized_expression "(iStack_670 == 3)" ( (binary_expression "iStack_670 == 3" identifier == number_literal) )) (compound_statement "{\n      if ((int)puVar29 < 1) {\n        iVar9 = 1;\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }\n    }" { (if_statement "if ((int)puVar29 < 1) {\n        iVar9 = 1;\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }" if (parenthesized_expression "((int)puVar29 < 1)" ( (binary_expression "(int)puVar29 < 1" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        iVar9 = 1;\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }" { (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (expression_statement "psVar27 = psVar32;" (assignment_expression "psVar27 = psVar32" identifier = identifier) ;) (if_statement "if (puVar29 == (uint *)0x0) goto LAB_00015278;" if (parenthesized_expression "(puVar29 == (uint *)0x0)" ( (binary_expression "puVar29 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00015278;" goto statement_identifier ;)) }) (else_clause "else {\n        puVar29 = (uint *)0xfffffffe;\n      }" else (compound_statement "{\n        puVar29 = (uint *)0xfffffffe;\n      }" { (expression_statement "puVar29 = (uint *)0xfffffffe;" (assignment_expression "puVar29 = (uint *)0xfffffffe" identifier = (cast_expression "(uint *)0xfffffffe" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) })) (expression_statement "ppuVar16 = (uint **)0xffffffa3;" (assignment_expression "ppuVar16 = (uint **)0xffffffa3" identifier = (cast_expression "(uint **)0xffffffa3" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (while_statement "while ((((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0))) {\n      iVar9 = 1;\n      psVar27 = psVar32;\n      if (psVar32 == asStack_578) goto LAB_00015278;\n      psVar32 = psVar32 + -1;\n      puVar25 = (uint *)(int)*psVar32;\n      puVar13 = puVar13 + -0xe;\n    }" while (parenthesized_expression "((((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0)))" ( (parenthesized_expression "(((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0))" ( (binary_expression "((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0)" (parenthesized_expression "((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01'))" ( (binary_expression "(iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')" (parenthesized_expression "(iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15))" ( (comma_expression "iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)" (assignment_expression "iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" identifier = (cast_expression "(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" * (cast_expression "(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" ( (binary_expression "(int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4" (binary_expression "(int)puVar25 + *(int *)(puVar33 + 0x23270)" (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*(int *)(puVar33 + 0x23270)" * (cast_expression "(int *)(puVar33 + 0x23270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x23270)" ( (binary_expression "puVar33 + 0x23270" identifier + number_literal) ))))) + number_literal) ))))))) , (comma_expression "uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)" (assignment_expression "uVar15 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) , (binary_expression "iVar9 == -0x5d || (0x70 < uVar15)" (binary_expression "iVar9 == -0x5d" identifier == number_literal) || (parenthesized_expression "(0x70 < uVar15)" ( (binary_expression "0x70 < uVar15" number_literal < identifier) ))))) )) || (parenthesized_expression "(*(char *)(uVar15 + iVar30) != '\x01')" ( (binary_expression "*(char *)(uVar15 + iVar30) != '\x01'" (pointer_expression "*(char *)(uVar15 + iVar30)" * (cast_expression "(char *)(uVar15 + iVar30)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar15 + iVar30)" ( (binary_expression "uVar15 + iVar30" identifier + identifier) )))) != (char_literal "'\x01'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0)" ( (comma_expression "puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0" (assignment_expression "puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8)" identifier = (binary_expression "(uint *)(uint)*(byte *)(uVar15 + iVar8)" (cast_expression "(uint *)(uint)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(uVar15 + iVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar15 + iVar8)" ( (binary_expression "uVar15 + iVar8" identifier + identifier) ))))) , (binary_expression "puVar25 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) )) (compound_statement "{\n      iVar9 = 1;\n      psVar27 = psVar32;\n      if (psVar32 == asStack_578) goto LAB_00015278;\n      psVar32 = psVar32 + -1;\n      puVar25 = (uint *)(int)*psVar32;\n      puVar13 = puVar13 + -0xe;\n    }" { (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (expression_statement "psVar27 = psVar32;" (assignment_expression "psVar27 = psVar32" identifier = identifier) ;) (if_statement "if (psVar32 == asStack_578) goto LAB_00015278;" if (parenthesized_expression "(psVar32 == asStack_578)" ( (binary_expression "psVar32 == asStack_578" identifier == identifier) )) (goto_statement "goto LAB_00015278;" goto statement_identifier ;)) (expression_statement "psVar32 = psVar32 + -1;" (assignment_expression "psVar32 = psVar32 + -1" identifier = (binary_expression "psVar32 + -1" identifier + number_literal)) ;) (expression_statement "puVar25 = (uint *)(int)*psVar32;" (assignment_expression "puVar25 = (uint *)(int)*psVar32" identifier = (cast_expression "(uint *)(int)*psVar32" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*psVar32" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*psVar32" * identifier)))) ;) (expression_statement "puVar13 = puVar13 + -0xe;" (assignment_expression "puVar13 = puVar13 + -0xe" identifier = (binary_expression "puVar13 + -0xe" identifier + number_literal)) ;) })) (expression_statement "puVar13 = puVar13 + 0xe;" (assignment_expression "puVar13 = puVar13 + 0xe" identifier = (binary_expression "puVar13 + 0xe" identifier + number_literal)) ;) (expression_statement "in_t0 = apuStack_5b8;" (assignment_expression "in_t0 = apuStack_5b8" identifier = identifier) ;) (expression_statement "apuStack_5e8[3] = puStack_630;" (assignment_expression "apuStack_5e8[3] = puStack_630" (subscript_expression "apuStack_5e8[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "apuStack_5e8[2] = puStack_65c;" (assignment_expression "apuStack_5e8[2] = puStack_65c" (subscript_expression "apuStack_5e8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iStack_5d8 = iStack_660;" (assignment_expression "iStack_5d8 = iStack_660" identifier = identifier) ;) (expression_statement "ppuVar21 = apuStack_5e8;" (assignment_expression "ppuVar21 = apuStack_5e8" identifier = identifier) ;) (expression_statement "puVar31 = puVar13;" (assignment_expression "puVar31 = puVar13" identifier = identifier) ;) (do_statement "do {\n      puVar19 = puVar31;\n      ppuVar11 = ppuVar21;\n      ppuVar21 = ppuVar11 + 4;\n      puVar20 = ppuVar11[1];\n      puVar17 = ppuVar11[2];\n      puVar31 = ppuVar11[3];\n      *puVar19 = (uint)*ppuVar11;\n      puVar19[1] = (uint)puVar20;\n      puVar19[2] = (uint)puVar17;\n      puVar19[3] = (uint)puVar31;\n      puVar31 = puVar19 + 4;\n    } while (ppuVar21 != in_t0);" do (compound_statement "{\n      puVar19 = puVar31;\n      ppuVar11 = ppuVar21;\n      ppuVar21 = ppuVar11 + 4;\n      puVar20 = ppuVar11[1];\n      puVar17 = ppuVar11[2];\n      puVar31 = ppuVar11[3];\n      *puVar19 = (uint)*ppuVar11;\n      puVar19[1] = (uint)puVar20;\n      puVar19[2] = (uint)puVar17;\n      puVar19[3] = (uint)puVar31;\n      puVar31 = puVar19 + 4;\n    }" { (expression_statement "puVar19 = puVar31;" (assignment_expression "puVar19 = puVar31" identifier = identifier) ;) (expression_statement "ppuVar11 = ppuVar21;" (assignment_expression "ppuVar11 = ppuVar21" identifier = identifier) ;) (expression_statement "ppuVar21 = ppuVar11 + 4;" (assignment_expression "ppuVar21 = ppuVar11 + 4" identifier = (binary_expression "ppuVar11 + 4" identifier + number_literal)) ;) (expression_statement "puVar20 = ppuVar11[1];" (assignment_expression "puVar20 = ppuVar11[1]" identifier = (subscript_expression "ppuVar11[1]" identifier [ number_literal ])) ;) (expression_statement "puVar17 = ppuVar11[2];" (assignment_expression "puVar17 = ppuVar11[2]" identifier = (subscript_expression "ppuVar11[2]" identifier [ number_literal ])) ;) (expression_statement "puVar31 = ppuVar11[3];" (assignment_expression "puVar31 = ppuVar11[3]" identifier = (subscript_expression "ppuVar11[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar19 = (uint)*ppuVar11;" (assignment_expression "*puVar19 = (uint)*ppuVar11" (pointer_expression "*puVar19" * identifier) = (binary_expression "(uint)*ppuVar11" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puVar19[1] = (uint)puVar20;" (assignment_expression "puVar19[1] = (uint)puVar20" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = (cast_expression "(uint)puVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar19[2] = (uint)puVar17;" (assignment_expression "puVar19[2] = (uint)puVar17" (subscript_expression "puVar19[2]" identifier [ number_literal ]) = (cast_expression "(uint)puVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar19[3] = (uint)puVar31;" (assignment_expression "puVar19[3] = (uint)puVar31" (subscript_expression "puVar19[3]" identifier [ number_literal ]) = (cast_expression "(uint)puVar31" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar31 = puVar19 + 4;" (assignment_expression "puVar31 = puVar19 + 4" identifier = (binary_expression "puVar19 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppuVar21 != in_t0)" ( (binary_expression "ppuVar21 != in_t0" identifier != identifier) )) ;) (expression_statement "ppuVar16 = (uint **)0x3;" (assignment_expression "ppuVar16 = (uint **)0x3" identifier = (cast_expression "(uint **)0x3" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "puVar31 = ppuVar11[5];" (assignment_expression "puVar31 = ppuVar11[5]" identifier = (subscript_expression "ppuVar11[5]" identifier [ number_literal ])) ;) (expression_statement "iStack_670 = 3;" (assignment_expression "iStack_670 = 3" identifier = number_literal) ;) (expression_statement "puVar19[4] = (uint)*ppuVar21;" (assignment_expression "puVar19[4] = (uint)*ppuVar21" (subscript_expression "puVar19[4]" identifier [ number_literal ]) = (binary_expression "(uint)*ppuVar21" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puVar19[5] = (uint)puVar31;" (assignment_expression "puVar19[5] = (uint)puVar31" (subscript_expression "puVar19[5]" identifier [ number_literal ]) = (cast_expression "(uint)puVar31" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_00015014;" goto statement_identifier ;) })) (goto_statement "goto LAB_00014f50;" goto statement_identifier ;) (labeled_statement "LAB_00015528:\n  puVar29 = (uint *)((int)puVar17 >> 0x1f);" statement_identifier : (expression_statement "puVar29 = (uint *)((int)puVar17 >> 0x1f);" (assignment_expression "puVar29 = (uint *)((int)puVar17 >> 0x1f)" identifier = (cast_expression "(uint *)((int)puVar17 >> 0x1f)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 >> 0x1f)" ( (binary_expression "(int)puVar17 >> 0x1f" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;)) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (if_statement "if (puVar29 == in_t2) {\n    in_t2 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2);\n    ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n  }\n  else {\n    ppuVar28 = (uint **)(ZEXT48(in_t2) * 10);\n    unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20);\n    in_t6 = (int)puVar17 * 4;\n    puStack_674 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)puVar17 * 10);\n    psVar27 = unaff_s6;\n    if ((int)in_t2 < 0) {\n      psVar27 = unaff_s6 + -5;\n    }\n    ppuVar16 = (uint **)((int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2));\n    if ((int)ppuVar16 >> 0x1f != (uint)(ppuVar16 < ppuVar28) + (int)psVar27) {\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n    }\n  }" if (parenthesized_expression "(puVar29 == in_t2)" ( (binary_expression "puVar29 == in_t2" identifier == identifier) )) (compound_statement "{\n    in_t2 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2);\n    ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n  }" { (expression_statement "in_t2 = (uint *)((uint)puVar17 >> 0x1e);" (assignment_expression "in_t2 = (uint *)((uint)puVar17 >> 0x1e)" identifier = (cast_expression "(uint *)((uint)puVar17 >> 0x1e)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)puVar17 >> 0x1e)" ( (binary_expression "(uint)puVar17 >> 0x1e" (cast_expression "(uint)puVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "in_t0 = (uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2);" (assignment_expression "in_t0 = (uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2)" identifier = (cast_expression "(uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2)" ( (binary_expression "(int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2" (cast_expression "(int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2))" ( (binary_expression "(int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)" (binary_expression "(int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4))" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (call_expression "(uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4))" ( (binary_expression "(uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)" (call_expression "(uint)((int)puVar17 * 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar17 * 5)" ( (binary_expression "(int)puVar17 * 5" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) < (call_expression "(uint)((int)puVar17 * 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar17 * 4)" ( (binary_expression "(int)puVar17 * 4" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) )))) + (parenthesized_expression "((uint)in_t2 | (int)puVar29 << 2)" ( (binary_expression "(uint)in_t2 | (int)puVar29 << 2" (cast_expression "(uint)in_t2" ( (type_descriptor "uint" type_identifier) ) identifier) | (binary_expression "(int)puVar29 << 2" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ))) ))) * number_literal) )))) ;) (expression_statement "ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);" (assignment_expression "ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0)" identifier = (cast_expression "(uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0)" ( (binary_expression "(uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0" (binary_expression "(uint)((int)puVar17 * 5) >> 0x1f" (call_expression "(uint)((int)puVar17 * 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar17 * 5)" ( (binary_expression "(int)puVar17 * 5" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) >> number_literal) | (cast_expression "(uint)in_t0" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) }) (else_clause "else {\n    ppuVar28 = (uint **)(ZEXT48(in_t2) * 10);\n    unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20);\n    in_t6 = (int)puVar17 * 4;\n    puStack_674 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)puVar17 * 10);\n    psVar27 = unaff_s6;\n    if ((int)in_t2 < 0) {\n      psVar27 = unaff_s6 + -5;\n    }\n    ppuVar16 = (uint **)((int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2));\n    if ((int)ppuVar16 >> 0x1f != (uint)(ppuVar16 < ppuVar28) + (int)psVar27) {\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n    }\n  }" else (compound_statement "{\n    ppuVar28 = (uint **)(ZEXT48(in_t2) * 10);\n    unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20);\n    in_t6 = (int)puVar17 * 4;\n    puStack_674 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)puVar17 * 10);\n    psVar27 = unaff_s6;\n    if ((int)in_t2 < 0) {\n      psVar27 = unaff_s6 + -5;\n    }\n    ppuVar16 = (uint **)((int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2));\n    if ((int)ppuVar16 >> 0x1f != (uint)(ppuVar16 < ppuVar28) + (int)psVar27) {\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n    }\n  }" { (expression_statement "ppuVar28 = (uint **)(ZEXT48(in_t2) * 10);" (assignment_expression "ppuVar28 = (uint **)(ZEXT48(in_t2) * 10)" identifier = (cast_expression "(uint **)(ZEXT48(in_t2) * 10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(ZEXT48(in_t2) * 10)" ( (binary_expression "ZEXT48(in_t2) * 10" (call_expression "ZEXT48(in_t2)" identifier (argument_list "(in_t2)" ( identifier ))) * number_literal) )))) ;) (expression_statement "unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20);" (assignment_expression "unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20)" identifier = (cast_expression "(short *)(ZEXT48(in_t2) * 10 >> 0x20)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ZEXT48(in_t2) * 10 >> 0x20)" ( (binary_expression "ZEXT48(in_t2) * 10 >> 0x20" (binary_expression "ZEXT48(in_t2) * 10" (call_expression "ZEXT48(in_t2)" identifier (argument_list "(in_t2)" ( identifier ))) * number_literal) >> number_literal) )))) ;) (expression_statement "in_t6 = (int)puVar17 * 4;" (assignment_expression "in_t6 = (int)puVar17 * 4" identifier = (binary_expression "(int)puVar17 * 4" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "puStack_674 = (uint *)((uint)puVar17 >> 0x1e);" (assignment_expression "puStack_674 = (uint *)((uint)puVar17 >> 0x1e)" identifier = (cast_expression "(uint *)((uint)puVar17 >> 0x1e)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)puVar17 >> 0x1e)" ( (binary_expression "(uint)puVar17 >> 0x1e" (cast_expression "(uint)puVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "in_t0 = (uint **)((int)puVar17 * 10);" (assignment_expression "in_t0 = (uint **)((int)puVar17 * 10)" identifier = (cast_expression "(uint **)((int)puVar17 * 10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar17 * 10)" ( (binary_expression "(int)puVar17 * 10" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "psVar27 = unaff_s6;" (assignment_expression "psVar27 = unaff_s6" identifier = identifier) ;) (if_statement "if ((int)in_t2 < 0) {\n      psVar27 = unaff_s6 + -5;\n    }" if (parenthesized_expression "((int)in_t2 < 0)" ( (binary_expression "(int)in_t2 < 0" (cast_expression "(int)in_t2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      psVar27 = unaff_s6 + -5;\n    }" { (expression_statement "psVar27 = unaff_s6 + -5;" (assignment_expression "psVar27 = unaff_s6 + -5" identifier = (binary_expression "unaff_s6 + -5" identifier + number_literal)) ;) })) (expression_statement "ppuVar16 = (uint **)((int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2));" (assignment_expression "ppuVar16 = (uint **)((int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2))" identifier = (cast_expression "(uint **)((int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2))" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2))" ( (binary_expression "(int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2)" (cast_expression "(int)ppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2)" ( (binary_expression "(uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2" (binary_expression "(uint)((int)puVar17 * 5) >> 0x1f" (call_expression "(uint)((int)puVar17 * 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar17 * 5)" ( (binary_expression "(int)puVar17 * 5" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) >> number_literal) | (binary_expression "(int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2" (cast_expression "(int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6))" ( (binary_expression "(int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)" (cast_expression "(int)puStack_674" ( (type_descriptor "int" primitive_type) ) identifier) + (call_expression "(uint)((uint)((int)puVar17 * 5) < in_t6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)((int)puVar17 * 5) < in_t6)" ( (binary_expression "(uint)((int)puVar17 * 5) < in_t6" (call_expression "(uint)((int)puVar17 * 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar17 * 5)" ( (binary_expression "(int)puVar17 * 5" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) < identifier) )))) ))) * number_literal)) ))) )))) ;) (if_statement "if ((int)ppuVar16 >> 0x1f != (uint)(ppuVar16 < ppuVar28) + (int)psVar27) {\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n    }" if (parenthesized_expression "((int)ppuVar16 >> 0x1f != (uint)(ppuVar16 < ppuVar28) + (int)psVar27)" ( (binary_expression "(int)ppuVar16 >> 0x1f != (uint)(ppuVar16 < ppuVar28) + (int)psVar27" (binary_expression "(int)ppuVar16 >> 0x1f" (cast_expression "(int)ppuVar16" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) != (binary_expression "(uint)(ppuVar16 < ppuVar28) + (int)psVar27" (call_expression "(uint)(ppuVar16 < ppuVar28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ppuVar16 < ppuVar28)" ( (binary_expression "ppuVar16 < ppuVar28" identifier < identifier) ))) + (cast_expression "(int)psVar27" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n    }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);" (assignment_expression "in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2)" identifier = (cast_expression "(uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2)" ( (binary_expression "(int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2" (cast_expression "(int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4))" ( (binary_expression "(int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)" (binary_expression "(int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6)" (cast_expression "(int)in_t2" ( (type_descriptor "int" primitive_type) ) identifier) + (call_expression "(uint)((uint)((int)puVar17 * 5) < in_t6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)((int)puVar17 * 5) < in_t6)" ( (binary_expression "(uint)((int)puVar17 * 5) < in_t6" (call_expression "(uint)((int)puVar17 * 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar17 * 5)" ( (binary_expression "(int)puVar17 * 5" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) < identifier) )))) + (parenthesized_expression "((uint)puStack_674 | (int)in_t2 * 4)" ( (binary_expression "(uint)puStack_674 | (int)in_t2 * 4" (cast_expression "(uint)puStack_674" ( (type_descriptor "uint" type_identifier) ) identifier) | (binary_expression "(int)in_t2 * 4" (cast_expression "(int)in_t2" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))) ))) * number_literal) )))) ;) (expression_statement "ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);" (assignment_expression "ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0)" identifier = (cast_expression "(uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0)" ( (binary_expression "(uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0" (binary_expression "(uint)((int)puVar17 * 5) >> 0x1f" (call_expression "(uint)((int)puVar17 * 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar17 * 5)" ( (binary_expression "(int)puVar17 * 5" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) >> number_literal) | (cast_expression "(uint)in_t0" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) })) }))) (expression_statement "puVar29 = (uint *)((int)puVar17 * 10);" (assignment_expression "puVar29 = (uint *)((int)puVar17 * 10)" identifier = (cast_expression "(uint *)((int)puVar17 * 10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 * 10)" ( (binary_expression "(int)puVar17 * 10" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "ppuVar28 = in_t4;" (assignment_expression "ppuVar28 = in_t4" identifier = identifier) ;) (if_statement "if (bVar2) goto LAB_00017ad0;" if (parenthesized_expression "(bVar2)" ( identifier )) (goto_statement "goto LAB_00017ad0;" goto statement_identifier ;)) (goto_statement "goto LAB_000153f8;" goto statement_identifier ;) (labeled_statement "LAB_00017ad0:\n  uVar15 = 2;" statement_identifier : (expression_statement "uVar15 = 2;" (assignment_expression "uVar15 = 2" identifier = number_literal) ;)) (expression_statement "puVar29 = (uint *)0x3f;" (assignment_expression "puVar29 = (uint *)0x3f" identifier = (cast_expression "(uint *)0x3f" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar19 = (uint *)((int)puVar31 + 2);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + 2)" identifier = (cast_expression "(uint *)((int)puVar31 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar31 + 2)" ( (binary_expression "(int)puVar31 + 2" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (goto_statement "goto LAB_00014f74;" goto statement_identifier ;) (while_statement "while( true ) {\n    if (bVar12 == 0x28) {\n      iVar9 = iVar9 + 1;\n    }\n    else if (bVar12 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }\n    if (iVar9 == 0) break;\nLAB_000157a8:\n    ppuVar16 = ppuVar21;\n    ppuVar21 = (uint **)((int)ppuVar16 + 1);\n    *puVar14 = ppuVar21;\n    bVar12 = *(byte *)ppuVar16;\n    if (bVar12 == 0) goto LAB_000152b8;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (bVar12 == 0x28) {\n      iVar9 = iVar9 + 1;\n    }\n    else if (bVar12 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }\n    if (iVar9 == 0) break;\nLAB_000157a8:\n    ppuVar16 = ppuVar21;\n    ppuVar21 = (uint **)((int)ppuVar16 + 1);\n    *puVar14 = ppuVar21;\n    bVar12 = *(byte *)ppuVar16;\n    if (bVar12 == 0) goto LAB_000152b8;\n  }" { (if_statement "if (bVar12 == 0x28) {\n      iVar9 = iVar9 + 1;\n    }\n    else if (bVar12 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }" if (parenthesized_expression "(bVar12 == 0x28)" ( (binary_expression "bVar12 == 0x28" identifier == number_literal) )) (compound_statement "{\n      iVar9 = iVar9 + 1;\n    }" { (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) }) (else_clause "else if (bVar12 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }" else (if_statement "if (bVar12 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }" if (parenthesized_expression "(bVar12 == 0x29)" ( (binary_expression "bVar12 == 0x29" identifier == number_literal) )) (compound_statement "{\n      iVar9 = iVar9 + -1;\n    }" { (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) })))) (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_000157a8:\n    ppuVar16 = ppuVar21;" statement_identifier : (expression_statement "ppuVar16 = ppuVar21;" (assignment_expression "ppuVar16 = ppuVar21" identifier = identifier) ;)) (expression_statement "ppuVar21 = (uint **)((int)ppuVar16 + 1);" (assignment_expression "ppuVar21 = (uint **)((int)ppuVar16 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar16 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar16 + 1)" ( (binary_expression "(int)ppuVar16 + 1" (cast_expression "(int)ppuVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*puVar14 = ppuVar21;" (assignment_expression "*puVar14 = ppuVar21" (pointer_expression "*puVar14" * identifier) = identifier) ;) (expression_statement "bVar12 = *(byte *)ppuVar16;" (assignment_expression "bVar12 = *(byte *)ppuVar16" identifier = (pointer_expression "*(byte *)ppuVar16" * (cast_expression "(byte *)ppuVar16" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (bVar12 == 0) goto LAB_000152b8;" if (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000152b8;" goto statement_identifier ;)) })) (expression_statement "bVar12 = *(byte *)((int)ppuVar16 + 1);" (assignment_expression "bVar12 = *(byte *)((int)ppuVar16 + 1)" identifier = (pointer_expression "*(byte *)((int)ppuVar16 + 1)" * (cast_expression "(byte *)((int)ppuVar16 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar16 + 1)" ( (binary_expression "(int)ppuVar16 + 1" (cast_expression "(int)ppuVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_000152f0;" goto statement_identifier ;) (labeled_statement "code_r0x00016f40:\n  puVar25 = puVar13 + 4;" statement_identifier : (expression_statement "puVar25 = puVar13 + 4;" (assignment_expression "puVar25 = puVar13 + 4" identifier = (binary_expression "puVar13 + 4" identifier + number_literal)) ;)) (expression_statement "puVar13 = puVar13 + -0x2a;" (assignment_expression "puVar13 = puVar13 + -0x2a" identifier = (binary_expression "puVar13 + -0x2a" identifier + number_literal)) ;) (expression_statement "psVar32 = psVar27 + -3;" (assignment_expression "psVar32 = psVar27 + -3" identifier = (binary_expression "psVar27 + -3" identifier + number_literal)) ;) (expression_statement "iVar10 = 0xe;" (assignment_expression "iVar10 = 0xe" identifier = number_literal) ;) (expression_statement "puVar14[0xc] = *puVar25;" (assignment_expression "puVar14[0xc] = *puVar25" (subscript_expression "puVar14[0xc]" identifier [ number_literal ]) = (pointer_expression "*puVar25" * identifier)) ;) (expression_statement "iVar9 = -0x5d;" (assignment_expression "iVar9 = -0x5d" identifier = number_literal) ;) (labeled_statement "LAB_00015adc:\n  puVar13 = puVar13 + 0xe;" statement_identifier : (expression_statement "puVar13 = puVar13 + 0xe;" (assignment_expression "puVar13 = puVar13 + 0xe" identifier = (binary_expression "puVar13 + 0xe" identifier + number_literal)) ;)) (expression_statement "puStack_5a8 = in_t2;" (assignment_expression "puStack_5a8 = in_t2" identifier = identifier) ;) (expression_statement "in_t2 = auStack_580;" (assignment_expression "in_t2 = auStack_580" identifier = identifier) ;) (expression_statement "uStack_5a4 = in_t3;" (assignment_expression "uStack_5a4 = in_t3" identifier = identifier) ;) (expression_statement "apsStack_5a0[1] = (short *)puStack_674;" (assignment_expression "apsStack_5a0[1] = (short *)puStack_674" (subscript_expression "apsStack_5a0[1]" identifier [ number_literal ]) = (cast_expression "(short *)puStack_674" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "apsStack_5a0[0] = unaff_s6;" (assignment_expression "apsStack_5a0[0] = unaff_s6" (subscript_expression "apsStack_5a0[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppuStack_594 = ppuVar28;" (assignment_expression "ppuStack_594 = ppuVar28" identifier = identifier) ;) (expression_statement "ppuStack_598 = in_t0;" (assignment_expression "ppuStack_598 = in_t0" identifier = identifier) ;) (expression_statement "uStack_58c = in_t5;" (assignment_expression "uStack_58c = in_t5" identifier = identifier) ;) (expression_statement "ppuStack_590 = in_t4;" (assignment_expression "ppuStack_590 = in_t4" identifier = identifier) ;) (expression_statement "uStack_588 = uVar18;" (assignment_expression "uStack_588 = uVar18" identifier = identifier) ;) (expression_statement "uStack_584 = in_t6;" (assignment_expression "uStack_584 = in_t6" identifier = identifier) ;) (expression_statement "auStack_580[0] = in_t8;" (assignment_expression "auStack_580[0] = in_t8" (subscript_expression "auStack_580[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar25 = puStack_66c;" (assignment_expression "puVar25 = puStack_66c" identifier = identifier) ;) (expression_statement "puVar31 = puVar13;" (assignment_expression "puVar31 = puVar13" identifier = identifier) ;) (do_statement "do {\n    puVar17 = puVar31;\n    puVar19 = puVar25;\n    in_t0 = (uint **)*puVar19;\n    puVar25 = puVar19 + 4;\n    uVar23 = puVar19[1];\n    uVar22 = puVar19[2];\n    uVar15 = puVar19[3];\n    *puVar17 = (uint)in_t0;\n    puVar17[1] = uVar23;\n    puVar17[2] = uVar22;\n    puVar17[3] = uVar15;\n    puVar31 = puVar17 + 4;\n  } while (puVar25 != in_t2);" do (compound_statement "{\n    puVar17 = puVar31;\n    puVar19 = puVar25;\n    in_t0 = (uint **)*puVar19;\n    puVar25 = puVar19 + 4;\n    uVar23 = puVar19[1];\n    uVar22 = puVar19[2];\n    uVar15 = puVar19[3];\n    *puVar17 = (uint)in_t0;\n    puVar17[1] = uVar23;\n    puVar17[2] = uVar22;\n    puVar17[3] = uVar15;\n    puVar31 = puVar17 + 4;\n  }" { (expression_statement "puVar17 = puVar31;" (assignment_expression "puVar17 = puVar31" identifier = identifier) ;) (expression_statement "puVar19 = puVar25;" (assignment_expression "puVar19 = puVar25" identifier = identifier) ;) (expression_statement "in_t0 = (uint **)*puVar19;" (assignment_expression "in_t0 = (uint **)*puVar19" identifier = (cast_expression "(uint **)*puVar19" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar19" * identifier))) ;) (expression_statement "puVar25 = puVar19 + 4;" (assignment_expression "puVar25 = puVar19 + 4" identifier = (binary_expression "puVar19 + 4" identifier + number_literal)) ;) (expression_statement "uVar23 = puVar19[1];" (assignment_expression "uVar23 = puVar19[1]" identifier = (subscript_expression "puVar19[1]" identifier [ number_literal ])) ;) (expression_statement "uVar22 = puVar19[2];" (assignment_expression "uVar22 = puVar19[2]" identifier = (subscript_expression "puVar19[2]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = puVar19[3];" (assignment_expression "uVar15 = puVar19[3]" identifier = (subscript_expression "puVar19[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar17 = (uint)in_t0;" (assignment_expression "*puVar17 = (uint)in_t0" (pointer_expression "*puVar17" * identifier) = (cast_expression "(uint)in_t0" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar17[1] = uVar23;" (assignment_expression "puVar17[1] = uVar23" (subscript_expression "puVar17[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[2] = uVar22;" (assignment_expression "puVar17[2] = uVar22" (subscript_expression "puVar17[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[3] = uVar15;" (assignment_expression "puVar17[3] = uVar15" (subscript_expression "puVar17[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar31 = puVar17 + 4;" (assignment_expression "puVar31 = puVar17 + 4" identifier = (binary_expression "puVar17 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar25 != in_t2)" ( (binary_expression "puVar25 != in_t2" identifier != identifier) )) ;) (expression_statement "ppuVar16 = (uint **)(int)*psVar32;" (assignment_expression "ppuVar16 = (uint **)(int)*psVar32" identifier = (cast_expression "(uint **)(int)*psVar32" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)*psVar32" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*psVar32" * identifier)))) ;) (expression_statement "uVar15 = puVar19[5];" (assignment_expression "uVar15 = puVar19[5]" identifier = (subscript_expression "puVar19[5]" identifier [ number_literal ])) ;) (expression_statement "pbVar26 = (byte *)((int)ppuVar16 + iVar9);" (assignment_expression "pbVar26 = (byte *)((int)ppuVar16 + iVar9)" identifier = (cast_expression "(byte *)((int)ppuVar16 + iVar9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar16 + iVar9)" ( (binary_expression "(int)ppuVar16 + iVar9" (cast_expression "(int)ppuVar16" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "puVar17[4] = *puVar25;" (assignment_expression "puVar17[4] = *puVar25" (subscript_expression "puVar17[4]" identifier [ number_literal ]) = (pointer_expression "*puVar25" * identifier)) ;) (expression_statement "puVar17[5] = uVar15;" (assignment_expression "puVar17[5] = uVar15" (subscript_expression "puVar17[5]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((pbVar26 < (byte *)0x71) && ((uint **)(int)(char)pbVar26[iVar30] == ppuVar16)) {\n    puVar25 = (uint *)(uint)pbVar26[iVar8];\n  }\n  else {\n    puVar25 = (uint *)(int)*(char *)(iVar10 + iVar6 + 0x6338);\n  }" if (parenthesized_expression "((pbVar26 < (byte *)0x71) && ((uint **)(int)(char)pbVar26[iVar30] == ppuVar16))" ( (binary_expression "(pbVar26 < (byte *)0x71) && ((uint **)(int)(char)pbVar26[iVar30] == ppuVar16)" (parenthesized_expression "(pbVar26 < (byte *)0x71)" ( (binary_expression "pbVar26 < (byte *)0x71" identifier < (cast_expression "(byte *)0x71" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((uint **)(int)(char)pbVar26[iVar30] == ppuVar16)" ( (binary_expression "(uint **)(int)(char)pbVar26[iVar30] == ppuVar16" (cast_expression "(uint **)(int)(char)pbVar26[iVar30]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)(char)pbVar26[iVar30]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar26[iVar30]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar26[iVar30]" identifier [ identifier ])))) == identifier) ))) )) (compound_statement "{\n    puVar25 = (uint *)(uint)pbVar26[iVar8];\n  }" { (expression_statement "puVar25 = (uint *)(uint)pbVar26[iVar8];" (assignment_expression "puVar25 = (uint *)(uint)pbVar26[iVar8]" identifier = (cast_expression "(uint *)(uint)pbVar26[iVar8]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)pbVar26[iVar8]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar26[iVar8]" identifier [ identifier ])))) ;) }) (else_clause "else {\n    puVar25 = (uint *)(int)*(char *)(iVar10 + iVar6 + 0x6338);\n  }" else (compound_statement "{\n    puVar25 = (uint *)(int)*(char *)(iVar10 + iVar6 + 0x6338);\n  }" { (expression_statement "puVar25 = (uint *)(int)*(char *)(iVar10 + iVar6 + 0x6338);" (assignment_expression "puVar25 = (uint *)(int)*(char *)(iVar10 + iVar6 + 0x6338)" identifier = (cast_expression "(uint *)(int)*(char *)(iVar10 + iVar6 + 0x6338)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*(char *)(iVar10 + iVar6 + 0x6338)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar10 + iVar6 + 0x6338)" * (cast_expression "(char *)(iVar10 + iVar6 + 0x6338)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + iVar6 + 0x6338)" ( (binary_expression "iVar10 + iVar6 + 0x6338" (binary_expression "iVar10 + iVar6" identifier + identifier) + number_literal) ))))))) ;) }))) (goto_statement "goto LAB_00015014;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier short) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier short) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier short) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier short) (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration (sized_type_specifier short) (array_declarator IDENT [ LIT ]) ;) (declaration (sized_type_specifier short) IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (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 * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (goto_statement goto statement_identifier ;)))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (labeled_statement statement_identifier : (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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT ))))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT))) ;) (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) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , (binary_expression (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT ^ LIT) ))) + 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 (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , LIT , (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT))) ;) (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 (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT))) ;) })) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT))) ;) (goto_statement goto statement_identifier ;) })) }))) })))) (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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (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 = IDENT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence '))) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT ^ LIT) ))) + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , IDENT , IDENT ))) ;) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , (binary_expression (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT ^ LIT) ))) + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (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 = (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 * (abstract_pointer_declarator *)))) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (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 IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) ))) & LIT) )))) ;)) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT - LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT) < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) & LIT) )) < LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT < LIT) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) < LIT) ))) )) ))) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (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) )))) + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (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 (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character '))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }))))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (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) )))) + LIT) )))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , LIT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (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) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (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) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_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) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (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) )))) + 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) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) == (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> LIT) )))) ;) (goto_statement goto statement_identifier ;) })) })) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT )))) , (binary_expression IDENT != LIT))) ))) )) (compound_statement { (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 (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) )))) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }))) }))) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT - LIT) < LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression LIT << (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) ))) & LIT) )) != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression LIT - IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) ^ IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (unary_expression ~ (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) ^ IDENT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) + LIT) )))) , (binary_expression (pointer_expression & IDENT) < IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) , (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )))) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) * LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression & IDENT)) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)))) - LIT) < LIT) )) (goto_statement goto statement_identifier ;)) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) <= (pointer_expression & IDENT)) )) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression & IDENT)) )) (compound_statement { (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)))) - LIT) < LIT) )) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (pointer_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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < IDENT) )) (goto_statement goto statement_identifier ;)) (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 (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))))) != IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)) != LIT) )))) - (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = LIT) ;) }) while (parenthesized_expression ( BOOL )) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) )))))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - LIT) & LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) + (binary_expression IDENT * LIT)) ))))) + LIT) )))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) + IDENT) )))) - LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))))) , (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (binary_expression IDENT == LIT) || (parenthesized_expression ( (binary_expression LIT < IDENT) ))))) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) != (char_literal ' escape_sequence ')) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ))) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) )))) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT)) ))) ))) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ))) >> LIT) | (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT ))) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (call_expression IDENT (argument_list ( IDENT ))) * LIT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ))) >> LIT) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ))) < IDENT) )))) ))) * LIT)) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) != (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ))) < IDENT) )))) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))) ))) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ))) >> LIT) | (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) })) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (goto_statement goto statement_identifier ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = 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) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_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 IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ])))) == IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ])))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) ))))))) ;) }))) (goto_statement goto statement_identifier ;) })))
(function_definition "int FUN_00014998(undefined4 param_1,int param_2)\n\n{\n  char cVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int *piVar7;\n  int iVar8;\n  int iVar9;\n  byte bVar12;\n  int iVar10;\n  uint **ppuVar11;\n  uint *puVar13;\n  undefined4 *puVar14;\n  uint uVar15;\n  uint **ppuVar16;\n  uint *puVar17;\n  uint uVar18;\n  uint *puVar19;\n  uint *puVar20;\n  uint **ppuVar21;\n  uint uVar22;\n  uint uVar23;\n  uint **in_t0;\n  uint uVar24;\n  uint *in_t2;\n  uint in_t3;\n  uint **in_t4;\n  uint in_t5;\n  uint in_t6;\n  uint *puVar25;\n  byte *pbVar26;\n  short *psVar27;\n  uint **ppuVar28;\n  uint *puVar29;\n  int iVar30;\n  undefined *unaff_s4;\n  uint *puVar31;\n  short *psVar32;\n  short *unaff_s6;\n  uint in_t8;\n  undefined *puVar33;\n  code *pcVar34;\n  uint *puStack_674;\n  int iStack_670;\n  uint *puStack_66c;\n  int iStack_660;\n  uint *puStack_65c;\n  uint *puStack_630;\n  uint *apuStack_5e8 [4];\n  int iStack_5d8;\n  uint *apuStack_5b8 [2];\n  uint auStack_5b0 [2];\n  uint *puStack_5a8;\n  uint uStack_5a4;\n  short *apsStack_5a0 [2];\n  uint **ppuStack_598;\n  uint **ppuStack_594;\n  uint **ppuStack_590;\n  uint uStack_58c;\n  uint uStack_588;\n  uint uStack_584;\n  uint auStack_580 [2];\n  short asStack_578 [19];\n  short sStack_552;\n  uint auStack_550 [279];\n  byte abStack_f1 [21];\n  int iStack_dc;\n  int iStack_d8;\n  uint **ppuStack_d4;\n  undefined *puStack_d0;\n  undefined *puStack_cc;\n  undefined *puStack_c8;\n  undefined1 auStack_80 [100];\n  int local_1c;\n  \n  puVar3 = PTR___stack_chk_guard_00038350;\n  local_1c = *(int *)PTR___stack_chk_guard_00038350;\n  uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x50a0,5);\n  FUN_00014188(uVar5,param_1);\n  puVar4 = PTR_stderr_00038360;\n  if (*(int *)(param_2 + 0x9c) == 0) {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb4) != *(char *)(param_2 + 0xbb)) goto LAB_00014a30;\nLAB_00014c7c:\n    uVar18 = 0;\n  }\n  else {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb6) == '\0') {\n      in_t3 = *(uint *)(param_2 + 0x3c);\n      in_t2 = *(uint **)(param_2 + 0x38);\n      in_t0 = *(uint ***)(param_2 + 0x28);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      *(undefined1 *)(param_2 + 0xb6) = 1;\n      if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar18 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) goto LAB_00014c7c;\nLAB_00014a30:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);\n    in_t0 = *(uint ***)(param_2 + 0x28);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n    uVar18 = 1;\n    ppuVar28 = *(uint ***)puVar4;\n    *(undefined1 *)(param_2 + 0xbb) = *(undefined1 *)(param_2 + 0xb4);\n  }\nLAB_00014a80:\n  if ((*(int *)(param_2 + 0xac) == 0) || (*(char *)(param_2 + 0xb9) != '\0')) {\n    if ((*(int *)(param_2 + 0xa0) != 0) && (*(char *)(param_2 + 0xb7) == '\0')) {\n      if (uVar18 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);\n      uVar5 = FUN_00014838(param_2,auStack_80);\n      in_t0 = *(uint ***)(param_2 + 8);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar18 = 1;\n      *(undefined1 *)(param_2 + 0xb7) = 1;\n    }\n  }\n  else {\n    in_t3 = *(uint *)(param_2 + 0x54);\n    in_t2 = *(uint **)(param_2 + 0x50);\n    in_t0 = *(uint ***)(param_2 + 0x48);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168);\n    if (*(int *)(param_2 + 0x5c) != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }\n    ppuVar28 = *(uint ***)puVar4;\n    if (*(int *)(param_2 + 0x1c) == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    *(undefined1 *)(param_2 + 0xb9) = 1;\n    if (*(int *)(param_2 + 0xa0) == 0) {\n      uVar18 = 1;\n    }\n    else {\n      uVar18 = (uint)*(byte *)(param_2 + 0xb7);\n      if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }\n  }\n  if ((*(int *)(param_2 + 0xa4) == 0) || (*(char *)(param_2 + 0xb8) != '\0')) {\n    if ((*(int *)(param_2 + 0xb0) == 0) ||\n       (unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0')) {\n      if (*(char *)(param_2 + 0x98) == '\0') goto LAB_00014bb0;\n      param_2 = *(int *)(param_2 + 0x58);\n      unaff_s4 = (undefined *)(param_2 >> 0x1f);\n      if (uVar18 != 0) goto LAB_00014d8c;\n      goto LAB_00014c1c;\n    }\n    unaff_s4 = PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5130;\nLAB_00014d38:\n    uVar5 = FUN_00013f30(*(undefined4 *)(param_2 + 0x18),auStack_80);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n    *(undefined1 *)(param_2 + 0xba) = 1;\n    if (*(char *)(param_2 + 0x98) != '\0') {\n      param_2 = *(int *)(param_2 + 0x58);\n      ppuVar28 = *(uint ***)puVar4;\n      goto LAB_00014d88;\n    }\n  }\n  else {\n    (*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac,*(undefined4 *)(param_2 + 0x14));\n    *(undefined1 *)(param_2 + 0xb8) = 1;\n    if (*(int *)(param_2 + 0xb0) == 0) {\n      cVar1 = *(char *)(param_2 + 0x98);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (*(char *)(param_2 + 0xba) == '\0') {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = *(char *)(param_2 + 0x98);\n    }\n    if (cVar1 == '\0') goto LAB_00014bb0;\n    param_2 = *(int *)(param_2 + 0x58);\nLAB_00014d88:\n    unaff_s4 = (undefined *)(param_2 >> 0x1f);\nLAB_00014d8c:\n    (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n    ppuVar28 = *(uint ***)puVar4;\nLAB_00014c1c:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n  }\n  ppuVar28 = *(uint ***)puVar4;\nLAB_00014bb0:\n  puVar14 = (undefined4 *)&DAT_0000000a;\n  ppuVar21 = ppuVar28;\n  (*(code *)PTR_fputc_00038298)();\n  iVar6 = *(int *)puVar3;\n  if (local_1c == iVar6) {\n    return iVar6;\n  }\n  puVar33 = PTR___stack_chk_fail_00038334;\n  (*(code *)PTR___stack_chk_fail_00038334)();\n  piVar7 = *(int **)(puVar33 + 0x234a4);\n  uVar18 = 0xfffffffe;\n  puStack_cc = puVar3;\n  puVar31 = (uint *)&DAT_00000026;\n  iStack_dc = *piVar7;\n  iVar6 = *(int *)(puVar33 + 0x23270);\n  puStack_c8 = unaff_s4;\n  puStack_d0 = puVar4;\n  puVar13 = auStack_550;\n  ppuStack_d4 = ppuVar28;\n  puVar29 = (uint *)0xfffffffe;\n  iVar30 = *(int *)(puVar33 + 0x23270) + 0x6250;\n  iStack_d8 = param_2;\n  puVar25 = (uint *)0x0;\n  iVar8 = *(int *)(puVar33 + 0x23270) + 0x62c4;\n  asStack_578[0] = 0;\n  iStack_670 = 0;\n  psVar32 = asStack_578;\nLAB_00014f50:\n  ppuVar28 = (uint **)0x800000;\n  puVar19 = puVar31;\n  if (puVar29 == (uint *)0xfffffffe) {\n    ppuVar21 = (uint **)*puVar14;\n    in_t2 = (uint *)0x1;\n    ppuVar28 = (uint **)0x80001f;\n    in_t4 = (uint **)0x2d;\n    bVar12 = *(byte *)ppuVar21;\n    in_t5 = 0x2b;\n    in_t6 = 0x28;\n    uVar18 = 0x29;\nLAB_000152f0:\n    in_t0 = (uint **)(int)(char)bVar12;\n    uVar15 = (uint)bVar12;\nLAB_000152f4:\n    uVar22 = uVar15 - 9;\n    ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n    if (ppuVar16 == (uint **)0x0) goto LAB_000153a8;\nLAB_00015308:\n    ppuVar11 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f);\n    while (ppuVar11 != (uint **)0x0) {\n      ppuVar21 = (uint **)((int)ppuVar21 + 1);\n      *puVar14 = ppuVar21;\n      in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n      uVar15 = (uint)*(byte *)ppuVar21;\n      ppuVar16 = (uint **)(uVar15 - 9);\n      if ((uint **)0x17 < ppuVar16) goto LAB_000153a8;\n      ppuVar16 = (uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f);\n      ppuVar11 = ppuVar16;\n    }\nLAB_00015344:\n    in_t3 = 0xffffffff;\n    if (uVar15 == 0x2d) goto LAB_00015358;\n    if (uVar15 == 0x2b) goto LAB_00015354;\n    if ((0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))\n       ) {\n      pbVar26 = (byte *)*puVar14;\n      ppuVar16 = (uint **)(abStack_f1 + 1);\n      in_t0 = (uint **)(abStack_f1 + 0x14);\n      ppuVar28 = (uint **)&DAT_0000002e;\n      ppuVar21 = ppuVar16;\n      do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        *puVar14 = pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));\n      *(byte *)ppuVar21 = 0;\n      ppuVar21 = ppuVar16;\n      bVar12 = abStack_f1[1];\n      while (bVar12 != 0) {\n        if (bVar12 - 0x61 < 0x1a) {\n          bVar12 = bVar12 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar12;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar12 = *(byte *)ppuVar21;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);\n      do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16);\n      if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);\n      do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      iVar9 = *(int *)(puVar33 + 0x2326c);\n      ppuVar21 = ppuVar16;\n      iVar10 = FUN_00014388(puVar14);\n      unaff_s6 = asStack_578;\n      if (iVar10 != 0) {\n        puVar29 = *(uint **)(iVar10 + 4);\n        apuStack_5e8[1] = *(uint **)(iVar10 + 8);\n        apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);\n      iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n      if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        ppuVar16 = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);\n      ppuVar11 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);\n      ppuVar21 = ppuVar11;\n      psVar27 = unaff_s6;\n      do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);\n      pbVar26 = (byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1));\n      if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar11 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);\n      pcVar34 = *(code **)(puVar33 + 0x234c8);\n      do {\n        iVar10 = (*pcVar34)(ppuVar16);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);\n      if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar11 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }\n      if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = ppuVar16;\n        ppuVar11 = ppuVar16;\n        bVar12 = abStack_f1[1];\n        do {\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        } while (bVar12 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }\n      ppuVar21 = *(uint ***)(puVar33 + 0x23270);\n      if (*(char *)((int)puVar14 + 0xb5) == '\0') goto LAB_00017ae0;\n      uVar5 = (**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5);\n      puVar29 = (uint *)0x3f;\n      FUN_00014188(uVar5);\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n      goto LAB_00014f74;\n    }\n    iVar9 = 0;\n    if (uVar15 == 0x28) {\n      ppuVar21 = (uint **)*puVar14;\n      goto LAB_000157a8;\n    }\n    *puVar14 = (byte *)((int)ppuVar21 + 1);\n    puVar29 = (uint *)(uint)*(byte *)ppuVar21;\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if (puVar29 != (uint *)0x0) goto LAB_0001558c;\n    uVar15 = 0;\n    goto LAB_00014f74;\n  }\nLAB_00014f5c:\n  ppuVar16 = ppuVar21;\n  if ((int)puVar29 < 1) {\nLAB_000152b8:\n    uVar15 = 0;\n    puVar29 = (uint *)0x0;\n  }\n  else {\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if ((int)puVar29 < 0x116) {\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }\n    else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }\n  }\n  goto LAB_00014f74;\nLAB_00015354:\n  do {\n    in_t3 = 1;\nLAB_00015358:\n    while( true ) {\n      ppuVar21 = (uint **)*puVar14;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n      if (ppuVar16 != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }\n    in_t3 = 0;\n  } while (uVar15 == 0x2b);\n  ppuVar21 = (uint **)*puVar14;\nLAB_000153dc:\n  ppuVar16 = (uint **)0x0;\n  puVar29 = (uint *)0x0;\n  in_t5 = 0xffffffff;\n  uVar18 = 0x30;\n  in_t8 = 10;\n  ppuVar28 = ppuVar21;\nLAB_000153f8:\n  if (in_t3 == 0xffffffff) {\n    uVar22 = 0x30 - uVar15;\n  }\n  uVar15 = (int)uVar22 >> 0x1f;\n  puVar17 = (uint *)((int)puVar29 + uVar22);\n  in_t2 = (uint *)((int)ppuVar16 + (puVar17 < puVar29) + uVar15);\n  in_t4 = (uint **)((uint)in_t2 ^ uVar15);\n  ppuVar16 = (uint **)((uint)in_t4 & ~((uint)ppuVar16 ^ uVar15));\n  if ((int)ppuVar16 < 0) goto LAB_00017ad0;\n  uVar15 = (uint)*(byte *)((int)ppuVar28 + 1);\n  uVar22 = uVar15 - 0x30;\n  in_t4 = (uint **)((int)ppuVar28 + 1);\n  if (uVar22 < 10) goto LAB_00015528;\n  ppuVar16 = (uint **)0xfffffffd;\n  if (((*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c) ||\n     (puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29)) {\n    *puVar14 = in_t4;\n    uVar15 = 0x13;\n    apuStack_5e8[0] = (uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_);\n    puVar29 = (uint *)0x112;\n    if (in_t3 == 0) {\n      uVar15 = 0x14;\n    }\n    iStack_660 = (int)in_t4 - (int)ppuVar21;\n    if (in_t3 == 0) {\n      puVar29 = (uint *)0x113;\n    }\n    puVar19 = (uint *)((int)puVar31 + uVar15);\n    puStack_65c = in_t2;\n    puStack_630 = puVar17;\n    goto LAB_00014f74;\n  }\n  in_t2 = (uint *)((int)in_t2 + (uint)(puVar17 + -0x20000000 < puVar17));\n  iVar9 = 8;\n  ppuVar21 = ppuVar16;\n  if (in_t2 != (uint *)0x0) goto LAB_00017ae0;\n  in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 3);\n  ppuVar28 = (uint **)((int)ppuVar28 + 3);\n  ppuVar21 = in_t0 + -0xc;\n  ppuVar16 = (uint **)((int)puVar29 * 4);\n  do {\n    puVar29 = (uint *)((int)((int)ppuVar16 + (int)puVar29) * 2);\n    if (ppuVar21 < &DAT_0000000a) {\n      in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);\n      puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n      ppuVar21 = in_t0 + -0xc;\n    }\n    iVar9 = iVar9 + -1;\n    ppuVar16 = (uint **)((int)puVar29 << 2);\n  } while (iVar9 != 0);\n  in_t2 = puVar17;\n  if (in_t3 == 0xffffffff) {\n    ppuVar11 = in_t0;\n    if (ppuVar21 < &DAT_0000000a) {\n      do {\n        if (ppuVar11 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar11 = ppuVar16;\n      } while (ppuVar16 + -0xc <= &DAT_00000009);\n    }\nLAB_00015c20:\n    if (puVar29 != (uint *)0x0) {\n      in_t2 = (uint *)((int)puVar17 + -1);\n      ppuVar21 = ppuVar16;\n      if (puVar17 == (uint *)0x80000000) {\nLAB_00017ae0:\n        ppuVar16 = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }\n    uVar15 = 0x15;\n    apuStack_5e8[1] = puVar29;\n    apuStack_5e8[0] = in_t2;\n    puVar29 = (uint *)0x114;\n    *puVar14 = ppuVar28;\n    puVar19 = (uint *)((int)puVar31 + 0x15);\n    goto LAB_00014f74;\n  }\n  if (ppuVar21 < &DAT_0000000a) {\nLAB_000154dc:\n    do {\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    } while ((int)(char)*(byte *)ppuVar28 - 0x30U < 10);\n    if (in_t3 == 0xffffffff) goto LAB_00015c20;\n  }\n  apuStack_5e8[0] = puVar17;\n  uVar15 = 0x16;\n  apuStack_5e8[1] = puVar29;\n  puVar29 = (uint *)0x115;\n  *puVar14 = ppuVar28;\n  if (in_t3 != 0) {\n    uVar15 = 0x15;\n    puVar29 = (uint *)0x114;\n  }\n  puVar19 = (uint *)((int)puVar31 + uVar15);\nLAB_00014f74:\n  psVar27 = psVar32;\n  if ((uint *)0x70 < puVar19) goto LAB_0001504c;\n  iVar9 = *(int *)(puVar33 + 0x23270);\n  if ((int)(char)*(byte *)((int)puVar19 + iVar30) != uVar15) goto LAB_00015050;\n  puVar25 = (uint *)(uint)*(byte *)((int)puVar19 + iVar8);\n  if (puVar25 == (uint *)0x0) {\n    puStack_66c = auStack_5b0;\n    puVar25 = puVar13 + 0xe;\n    puVar31 = puStack_66c;\n    do {\n      puVar17 = puVar31;\n      puVar19 = puVar25;\n      puVar25 = puVar19 + 4;\n      uVar22 = puVar19[1];\n      uVar15 = puVar19[2];\n      uVar18 = puVar19[3];\n      *puVar17 = *puVar19;\n      puVar17[1] = uVar22;\n      puVar17[2] = uVar15;\n      puVar17[3] = uVar18;\n      puVar31 = puVar17 + 4;\n    } while (puVar25 != puVar13 + 0x1a);\n    uVar18 = puVar19[5];\n    iVar10 = -0x1c;\n    puVar17[4] = *puVar25;\n    puVar17[5] = uVar18;\n    puStack_674 = (uint *)puVar13[0x13];\n    in_t3 = puVar13[0x11];\n    in_t2 = (uint *)puVar13[0x10];\n    unaff_s6 = (short *)puVar13[0x12];\n    ppuVar28 = (uint **)puVar13[0x15];\n    in_t0 = (uint **)puVar13[0x14];\n    in_t5 = puVar13[0x17];\n    in_t4 = (uint **)puVar13[0x16];\n    uVar18 = puVar13[0x18];\n    in_t6 = puVar13[0x19];\n    in_t8 = puVar13[0x1a];\n    iVar9 = 0;\n    goto LAB_00015adc;\n  }\n  if (iStack_670 != 0) {\n    iStack_670 = iStack_670 + -1;\n  }\n  puVar13 = puVar13 + 0xe;\n  in_t0 = apuStack_5b8;\n  apuStack_5e8[3] = puStack_630;\n  apuStack_5e8[2] = puStack_65c;\n  iStack_5d8 = iStack_660;\n  ppuVar21 = apuStack_5e8;\n  puVar29 = puVar13;\n  do {\n    puVar31 = puVar29;\n    ppuVar11 = ppuVar21;\n    ppuVar21 = ppuVar11 + 4;\n    puVar19 = ppuVar11[1];\n    ppuVar16 = (uint **)ppuVar11[2];\n    puVar29 = ppuVar11[3];\n    *puVar31 = (uint)*ppuVar11;\n    puVar31[1] = (uint)puVar19;\n    puVar31[2] = (uint)ppuVar16;\n    puVar31[3] = (uint)puVar29;\n    puVar29 = puVar31 + 4;\n  } while (ppuVar21 != in_t0);\n  puVar29 = (uint *)0xfffffffe;\n  puVar19 = ppuVar11[5];\n  puVar31[4] = (uint)*ppuVar21;\n  puVar31[5] = (uint)puVar19;\nLAB_00015014:\n  psVar27 = psVar32 + 1;\n  psVar32[1] = (short)puVar25;\n  if (&sStack_552 <= psVar27) {\n    iVar9 = 2;\nLAB_00015278:\n    do {\n      if (iStack_dc == *piVar7) {\n        return iVar9;\n      }\n      iVar9 = iStack_dc;\n      uVar5 = (**(code **)(puVar33 + 0x23488))();\n      bVar2 = ppuVar16 == (uint **)0x0;\n      puVar14[0x10] = uVar5;\n      puVar14[0x11] = iVar9;\n      if (!bVar2) {\n        ppuVar16 = (uint **)puVar13[3];\n        if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }\n        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];\n        puVar14[0xb] = -(int)ppuVar16;\n        if (!bVar2) goto code_r0x00016f40;\n      }\n      iVar9 = 1;\n    } while( true );\n  }\n  if (puVar25 == (uint *)0xc) {\n    iVar9 = 0;\n    goto LAB_00015278;\n  }\n  puVar31 = (uint *)(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4);\n  ppuVar21 = ppuVar16;\n  psVar32 = psVar27;\n  if (puVar31 == (uint *)0xffffffa3) {\nLAB_0001504c:\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    psVar32 = psVar27;\nLAB_00015050:\n    uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370);\n    if (uVar15 != 0) {\n      uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);\n      puVar19 = puVar13 + (1 - uVar22) * 0xe;\n      puVar25 = puVar19;\n      puVar31 = auStack_5b0;\n      do {\n        puVar20 = puVar31;\n        puVar17 = puVar25;\n        puVar25 = puVar17 + 4;\n        uVar24 = puVar17[1];\n        uVar23 = puVar17[2];\n        uVar18 = puVar17[3];\n        *puVar20 = *puVar17;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar18;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);\n      uVar18 = puVar17[5];\n      uVar23 = uVar15 - 4 & 0xff;\n      puVar20[4] = *puVar25;\n      puVar20[5] = uVar18;\n      puStack_674 = (uint *)puVar19[5];\n      in_t3 = puVar19[3];\n      in_t2 = (uint *)puVar19[2];\n      unaff_s6 = (short *)puVar19[4];\n      ppuVar28 = (uint **)puVar19[7];\n      in_t0 = (uint **)puVar19[6];\n      in_t5 = puVar19[9];\n      in_t4 = (uint **)puVar19[8];\n      uVar18 = puVar19[10];\n      in_t6 = puVar19[0xb];\n      in_t8 = puVar19[0xc];\n      if (uVar23 < 0x58) {\n                    \n                    \n        iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();\n        return iVar6;\n      }\n      psVar32 = psVar32 + -uVar22;\n      puVar13 = puVar13 + uVar22 * -0xe;\n      iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;\n      iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);\n      puStack_66c = auStack_5b0;\n      goto LAB_00015adc;\n    }\n    if (iStack_670 == 3) {\n      if ((int)puVar29 < 1) {\n        iVar9 = 1;\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }\n    }\n    ppuVar16 = (uint **)0xffffffa3;\n    while ((((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0))) {\n      iVar9 = 1;\n      psVar27 = psVar32;\n      if (psVar32 == asStack_578) goto LAB_00015278;\n      psVar32 = psVar32 + -1;\n      puVar25 = (uint *)(int)*psVar32;\n      puVar13 = puVar13 + -0xe;\n    }\n    puVar13 = puVar13 + 0xe;\n    in_t0 = apuStack_5b8;\n    apuStack_5e8[3] = puStack_630;\n    apuStack_5e8[2] = puStack_65c;\n    iStack_5d8 = iStack_660;\n    ppuVar21 = apuStack_5e8;\n    puVar31 = puVar13;\n    do {\n      puVar19 = puVar31;\n      ppuVar11 = ppuVar21;\n      ppuVar21 = ppuVar11 + 4;\n      puVar20 = ppuVar11[1];\n      puVar17 = ppuVar11[2];\n      puVar31 = ppuVar11[3];\n      *puVar19 = (uint)*ppuVar11;\n      puVar19[1] = (uint)puVar20;\n      puVar19[2] = (uint)puVar17;\n      puVar19[3] = (uint)puVar31;\n      puVar31 = puVar19 + 4;\n    } while (ppuVar21 != in_t0);\n    ppuVar16 = (uint **)0x3;\n    puVar31 = ppuVar11[5];\n    iStack_670 = 3;\n    puVar19[4] = (uint)*ppuVar21;\n    puVar19[5] = (uint)puVar31;\n    goto LAB_00015014;\n  }\n  goto LAB_00014f50;\nLAB_00015528:\n  puVar29 = (uint *)((int)puVar17 >> 0x1f);\n  bVar2 = false;\n  if (puVar29 == in_t2) {\n    in_t2 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2);\n    ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n  }\n  else {\n    ppuVar28 = (uint **)(ZEXT48(in_t2) * 10);\n    unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20);\n    in_t6 = (int)puVar17 * 4;\n    puStack_674 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)puVar17 * 10);\n    psVar27 = unaff_s6;\n    if ((int)in_t2 < 0) {\n      psVar27 = unaff_s6 + -5;\n    }\n    ppuVar16 = (uint **)((int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2));\n    if ((int)ppuVar16 >> 0x1f != (uint)(ppuVar16 < ppuVar28) + (int)psVar27) {\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n    }\n  }\n  puVar29 = (uint *)((int)puVar17 * 10);\n  ppuVar28 = in_t4;\n  if (bVar2) goto LAB_00017ad0;\n  goto LAB_000153f8;\nLAB_00017ad0:\n  uVar15 = 2;\n  puVar29 = (uint *)0x3f;\n  puVar19 = (uint *)((int)puVar31 + 2);\n  goto LAB_00014f74;\n  while( true ) {\n    if (bVar12 == 0x28) {\n      iVar9 = iVar9 + 1;\n    }\n    else if (bVar12 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }\n    if (iVar9 == 0) break;\nLAB_000157a8:\n    ppuVar16 = ppuVar21;\n    ppuVar21 = (uint **)((int)ppuVar16 + 1);\n    *puVar14 = ppuVar21;\n    bVar12 = *(byte *)ppuVar16;\n    if (bVar12 == 0) goto LAB_000152b8;\n  }\n  bVar12 = *(byte *)((int)ppuVar16 + 1);\n  goto LAB_000152f0;\ncode_r0x00016f40:\n  puVar25 = puVar13 + 4;\n  puVar13 = puVar13 + -0x2a;\n  psVar32 = psVar27 + -3;\n  iVar10 = 0xe;\n  puVar14[0xc] = *puVar25;\n  iVar9 = -0x5d;\nLAB_00015adc:\n  puVar13 = puVar13 + 0xe;\n  puStack_5a8 = in_t2;\n  in_t2 = auStack_580;\n  uStack_5a4 = in_t3;\n  apsStack_5a0[1] = (short *)puStack_674;\n  apsStack_5a0[0] = unaff_s6;\n  ppuStack_594 = ppuVar28;\n  ppuStack_598 = in_t0;\n  uStack_58c = in_t5;\n  ppuStack_590 = in_t4;\n  uStack_588 = uVar18;\n  uStack_584 = in_t6;\n  auStack_580[0] = in_t8;\n  puVar25 = puStack_66c;\n  puVar31 = puVar13;\n  do {\n    puVar17 = puVar31;\n    puVar19 = puVar25;\n    in_t0 = (uint **)*puVar19;\n    puVar25 = puVar19 + 4;\n    uVar23 = puVar19[1];\n    uVar22 = puVar19[2];\n    uVar15 = puVar19[3];\n    *puVar17 = (uint)in_t0;\n    puVar17[1] = uVar23;\n    puVar17[2] = uVar22;\n    puVar17[3] = uVar15;\n    puVar31 = puVar17 + 4;\n  } while (puVar25 != in_t2);\n  ppuVar16 = (uint **)(int)*psVar32;\n  uVar15 = puVar19[5];\n  pbVar26 = (byte *)((int)ppuVar16 + iVar9);\n  puVar17[4] = *puVar25;\n  puVar17[5] = uVar15;\n  if ((pbVar26 < (byte *)0x71) && ((uint **)(int)(char)pbVar26[iVar30] == ppuVar16)) {\n    puVar25 = (uint *)(uint)pbVar26[iVar8];\n  }\n  else {\n    puVar25 = (uint *)(int)*(char *)(iVar10 + iVar6 + 0x6338);\n  }\n  goto LAB_00015014;\n}" (primitive_type "int") (function_declarator "FUN_00014998(undefined4 param_1,int param_2)" (identifier "FUN_00014998") (parameter_list "(undefined4 param_1,int param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  char cVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int *piVar7;\n  int iVar8;\n  int iVar9;\n  byte bVar12;\n  int iVar10;\n  uint **ppuVar11;\n  uint *puVar13;\n  undefined4 *puVar14;\n  uint uVar15;\n  uint **ppuVar16;\n  uint *puVar17;\n  uint uVar18;\n  uint *puVar19;\n  uint *puVar20;\n  uint **ppuVar21;\n  uint uVar22;\n  uint uVar23;\n  uint **in_t0;\n  uint uVar24;\n  uint *in_t2;\n  uint in_t3;\n  uint **in_t4;\n  uint in_t5;\n  uint in_t6;\n  uint *puVar25;\n  byte *pbVar26;\n  short *psVar27;\n  uint **ppuVar28;\n  uint *puVar29;\n  int iVar30;\n  undefined *unaff_s4;\n  uint *puVar31;\n  short *psVar32;\n  short *unaff_s6;\n  uint in_t8;\n  undefined *puVar33;\n  code *pcVar34;\n  uint *puStack_674;\n  int iStack_670;\n  uint *puStack_66c;\n  int iStack_660;\n  uint *puStack_65c;\n  uint *puStack_630;\n  uint *apuStack_5e8 [4];\n  int iStack_5d8;\n  uint *apuStack_5b8 [2];\n  uint auStack_5b0 [2];\n  uint *puStack_5a8;\n  uint uStack_5a4;\n  short *apsStack_5a0 [2];\n  uint **ppuStack_598;\n  uint **ppuStack_594;\n  uint **ppuStack_590;\n  uint uStack_58c;\n  uint uStack_588;\n  uint uStack_584;\n  uint auStack_580 [2];\n  short asStack_578 [19];\n  short sStack_552;\n  uint auStack_550 [279];\n  byte abStack_f1 [21];\n  int iStack_dc;\n  int iStack_d8;\n  uint **ppuStack_d4;\n  undefined *puStack_d0;\n  undefined *puStack_cc;\n  undefined *puStack_c8;\n  undefined1 auStack_80 [100];\n  int local_1c;\n  \n  puVar3 = PTR___stack_chk_guard_00038350;\n  local_1c = *(int *)PTR___stack_chk_guard_00038350;\n  uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x50a0,5);\n  FUN_00014188(uVar5,param_1);\n  puVar4 = PTR_stderr_00038360;\n  if (*(int *)(param_2 + 0x9c) == 0) {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb4) != *(char *)(param_2 + 0xbb)) goto LAB_00014a30;\nLAB_00014c7c:\n    uVar18 = 0;\n  }\n  else {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb6) == '\0') {\n      in_t3 = *(uint *)(param_2 + 0x3c);\n      in_t2 = *(uint **)(param_2 + 0x38);\n      in_t0 = *(uint ***)(param_2 + 0x28);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      *(undefined1 *)(param_2 + 0xb6) = 1;\n      if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar18 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) goto LAB_00014c7c;\nLAB_00014a30:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);\n    in_t0 = *(uint ***)(param_2 + 0x28);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n    uVar18 = 1;\n    ppuVar28 = *(uint ***)puVar4;\n    *(undefined1 *)(param_2 + 0xbb) = *(undefined1 *)(param_2 + 0xb4);\n  }\nLAB_00014a80:\n  if ((*(int *)(param_2 + 0xac) == 0) || (*(char *)(param_2 + 0xb9) != '\0')) {\n    if ((*(int *)(param_2 + 0xa0) != 0) && (*(char *)(param_2 + 0xb7) == '\0')) {\n      if (uVar18 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);\n      uVar5 = FUN_00014838(param_2,auStack_80);\n      in_t0 = *(uint ***)(param_2 + 8);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar18 = 1;\n      *(undefined1 *)(param_2 + 0xb7) = 1;\n    }\n  }\n  else {\n    in_t3 = *(uint *)(param_2 + 0x54);\n    in_t2 = *(uint **)(param_2 + 0x50);\n    in_t0 = *(uint ***)(param_2 + 0x48);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168);\n    if (*(int *)(param_2 + 0x5c) != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }\n    ppuVar28 = *(uint ***)puVar4;\n    if (*(int *)(param_2 + 0x1c) == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    *(undefined1 *)(param_2 + 0xb9) = 1;\n    if (*(int *)(param_2 + 0xa0) == 0) {\n      uVar18 = 1;\n    }\n    else {\n      uVar18 = (uint)*(byte *)(param_2 + 0xb7);\n      if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }\n  }\n  if ((*(int *)(param_2 + 0xa4) == 0) || (*(char *)(param_2 + 0xb8) != '\0')) {\n    if ((*(int *)(param_2 + 0xb0) == 0) ||\n       (unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0')) {\n      if (*(char *)(param_2 + 0x98) == '\0') goto LAB_00014bb0;\n      param_2 = *(int *)(param_2 + 0x58);\n      unaff_s4 = (undefined *)(param_2 >> 0x1f);\n      if (uVar18 != 0) goto LAB_00014d8c;\n      goto LAB_00014c1c;\n    }\n    unaff_s4 = PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5130;\nLAB_00014d38:\n    uVar5 = FUN_00013f30(*(undefined4 *)(param_2 + 0x18),auStack_80);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n    *(undefined1 *)(param_2 + 0xba) = 1;\n    if (*(char *)(param_2 + 0x98) != '\0') {\n      param_2 = *(int *)(param_2 + 0x58);\n      ppuVar28 = *(uint ***)puVar4;\n      goto LAB_00014d88;\n    }\n  }\n  else {\n    (*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac,*(undefined4 *)(param_2 + 0x14));\n    *(undefined1 *)(param_2 + 0xb8) = 1;\n    if (*(int *)(param_2 + 0xb0) == 0) {\n      cVar1 = *(char *)(param_2 + 0x98);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (*(char *)(param_2 + 0xba) == '\0') {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = *(char *)(param_2 + 0x98);\n    }\n    if (cVar1 == '\0') goto LAB_00014bb0;\n    param_2 = *(int *)(param_2 + 0x58);\nLAB_00014d88:\n    unaff_s4 = (undefined *)(param_2 >> 0x1f);\nLAB_00014d8c:\n    (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n    ppuVar28 = *(uint ***)puVar4;\nLAB_00014c1c:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n  }\n  ppuVar28 = *(uint ***)puVar4;\nLAB_00014bb0:\n  puVar14 = (undefined4 *)&DAT_0000000a;\n  ppuVar21 = ppuVar28;\n  (*(code *)PTR_fputc_00038298)();\n  iVar6 = *(int *)puVar3;\n  if (local_1c == iVar6) {\n    return iVar6;\n  }\n  puVar33 = PTR___stack_chk_fail_00038334;\n  (*(code *)PTR___stack_chk_fail_00038334)();\n  piVar7 = *(int **)(puVar33 + 0x234a4);\n  uVar18 = 0xfffffffe;\n  puStack_cc = puVar3;\n  puVar31 = (uint *)&DAT_00000026;\n  iStack_dc = *piVar7;\n  iVar6 = *(int *)(puVar33 + 0x23270);\n  puStack_c8 = unaff_s4;\n  puStack_d0 = puVar4;\n  puVar13 = auStack_550;\n  ppuStack_d4 = ppuVar28;\n  puVar29 = (uint *)0xfffffffe;\n  iVar30 = *(int *)(puVar33 + 0x23270) + 0x6250;\n  iStack_d8 = param_2;\n  puVar25 = (uint *)0x0;\n  iVar8 = *(int *)(puVar33 + 0x23270) + 0x62c4;\n  asStack_578[0] = 0;\n  iStack_670 = 0;\n  psVar32 = asStack_578;\nLAB_00014f50:\n  ppuVar28 = (uint **)0x800000;\n  puVar19 = puVar31;\n  if (puVar29 == (uint *)0xfffffffe) {\n    ppuVar21 = (uint **)*puVar14;\n    in_t2 = (uint *)0x1;\n    ppuVar28 = (uint **)0x80001f;\n    in_t4 = (uint **)0x2d;\n    bVar12 = *(byte *)ppuVar21;\n    in_t5 = 0x2b;\n    in_t6 = 0x28;\n    uVar18 = 0x29;\nLAB_000152f0:\n    in_t0 = (uint **)(int)(char)bVar12;\n    uVar15 = (uint)bVar12;\nLAB_000152f4:\n    uVar22 = uVar15 - 9;\n    ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n    if (ppuVar16 == (uint **)0x0) goto LAB_000153a8;\nLAB_00015308:\n    ppuVar11 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f);\n    while (ppuVar11 != (uint **)0x0) {\n      ppuVar21 = (uint **)((int)ppuVar21 + 1);\n      *puVar14 = ppuVar21;\n      in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n      uVar15 = (uint)*(byte *)ppuVar21;\n      ppuVar16 = (uint **)(uVar15 - 9);\n      if ((uint **)0x17 < ppuVar16) goto LAB_000153a8;\n      ppuVar16 = (uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f);\n      ppuVar11 = ppuVar16;\n    }\nLAB_00015344:\n    in_t3 = 0xffffffff;\n    if (uVar15 == 0x2d) goto LAB_00015358;\n    if (uVar15 == 0x2b) goto LAB_00015354;\n    if ((0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))\n       ) {\n      pbVar26 = (byte *)*puVar14;\n      ppuVar16 = (uint **)(abStack_f1 + 1);\n      in_t0 = (uint **)(abStack_f1 + 0x14);\n      ppuVar28 = (uint **)&DAT_0000002e;\n      ppuVar21 = ppuVar16;\n      do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        *puVar14 = pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));\n      *(byte *)ppuVar21 = 0;\n      ppuVar21 = ppuVar16;\n      bVar12 = abStack_f1[1];\n      while (bVar12 != 0) {\n        if (bVar12 - 0x61 < 0x1a) {\n          bVar12 = bVar12 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar12;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar12 = *(byte *)ppuVar21;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);\n      do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16);\n      if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);\n      do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      iVar9 = *(int *)(puVar33 + 0x2326c);\n      ppuVar21 = ppuVar16;\n      iVar10 = FUN_00014388(puVar14);\n      unaff_s6 = asStack_578;\n      if (iVar10 != 0) {\n        puVar29 = *(uint **)(iVar10 + 4);\n        apuStack_5e8[1] = *(uint **)(iVar10 + 8);\n        apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);\n      iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n      if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        ppuVar16 = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);\n      ppuVar11 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);\n      ppuVar21 = ppuVar11;\n      psVar27 = unaff_s6;\n      do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);\n      pbVar26 = (byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1));\n      if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar11 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);\n      pcVar34 = *(code **)(puVar33 + 0x234c8);\n      do {\n        iVar10 = (*pcVar34)(ppuVar16);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);\n      if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar11 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }\n      if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = ppuVar16;\n        ppuVar11 = ppuVar16;\n        bVar12 = abStack_f1[1];\n        do {\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        } while (bVar12 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }\n      ppuVar21 = *(uint ***)(puVar33 + 0x23270);\n      if (*(char *)((int)puVar14 + 0xb5) == '\0') goto LAB_00017ae0;\n      uVar5 = (**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5);\n      puVar29 = (uint *)0x3f;\n      FUN_00014188(uVar5);\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n      goto LAB_00014f74;\n    }\n    iVar9 = 0;\n    if (uVar15 == 0x28) {\n      ppuVar21 = (uint **)*puVar14;\n      goto LAB_000157a8;\n    }\n    *puVar14 = (byte *)((int)ppuVar21 + 1);\n    puVar29 = (uint *)(uint)*(byte *)ppuVar21;\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if (puVar29 != (uint *)0x0) goto LAB_0001558c;\n    uVar15 = 0;\n    goto LAB_00014f74;\n  }\nLAB_00014f5c:\n  ppuVar16 = ppuVar21;\n  if ((int)puVar29 < 1) {\nLAB_000152b8:\n    uVar15 = 0;\n    puVar29 = (uint *)0x0;\n  }\n  else {\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if ((int)puVar29 < 0x116) {\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }\n    else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }\n  }\n  goto LAB_00014f74;\nLAB_00015354:\n  do {\n    in_t3 = 1;\nLAB_00015358:\n    while( true ) {\n      ppuVar21 = (uint **)*puVar14;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n      if (ppuVar16 != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }\n    in_t3 = 0;\n  } while (uVar15 == 0x2b);\n  ppuVar21 = (uint **)*puVar14;\nLAB_000153dc:\n  ppuVar16 = (uint **)0x0;\n  puVar29 = (uint *)0x0;\n  in_t5 = 0xffffffff;\n  uVar18 = 0x30;\n  in_t8 = 10;\n  ppuVar28 = ppuVar21;\nLAB_000153f8:\n  if (in_t3 == 0xffffffff) {\n    uVar22 = 0x30 - uVar15;\n  }\n  uVar15 = (int)uVar22 >> 0x1f;\n  puVar17 = (uint *)((int)puVar29 + uVar22);\n  in_t2 = (uint *)((int)ppuVar16 + (puVar17 < puVar29) + uVar15);\n  in_t4 = (uint **)((uint)in_t2 ^ uVar15);\n  ppuVar16 = (uint **)((uint)in_t4 & ~((uint)ppuVar16 ^ uVar15));\n  if ((int)ppuVar16 < 0) goto LAB_00017ad0;\n  uVar15 = (uint)*(byte *)((int)ppuVar28 + 1);\n  uVar22 = uVar15 - 0x30;\n  in_t4 = (uint **)((int)ppuVar28 + 1);\n  if (uVar22 < 10) goto LAB_00015528;\n  ppuVar16 = (uint **)0xfffffffd;\n  if (((*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c) ||\n     (puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29)) {\n    *puVar14 = in_t4;\n    uVar15 = 0x13;\n    apuStack_5e8[0] = (uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_);\n    puVar29 = (uint *)0x112;\n    if (in_t3 == 0) {\n      uVar15 = 0x14;\n    }\n    iStack_660 = (int)in_t4 - (int)ppuVar21;\n    if (in_t3 == 0) {\n      puVar29 = (uint *)0x113;\n    }\n    puVar19 = (uint *)((int)puVar31 + uVar15);\n    puStack_65c = in_t2;\n    puStack_630 = puVar17;\n    goto LAB_00014f74;\n  }\n  in_t2 = (uint *)((int)in_t2 + (uint)(puVar17 + -0x20000000 < puVar17));\n  iVar9 = 8;\n  ppuVar21 = ppuVar16;\n  if (in_t2 != (uint *)0x0) goto LAB_00017ae0;\n  in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 3);\n  ppuVar28 = (uint **)((int)ppuVar28 + 3);\n  ppuVar21 = in_t0 + -0xc;\n  ppuVar16 = (uint **)((int)puVar29 * 4);\n  do {\n    puVar29 = (uint *)((int)((int)ppuVar16 + (int)puVar29) * 2);\n    if (ppuVar21 < &DAT_0000000a) {\n      in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);\n      puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n      ppuVar21 = in_t0 + -0xc;\n    }\n    iVar9 = iVar9 + -1;\n    ppuVar16 = (uint **)((int)puVar29 << 2);\n  } while (iVar9 != 0);\n  in_t2 = puVar17;\n  if (in_t3 == 0xffffffff) {\n    ppuVar11 = in_t0;\n    if (ppuVar21 < &DAT_0000000a) {\n      do {\n        if (ppuVar11 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar11 = ppuVar16;\n      } while (ppuVar16 + -0xc <= &DAT_00000009);\n    }\nLAB_00015c20:\n    if (puVar29 != (uint *)0x0) {\n      in_t2 = (uint *)((int)puVar17 + -1);\n      ppuVar21 = ppuVar16;\n      if (puVar17 == (uint *)0x80000000) {\nLAB_00017ae0:\n        ppuVar16 = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }\n    uVar15 = 0x15;\n    apuStack_5e8[1] = puVar29;\n    apuStack_5e8[0] = in_t2;\n    puVar29 = (uint *)0x114;\n    *puVar14 = ppuVar28;\n    puVar19 = (uint *)((int)puVar31 + 0x15);\n    goto LAB_00014f74;\n  }\n  if (ppuVar21 < &DAT_0000000a) {\nLAB_000154dc:\n    do {\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    } while ((int)(char)*(byte *)ppuVar28 - 0x30U < 10);\n    if (in_t3 == 0xffffffff) goto LAB_00015c20;\n  }\n  apuStack_5e8[0] = puVar17;\n  uVar15 = 0x16;\n  apuStack_5e8[1] = puVar29;\n  puVar29 = (uint *)0x115;\n  *puVar14 = ppuVar28;\n  if (in_t3 != 0) {\n    uVar15 = 0x15;\n    puVar29 = (uint *)0x114;\n  }\n  puVar19 = (uint *)((int)puVar31 + uVar15);\nLAB_00014f74:\n  psVar27 = psVar32;\n  if ((uint *)0x70 < puVar19) goto LAB_0001504c;\n  iVar9 = *(int *)(puVar33 + 0x23270);\n  if ((int)(char)*(byte *)((int)puVar19 + iVar30) != uVar15) goto LAB_00015050;\n  puVar25 = (uint *)(uint)*(byte *)((int)puVar19 + iVar8);\n  if (puVar25 == (uint *)0x0) {\n    puStack_66c = auStack_5b0;\n    puVar25 = puVar13 + 0xe;\n    puVar31 = puStack_66c;\n    do {\n      puVar17 = puVar31;\n      puVar19 = puVar25;\n      puVar25 = puVar19 + 4;\n      uVar22 = puVar19[1];\n      uVar15 = puVar19[2];\n      uVar18 = puVar19[3];\n      *puVar17 = *puVar19;\n      puVar17[1] = uVar22;\n      puVar17[2] = uVar15;\n      puVar17[3] = uVar18;\n      puVar31 = puVar17 + 4;\n    } while (puVar25 != puVar13 + 0x1a);\n    uVar18 = puVar19[5];\n    iVar10 = -0x1c;\n    puVar17[4] = *puVar25;\n    puVar17[5] = uVar18;\n    puStack_674 = (uint *)puVar13[0x13];\n    in_t3 = puVar13[0x11];\n    in_t2 = (uint *)puVar13[0x10];\n    unaff_s6 = (short *)puVar13[0x12];\n    ppuVar28 = (uint **)puVar13[0x15];\n    in_t0 = (uint **)puVar13[0x14];\n    in_t5 = puVar13[0x17];\n    in_t4 = (uint **)puVar13[0x16];\n    uVar18 = puVar13[0x18];\n    in_t6 = puVar13[0x19];\n    in_t8 = puVar13[0x1a];\n    iVar9 = 0;\n    goto LAB_00015adc;\n  }\n  if (iStack_670 != 0) {\n    iStack_670 = iStack_670 + -1;\n  }\n  puVar13 = puVar13 + 0xe;\n  in_t0 = apuStack_5b8;\n  apuStack_5e8[3] = puStack_630;\n  apuStack_5e8[2] = puStack_65c;\n  iStack_5d8 = iStack_660;\n  ppuVar21 = apuStack_5e8;\n  puVar29 = puVar13;\n  do {\n    puVar31 = puVar29;\n    ppuVar11 = ppuVar21;\n    ppuVar21 = ppuVar11 + 4;\n    puVar19 = ppuVar11[1];\n    ppuVar16 = (uint **)ppuVar11[2];\n    puVar29 = ppuVar11[3];\n    *puVar31 = (uint)*ppuVar11;\n    puVar31[1] = (uint)puVar19;\n    puVar31[2] = (uint)ppuVar16;\n    puVar31[3] = (uint)puVar29;\n    puVar29 = puVar31 + 4;\n  } while (ppuVar21 != in_t0);\n  puVar29 = (uint *)0xfffffffe;\n  puVar19 = ppuVar11[5];\n  puVar31[4] = (uint)*ppuVar21;\n  puVar31[5] = (uint)puVar19;\nLAB_00015014:\n  psVar27 = psVar32 + 1;\n  psVar32[1] = (short)puVar25;\n  if (&sStack_552 <= psVar27) {\n    iVar9 = 2;\nLAB_00015278:\n    do {\n      if (iStack_dc == *piVar7) {\n        return iVar9;\n      }\n      iVar9 = iStack_dc;\n      uVar5 = (**(code **)(puVar33 + 0x23488))();\n      bVar2 = ppuVar16 == (uint **)0x0;\n      puVar14[0x10] = uVar5;\n      puVar14[0x11] = iVar9;\n      if (!bVar2) {\n        ppuVar16 = (uint **)puVar13[3];\n        if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }\n        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];\n        puVar14[0xb] = -(int)ppuVar16;\n        if (!bVar2) goto code_r0x00016f40;\n      }\n      iVar9 = 1;\n    } while( true );\n  }\n  if (puVar25 == (uint *)0xc) {\n    iVar9 = 0;\n    goto LAB_00015278;\n  }\n  puVar31 = (uint *)(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4);\n  ppuVar21 = ppuVar16;\n  psVar32 = psVar27;\n  if (puVar31 == (uint *)0xffffffa3) {\nLAB_0001504c:\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    psVar32 = psVar27;\nLAB_00015050:\n    uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370);\n    if (uVar15 != 0) {\n      uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);\n      puVar19 = puVar13 + (1 - uVar22) * 0xe;\n      puVar25 = puVar19;\n      puVar31 = auStack_5b0;\n      do {\n        puVar20 = puVar31;\n        puVar17 = puVar25;\n        puVar25 = puVar17 + 4;\n        uVar24 = puVar17[1];\n        uVar23 = puVar17[2];\n        uVar18 = puVar17[3];\n        *puVar20 = *puVar17;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar18;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);\n      uVar18 = puVar17[5];\n      uVar23 = uVar15 - 4 & 0xff;\n      puVar20[4] = *puVar25;\n      puVar20[5] = uVar18;\n      puStack_674 = (uint *)puVar19[5];\n      in_t3 = puVar19[3];\n      in_t2 = (uint *)puVar19[2];\n      unaff_s6 = (short *)puVar19[4];\n      ppuVar28 = (uint **)puVar19[7];\n      in_t0 = (uint **)puVar19[6];\n      in_t5 = puVar19[9];\n      in_t4 = (uint **)puVar19[8];\n      uVar18 = puVar19[10];\n      in_t6 = puVar19[0xb];\n      in_t8 = puVar19[0xc];\n      if (uVar23 < 0x58) {\n                    \n                    \n        iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();\n        return iVar6;\n      }\n      psVar32 = psVar32 + -uVar22;\n      puVar13 = puVar13 + uVar22 * -0xe;\n      iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;\n      iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);\n      puStack_66c = auStack_5b0;\n      goto LAB_00015adc;\n    }\n    if (iStack_670 == 3) {\n      if ((int)puVar29 < 1) {\n        iVar9 = 1;\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }\n    }\n    ppuVar16 = (uint **)0xffffffa3;\n    while ((((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0))) {\n      iVar9 = 1;\n      psVar27 = psVar32;\n      if (psVar32 == asStack_578) goto LAB_00015278;\n      psVar32 = psVar32 + -1;\n      puVar25 = (uint *)(int)*psVar32;\n      puVar13 = puVar13 + -0xe;\n    }\n    puVar13 = puVar13 + 0xe;\n    in_t0 = apuStack_5b8;\n    apuStack_5e8[3] = puStack_630;\n    apuStack_5e8[2] = puStack_65c;\n    iStack_5d8 = iStack_660;\n    ppuVar21 = apuStack_5e8;\n    puVar31 = puVar13;\n    do {\n      puVar19 = puVar31;\n      ppuVar11 = ppuVar21;\n      ppuVar21 = ppuVar11 + 4;\n      puVar20 = ppuVar11[1];\n      puVar17 = ppuVar11[2];\n      puVar31 = ppuVar11[3];\n      *puVar19 = (uint)*ppuVar11;\n      puVar19[1] = (uint)puVar20;\n      puVar19[2] = (uint)puVar17;\n      puVar19[3] = (uint)puVar31;\n      puVar31 = puVar19 + 4;\n    } while (ppuVar21 != in_t0);\n    ppuVar16 = (uint **)0x3;\n    puVar31 = ppuVar11[5];\n    iStack_670 = 3;\n    puVar19[4] = (uint)*ppuVar21;\n    puVar19[5] = (uint)puVar31;\n    goto LAB_00015014;\n  }\n  goto LAB_00014f50;\nLAB_00015528:\n  puVar29 = (uint *)((int)puVar17 >> 0x1f);\n  bVar2 = false;\n  if (puVar29 == in_t2) {\n    in_t2 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2);\n    ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n  }\n  else {\n    ppuVar28 = (uint **)(ZEXT48(in_t2) * 10);\n    unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20);\n    in_t6 = (int)puVar17 * 4;\n    puStack_674 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)puVar17 * 10);\n    psVar27 = unaff_s6;\n    if ((int)in_t2 < 0) {\n      psVar27 = unaff_s6 + -5;\n    }\n    ppuVar16 = (uint **)((int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2));\n    if ((int)ppuVar16 >> 0x1f != (uint)(ppuVar16 < ppuVar28) + (int)psVar27) {\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n    }\n  }\n  puVar29 = (uint *)((int)puVar17 * 10);\n  ppuVar28 = in_t4;\n  if (bVar2) goto LAB_00017ad0;\n  goto LAB_000153f8;\nLAB_00017ad0:\n  uVar15 = 2;\n  puVar29 = (uint *)0x3f;\n  puVar19 = (uint *)((int)puVar31 + 2);\n  goto LAB_00014f74;\n  while( true ) {\n    if (bVar12 == 0x28) {\n      iVar9 = iVar9 + 1;\n    }\n    else if (bVar12 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }\n    if (iVar9 == 0) break;\nLAB_000157a8:\n    ppuVar16 = ppuVar21;\n    ppuVar21 = (uint **)((int)ppuVar16 + 1);\n    *puVar14 = ppuVar21;\n    bVar12 = *(byte *)ppuVar16;\n    if (bVar12 == 0) goto LAB_000152b8;\n  }\n  bVar12 = *(byte *)((int)ppuVar16 + 1);\n  goto LAB_000152f0;\ncode_r0x00016f40:\n  puVar25 = puVar13 + 4;\n  puVar13 = puVar13 + -0x2a;\n  psVar32 = psVar27 + -3;\n  iVar10 = 0xe;\n  puVar14[0xc] = *puVar25;\n  iVar9 = -0x5d;\nLAB_00015adc:\n  puVar13 = puVar13 + 0xe;\n  puStack_5a8 = in_t2;\n  in_t2 = auStack_580;\n  uStack_5a4 = in_t3;\n  apsStack_5a0[1] = (short *)puStack_674;\n  apsStack_5a0[0] = unaff_s6;\n  ppuStack_594 = ppuVar28;\n  ppuStack_598 = in_t0;\n  uStack_58c = in_t5;\n  ppuStack_590 = in_t4;\n  uStack_588 = uVar18;\n  uStack_584 = in_t6;\n  auStack_580[0] = in_t8;\n  puVar25 = puStack_66c;\n  puVar31 = puVar13;\n  do {\n    puVar17 = puVar31;\n    puVar19 = puVar25;\n    in_t0 = (uint **)*puVar19;\n    puVar25 = puVar19 + 4;\n    uVar23 = puVar19[1];\n    uVar22 = puVar19[2];\n    uVar15 = puVar19[3];\n    *puVar17 = (uint)in_t0;\n    puVar17[1] = uVar23;\n    puVar17[2] = uVar22;\n    puVar17[3] = uVar15;\n    puVar31 = puVar17 + 4;\n  } while (puVar25 != in_t2);\n  ppuVar16 = (uint **)(int)*psVar32;\n  uVar15 = puVar19[5];\n  pbVar26 = (byte *)((int)ppuVar16 + iVar9);\n  puVar17[4] = *puVar25;\n  puVar17[5] = uVar15;\n  if ((pbVar26 < (byte *)0x71) && ((uint **)(int)(char)pbVar26[iVar30] == ppuVar16)) {\n    puVar25 = (uint *)(uint)pbVar26[iVar8];\n  }\n  else {\n    puVar25 = (uint *)(int)*(char *)(iVar10 + iVar6 + 0x6338);\n  }\n  goto LAB_00015014;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "byte bVar12;" (type_identifier "byte") (identifier "bVar12") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "uint **ppuVar11;" (type_identifier "uint") (pointer_declarator "**ppuVar11" (* "*") (pointer_declarator "*ppuVar11" (* "*") (identifier "ppuVar11"))) (; ";")) (declaration "uint *puVar13;" (type_identifier "uint") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "undefined4 *puVar14;" (type_identifier "undefined4") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "uint **ppuVar16;" (type_identifier "uint") (pointer_declarator "**ppuVar16" (* "*") (pointer_declarator "*ppuVar16" (* "*") (identifier "ppuVar16"))) (; ";")) (declaration "uint *puVar17;" (type_identifier "uint") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "uint *puVar19;" (type_identifier "uint") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "uint *puVar20;" (type_identifier "uint") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "uint **ppuVar21;" (type_identifier "uint") (pointer_declarator "**ppuVar21" (* "*") (pointer_declarator "*ppuVar21" (* "*") (identifier "ppuVar21"))) (; ";")) (declaration "uint uVar22;" (type_identifier "uint") (identifier "uVar22") (; ";")) (declaration "uint uVar23;" (type_identifier "uint") (identifier "uVar23") (; ";")) (declaration "uint **in_t0;" (type_identifier "uint") (pointer_declarator "**in_t0" (* "*") (pointer_declarator "*in_t0" (* "*") (identifier "in_t0"))) (; ";")) (declaration "uint uVar24;" (type_identifier "uint") (identifier "uVar24") (; ";")) (declaration "uint *in_t2;" (type_identifier "uint") (pointer_declarator "*in_t2" (* "*") (identifier "in_t2")) (; ";")) (declaration "uint in_t3;" (type_identifier "uint") (identifier "in_t3") (; ";")) (declaration "uint **in_t4;" (type_identifier "uint") (pointer_declarator "**in_t4" (* "*") (pointer_declarator "*in_t4" (* "*") (identifier "in_t4"))) (; ";")) (declaration "uint in_t5;" (type_identifier "uint") (identifier "in_t5") (; ";")) (declaration "uint in_t6;" (type_identifier "uint") (identifier "in_t6") (; ";")) (declaration "uint *puVar25;" (type_identifier "uint") (pointer_declarator "*puVar25" (* "*") (identifier "puVar25")) (; ";")) (declaration "byte *pbVar26;" (type_identifier "byte") (pointer_declarator "*pbVar26" (* "*") (identifier "pbVar26")) (; ";")) (declaration "short *psVar27;" (sized_type_specifier "short" (short "short")) (pointer_declarator "*psVar27" (* "*") (identifier "psVar27")) (; ";")) (declaration "uint **ppuVar28;" (type_identifier "uint") (pointer_declarator "**ppuVar28" (* "*") (pointer_declarator "*ppuVar28" (* "*") (identifier "ppuVar28"))) (; ";")) (declaration "uint *puVar29;" (type_identifier "uint") (pointer_declarator "*puVar29" (* "*") (identifier "puVar29")) (; ";")) (declaration "int iVar30;" (primitive_type "int") (identifier "iVar30") (; ";")) (declaration "undefined *unaff_s4;" (type_identifier "undefined") (pointer_declarator "*unaff_s4" (* "*") (identifier "unaff_s4")) (; ";")) (declaration "uint *puVar31;" (type_identifier "uint") (pointer_declarator "*puVar31" (* "*") (identifier "puVar31")) (; ";")) (declaration "short *psVar32;" (sized_type_specifier "short" (short "short")) (pointer_declarator "*psVar32" (* "*") (identifier "psVar32")) (; ";")) (declaration "short *unaff_s6;" (sized_type_specifier "short" (short "short")) (pointer_declarator "*unaff_s6" (* "*") (identifier "unaff_s6")) (; ";")) (declaration "uint in_t8;" (type_identifier "uint") (identifier "in_t8") (; ";")) (declaration "undefined *puVar33;" (type_identifier "undefined") (pointer_declarator "*puVar33" (* "*") (identifier "puVar33")) (; ";")) (declaration "code *pcVar34;" (type_identifier "code") (pointer_declarator "*pcVar34" (* "*") (identifier "pcVar34")) (; ";")) (declaration "uint *puStack_674;" (type_identifier "uint") (pointer_declarator "*puStack_674" (* "*") (identifier "puStack_674")) (; ";")) (declaration "int iStack_670;" (primitive_type "int") (identifier "iStack_670") (; ";")) (declaration "uint *puStack_66c;" (type_identifier "uint") (pointer_declarator "*puStack_66c" (* "*") (identifier "puStack_66c")) (; ";")) (declaration "int iStack_660;" (primitive_type "int") (identifier "iStack_660") (; ";")) (declaration "uint *puStack_65c;" (type_identifier "uint") (pointer_declarator "*puStack_65c" (* "*") (identifier "puStack_65c")) (; ";")) (declaration "uint *puStack_630;" (type_identifier "uint") (pointer_declarator "*puStack_630" (* "*") (identifier "puStack_630")) (; ";")) (declaration "uint *apuStack_5e8 [4];" (type_identifier "uint") (pointer_declarator "*apuStack_5e8 [4]" (* "*") (array_declarator "apuStack_5e8 [4]" (identifier "apuStack_5e8") ([ "[") (number_literal "4") (] "]"))) (; ";")) (declaration "int iStack_5d8;" (primitive_type "int") (identifier "iStack_5d8") (; ";")) (declaration "uint *apuStack_5b8 [2];" (type_identifier "uint") (pointer_declarator "*apuStack_5b8 [2]" (* "*") (array_declarator "apuStack_5b8 [2]" (identifier "apuStack_5b8") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "uint auStack_5b0 [2];" (type_identifier "uint") (array_declarator "auStack_5b0 [2]" (identifier "auStack_5b0") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "uint *puStack_5a8;" (type_identifier "uint") (pointer_declarator "*puStack_5a8" (* "*") (identifier "puStack_5a8")) (; ";")) (declaration "uint uStack_5a4;" (type_identifier "uint") (identifier "uStack_5a4") (; ";")) (declaration "short *apsStack_5a0 [2];" (sized_type_specifier "short" (short "short")) (pointer_declarator "*apsStack_5a0 [2]" (* "*") (array_declarator "apsStack_5a0 [2]" (identifier "apsStack_5a0") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "uint **ppuStack_598;" (type_identifier "uint") (pointer_declarator "**ppuStack_598" (* "*") (pointer_declarator "*ppuStack_598" (* "*") (identifier "ppuStack_598"))) (; ";")) (declaration "uint **ppuStack_594;" (type_identifier "uint") (pointer_declarator "**ppuStack_594" (* "*") (pointer_declarator "*ppuStack_594" (* "*") (identifier "ppuStack_594"))) (; ";")) (declaration "uint **ppuStack_590;" (type_identifier "uint") (pointer_declarator "**ppuStack_590" (* "*") (pointer_declarator "*ppuStack_590" (* "*") (identifier "ppuStack_590"))) (; ";")) (declaration "uint uStack_58c;" (type_identifier "uint") (identifier "uStack_58c") (; ";")) (declaration "uint uStack_588;" (type_identifier "uint") (identifier "uStack_588") (; ";")) (declaration "uint uStack_584;" (type_identifier "uint") (identifier "uStack_584") (; ";")) (declaration "uint auStack_580 [2];" (type_identifier "uint") (array_declarator "auStack_580 [2]" (identifier "auStack_580") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "short asStack_578 [19];" (sized_type_specifier "short" (short "short")) (array_declarator "asStack_578 [19]" (identifier "asStack_578") ([ "[") (number_literal "19") (] "]")) (; ";")) (declaration "short sStack_552;" (sized_type_specifier "short" (short "short")) (identifier "sStack_552") (; ";")) (declaration "uint auStack_550 [279];" (type_identifier "uint") (array_declarator "auStack_550 [279]" (identifier "auStack_550") ([ "[") (number_literal "279") (] "]")) (; ";")) (declaration "byte abStack_f1 [21];" (type_identifier "byte") (array_declarator "abStack_f1 [21]" (identifier "abStack_f1") ([ "[") (number_literal "21") (] "]")) (; ";")) (declaration "int iStack_dc;" (primitive_type "int") (identifier "iStack_dc") (; ";")) (declaration "int iStack_d8;" (primitive_type "int") (identifier "iStack_d8") (; ";")) (declaration "uint **ppuStack_d4;" (type_identifier "uint") (pointer_declarator "**ppuStack_d4" (* "*") (pointer_declarator "*ppuStack_d4" (* "*") (identifier "ppuStack_d4"))) (; ";")) (declaration "undefined *puStack_d0;" (type_identifier "undefined") (pointer_declarator "*puStack_d0" (* "*") (identifier "puStack_d0")) (; ";")) (declaration "undefined *puStack_cc;" (type_identifier "undefined") (pointer_declarator "*puStack_cc" (* "*") (identifier "puStack_cc")) (; ";")) (declaration "undefined *puStack_c8;" (type_identifier "undefined") (pointer_declarator "*puStack_c8" (* "*") (identifier "puStack_c8")) (; ";")) (declaration "undefined1 auStack_80 [100];" (type_identifier "undefined1") (array_declarator "auStack_80 [100]" (identifier "auStack_80") ([ "[") (number_literal "100") (] "]")) (; ";")) (declaration "int local_1c;" (primitive_type "int") (identifier "local_1c") (; ";")) (expression_statement "puVar3 = PTR___stack_chk_guard_00038350;" (assignment_expression "puVar3 = PTR___stack_chk_guard_00038350" (identifier "puVar3") (= "=") (identifier "PTR___stack_chk_guard_00038350")) (; ";")) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_00038350;" (assignment_expression "local_1c = *(int *)PTR___stack_chk_guard_00038350" (identifier "local_1c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_00038350" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_00038350" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_00038350")))) (; ";")) (expression_statement "uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x50a0,5);" (assignment_expression "uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x50a0,5)" (identifier "uVar5") (= "=") (call_expression "(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x50a0,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00038338)" (( "(") (pointer_expression "*(code *)PTR_dcgettext_00038338" (* "*") (cast_expression "(code *)PTR_dcgettext_00038338" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dcgettext_00038338"))) () ")")) (argument_list "(0,PTR_LAB_0003811c + 0x50a0,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_LAB_0003811c + 0x50a0" (identifier "PTR_LAB_0003811c") (+ "+") (number_literal "0x50a0")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00014188(uVar5,param_1);" (call_expression "FUN_00014188(uVar5,param_1)" (identifier "FUN_00014188") (argument_list "(uVar5,param_1)" (( "(") (identifier "uVar5") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "puVar4 = PTR_stderr_00038360;" (assignment_expression "puVar4 = PTR_stderr_00038360" (identifier "puVar4") (= "=") (identifier "PTR_stderr_00038360")) (; ";")) (if_statement "if (*(int *)(param_2 + 0x9c) == 0) {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb4) != *(char *)(param_2 + 0xbb)) goto LAB_00014a30;\nLAB_00014c7c:\n    uVar18 = 0;\n  }\n  else {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb6) == '\0') {\n      in_t3 = *(uint *)(param_2 + 0x3c);\n      in_t2 = *(uint **)(param_2 + 0x38);\n      in_t0 = *(uint ***)(param_2 + 0x28);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      *(undefined1 *)(param_2 + 0xb6) = 1;\n      if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar18 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) goto LAB_00014c7c;\nLAB_00014a30:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);\n    in_t0 = *(uint ***)(param_2 + 0x28);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n    uVar18 = 1;\n    ppuVar28 = *(uint ***)puVar4;\n    *(undefined1 *)(param_2 + 0xbb) = *(undefined1 *)(param_2 + 0xb4);\n  }" (if "if") (parenthesized_expression "(*(int *)(param_2 + 0x9c) == 0)" (( "(") (binary_expression "*(int *)(param_2 + 0x9c) == 0" (pointer_expression "*(int *)(param_2 + 0x9c)" (* "*") (cast_expression "(int *)(param_2 + 0x9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x9c)" (( "(") (binary_expression "param_2 + 0x9c" (identifier "param_2") (+ "+") (number_literal "0x9c")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb4) != *(char *)(param_2 + 0xbb)) goto LAB_00014a30;\nLAB_00014c7c:\n    uVar18 = 0;\n  }" ({ "{") (expression_statement "ppuVar28 = *(uint ***)PTR_stderr_00038360;" (assignment_expression "ppuVar28 = *(uint ***)PTR_stderr_00038360" (identifier "ppuVar28") (= "=") (pointer_expression "*(uint ***)PTR_stderr_00038360" (* "*") (cast_expression "(uint ***)PTR_stderr_00038360" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "PTR_stderr_00038360")))) (; ";")) (if_statement "if (*(char *)(param_2 + 0xb4) != *(char *)(param_2 + 0xbb)) goto LAB_00014a30;" (if "if") (parenthesized_expression "(*(char *)(param_2 + 0xb4) != *(char *)(param_2 + 0xbb))" (( "(") (binary_expression "*(char *)(param_2 + 0xb4) != *(char *)(param_2 + 0xbb)" (pointer_expression "*(char *)(param_2 + 0xb4)" (* "*") (cast_expression "(char *)(param_2 + 0xb4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xb4)" (( "(") (binary_expression "param_2 + 0xb4" (identifier "param_2") (+ "+") (number_literal "0xb4")) () ")")))) (!= "!=") (pointer_expression "*(char *)(param_2 + 0xbb)" (* "*") (cast_expression "(char *)(param_2 + 0xbb)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xbb)" (( "(") (binary_expression "param_2 + 0xbb" (identifier "param_2") (+ "+") (number_literal "0xbb")) () ")"))))) () ")")) (goto_statement "goto LAB_00014a30;" (goto "goto") (statement_identifier "LAB_00014a30") (; ";"))) (labeled_statement "LAB_00014c7c:\n    uVar18 = 0;" (statement_identifier "LAB_00014c7c") (: ":") (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" (identifier "uVar18") (= "=") (number_literal "0")) (; ";"))) (} "}")) (else_clause "else {\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb6) == '\0') {\n      in_t3 = *(uint *)(param_2 + 0x3c);\n      in_t2 = *(uint **)(param_2 + 0x38);\n      in_t0 = *(uint ***)(param_2 + 0x28);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      *(undefined1 *)(param_2 + 0xb6) = 1;\n      if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar18 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) goto LAB_00014c7c;\nLAB_00014a30:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);\n    in_t0 = *(uint ***)(param_2 + 0x28);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n    uVar18 = 1;\n    ppuVar28 = *(uint ***)puVar4;\n    *(undefined1 *)(param_2 + 0xbb) = *(undefined1 *)(param_2 + 0xb4);\n  }" (else "else") (compound_statement "{\n    ppuVar28 = *(uint ***)PTR_stderr_00038360;\n    if (*(char *)(param_2 + 0xb6) == '\0') {\n      in_t3 = *(uint *)(param_2 + 0x3c);\n      in_t2 = *(uint **)(param_2 + 0x38);\n      in_t0 = *(uint ***)(param_2 + 0x28);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      *(undefined1 *)(param_2 + 0xb6) = 1;\n      if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar18 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) goto LAB_00014c7c;\nLAB_00014a30:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);\n    in_t0 = *(uint ***)(param_2 + 0x28);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n    uVar18 = 1;\n    ppuVar28 = *(uint ***)puVar4;\n    *(undefined1 *)(param_2 + 0xbb) = *(undefined1 *)(param_2 + 0xb4);\n  }" ({ "{") (expression_statement "ppuVar28 = *(uint ***)PTR_stderr_00038360;" (assignment_expression "ppuVar28 = *(uint ***)PTR_stderr_00038360" (identifier "ppuVar28") (= "=") (pointer_expression "*(uint ***)PTR_stderr_00038360" (* "*") (cast_expression "(uint ***)PTR_stderr_00038360" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "PTR_stderr_00038360")))) (; ";")) (if_statement "if (*(char *)(param_2 + 0xb6) == '\0') {\n      in_t3 = *(uint *)(param_2 + 0x3c);\n      in_t2 = *(uint **)(param_2 + 0x38);\n      in_t0 = *(uint ***)(param_2 + 0x28);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      *(undefined1 *)(param_2 + 0xb6) = 1;\n      if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar18 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) goto LAB_00014c7c;" (if "if") (parenthesized_expression "(*(char *)(param_2 + 0xb6) == '\0')" (( "(") (binary_expression "*(char *)(param_2 + 0xb6) == '\0'" (pointer_expression "*(char *)(param_2 + 0xb6)" (* "*") (cast_expression "(char *)(param_2 + 0xb6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xb6)" (( "(") (binary_expression "param_2 + 0xb6" (identifier "param_2") (+ "+") (number_literal "0xb6")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      in_t3 = *(uint *)(param_2 + 0x3c);\n      in_t2 = *(uint **)(param_2 + 0x38);\n      in_t0 = *(uint ***)(param_2 + 0x28);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);\n      *(undefined1 *)(param_2 + 0xb6) = 1;\n      if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar18 = 1;\n        goto LAB_00014a80;\n      }\n      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);\n      ppuVar28 = *(uint ***)puVar4;\n    }" ({ "{") (expression_statement "in_t3 = *(uint *)(param_2 + 0x3c);" (assignment_expression "in_t3 = *(uint *)(param_2 + 0x3c)" (identifier "in_t3") (= "=") (pointer_expression "*(uint *)(param_2 + 0x3c)" (* "*") (cast_expression "(uint *)(param_2 + 0x3c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3c)" (( "(") (binary_expression "param_2 + 0x3c" (identifier "param_2") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "in_t2 = *(uint **)(param_2 + 0x38);" (assignment_expression "in_t2 = *(uint **)(param_2 + 0x38)" (identifier "in_t2") (= "=") (pointer_expression "*(uint **)(param_2 + 0x38)" (* "*") (cast_expression "(uint **)(param_2 + 0x38)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x38)" (( "(") (binary_expression "param_2 + 0x38" (identifier "param_2") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "in_t0 = *(uint ***)(param_2 + 0x28);" (assignment_expression "in_t0 = *(uint ***)(param_2 + 0x28)" (identifier "in_t0") (= "=") (pointer_expression "*(uint ***)(param_2 + 0x28)" (* "*") (cast_expression "(uint ***)(param_2 + 0x28)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(param_2 + 0x28)" (( "(") (binary_expression "param_2 + 0x28" (identifier "param_2") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);" (call_expression "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" (( "(") (pointer_expression "*(code *)PTR___fprintf_chk_00038280" (* "*") (cast_expression "(code *)PTR___fprintf_chk_00038280" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___fprintf_chk_00038280"))) () ")")) (argument_list "(ppuVar28,1,PTR_LAB_0003811c + 0x5138)" (( "(") (identifier "ppuVar28") (, ",") (number_literal "1") (, ",") (binary_expression "PTR_LAB_0003811c + 0x5138" (identifier "PTR_LAB_0003811c") (+ "+") (number_literal "0x5138")) () ")"))) (; ";")) (expression_statement "*(undefined1 *)(param_2 + 0xb6) = 1;" (assignment_expression "*(undefined1 *)(param_2 + 0xb6) = 1" (pointer_expression "*(undefined1 *)(param_2 + 0xb6)" (* "*") (cast_expression "(undefined1 *)(param_2 + 0xb6)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xb6)" (( "(") (binary_expression "param_2 + 0xb6" (identifier "param_2") (+ "+") (number_literal "0xb6")) () ")")))) (= "=") (number_literal "1")) (; ";")) (if_statement "if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) {\n        ppuVar28 = *(uint ***)puVar4;\n        uVar18 = 1;\n        goto LAB_00014a80;\n      }" (if "if") (parenthesized_expression "(*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb))" (( "(") (binary_expression "*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)" (pointer_expression "*(char *)(param_2 + 0xb4)" (* "*") (cast_expression "(char *)(param_2 + 0xb4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xb4)" (( "(") (binary_expression "param_2 + 0xb4" (identifier "param_2") (+ "+") (number_literal "0xb4")) () ")")))) (== "==") (pointer_expression "*(char *)(param_2 + 0xbb)" (* "*") (cast_expression "(char *)(param_2 + 0xbb)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xbb)" (( "(") (binary_expression "param_2 + 0xbb" (identifier "param_2") (+ "+") (number_literal "0xbb")) () ")"))))) () ")")) (compound_statement "{\n        ppuVar28 = *(uint ***)puVar4;\n        uVar18 = 1;\n        goto LAB_00014a80;\n      }" ({ "{") (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" (identifier "ppuVar28") (= "=") (pointer_expression "*(uint ***)puVar4" (* "*") (cast_expression "(uint ***)puVar4" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "puVar4")))) (; ";")) (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" (identifier "uVar18") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00014a80;" (goto "goto") (statement_identifier "LAB_00014a80") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);" (call_expression "(*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4)" (parenthesized_expression "(*(code *)PTR_fputc_00038298)" (( "(") (pointer_expression "*(code *)PTR_fputc_00038298" (* "*") (cast_expression "(code *)PTR_fputc_00038298" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fputc_00038298"))) () ")")) (argument_list "(0x20,*(undefined4 *)puVar4)" (( "(") (number_literal "0x20") (, ",") (pointer_expression "*(undefined4 *)puVar4" (* "*") (cast_expression "(undefined4 *)puVar4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) () ")"))) (; ";")) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" (identifier "ppuVar28") (= "=") (pointer_expression "*(uint ***)puVar4" (* "*") (cast_expression "(uint ***)puVar4" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "puVar4")))) (; ";")) (} "}")) (else_clause "else if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) goto LAB_00014c7c;" (else "else") (if_statement "if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) goto LAB_00014c7c;" (if "if") (parenthesized_expression "(*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb))" (( "(") (binary_expression "*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)" (pointer_expression "*(char *)(param_2 + 0xb4)" (* "*") (cast_expression "(char *)(param_2 + 0xb4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xb4)" (( "(") (binary_expression "param_2 + 0xb4" (identifier "param_2") (+ "+") (number_literal "0xb4")) () ")")))) (== "==") (pointer_expression "*(char *)(param_2 + 0xbb)" (* "*") (cast_expression "(char *)(param_2 + 0xbb)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xbb)" (( "(") (binary_expression "param_2 + 0xbb" (identifier "param_2") (+ "+") (number_literal "0xbb")) () ")"))))) () ")")) (goto_statement "goto LAB_00014c7c;" (goto "goto") (statement_identifier "LAB_00014c7c") (; ";"))))) (labeled_statement "LAB_00014a30:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);" (statement_identifier "LAB_00014a30") (: ":") (expression_statement "uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);" (assignment_expression "uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5)" (identifier "uVar5") (= "=") (call_expression "(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00038338)" (( "(") (pointer_expression "*(code *)PTR_dcgettext_00038338" (* "*") (cast_expression "(code *)PTR_dcgettext_00038338" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dcgettext_00038338"))) () ")")) (argument_list "(0,PTR_LAB_0003811c + 0x5158,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_LAB_0003811c + 0x5158" (identifier "PTR_LAB_0003811c") (+ "+") (number_literal "0x5158")) (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "in_t0 = *(uint ***)(param_2 + 0x28);" (assignment_expression "in_t0 = *(uint ***)(param_2 + 0x28)" (identifier "in_t0") (= "=") (pointer_expression "*(uint ***)(param_2 + 0x28)" (* "*") (cast_expression "(uint ***)(param_2 + 0x28)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(param_2 + 0x28)" (( "(") (binary_expression "param_2 + 0x28" (identifier "param_2") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);" (call_expression "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" (( "(") (pointer_expression "*(code *)PTR___fprintf_chk_00038280" (* "*") (cast_expression "(code *)PTR___fprintf_chk_00038280" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___fprintf_chk_00038280"))) () ")")) (argument_list "(ppuVar28,1,uVar5)" (( "(") (identifier "ppuVar28") (, ",") (number_literal "1") (, ",") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" (identifier "uVar18") (= "=") (number_literal "1")) (; ";")) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" (identifier "ppuVar28") (= "=") (pointer_expression "*(uint ***)puVar4" (* "*") (cast_expression "(uint ***)puVar4" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "puVar4")))) (; ";")) (expression_statement "*(undefined1 *)(param_2 + 0xbb) = *(undefined1 *)(param_2 + 0xb4);" (assignment_expression "*(undefined1 *)(param_2 + 0xbb) = *(undefined1 *)(param_2 + 0xb4)" (pointer_expression "*(undefined1 *)(param_2 + 0xbb)" (* "*") (cast_expression "(undefined1 *)(param_2 + 0xbb)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xbb)" (( "(") (binary_expression "param_2 + 0xbb" (identifier "param_2") (+ "+") (number_literal "0xbb")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)(param_2 + 0xb4)" (* "*") (cast_expression "(undefined1 *)(param_2 + 0xb4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xb4)" (( "(") (binary_expression "param_2 + 0xb4" (identifier "param_2") (+ "+") (number_literal "0xb4")) () ")"))))) (; ";")) (} "}")))) (labeled_statement "LAB_00014a80:\n  if ((*(int *)(param_2 + 0xac) == 0) || (*(char *)(param_2 + 0xb9) != '\0')) {\n    if ((*(int *)(param_2 + 0xa0) != 0) && (*(char *)(param_2 + 0xb7) == '\0')) {\n      if (uVar18 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);\n      uVar5 = FUN_00014838(param_2,auStack_80);\n      in_t0 = *(uint ***)(param_2 + 8);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar18 = 1;\n      *(undefined1 *)(param_2 + 0xb7) = 1;\n    }\n  }\n  else {\n    in_t3 = *(uint *)(param_2 + 0x54);\n    in_t2 = *(uint **)(param_2 + 0x50);\n    in_t0 = *(uint ***)(param_2 + 0x48);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168);\n    if (*(int *)(param_2 + 0x5c) != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }\n    ppuVar28 = *(uint ***)puVar4;\n    if (*(int *)(param_2 + 0x1c) == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    *(undefined1 *)(param_2 + 0xb9) = 1;\n    if (*(int *)(param_2 + 0xa0) == 0) {\n      uVar18 = 1;\n    }\n    else {\n      uVar18 = (uint)*(byte *)(param_2 + 0xb7);\n      if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }\n  }" (statement_identifier "LAB_00014a80") (: ":") (if_statement "if ((*(int *)(param_2 + 0xac) == 0) || (*(char *)(param_2 + 0xb9) != '\0')) {\n    if ((*(int *)(param_2 + 0xa0) != 0) && (*(char *)(param_2 + 0xb7) == '\0')) {\n      if (uVar18 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);\n      uVar5 = FUN_00014838(param_2,auStack_80);\n      in_t0 = *(uint ***)(param_2 + 8);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar18 = 1;\n      *(undefined1 *)(param_2 + 0xb7) = 1;\n    }\n  }\n  else {\n    in_t3 = *(uint *)(param_2 + 0x54);\n    in_t2 = *(uint **)(param_2 + 0x50);\n    in_t0 = *(uint ***)(param_2 + 0x48);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168);\n    if (*(int *)(param_2 + 0x5c) != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }\n    ppuVar28 = *(uint ***)puVar4;\n    if (*(int *)(param_2 + 0x1c) == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    *(undefined1 *)(param_2 + 0xb9) = 1;\n    if (*(int *)(param_2 + 0xa0) == 0) {\n      uVar18 = 1;\n    }\n    else {\n      uVar18 = (uint)*(byte *)(param_2 + 0xb7);\n      if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }\n  }" (if "if") (parenthesized_expression "((*(int *)(param_2 + 0xac) == 0) || (*(char *)(param_2 + 0xb9) != '\0'))" (( "(") (binary_expression "(*(int *)(param_2 + 0xac) == 0) || (*(char *)(param_2 + 0xb9) != '\0')" (parenthesized_expression "(*(int *)(param_2 + 0xac) == 0)" (( "(") (binary_expression "*(int *)(param_2 + 0xac) == 0" (pointer_expression "*(int *)(param_2 + 0xac)" (* "*") (cast_expression "(int *)(param_2 + 0xac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xac)" (( "(") (binary_expression "param_2 + 0xac" (identifier "param_2") (+ "+") (number_literal "0xac")) () ")")))) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(char *)(param_2 + 0xb9) != '\0')" (( "(") (binary_expression "*(char *)(param_2 + 0xb9) != '\0'" (pointer_expression "*(char *)(param_2 + 0xb9)" (* "*") (cast_expression "(char *)(param_2 + 0xb9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xb9)" (( "(") (binary_expression "param_2 + 0xb9" (identifier "param_2") (+ "+") (number_literal "0xb9")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    if ((*(int *)(param_2 + 0xa0) != 0) && (*(char *)(param_2 + 0xb7) == '\0')) {\n      if (uVar18 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);\n      uVar5 = FUN_00014838(param_2,auStack_80);\n      in_t0 = *(uint ***)(param_2 + 8);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar18 = 1;\n      *(undefined1 *)(param_2 + 0xb7) = 1;\n    }\n  }" ({ "{") (if_statement "if ((*(int *)(param_2 + 0xa0) != 0) && (*(char *)(param_2 + 0xb7) == '\0')) {\n      if (uVar18 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);\n      uVar5 = FUN_00014838(param_2,auStack_80);\n      in_t0 = *(uint ***)(param_2 + 8);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar18 = 1;\n      *(undefined1 *)(param_2 + 0xb7) = 1;\n    }" (if "if") (parenthesized_expression "((*(int *)(param_2 + 0xa0) != 0) && (*(char *)(param_2 + 0xb7) == '\0'))" (( "(") (binary_expression "(*(int *)(param_2 + 0xa0) != 0) && (*(char *)(param_2 + 0xb7) == '\0')" (parenthesized_expression "(*(int *)(param_2 + 0xa0) != 0)" (( "(") (binary_expression "*(int *)(param_2 + 0xa0) != 0" (pointer_expression "*(int *)(param_2 + 0xa0)" (* "*") (cast_expression "(int *)(param_2 + 0xa0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xa0)" (( "(") (binary_expression "param_2 + 0xa0" (identifier "param_2") (+ "+") (number_literal "0xa0")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(param_2 + 0xb7) == '\0')" (( "(") (binary_expression "*(char *)(param_2 + 0xb7) == '\0'" (pointer_expression "*(char *)(param_2 + 0xb7)" (* "*") (cast_expression "(char *)(param_2 + 0xb7)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xb7)" (( "(") (binary_expression "param_2 + 0xb7" (identifier "param_2") (+ "+") (number_literal "0xb7")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      if (uVar18 != 0) goto LAB_00014d08;\nLAB_00014ab8:\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);\n      uVar5 = FUN_00014838(param_2,auStack_80);\n      in_t0 = *(uint ***)(param_2 + 8);\n      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n      ppuVar28 = *(uint ***)puVar4;\n      uVar18 = 1;\n      *(undefined1 *)(param_2 + 0xb7) = 1;\n    }" ({ "{") (if_statement "if (uVar18 != 0) goto LAB_00014d08;" (if "if") (parenthesized_expression "(uVar18 != 0)" (( "(") (binary_expression "uVar18 != 0" (identifier "uVar18") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00014d08;" (goto "goto") (statement_identifier "LAB_00014d08") (; ";"))) (labeled_statement "LAB_00014ab8:\n      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);" (statement_identifier "LAB_00014ab8") (: ":") (expression_statement "unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);" (assignment_expression "unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5)" (identifier "unaff_s4") (= "=") (cast_expression "(undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00038338)" (( "(") (pointer_expression "*(code *)PTR_dcgettext_00038338" (* "*") (cast_expression "(code *)PTR_dcgettext_00038338" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dcgettext_00038338"))) () ")")) (argument_list "(0,PTR_LAB_0003811c + 0x518c,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_LAB_0003811c + 0x518c" (identifier "PTR_LAB_0003811c") (+ "+") (number_literal "0x518c")) (, ",") (number_literal "5") () ")"))))) (; ";"))) (expression_statement "uVar5 = FUN_00014838(param_2,auStack_80);" (assignment_expression "uVar5 = FUN_00014838(param_2,auStack_80)" (identifier "uVar5") (= "=") (call_expression "FUN_00014838(param_2,auStack_80)" (identifier "FUN_00014838") (argument_list "(param_2,auStack_80)" (( "(") (identifier "param_2") (, ",") (identifier "auStack_80") () ")")))) (; ";")) (expression_statement "in_t0 = *(uint ***)(param_2 + 8);" (assignment_expression "in_t0 = *(uint ***)(param_2 + 8)" (identifier "in_t0") (= "=") (pointer_expression "*(uint ***)(param_2 + 8)" (* "*") (cast_expression "(uint ***)(param_2 + 8)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);" (call_expression "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" (( "(") (pointer_expression "*(code *)PTR___fprintf_chk_00038280" (* "*") (cast_expression "(code *)PTR___fprintf_chk_00038280" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___fprintf_chk_00038280"))) () ")")) (argument_list "(ppuVar28,1,unaff_s4,uVar5)" (( "(") (identifier "ppuVar28") (, ",") (number_literal "1") (, ",") (identifier "unaff_s4") (, ",") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" (identifier "ppuVar28") (= "=") (pointer_expression "*(uint ***)puVar4" (* "*") (cast_expression "(uint ***)puVar4" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "puVar4")))) (; ";")) (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" (identifier "uVar18") (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined1 *)(param_2 + 0xb7) = 1;" (assignment_expression "*(undefined1 *)(param_2 + 0xb7) = 1" (pointer_expression "*(undefined1 *)(param_2 + 0xb7)" (* "*") (cast_expression "(undefined1 *)(param_2 + 0xb7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xb7)" (( "(") (binary_expression "param_2 + 0xb7" (identifier "param_2") (+ "+") (number_literal "0xb7")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    in_t3 = *(uint *)(param_2 + 0x54);\n    in_t2 = *(uint **)(param_2 + 0x50);\n    in_t0 = *(uint ***)(param_2 + 0x48);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168);\n    if (*(int *)(param_2 + 0x5c) != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }\n    ppuVar28 = *(uint ***)puVar4;\n    if (*(int *)(param_2 + 0x1c) == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    *(undefined1 *)(param_2 + 0xb9) = 1;\n    if (*(int *)(param_2 + 0xa0) == 0) {\n      uVar18 = 1;\n    }\n    else {\n      uVar18 = (uint)*(byte *)(param_2 + 0xb7);\n      if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }\n  }" (else "else") (compound_statement "{\n    in_t3 = *(uint *)(param_2 + 0x54);\n    in_t2 = *(uint **)(param_2 + 0x50);\n    in_t0 = *(uint ***)(param_2 + 0x48);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168);\n    if (*(int *)(param_2 + 0x5c) != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }\n    ppuVar28 = *(uint ***)puVar4;\n    if (*(int *)(param_2 + 0x1c) == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    *(undefined1 *)(param_2 + 0xb9) = 1;\n    if (*(int *)(param_2 + 0xa0) == 0) {\n      uVar18 = 1;\n    }\n    else {\n      uVar18 = (uint)*(byte *)(param_2 + 0xb7);\n      if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }\n  }" ({ "{") (expression_statement "in_t3 = *(uint *)(param_2 + 0x54);" (assignment_expression "in_t3 = *(uint *)(param_2 + 0x54)" (identifier "in_t3") (= "=") (pointer_expression "*(uint *)(param_2 + 0x54)" (* "*") (cast_expression "(uint *)(param_2 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x54)" (( "(") (binary_expression "param_2 + 0x54" (identifier "param_2") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (expression_statement "in_t2 = *(uint **)(param_2 + 0x50);" (assignment_expression "in_t2 = *(uint **)(param_2 + 0x50)" (identifier "in_t2") (= "=") (pointer_expression "*(uint **)(param_2 + 0x50)" (* "*") (cast_expression "(uint **)(param_2 + 0x50)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x50)" (( "(") (binary_expression "param_2 + 0x50" (identifier "param_2") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (expression_statement "in_t0 = *(uint ***)(param_2 + 0x48);" (assignment_expression "in_t0 = *(uint ***)(param_2 + 0x48)" (identifier "in_t0") (= "=") (pointer_expression "*(uint ***)(param_2 + 0x48)" (* "*") (cast_expression "(uint ***)(param_2 + 0x48)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(param_2 + 0x48)" (( "(") (binary_expression "param_2 + 0x48" (identifier "param_2") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168);" (call_expression "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" (( "(") (pointer_expression "*(code *)PTR___fprintf_chk_00038280" (* "*") (cast_expression "(code *)PTR___fprintf_chk_00038280" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___fprintf_chk_00038280"))) () ")")) (argument_list "(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168)" (( "(") (identifier "ppuVar28") (, ",") (number_literal "1") (, ",") (binary_expression "PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168" (binary_expression "PTR_LAB_0003811c + (uVar18 ^ 1)" (identifier "PTR_LAB_0003811c") (+ "+") (parenthesized_expression "(uVar18 ^ 1)" (( "(") (binary_expression "uVar18 ^ 1" (identifier "uVar18") (^ "^") (number_literal "1")) () ")"))) (+ "+") (number_literal "0x5168")) () ")"))) (; ";")) (if_statement "if (*(int *)(param_2 + 0x5c) != 0) {\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }" (if "if") (parenthesized_expression "(*(int *)(param_2 + 0x5c) != 0)" (( "(") (binary_expression "*(int *)(param_2 + 0x5c) != 0" (pointer_expression "*(int *)(param_2 + 0x5c)" (* "*") (cast_expression "(int *)(param_2 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x5c)" (( "(") (binary_expression "param_2 + 0x5c" (identifier "param_2") (+ "+") (number_literal "0x5c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);\n    }" ({ "{") (expression_statement "(*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);" (call_expression "(*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" (( "(") (pointer_expression "*(code *)PTR___fprintf_chk_00038280" (* "*") (cast_expression "(code *)PTR___fprintf_chk_00038280" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___fprintf_chk_00038280"))) () ")")) (argument_list "(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180)" (( "(") (pointer_expression "*(undefined4 *)puVar4" (* "*") (cast_expression "(undefined4 *)puVar4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) (, ",") (number_literal "1") (, ",") (binary_expression "PTR_LAB_0003811c + 0x5180" (identifier "PTR_LAB_0003811c") (+ "+") (number_literal "0x5180")) () ")"))) (; ";")) (} "}"))) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" (identifier "ppuVar28") (= "=") (pointer_expression "*(uint ***)puVar4" (* "*") (cast_expression "(uint ***)puVar4" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "puVar4")))) (; ";")) (if_statement "if (*(int *)(param_2 + 0x1c) == 1) {\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }" (if "if") (parenthesized_expression "(*(int *)(param_2 + 0x1c) == 1)" (( "(") (binary_expression "*(int *)(param_2 + 0x1c) == 1" (pointer_expression "*(int *)(param_2 + 0x1c)" (* "*") (cast_expression "(int *)(param_2 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);\n      ppuVar28 = *(uint ***)puVar4;\n    }" ({ "{") (expression_statement "(*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);" (call_expression "(*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28)" (parenthesized_expression "(*(code *)PTR_fwrite_00038324)" (( "(") (pointer_expression "*(code *)PTR_fwrite_00038324" (* "*") (cast_expression "(code *)PTR_fwrite_00038324" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fwrite_00038324"))) () ")")) (argument_list "(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28)" (( "(") (binary_expression "PTR_LAB_0003811c + 0x5188" (identifier "PTR_LAB_0003811c") (+ "+") (number_literal "0x5188")) (, ",") (number_literal "1") (, ",") (number_literal "2") (, ",") (identifier "ppuVar28") () ")"))) (; ";")) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" (identifier "ppuVar28") (= "=") (pointer_expression "*(uint ***)puVar4" (* "*") (cast_expression "(uint ***)puVar4" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "puVar4")))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)(param_2 + 0xb9) = 1;" (assignment_expression "*(undefined1 *)(param_2 + 0xb9) = 1" (pointer_expression "*(undefined1 *)(param_2 + 0xb9)" (* "*") (cast_expression "(undefined1 *)(param_2 + 0xb9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xb9)" (( "(") (binary_expression "param_2 + 0xb9" (identifier "param_2") (+ "+") (number_literal "0xb9")) () ")")))) (= "=") (number_literal "1")) (; ";")) (if_statement "if (*(int *)(param_2 + 0xa0) == 0) {\n      uVar18 = 1;\n    }\n    else {\n      uVar18 = (uint)*(byte *)(param_2 + 0xb7);\n      if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }" (if "if") (parenthesized_expression "(*(int *)(param_2 + 0xa0) == 0)" (( "(") (binary_expression "*(int *)(param_2 + 0xa0) == 0" (pointer_expression "*(int *)(param_2 + 0xa0)" (* "*") (cast_expression "(int *)(param_2 + 0xa0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xa0)" (( "(") (binary_expression "param_2 + 0xa0" (identifier "param_2") (+ "+") (number_literal "0xa0")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar18 = 1;\n    }" ({ "{") (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" (identifier "uVar18") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n      uVar18 = (uint)*(byte *)(param_2 + 0xb7);\n      if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }" (else "else") (compound_statement "{\n      uVar18 = (uint)*(byte *)(param_2 + 0xb7);\n      if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }\n    }" ({ "{") (expression_statement "uVar18 = (uint)*(byte *)(param_2 + 0xb7);" (assignment_expression "uVar18 = (uint)*(byte *)(param_2 + 0xb7)" (identifier "uVar18") (= "=") (binary_expression "(uint)*(byte *)(param_2 + 0xb7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(param_2 + 0xb7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xb7)" (( "(") (binary_expression "param_2 + 0xb7" (identifier "param_2") (+ "+") (number_literal "0xb7")) () ")"))))) (; ";")) (if_statement "if (uVar18 == 0) {\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }" (if "if") (parenthesized_expression "(uVar18 == 0)" (( "(") (binary_expression "uVar18 == 0" (identifier "uVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n        ppuVar28 = *(uint ***)puVar4;\n        goto LAB_00014ab8;\n      }" ({ "{") (labeled_statement "LAB_00014d08:\n        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);" (statement_identifier "LAB_00014d08") (: ":") (expression_statement "(*(code *)PTR_fputc_00038298)(0x20,ppuVar28);" (call_expression "(*(code *)PTR_fputc_00038298)(0x20,ppuVar28)" (parenthesized_expression "(*(code *)PTR_fputc_00038298)" (( "(") (pointer_expression "*(code *)PTR_fputc_00038298" (* "*") (cast_expression "(code *)PTR_fputc_00038298" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fputc_00038298"))) () ")")) (argument_list "(0x20,ppuVar28)" (( "(") (number_literal "0x20") (, ",") (identifier "ppuVar28") () ")"))) (; ";"))) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" (identifier "ppuVar28") (= "=") (pointer_expression "*(uint ***)puVar4" (* "*") (cast_expression "(uint ***)puVar4" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "puVar4")))) (; ";")) (goto_statement "goto LAB_00014ab8;" (goto "goto") (statement_identifier "LAB_00014ab8") (; ";")) (} "}"))) (} "}")))) (} "}"))))) (if_statement "if ((*(int *)(param_2 + 0xa4) == 0) || (*(char *)(param_2 + 0xb8) != '\0')) {\n    if ((*(int *)(param_2 + 0xb0) == 0) ||\n       (unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0')) {\n      if (*(char *)(param_2 + 0x98) == '\0') goto LAB_00014bb0;\n      param_2 = *(int *)(param_2 + 0x58);\n      unaff_s4 = (undefined *)(param_2 >> 0x1f);\n      if (uVar18 != 0) goto LAB_00014d8c;\n      goto LAB_00014c1c;\n    }\n    unaff_s4 = PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5130;\nLAB_00014d38:\n    uVar5 = FUN_00013f30(*(undefined4 *)(param_2 + 0x18),auStack_80);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n    *(undefined1 *)(param_2 + 0xba) = 1;\n    if (*(char *)(param_2 + 0x98) != '\0') {\n      param_2 = *(int *)(param_2 + 0x58);\n      ppuVar28 = *(uint ***)puVar4;\n      goto LAB_00014d88;\n    }\n  }\n  else {\n    (*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac,*(undefined4 *)(param_2 + 0x14));\n    *(undefined1 *)(param_2 + 0xb8) = 1;\n    if (*(int *)(param_2 + 0xb0) == 0) {\n      cVar1 = *(char *)(param_2 + 0x98);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (*(char *)(param_2 + 0xba) == '\0') {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = *(char *)(param_2 + 0x98);\n    }\n    if (cVar1 == '\0') goto LAB_00014bb0;\n    param_2 = *(int *)(param_2 + 0x58);\nLAB_00014d88:\n    unaff_s4 = (undefined *)(param_2 >> 0x1f);\nLAB_00014d8c:\n    (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n    ppuVar28 = *(uint ***)puVar4;\nLAB_00014c1c:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n  }" (if "if") (parenthesized_expression "((*(int *)(param_2 + 0xa4) == 0) || (*(char *)(param_2 + 0xb8) != '\0'))" (( "(") (binary_expression "(*(int *)(param_2 + 0xa4) == 0) || (*(char *)(param_2 + 0xb8) != '\0')" (parenthesized_expression "(*(int *)(param_2 + 0xa4) == 0)" (( "(") (binary_expression "*(int *)(param_2 + 0xa4) == 0" (pointer_expression "*(int *)(param_2 + 0xa4)" (* "*") (cast_expression "(int *)(param_2 + 0xa4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xa4)" (( "(") (binary_expression "param_2 + 0xa4" (identifier "param_2") (+ "+") (number_literal "0xa4")) () ")")))) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(char *)(param_2 + 0xb8) != '\0')" (( "(") (binary_expression "*(char *)(param_2 + 0xb8) != '\0'" (pointer_expression "*(char *)(param_2 + 0xb8)" (* "*") (cast_expression "(char *)(param_2 + 0xb8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xb8)" (( "(") (binary_expression "param_2 + 0xb8" (identifier "param_2") (+ "+") (number_literal "0xb8")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    if ((*(int *)(param_2 + 0xb0) == 0) ||\n       (unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0')) {\n      if (*(char *)(param_2 + 0x98) == '\0') goto LAB_00014bb0;\n      param_2 = *(int *)(param_2 + 0x58);\n      unaff_s4 = (undefined *)(param_2 >> 0x1f);\n      if (uVar18 != 0) goto LAB_00014d8c;\n      goto LAB_00014c1c;\n    }\n    unaff_s4 = PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5130;\nLAB_00014d38:\n    uVar5 = FUN_00013f30(*(undefined4 *)(param_2 + 0x18),auStack_80);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);\n    *(undefined1 *)(param_2 + 0xba) = 1;\n    if (*(char *)(param_2 + 0x98) != '\0') {\n      param_2 = *(int *)(param_2 + 0x58);\n      ppuVar28 = *(uint ***)puVar4;\n      goto LAB_00014d88;\n    }\n  }" ({ "{") (if_statement "if ((*(int *)(param_2 + 0xb0) == 0) ||\n       (unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0')) {\n      if (*(char *)(param_2 + 0x98) == '\0') goto LAB_00014bb0;\n      param_2 = *(int *)(param_2 + 0x58);\n      unaff_s4 = (undefined *)(param_2 >> 0x1f);\n      if (uVar18 != 0) goto LAB_00014d8c;\n      goto LAB_00014c1c;\n    }" (if "if") (parenthesized_expression "((*(int *)(param_2 + 0xb0) == 0) ||\n       (unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0'))" (( "(") (binary_expression "(*(int *)(param_2 + 0xb0) == 0) ||\n       (unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0')" (parenthesized_expression "(*(int *)(param_2 + 0xb0) == 0)" (( "(") (binary_expression "*(int *)(param_2 + 0xb0) == 0" (pointer_expression "*(int *)(param_2 + 0xb0)" (* "*") (cast_expression "(int *)(param_2 + 0xb0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xb0)" (( "(") (binary_expression "param_2 + 0xb0" (identifier "param_2") (+ "+") (number_literal "0xb0")) () ")")))) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0')" (( "(") (comma_expression "unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0'" (assignment_expression "unaff_s4 = PTR_LAB_0003811c" (identifier "unaff_s4") (= "=") (identifier "PTR_LAB_0003811c")) (, ",") (binary_expression "*(char *)(param_2 + 0xba) != '\0'" (pointer_expression "*(char *)(param_2 + 0xba)" (* "*") (cast_expression "(char *)(param_2 + 0xba)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xba)" (( "(") (binary_expression "param_2 + 0xba" (identifier "param_2") (+ "+") (number_literal "0xba")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n      if (*(char *)(param_2 + 0x98) == '\0') goto LAB_00014bb0;\n      param_2 = *(int *)(param_2 + 0x58);\n      unaff_s4 = (undefined *)(param_2 >> 0x1f);\n      if (uVar18 != 0) goto LAB_00014d8c;\n      goto LAB_00014c1c;\n    }" ({ "{") (if_statement "if (*(char *)(param_2 + 0x98) == '\0') goto LAB_00014bb0;" (if "if") (parenthesized_expression "(*(char *)(param_2 + 0x98) == '\0')" (( "(") (binary_expression "*(char *)(param_2 + 0x98) == '\0'" (pointer_expression "*(char *)(param_2 + 0x98)" (* "*") (cast_expression "(char *)(param_2 + 0x98)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x98)" (( "(") (binary_expression "param_2 + 0x98" (identifier "param_2") (+ "+") (number_literal "0x98")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00014bb0;" (goto "goto") (statement_identifier "LAB_00014bb0") (; ";"))) (expression_statement "param_2 = *(int *)(param_2 + 0x58);" (assignment_expression "param_2 = *(int *)(param_2 + 0x58)" (identifier "param_2") (= "=") (pointer_expression "*(int *)(param_2 + 0x58)" (* "*") (cast_expression "(int *)(param_2 + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x58)" (( "(") (binary_expression "param_2 + 0x58" (identifier "param_2") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (expression_statement "unaff_s4 = (undefined *)(param_2 >> 0x1f);" (assignment_expression "unaff_s4 = (undefined *)(param_2 >> 0x1f)" (identifier "unaff_s4") (= "=") (cast_expression "(undefined *)(param_2 >> 0x1f)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 >> 0x1f)" (( "(") (binary_expression "param_2 >> 0x1f" (identifier "param_2") (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (if_statement "if (uVar18 != 0) goto LAB_00014d8c;" (if "if") (parenthesized_expression "(uVar18 != 0)" (( "(") (binary_expression "uVar18 != 0" (identifier "uVar18") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00014d8c;" (goto "goto") (statement_identifier "LAB_00014d8c") (; ";"))) (goto_statement "goto LAB_00014c1c;" (goto "goto") (statement_identifier "LAB_00014c1c") (; ";")) (} "}"))) (expression_statement "unaff_s4 = PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5130;" (assignment_expression "unaff_s4 = PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5130" (identifier "unaff_s4") (= "=") (binary_expression "PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5130" (binary_expression "PTR_LAB_0003811c + (uVar18 ^ 1)" (identifier "PTR_LAB_0003811c") (+ "+") (parenthesized_expression "(uVar18 ^ 1)" (( "(") (binary_expression "uVar18 ^ 1" (identifier "uVar18") (^ "^") (number_literal "1")) () ")"))) (+ "+") (number_literal "0x5130"))) (; ";")) (labeled_statement "LAB_00014d38:\n    uVar5 = FUN_00013f30(*(undefined4 *)(param_2 + 0x18),auStack_80);" (statement_identifier "LAB_00014d38") (: ":") (expression_statement "uVar5 = FUN_00013f30(*(undefined4 *)(param_2 + 0x18),auStack_80);" (assignment_expression "uVar5 = FUN_00013f30(*(undefined4 *)(param_2 + 0x18),auStack_80)" (identifier "uVar5") (= "=") (call_expression "FUN_00013f30(*(undefined4 *)(param_2 + 0x18),auStack_80)" (identifier "FUN_00013f30") (argument_list "(*(undefined4 *)(param_2 + 0x18),auStack_80)" (( "(") (pointer_expression "*(undefined4 *)(param_2 + 0x18)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (identifier "auStack_80") () ")")))) (; ";"))) (expression_statement "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);" (call_expression "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" (( "(") (pointer_expression "*(code *)PTR___fprintf_chk_00038280" (* "*") (cast_expression "(code *)PTR___fprintf_chk_00038280" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___fprintf_chk_00038280"))) () ")")) (argument_list "(ppuVar28,1,unaff_s4,uVar5)" (( "(") (identifier "ppuVar28") (, ",") (number_literal "1") (, ",") (identifier "unaff_s4") (, ",") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "*(undefined1 *)(param_2 + 0xba) = 1;" (assignment_expression "*(undefined1 *)(param_2 + 0xba) = 1" (pointer_expression "*(undefined1 *)(param_2 + 0xba)" (* "*") (cast_expression "(undefined1 *)(param_2 + 0xba)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xba)" (( "(") (binary_expression "param_2 + 0xba" (identifier "param_2") (+ "+") (number_literal "0xba")) () ")")))) (= "=") (number_literal "1")) (; ";")) (if_statement "if (*(char *)(param_2 + 0x98) != '\0') {\n      param_2 = *(int *)(param_2 + 0x58);\n      ppuVar28 = *(uint ***)puVar4;\n      goto LAB_00014d88;\n    }" (if "if") (parenthesized_expression "(*(char *)(param_2 + 0x98) != '\0')" (( "(") (binary_expression "*(char *)(param_2 + 0x98) != '\0'" (pointer_expression "*(char *)(param_2 + 0x98)" (* "*") (cast_expression "(char *)(param_2 + 0x98)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x98)" (( "(") (binary_expression "param_2 + 0x98" (identifier "param_2") (+ "+") (number_literal "0x98")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      param_2 = *(int *)(param_2 + 0x58);\n      ppuVar28 = *(uint ***)puVar4;\n      goto LAB_00014d88;\n    }" ({ "{") (expression_statement "param_2 = *(int *)(param_2 + 0x58);" (assignment_expression "param_2 = *(int *)(param_2 + 0x58)" (identifier "param_2") (= "=") (pointer_expression "*(int *)(param_2 + 0x58)" (* "*") (cast_expression "(int *)(param_2 + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x58)" (( "(") (binary_expression "param_2 + 0x58" (identifier "param_2") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" (identifier "ppuVar28") (= "=") (pointer_expression "*(uint ***)puVar4" (* "*") (cast_expression "(uint ***)puVar4" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "puVar4")))) (; ";")) (goto_statement "goto LAB_00014d88;" (goto "goto") (statement_identifier "LAB_00014d88") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    (*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac,*(undefined4 *)(param_2 + 0x14));\n    *(undefined1 *)(param_2 + 0xb8) = 1;\n    if (*(int *)(param_2 + 0xb0) == 0) {\n      cVar1 = *(char *)(param_2 + 0x98);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (*(char *)(param_2 + 0xba) == '\0') {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = *(char *)(param_2 + 0x98);\n    }\n    if (cVar1 == '\0') goto LAB_00014bb0;\n    param_2 = *(int *)(param_2 + 0x58);\nLAB_00014d88:\n    unaff_s4 = (undefined *)(param_2 >> 0x1f);\nLAB_00014d8c:\n    (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n    ppuVar28 = *(uint ***)puVar4;\nLAB_00014c1c:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n  }" (else "else") (compound_statement "{\n    (*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac,*(undefined4 *)(param_2 + 0x14));\n    *(undefined1 *)(param_2 + 0xb8) = 1;\n    if (*(int *)(param_2 + 0xb0) == 0) {\n      cVar1 = *(char *)(param_2 + 0x98);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (*(char *)(param_2 + 0xba) == '\0') {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = *(char *)(param_2 + 0x98);\n    }\n    if (cVar1 == '\0') goto LAB_00014bb0;\n    param_2 = *(int *)(param_2 + 0x58);\nLAB_00014d88:\n    unaff_s4 = (undefined *)(param_2 >> 0x1f);\nLAB_00014d8c:\n    (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);\n    ppuVar28 = *(uint ***)puVar4;\nLAB_00014c1c:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);\n    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);\n  }" ({ "{") (expression_statement "(*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac,*(undefined4 *)(param_2 + 0x14));" (call_expression "(*(code *)PTR___fprintf_chk_00038280)\n              (ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac,*(undefined4 *)(param_2 + 0x14))" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" (( "(") (pointer_expression "*(code *)PTR___fprintf_chk_00038280" (* "*") (cast_expression "(code *)PTR___fprintf_chk_00038280" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___fprintf_chk_00038280"))) () ")")) (argument_list "(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac,*(undefined4 *)(param_2 + 0x14))" (( "(") (identifier "ppuVar28") (, ",") (number_literal "1") (, ",") (binary_expression "PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac" (binary_expression "PTR_LAB_0003811c + (uVar18 ^ 1)" (identifier "PTR_LAB_0003811c") (+ "+") (parenthesized_expression "(uVar18 ^ 1)" (( "(") (binary_expression "uVar18 ^ 1" (identifier "uVar18") (^ "^") (number_literal "1")) () ")"))) (+ "+") (number_literal "0x51ac")) (, ",") (pointer_expression "*(undefined4 *)(param_2 + 0x14)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x14)" (( "(") (binary_expression "param_2 + 0x14" (identifier "param_2") (+ "+") (number_literal "0x14")) () ")")))) () ")"))) (; ";")) (expression_statement "*(undefined1 *)(param_2 + 0xb8) = 1;" (assignment_expression "*(undefined1 *)(param_2 + 0xb8) = 1" (pointer_expression "*(undefined1 *)(param_2 + 0xb8)" (* "*") (cast_expression "(undefined1 *)(param_2 + 0xb8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xb8)" (( "(") (binary_expression "param_2 + 0xb8" (identifier "param_2") (+ "+") (number_literal "0xb8")) () ")")))) (= "=") (number_literal "1")) (; ";")) (if_statement "if (*(int *)(param_2 + 0xb0) == 0) {\n      cVar1 = *(char *)(param_2 + 0x98);\n      ppuVar28 = *(uint ***)puVar4;\n    }\n    else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (*(char *)(param_2 + 0xba) == '\0') {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = *(char *)(param_2 + 0x98);\n    }" (if "if") (parenthesized_expression "(*(int *)(param_2 + 0xb0) == 0)" (( "(") (binary_expression "*(int *)(param_2 + 0xb0) == 0" (pointer_expression "*(int *)(param_2 + 0xb0)" (* "*") (cast_expression "(int *)(param_2 + 0xb0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xb0)" (( "(") (binary_expression "param_2 + 0xb0" (identifier "param_2") (+ "+") (number_literal "0xb0")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      cVar1 = *(char *)(param_2 + 0x98);\n      ppuVar28 = *(uint ***)puVar4;\n    }" ({ "{") (expression_statement "cVar1 = *(char *)(param_2 + 0x98);" (assignment_expression "cVar1 = *(char *)(param_2 + 0x98)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)(param_2 + 0x98)" (* "*") (cast_expression "(char *)(param_2 + 0x98)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x98)" (( "(") (binary_expression "param_2 + 0x98" (identifier "param_2") (+ "+") (number_literal "0x98")) () ")"))))) (; ";")) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" (identifier "ppuVar28") (= "=") (pointer_expression "*(uint ***)puVar4" (* "*") (cast_expression "(uint ***)puVar4" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "puVar4")))) (; ";")) (} "}")) (else_clause "else {\n      ppuVar28 = *(uint ***)puVar4;\n      if (*(char *)(param_2 + 0xba) == '\0') {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = *(char *)(param_2 + 0x98);\n    }" (else "else") (compound_statement "{\n      ppuVar28 = *(uint ***)puVar4;\n      if (*(char *)(param_2 + 0xba) == '\0') {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }\n      cVar1 = *(char *)(param_2 + 0x98);\n    }" ({ "{") (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" (identifier "ppuVar28") (= "=") (pointer_expression "*(uint ***)puVar4" (* "*") (cast_expression "(uint ***)puVar4" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "puVar4")))) (; ";")) (if_statement "if (*(char *)(param_2 + 0xba) == '\0') {\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }" (if "if") (parenthesized_expression "(*(char *)(param_2 + 0xba) == '\0')" (( "(") (binary_expression "*(char *)(param_2 + 0xba) == '\0'" (pointer_expression "*(char *)(param_2 + 0xba)" (* "*") (cast_expression "(char *)(param_2 + 0xba)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xba)" (( "(") (binary_expression "param_2 + 0xba" (identifier "param_2") (+ "+") (number_literal "0xba")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        unaff_s4 = PTR_LAB_0003811c + 0x5130;\n        goto LAB_00014d38;\n      }" ({ "{") (expression_statement "unaff_s4 = PTR_LAB_0003811c + 0x5130;" (assignment_expression "unaff_s4 = PTR_LAB_0003811c + 0x5130" (identifier "unaff_s4") (= "=") (binary_expression "PTR_LAB_0003811c + 0x5130" (identifier "PTR_LAB_0003811c") (+ "+") (number_literal "0x5130"))) (; ";")) (goto_statement "goto LAB_00014d38;" (goto "goto") (statement_identifier "LAB_00014d38") (; ";")) (} "}"))) (expression_statement "cVar1 = *(char *)(param_2 + 0x98);" (assignment_expression "cVar1 = *(char *)(param_2 + 0x98)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)(param_2 + 0x98)" (* "*") (cast_expression "(char *)(param_2 + 0x98)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x98)" (( "(") (binary_expression "param_2 + 0x98" (identifier "param_2") (+ "+") (number_literal "0x98")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (cVar1 == '\0') goto LAB_00014bb0;" (if "if") (parenthesized_expression "(cVar1 == '\0')" (( "(") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00014bb0;" (goto "goto") (statement_identifier "LAB_00014bb0") (; ";"))) (expression_statement "param_2 = *(int *)(param_2 + 0x58);" (assignment_expression "param_2 = *(int *)(param_2 + 0x58)" (identifier "param_2") (= "=") (pointer_expression "*(int *)(param_2 + 0x58)" (* "*") (cast_expression "(int *)(param_2 + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x58)" (( "(") (binary_expression "param_2 + 0x58" (identifier "param_2") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (labeled_statement "LAB_00014d88:\n    unaff_s4 = (undefined *)(param_2 >> 0x1f);" (statement_identifier "LAB_00014d88") (: ":") (expression_statement "unaff_s4 = (undefined *)(param_2 >> 0x1f);" (assignment_expression "unaff_s4 = (undefined *)(param_2 >> 0x1f)" (identifier "unaff_s4") (= "=") (cast_expression "(undefined *)(param_2 >> 0x1f)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 >> 0x1f)" (( "(") (binary_expression "param_2 >> 0x1f" (identifier "param_2") (>> ">>") (number_literal "0x1f")) () ")")))) (; ";"))) (labeled_statement "LAB_00014d8c:\n    (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);" (statement_identifier "LAB_00014d8c") (: ":") (expression_statement "(*(code *)PTR_fputc_00038298)(0x20,ppuVar28);" (call_expression "(*(code *)PTR_fputc_00038298)(0x20,ppuVar28)" (parenthesized_expression "(*(code *)PTR_fputc_00038298)" (( "(") (pointer_expression "*(code *)PTR_fputc_00038298" (* "*") (cast_expression "(code *)PTR_fputc_00038298" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fputc_00038298"))) () ")")) (argument_list "(0x20,ppuVar28)" (( "(") (number_literal "0x20") (, ",") (identifier "ppuVar28") () ")"))) (; ";"))) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" (identifier "ppuVar28") (= "=") (pointer_expression "*(uint ***)puVar4" (* "*") (cast_expression "(uint ***)puVar4" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "puVar4")))) (; ";")) (labeled_statement "LAB_00014c1c:\n    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);" (statement_identifier "LAB_00014c1c") (: ":") (expression_statement "uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);" (assignment_expression "uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5)" (identifier "uVar5") (= "=") (call_expression "(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00038338)" (( "(") (pointer_expression "*(code *)PTR_dcgettext_00038338" (* "*") (cast_expression "(code *)PTR_dcgettext_00038338" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dcgettext_00038338"))) () ")")) (argument_list "(0,PTR_LAB_0003811c + 0x51b8,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_LAB_0003811c + 0x51b8" (identifier "PTR_LAB_0003811c") (+ "+") (number_literal "0x51b8")) (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);" (call_expression "(*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_00038280)" (( "(") (pointer_expression "*(code *)PTR___fprintf_chk_00038280" (* "*") (cast_expression "(code *)PTR___fprintf_chk_00038280" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___fprintf_chk_00038280"))) () ")")) (argument_list "(ppuVar28,1,uVar5)" (( "(") (identifier "ppuVar28") (, ",") (number_literal "1") (, ",") (identifier "uVar5") () ")"))) (; ";")) (} "}")))) (expression_statement "ppuVar28 = *(uint ***)puVar4;" (assignment_expression "ppuVar28 = *(uint ***)puVar4" (identifier "ppuVar28") (= "=") (pointer_expression "*(uint ***)puVar4" (* "*") (cast_expression "(uint ***)puVar4" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "puVar4")))) (; ";")) (labeled_statement "LAB_00014bb0:\n  puVar14 = (undefined4 *)&DAT_0000000a;" (statement_identifier "LAB_00014bb0") (: ":") (expression_statement "puVar14 = (undefined4 *)&DAT_0000000a;" (assignment_expression "puVar14 = (undefined4 *)&DAT_0000000a" (identifier "puVar14") (= "=") (cast_expression "(undefined4 *)&DAT_0000000a" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_0000000a" (& "&") (identifier "DAT_0000000a")))) (; ";"))) (expression_statement "ppuVar21 = ppuVar28;" (assignment_expression "ppuVar21 = ppuVar28" (identifier "ppuVar21") (= "=") (identifier "ppuVar28")) (; ";")) (expression_statement "(*(code *)PTR_fputc_00038298)();" (call_expression "(*(code *)PTR_fputc_00038298)()" (parenthesized_expression "(*(code *)PTR_fputc_00038298)" (( "(") (pointer_expression "*(code *)PTR_fputc_00038298" (* "*") (cast_expression "(code *)PTR_fputc_00038298" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fputc_00038298"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar6 = *(int *)puVar3;" (assignment_expression "iVar6 = *(int *)puVar3" (identifier "iVar6") (= "=") (pointer_expression "*(int *)puVar3" (* "*") (cast_expression "(int *)puVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3")))) (; ";")) (if_statement "if (local_1c == iVar6) {\n    return iVar6;\n  }" (if "if") (parenthesized_expression "(local_1c == iVar6)" (( "(") (binary_expression "local_1c == iVar6" (identifier "local_1c") (== "==") (identifier "iVar6")) () ")")) (compound_statement "{\n    return iVar6;\n  }" ({ "{") (return_statement "return iVar6;" (return "return") (identifier "iVar6") (; ";")) (} "}"))) (expression_statement "puVar33 = PTR___stack_chk_fail_00038334;" (assignment_expression "puVar33 = PTR___stack_chk_fail_00038334" (identifier "puVar33") (= "=") (identifier "PTR___stack_chk_fail_00038334")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_00038334)();" (call_expression "(*(code *)PTR___stack_chk_fail_00038334)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00038334)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_00038334" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_00038334" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_00038334"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar7 = *(int **)(puVar33 + 0x234a4);" (assignment_expression "piVar7 = *(int **)(puVar33 + 0x234a4)" (identifier "piVar7") (= "=") (pointer_expression "*(int **)(puVar33 + 0x234a4)" (* "*") (cast_expression "(int **)(puVar33 + 0x234a4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar33 + 0x234a4)" (( "(") (binary_expression "puVar33 + 0x234a4" (identifier "puVar33") (+ "+") (number_literal "0x234a4")) () ")"))))) (; ";")) (expression_statement "uVar18 = 0xfffffffe;" (assignment_expression "uVar18 = 0xfffffffe" (identifier "uVar18") (= "=") (number_literal "0xfffffffe")) (; ";")) (expression_statement "puStack_cc = puVar3;" (assignment_expression "puStack_cc = puVar3" (identifier "puStack_cc") (= "=") (identifier "puVar3")) (; ";")) (expression_statement "puVar31 = (uint *)&DAT_00000026;" (assignment_expression "puVar31 = (uint *)&DAT_00000026" (identifier "puVar31") (= "=") (cast_expression "(uint *)&DAT_00000026" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000026" (& "&") (identifier "DAT_00000026")))) (; ";")) (expression_statement "iStack_dc = *piVar7;" (assignment_expression "iStack_dc = *piVar7" (identifier "iStack_dc") (= "=") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) (; ";")) (expression_statement "iVar6 = *(int *)(puVar33 + 0x23270);" (assignment_expression "iVar6 = *(int *)(puVar33 + 0x23270)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(puVar33 + 0x23270)" (* "*") (cast_expression "(int *)(puVar33 + 0x23270)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar33 + 0x23270)" (( "(") (binary_expression "puVar33 + 0x23270" (identifier "puVar33") (+ "+") (number_literal "0x23270")) () ")"))))) (; ";")) (expression_statement "puStack_c8 = unaff_s4;" (assignment_expression "puStack_c8 = unaff_s4" (identifier "puStack_c8") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "puStack_d0 = puVar4;" (assignment_expression "puStack_d0 = puVar4" (identifier "puStack_d0") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "puVar13 = auStack_550;" (assignment_expression "puVar13 = auStack_550" (identifier "puVar13") (= "=") (identifier "auStack_550")) (; ";")) (expression_statement "ppuStack_d4 = ppuVar28;" (assignment_expression "ppuStack_d4 = ppuVar28" (identifier "ppuStack_d4") (= "=") (identifier "ppuVar28")) (; ";")) (expression_statement "puVar29 = (uint *)0xfffffffe;" (assignment_expression "puVar29 = (uint *)0xfffffffe" (identifier "puVar29") (= "=") (cast_expression "(uint *)0xfffffffe" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xfffffffe"))) (; ";")) (expression_statement "iVar30 = *(int *)(puVar33 + 0x23270) + 0x6250;" (assignment_expression "iVar30 = *(int *)(puVar33 + 0x23270) + 0x6250" (identifier "iVar30") (= "=") (binary_expression "*(int *)(puVar33 + 0x23270) + 0x6250" (pointer_expression "*(int *)(puVar33 + 0x23270)" (* "*") (cast_expression "(int *)(puVar33 + 0x23270)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar33 + 0x23270)" (( "(") (binary_expression "puVar33 + 0x23270" (identifier "puVar33") (+ "+") (number_literal "0x23270")) () ")")))) (+ "+") (number_literal "0x6250"))) (; ";")) (expression_statement "iStack_d8 = param_2;" (assignment_expression "iStack_d8 = param_2" (identifier "iStack_d8") (= "=") (identifier "param_2")) (; ";")) (expression_statement "puVar25 = (uint *)0x0;" (assignment_expression "puVar25 = (uint *)0x0" (identifier "puVar25") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar8 = *(int *)(puVar33 + 0x23270) + 0x62c4;" (assignment_expression "iVar8 = *(int *)(puVar33 + 0x23270) + 0x62c4" (identifier "iVar8") (= "=") (binary_expression "*(int *)(puVar33 + 0x23270) + 0x62c4" (pointer_expression "*(int *)(puVar33 + 0x23270)" (* "*") (cast_expression "(int *)(puVar33 + 0x23270)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar33 + 0x23270)" (( "(") (binary_expression "puVar33 + 0x23270" (identifier "puVar33") (+ "+") (number_literal "0x23270")) () ")")))) (+ "+") (number_literal "0x62c4"))) (; ";")) (expression_statement "asStack_578[0] = 0;" (assignment_expression "asStack_578[0] = 0" (subscript_expression "asStack_578[0]" (identifier "asStack_578") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iStack_670 = 0;" (assignment_expression "iStack_670 = 0" (identifier "iStack_670") (= "=") (number_literal "0")) (; ";")) (expression_statement "psVar32 = asStack_578;" (assignment_expression "psVar32 = asStack_578" (identifier "psVar32") (= "=") (identifier "asStack_578")) (; ";")) (labeled_statement "LAB_00014f50:\n  ppuVar28 = (uint **)0x800000;" (statement_identifier "LAB_00014f50") (: ":") (expression_statement "ppuVar28 = (uint **)0x800000;" (assignment_expression "ppuVar28 = (uint **)0x800000" (identifier "ppuVar28") (= "=") (cast_expression "(uint **)0x800000" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x800000"))) (; ";"))) (expression_statement "puVar19 = puVar31;" (assignment_expression "puVar19 = puVar31" (identifier "puVar19") (= "=") (identifier "puVar31")) (; ";")) (if_statement "if (puVar29 == (uint *)0xfffffffe) {\n    ppuVar21 = (uint **)*puVar14;\n    in_t2 = (uint *)0x1;\n    ppuVar28 = (uint **)0x80001f;\n    in_t4 = (uint **)0x2d;\n    bVar12 = *(byte *)ppuVar21;\n    in_t5 = 0x2b;\n    in_t6 = 0x28;\n    uVar18 = 0x29;\nLAB_000152f0:\n    in_t0 = (uint **)(int)(char)bVar12;\n    uVar15 = (uint)bVar12;\nLAB_000152f4:\n    uVar22 = uVar15 - 9;\n    ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n    if (ppuVar16 == (uint **)0x0) goto LAB_000153a8;\nLAB_00015308:\n    ppuVar11 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f);\n    while (ppuVar11 != (uint **)0x0) {\n      ppuVar21 = (uint **)((int)ppuVar21 + 1);\n      *puVar14 = ppuVar21;\n      in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n      uVar15 = (uint)*(byte *)ppuVar21;\n      ppuVar16 = (uint **)(uVar15 - 9);\n      if ((uint **)0x17 < ppuVar16) goto LAB_000153a8;\n      ppuVar16 = (uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f);\n      ppuVar11 = ppuVar16;\n    }\nLAB_00015344:\n    in_t3 = 0xffffffff;\n    if (uVar15 == 0x2d) goto LAB_00015358;\n    if (uVar15 == 0x2b) goto LAB_00015354;\n    if ((0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))\n       ) {\n      pbVar26 = (byte *)*puVar14;\n      ppuVar16 = (uint **)(abStack_f1 + 1);\n      in_t0 = (uint **)(abStack_f1 + 0x14);\n      ppuVar28 = (uint **)&DAT_0000002e;\n      ppuVar21 = ppuVar16;\n      do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        *puVar14 = pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));\n      *(byte *)ppuVar21 = 0;\n      ppuVar21 = ppuVar16;\n      bVar12 = abStack_f1[1];\n      while (bVar12 != 0) {\n        if (bVar12 - 0x61 < 0x1a) {\n          bVar12 = bVar12 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar12;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar12 = *(byte *)ppuVar21;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);\n      do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16);\n      if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);\n      do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      iVar9 = *(int *)(puVar33 + 0x2326c);\n      ppuVar21 = ppuVar16;\n      iVar10 = FUN_00014388(puVar14);\n      unaff_s6 = asStack_578;\n      if (iVar10 != 0) {\n        puVar29 = *(uint **)(iVar10 + 4);\n        apuStack_5e8[1] = *(uint **)(iVar10 + 8);\n        apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);\n      iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n      if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        ppuVar16 = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);\n      ppuVar11 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);\n      ppuVar21 = ppuVar11;\n      psVar27 = unaff_s6;\n      do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);\n      pbVar26 = (byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1));\n      if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar11 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);\n      pcVar34 = *(code **)(puVar33 + 0x234c8);\n      do {\n        iVar10 = (*pcVar34)(ppuVar16);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);\n      if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar11 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }\n      if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = ppuVar16;\n        ppuVar11 = ppuVar16;\n        bVar12 = abStack_f1[1];\n        do {\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        } while (bVar12 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }\n      ppuVar21 = *(uint ***)(puVar33 + 0x23270);\n      if (*(char *)((int)puVar14 + 0xb5) == '\0') goto LAB_00017ae0;\n      uVar5 = (**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5);\n      puVar29 = (uint *)0x3f;\n      FUN_00014188(uVar5);\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n      goto LAB_00014f74;\n    }\n    iVar9 = 0;\n    if (uVar15 == 0x28) {\n      ppuVar21 = (uint **)*puVar14;\n      goto LAB_000157a8;\n    }\n    *puVar14 = (byte *)((int)ppuVar21 + 1);\n    puVar29 = (uint *)(uint)*(byte *)ppuVar21;\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if (puVar29 != (uint *)0x0) goto LAB_0001558c;\n    uVar15 = 0;\n    goto LAB_00014f74;\n  }" (if "if") (parenthesized_expression "(puVar29 == (uint *)0xfffffffe)" (( "(") (binary_expression "puVar29 == (uint *)0xfffffffe" (identifier "puVar29") (== "==") (cast_expression "(uint *)0xfffffffe" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xfffffffe"))) () ")")) (compound_statement "{\n    ppuVar21 = (uint **)*puVar14;\n    in_t2 = (uint *)0x1;\n    ppuVar28 = (uint **)0x80001f;\n    in_t4 = (uint **)0x2d;\n    bVar12 = *(byte *)ppuVar21;\n    in_t5 = 0x2b;\n    in_t6 = 0x28;\n    uVar18 = 0x29;\nLAB_000152f0:\n    in_t0 = (uint **)(int)(char)bVar12;\n    uVar15 = (uint)bVar12;\nLAB_000152f4:\n    uVar22 = uVar15 - 9;\n    ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n    if (ppuVar16 == (uint **)0x0) goto LAB_000153a8;\nLAB_00015308:\n    ppuVar11 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f);\n    while (ppuVar11 != (uint **)0x0) {\n      ppuVar21 = (uint **)((int)ppuVar21 + 1);\n      *puVar14 = ppuVar21;\n      in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n      uVar15 = (uint)*(byte *)ppuVar21;\n      ppuVar16 = (uint **)(uVar15 - 9);\n      if ((uint **)0x17 < ppuVar16) goto LAB_000153a8;\n      ppuVar16 = (uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f);\n      ppuVar11 = ppuVar16;\n    }\nLAB_00015344:\n    in_t3 = 0xffffffff;\n    if (uVar15 == 0x2d) goto LAB_00015358;\n    if (uVar15 == 0x2b) goto LAB_00015354;\n    if ((0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))\n       ) {\n      pbVar26 = (byte *)*puVar14;\n      ppuVar16 = (uint **)(abStack_f1 + 1);\n      in_t0 = (uint **)(abStack_f1 + 0x14);\n      ppuVar28 = (uint **)&DAT_0000002e;\n      ppuVar21 = ppuVar16;\n      do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        *puVar14 = pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));\n      *(byte *)ppuVar21 = 0;\n      ppuVar21 = ppuVar16;\n      bVar12 = abStack_f1[1];\n      while (bVar12 != 0) {\n        if (bVar12 - 0x61 < 0x1a) {\n          bVar12 = bVar12 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar12;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar12 = *(byte *)ppuVar21;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);\n      do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16);\n      if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);\n      do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      iVar9 = *(int *)(puVar33 + 0x2326c);\n      ppuVar21 = ppuVar16;\n      iVar10 = FUN_00014388(puVar14);\n      unaff_s6 = asStack_578;\n      if (iVar10 != 0) {\n        puVar29 = *(uint **)(iVar10 + 4);\n        apuStack_5e8[1] = *(uint **)(iVar10 + 8);\n        apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);\n      iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n      if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        ppuVar16 = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);\n      ppuVar11 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);\n      ppuVar21 = ppuVar11;\n      psVar27 = unaff_s6;\n      do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);\n      pbVar26 = (byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1));\n      if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar11 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);\n      pcVar34 = *(code **)(puVar33 + 0x234c8);\n      do {\n        iVar10 = (*pcVar34)(ppuVar16);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);\n      if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar11 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }\n      if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = ppuVar16;\n        ppuVar11 = ppuVar16;\n        bVar12 = abStack_f1[1];\n        do {\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        } while (bVar12 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }\n      ppuVar21 = *(uint ***)(puVar33 + 0x23270);\n      if (*(char *)((int)puVar14 + 0xb5) == '\0') goto LAB_00017ae0;\n      uVar5 = (**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5);\n      puVar29 = (uint *)0x3f;\n      FUN_00014188(uVar5);\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n      goto LAB_00014f74;\n    }\n    iVar9 = 0;\n    if (uVar15 == 0x28) {\n      ppuVar21 = (uint **)*puVar14;\n      goto LAB_000157a8;\n    }\n    *puVar14 = (byte *)((int)ppuVar21 + 1);\n    puVar29 = (uint *)(uint)*(byte *)ppuVar21;\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if (puVar29 != (uint *)0x0) goto LAB_0001558c;\n    uVar15 = 0;\n    goto LAB_00014f74;\n  }" ({ "{") (expression_statement "ppuVar21 = (uint **)*puVar14;" (assignment_expression "ppuVar21 = (uint **)*puVar14" (identifier "ppuVar21") (= "=") (cast_expression "(uint **)*puVar14" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*puVar14" (* "*") (identifier "puVar14")))) (; ";")) (expression_statement "in_t2 = (uint *)0x1;" (assignment_expression "in_t2 = (uint *)0x1" (identifier "in_t2") (= "=") (cast_expression "(uint *)0x1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "ppuVar28 = (uint **)0x80001f;" (assignment_expression "ppuVar28 = (uint **)0x80001f" (identifier "ppuVar28") (= "=") (cast_expression "(uint **)0x80001f" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x80001f"))) (; ";")) (expression_statement "in_t4 = (uint **)0x2d;" (assignment_expression "in_t4 = (uint **)0x2d" (identifier "in_t4") (= "=") (cast_expression "(uint **)0x2d" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x2d"))) (; ";")) (expression_statement "bVar12 = *(byte *)ppuVar21;" (assignment_expression "bVar12 = *(byte *)ppuVar21" (identifier "bVar12") (= "=") (pointer_expression "*(byte *)ppuVar21" (* "*") (cast_expression "(byte *)ppuVar21" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar21")))) (; ";")) (expression_statement "in_t5 = 0x2b;" (assignment_expression "in_t5 = 0x2b" (identifier "in_t5") (= "=") (number_literal "0x2b")) (; ";")) (expression_statement "in_t6 = 0x28;" (assignment_expression "in_t6 = 0x28" (identifier "in_t6") (= "=") (number_literal "0x28")) (; ";")) (expression_statement "uVar18 = 0x29;" (assignment_expression "uVar18 = 0x29" (identifier "uVar18") (= "=") (number_literal "0x29")) (; ";")) (labeled_statement "LAB_000152f0:\n    in_t0 = (uint **)(int)(char)bVar12;" (statement_identifier "LAB_000152f0") (: ":") (expression_statement "in_t0 = (uint **)(int)(char)bVar12;" (assignment_expression "in_t0 = (uint **)(int)(char)bVar12" (identifier "in_t0") (= "=") (cast_expression "(uint **)(int)(char)bVar12" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (cast_expression "(int)(char)bVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)bVar12" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar12"))))) (; ";"))) (expression_statement "uVar15 = (uint)bVar12;" (assignment_expression "uVar15 = (uint)bVar12" (identifier "uVar15") (= "=") (cast_expression "(uint)bVar12" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar12"))) (; ";")) (labeled_statement "LAB_000152f4:\n    uVar22 = uVar15 - 9;" (statement_identifier "LAB_000152f4") (: ":") (expression_statement "uVar22 = uVar15 - 9;" (assignment_expression "uVar22 = uVar15 - 9" (identifier "uVar22") (= "=") (binary_expression "uVar15 - 9" (identifier "uVar15") (- "-") (number_literal "9"))) (; ";"))) (expression_statement "ppuVar16 = (uint **)(uint)(uVar22 < 0x18);" (assignment_expression "ppuVar16 = (uint **)(uint)(uVar22 < 0x18)" (identifier "ppuVar16") (= "=") (cast_expression "(uint **)(uint)(uVar22 < 0x18)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "(uint)(uVar22 < 0x18)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar22 < 0x18)" (( "(") (binary_expression "uVar22 < 0x18" (identifier "uVar22") (< "<") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (ppuVar16 == (uint **)0x0) goto LAB_000153a8;" (if "if") (parenthesized_expression "(ppuVar16 == (uint **)0x0)" (( "(") (binary_expression "ppuVar16 == (uint **)0x0" (identifier "ppuVar16") (== "==") (cast_expression "(uint **)0x0" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000153a8;" (goto "goto") (statement_identifier "LAB_000153a8") (; ";"))) (labeled_statement "LAB_00015308:\n    ppuVar11 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f);" (statement_identifier "LAB_00015308") (: ":") (expression_statement "ppuVar11 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f);" (assignment_expression "ppuVar11 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f)" (identifier "ppuVar11") (= "=") (cast_expression "(uint **)(1 << (uVar22 & 0x1f) & 0x80001f)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(1 << (uVar22 & 0x1f) & 0x80001f)" (( "(") (binary_expression "1 << (uVar22 & 0x1f) & 0x80001f" (binary_expression "1 << (uVar22 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(uVar22 & 0x1f)" (( "(") (binary_expression "uVar22 & 0x1f" (identifier "uVar22") (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "0x80001f")) () ")")))) (; ";"))) (while_statement "while (ppuVar11 != (uint **)0x0) {\n      ppuVar21 = (uint **)((int)ppuVar21 + 1);\n      *puVar14 = ppuVar21;\n      in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n      uVar15 = (uint)*(byte *)ppuVar21;\n      ppuVar16 = (uint **)(uVar15 - 9);\n      if ((uint **)0x17 < ppuVar16) goto LAB_000153a8;\n      ppuVar16 = (uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f);\n      ppuVar11 = ppuVar16;\n    }" (while "while") (parenthesized_expression "(ppuVar11 != (uint **)0x0)" (( "(") (binary_expression "ppuVar11 != (uint **)0x0" (identifier "ppuVar11") (!= "!=") (cast_expression "(uint **)0x0" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      ppuVar21 = (uint **)((int)ppuVar21 + 1);\n      *puVar14 = ppuVar21;\n      in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n      uVar15 = (uint)*(byte *)ppuVar21;\n      ppuVar16 = (uint **)(uVar15 - 9);\n      if ((uint **)0x17 < ppuVar16) goto LAB_000153a8;\n      ppuVar16 = (uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f);\n      ppuVar11 = ppuVar16;\n    }" ({ "{") (expression_statement "ppuVar21 = (uint **)((int)ppuVar21 + 1);" (assignment_expression "ppuVar21 = (uint **)((int)ppuVar21 + 1)" (identifier "ppuVar21") (= "=") (cast_expression "(uint **)((int)ppuVar21 + 1)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar21 + 1)" (( "(") (binary_expression "(int)ppuVar21 + 1" (cast_expression "(int)ppuVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar21")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*puVar14 = ppuVar21;" (assignment_expression "*puVar14 = ppuVar21" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (identifier "ppuVar21")) (; ";")) (expression_statement "in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;" (assignment_expression "in_t0 = (uint **)(int)(char)*(byte *)ppuVar21" (identifier "in_t0") (= "=") (cast_expression "(uint **)(int)(char)*(byte *)ppuVar21" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (cast_expression "(int)(char)*(byte *)ppuVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*(byte *)ppuVar21" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)ppuVar21" (* "*") (cast_expression "(byte *)ppuVar21" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar21"))))))) (; ";")) (expression_statement "uVar15 = (uint)*(byte *)ppuVar21;" (assignment_expression "uVar15 = (uint)*(byte *)ppuVar21" (identifier "uVar15") (= "=") (binary_expression "(uint)*(byte *)ppuVar21" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)ppuVar21" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar21")))) (; ";")) (expression_statement "ppuVar16 = (uint **)(uVar15 - 9);" (assignment_expression "ppuVar16 = (uint **)(uVar15 - 9)" (identifier "ppuVar16") (= "=") (cast_expression "(uint **)(uVar15 - 9)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(uVar15 - 9)" (( "(") (binary_expression "uVar15 - 9" (identifier "uVar15") (- "-") (number_literal "9")) () ")")))) (; ";")) (if_statement "if ((uint **)0x17 < ppuVar16) goto LAB_000153a8;" (if "if") (parenthesized_expression "((uint **)0x17 < ppuVar16)" (( "(") (binary_expression "(uint **)0x17 < ppuVar16" (cast_expression "(uint **)0x17" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x17")) (< "<") (identifier "ppuVar16")) () ")")) (goto_statement "goto LAB_000153a8;" (goto "goto") (statement_identifier "LAB_000153a8") (; ";"))) (expression_statement "ppuVar16 = (uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f);" (assignment_expression "ppuVar16 = (uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f)" (identifier "ppuVar16") (= "=") (cast_expression "(uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f)" (( "(") (binary_expression "1 << ((uint)ppuVar16 & 0x1f) & 0x80001f" (binary_expression "1 << ((uint)ppuVar16 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((uint)ppuVar16 & 0x1f)" (( "(") (binary_expression "(uint)ppuVar16 & 0x1f" (cast_expression "(uint)ppuVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppuVar16")) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "0x80001f")) () ")")))) (; ";")) (expression_statement "ppuVar11 = ppuVar16;" (assignment_expression "ppuVar11 = ppuVar16" (identifier "ppuVar11") (= "=") (identifier "ppuVar16")) (; ";")) (} "}"))) (labeled_statement "LAB_00015344:\n    in_t3 = 0xffffffff;" (statement_identifier "LAB_00015344") (: ":") (expression_statement "in_t3 = 0xffffffff;" (assignment_expression "in_t3 = 0xffffffff" (identifier "in_t3") (= "=") (number_literal "0xffffffff")) (; ";"))) (if_statement "if (uVar15 == 0x2d) goto LAB_00015358;" (if "if") (parenthesized_expression "(uVar15 == 0x2d)" (( "(") (binary_expression "uVar15 == 0x2d" (identifier "uVar15") (== "==") (number_literal "0x2d")) () ")")) (goto_statement "goto LAB_00015358;" (goto "goto") (statement_identifier "LAB_00015358") (; ";"))) (if_statement "if (uVar15 == 0x2b) goto LAB_00015354;" (if "if") (parenthesized_expression "(uVar15 == 0x2b)" (( "(") (binary_expression "uVar15 == 0x2b" (identifier "uVar15") (== "==") (number_literal "0x2b")) () ")")) (goto_statement "goto LAB_00015354;" (goto "goto") (statement_identifier "LAB_00015354") (; ";"))) (if_statement "if ((0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))\n       ) {\n      pbVar26 = (byte *)*puVar14;\n      ppuVar16 = (uint **)(abStack_f1 + 1);\n      in_t0 = (uint **)(abStack_f1 + 0x14);\n      ppuVar28 = (uint **)&DAT_0000002e;\n      ppuVar21 = ppuVar16;\n      do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        *puVar14 = pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));\n      *(byte *)ppuVar21 = 0;\n      ppuVar21 = ppuVar16;\n      bVar12 = abStack_f1[1];\n      while (bVar12 != 0) {\n        if (bVar12 - 0x61 < 0x1a) {\n          bVar12 = bVar12 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar12;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar12 = *(byte *)ppuVar21;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);\n      do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16);\n      if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);\n      do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      iVar9 = *(int *)(puVar33 + 0x2326c);\n      ppuVar21 = ppuVar16;\n      iVar10 = FUN_00014388(puVar14);\n      unaff_s6 = asStack_578;\n      if (iVar10 != 0) {\n        puVar29 = *(uint **)(iVar10 + 4);\n        apuStack_5e8[1] = *(uint **)(iVar10 + 8);\n        apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);\n      iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n      if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        ppuVar16 = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);\n      ppuVar11 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);\n      ppuVar21 = ppuVar11;\n      psVar27 = unaff_s6;\n      do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);\n      pbVar26 = (byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1));\n      if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar11 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);\n      pcVar34 = *(code **)(puVar33 + 0x234c8);\n      do {\n        iVar10 = (*pcVar34)(ppuVar16);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);\n      if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar11 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }\n      if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = ppuVar16;\n        ppuVar11 = ppuVar16;\n        bVar12 = abStack_f1[1];\n        do {\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        } while (bVar12 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }\n      ppuVar21 = *(uint ***)(puVar33 + 0x23270);\n      if (*(char *)((int)puVar14 + 0xb5) == '\0') goto LAB_00017ae0;\n      uVar5 = (**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5);\n      puVar29 = (uint *)0x3f;\n      FUN_00014188(uVar5);\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n      goto LAB_00014f74;\n    }" (if "if") (parenthesized_expression "((0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))\n       )" (( "(") (binary_expression "(0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))" (parenthesized_expression "(0x40 < (int)in_t0)" (( "(") (binary_expression "0x40 < (int)in_t0" (number_literal "0x40") (< "<") (cast_expression "(int)in_t0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "in_t0"))) () ")")) (&& "&&") (parenthesized_expression "(((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))" (( "(") (parenthesized_expression "((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a))" (( "(") (binary_expression "(int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)" (binary_expression "(int)in_t0 < 0x5b" (cast_expression "(int)in_t0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "in_t0")) (< "<") (number_literal "0x5b")) (|| "||") (parenthesized_expression "(((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)" (( "(") (binary_expression "((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a" (parenthesized_expression "((uint)((int)in_t0 + -0x61) & 0xff)" (( "(") (binary_expression "(uint)((int)in_t0 + -0x61) & 0xff" (call_expression "(uint)((int)in_t0 + -0x61)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)in_t0 + -0x61)" (( "(") (binary_expression "(int)in_t0 + -0x61" (cast_expression "(int)in_t0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "in_t0")) (+ "+") (number_literal "-0x61")) () ")"))) (& "&") (number_literal "0xff")) () ")")) (< "<") (number_literal "0x1a")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      pbVar26 = (byte *)*puVar14;\n      ppuVar16 = (uint **)(abStack_f1 + 1);\n      in_t0 = (uint **)(abStack_f1 + 0x14);\n      ppuVar28 = (uint **)&DAT_0000002e;\n      ppuVar21 = ppuVar16;\n      do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        *puVar14 = pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));\n      *(byte *)ppuVar21 = 0;\n      ppuVar21 = ppuVar16;\n      bVar12 = abStack_f1[1];\n      while (bVar12 != 0) {\n        if (bVar12 - 0x61 < 0x1a) {\n          bVar12 = bVar12 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar12;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar12 = *(byte *)ppuVar21;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);\n      do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16);\n      if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);\n      do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);\n      iVar9 = *(int *)(puVar33 + 0x2326c);\n      ppuVar21 = ppuVar16;\n      iVar10 = FUN_00014388(puVar14);\n      unaff_s6 = asStack_578;\n      if (iVar10 != 0) {\n        puVar29 = *(uint **)(iVar10 + 4);\n        apuStack_5e8[1] = *(uint **)(iVar10 + 8);\n        apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);\n      iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n      if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        ppuVar16 = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);\n      ppuVar11 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);\n      ppuVar21 = ppuVar11;\n      psVar27 = unaff_s6;\n      do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);\n      pbVar26 = (byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1));\n      if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar11 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }\n      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);\n      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);\n      pcVar34 = *(code **)(puVar33 + 0x234c8);\n      do {\n        iVar10 = (*pcVar34)(ppuVar16);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);\n      if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar11 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }\n      if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = ppuVar16;\n        ppuVar11 = ppuVar16;\n        bVar12 = abStack_f1[1];\n        do {\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        } while (bVar12 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }\n      ppuVar21 = *(uint ***)(puVar33 + 0x23270);\n      if (*(char *)((int)puVar14 + 0xb5) == '\0') goto LAB_00017ae0;\n      uVar5 = (**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5);\n      puVar29 = (uint *)0x3f;\n      FUN_00014188(uVar5);\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n      goto LAB_00014f74;\n    }" ({ "{") (expression_statement "pbVar26 = (byte *)*puVar14;" (assignment_expression "pbVar26 = (byte *)*puVar14" (identifier "pbVar26") (= "=") (cast_expression "(byte *)*puVar14" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar14" (* "*") (identifier "puVar14")))) (; ";")) (expression_statement "ppuVar16 = (uint **)(abStack_f1 + 1);" (assignment_expression "ppuVar16 = (uint **)(abStack_f1 + 1)" (identifier "ppuVar16") (= "=") (cast_expression "(uint **)(abStack_f1 + 1)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(abStack_f1 + 1)" (( "(") (binary_expression "abStack_f1 + 1" (identifier "abStack_f1") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "in_t0 = (uint **)(abStack_f1 + 0x14);" (assignment_expression "in_t0 = (uint **)(abStack_f1 + 0x14)" (identifier "in_t0") (= "=") (cast_expression "(uint **)(abStack_f1 + 0x14)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(abStack_f1 + 0x14)" (( "(") (binary_expression "abStack_f1 + 0x14" (identifier "abStack_f1") (+ "+") (number_literal "0x14")) () ")")))) (; ";")) (expression_statement "ppuVar28 = (uint **)&DAT_0000002e;" (assignment_expression "ppuVar28 = (uint **)&DAT_0000002e" (identifier "ppuVar28") (= "=") (cast_expression "(uint **)&DAT_0000002e" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&DAT_0000002e" (& "&") (identifier "DAT_0000002e")))) (; ";")) (expression_statement "ppuVar21 = ppuVar16;" (assignment_expression "ppuVar21 = ppuVar16" (identifier "ppuVar21") (= "=") (identifier "ppuVar16")) (; ";")) (do_statement "do {\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        *puVar14 = pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e));" (do "do") (compound_statement "{\n        pbVar26 = pbVar26 + 1;\n        if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }\n        *puVar14 = pbVar26;\n        iVar9 = (int)(char)*pbVar26;\n        uVar15 = (uint)*pbVar26;\n      }" ({ "{") (expression_statement "pbVar26 = pbVar26 + 1;" (assignment_expression "pbVar26 = pbVar26 + 1" (identifier "pbVar26") (= "=") (binary_expression "pbVar26 + 1" (identifier "pbVar26") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (ppuVar21 < in_t0) {\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }" (if "if") (parenthesized_expression "(ppuVar21 < in_t0)" (( "(") (binary_expression "ppuVar21 < in_t0" (identifier "ppuVar21") (< "<") (identifier "in_t0")) () ")")) (compound_statement "{\n          *(byte *)ppuVar21 = (byte)uVar15;\n          ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        }" ({ "{") (expression_statement "*(byte *)ppuVar21 = (byte)uVar15;" (assignment_expression "*(byte *)ppuVar21 = (byte)uVar15" (pointer_expression "*(byte *)ppuVar21" (* "*") (cast_expression "(byte *)ppuVar21" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar21"))) (= "=") (cast_expression "(byte)uVar15" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar15"))) (; ";")) (expression_statement "ppuVar21 = (uint **)((int)ppuVar21 + 1);" (assignment_expression "ppuVar21 = (uint **)((int)ppuVar21 + 1)" (identifier "ppuVar21") (= "=") (cast_expression "(uint **)((int)ppuVar21 + 1)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar21 + 1)" (( "(") (binary_expression "(int)ppuVar21 + 1" (cast_expression "(int)ppuVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar21")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (expression_statement "*puVar14 = pbVar26;" (assignment_expression "*puVar14 = pbVar26" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (identifier "pbVar26")) (; ";")) (expression_statement "iVar9 = (int)(char)*pbVar26;" (assignment_expression "iVar9 = (int)(char)*pbVar26" (identifier "iVar9") (= "=") (cast_expression "(int)(char)*pbVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*pbVar26" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar26" (* "*") (identifier "pbVar26"))))) (; ";")) (expression_statement "uVar15 = (uint)*pbVar26;" (assignment_expression "uVar15 = (uint)*pbVar26" (identifier "uVar15") (= "=") (binary_expression "(uint)*pbVar26" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar26"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e))" (( "(") (binary_expression "((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||\n              (uVar15 == 0x2e)" (parenthesized_expression "((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a))))" (( "(") (binary_expression "(0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))" (parenthesized_expression "(0x40 < iVar9)" (( "(") (binary_expression "0x40 < iVar9" (number_literal "0x40") (< "<") (identifier "iVar9")) () ")")) (&& "&&") (parenthesized_expression "((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))" (( "(") (parenthesized_expression "(iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a))" (( "(") (binary_expression "iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)" (binary_expression "iVar9 < 0x5b" (identifier "iVar9") (< "<") (number_literal "0x5b")) (|| "||") (parenthesized_expression "((iVar9 - 0x61U & 0xff) < 0x1a)" (( "(") (binary_expression "(iVar9 - 0x61U & 0xff) < 0x1a" (parenthesized_expression "(iVar9 - 0x61U & 0xff)" (( "(") (binary_expression "iVar9 - 0x61U & 0xff" (binary_expression "iVar9 - 0x61U" (identifier "iVar9") (- "-") (number_literal "0x61U")) (& "&") (number_literal "0xff")) () ")")) (< "<") (number_literal "0x1a")) () ")"))) () ")")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(uVar15 == 0x2e)" (( "(") (binary_expression "uVar15 == 0x2e" (identifier "uVar15") (== "==") (number_literal "0x2e")) () ")"))) () ")")) (; ";")) (expression_statement "*(byte *)ppuVar21 = 0;" (assignment_expression "*(byte *)ppuVar21 = 0" (pointer_expression "*(byte *)ppuVar21" (* "*") (cast_expression "(byte *)ppuVar21" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar21"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "ppuVar21 = ppuVar16;" (assignment_expression "ppuVar21 = ppuVar16" (identifier "ppuVar21") (= "=") (identifier "ppuVar16")) (; ";")) (expression_statement "bVar12 = abStack_f1[1];" (assignment_expression "bVar12 = abStack_f1[1]" (identifier "bVar12") (= "=") (subscript_expression "abStack_f1[1]" (identifier "abStack_f1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (while_statement "while (bVar12 != 0) {\n        if (bVar12 - 0x61 < 0x1a) {\n          bVar12 = bVar12 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar12;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar12 = *(byte *)ppuVar21;\n      }" (while "while") (parenthesized_expression "(bVar12 != 0)" (( "(") (binary_expression "bVar12 != 0" (identifier "bVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (bVar12 - 0x61 < 0x1a) {\n          bVar12 = bVar12 - 0x20;\n        }\n        *(byte *)ppuVar21 = bVar12;\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        bVar12 = *(byte *)ppuVar21;\n      }" ({ "{") (if_statement "if (bVar12 - 0x61 < 0x1a) {\n          bVar12 = bVar12 - 0x20;\n        }" (if "if") (parenthesized_expression "(bVar12 - 0x61 < 0x1a)" (( "(") (binary_expression "bVar12 - 0x61 < 0x1a" (binary_expression "bVar12 - 0x61" (identifier "bVar12") (- "-") (number_literal "0x61")) (< "<") (number_literal "0x1a")) () ")")) (compound_statement "{\n          bVar12 = bVar12 - 0x20;\n        }" ({ "{") (expression_statement "bVar12 = bVar12 - 0x20;" (assignment_expression "bVar12 = bVar12 - 0x20" (identifier "bVar12") (= "=") (binary_expression "bVar12 - 0x20" (identifier "bVar12") (- "-") (number_literal "0x20"))) (; ";")) (} "}"))) (expression_statement "*(byte *)ppuVar21 = bVar12;" (assignment_expression "*(byte *)ppuVar21 = bVar12" (pointer_expression "*(byte *)ppuVar21" (* "*") (cast_expression "(byte *)ppuVar21" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar21"))) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "ppuVar21 = (uint **)((int)ppuVar21 + 1);" (assignment_expression "ppuVar21 = (uint **)((int)ppuVar21 + 1)" (identifier "ppuVar21") (= "=") (cast_expression "(uint **)((int)ppuVar21 + 1)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar21 + 1)" (( "(") (binary_expression "(int)ppuVar21 + 1" (cast_expression "(int)ppuVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar21")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "bVar12 = *(byte *)ppuVar21;" (assignment_expression "bVar12 = *(byte *)ppuVar21" (identifier "bVar12") (= "=") (pointer_expression "*(byte *)ppuVar21" (* "*") (cast_expression "(byte *)ppuVar21" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar21")))) (; ";")) (} "}"))) (expression_statement "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);" (assignment_expression "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98)" (identifier "unaff_s6") (= "=") (cast_expression "(short *)(*(int *)(puVar33 + 0x23268) + 0x7f98)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar33 + 0x23268) + 0x7f98)" (( "(") (binary_expression "*(int *)(puVar33 + 0x23268) + 0x7f98" (pointer_expression "*(int *)(puVar33 + 0x23268)" (* "*") (cast_expression "(int *)(puVar33 + 0x23268)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar33 + 0x23268)" (( "(") (binary_expression "puVar33 + 0x23268" (identifier "puVar33") (+ "+") (number_literal "0x23268")) () ")")))) (+ "+") (number_literal "0x7f98")) () ")")))) (; ";")) (expression_statement "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);" (assignment_expression "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0)" (identifier "ppuVar21") (= "=") (cast_expression "(uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar33 + 0x23270) + 0x51d0)" (( "(") (binary_expression "*(int *)(puVar33 + 0x23270) + 0x51d0" (pointer_expression "*(int *)(puVar33 + 0x23270)" (* "*") (cast_expression "(int *)(puVar33 + 0x23270)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar33 + 0x23270)" (( "(") (binary_expression "puVar33 + 0x23270" (identifier "puVar33") (+ "+") (number_literal "0x23270")) () ")")))) (+ "+") (number_literal "0x51d0")) () ")")))) (; ";")) (do_statement "do {\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);" (do "do") (compound_statement "{\n        iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        puStack_674 = puVar25;\n        if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      }" ({ "{") (expression_statement "iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);" (assignment_expression "iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(puVar33 + 0x234c8))(ppuVar16)" (parenthesized_expression "(**(code **)(puVar33 + 0x234c8))" (( "(") (pointer_expression "**(code **)(puVar33 + 0x234c8)" (* "*") (pointer_expression "*(code **)(puVar33 + 0x234c8)" (* "*") (cast_expression "(code **)(puVar33 + 0x234c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar33 + 0x234c8)" (( "(") (binary_expression "puVar33 + 0x234c8" (identifier "puVar33") (+ "+") (number_literal "0x234c8")) () ")"))))) () ")")) (argument_list "(ppuVar16)" (( "(") (identifier "ppuVar16") () ")")))) (; ";")) (expression_statement "puStack_674 = puVar25;" (assignment_expression "puStack_674 = puVar25" (identifier "puStack_674") (= "=") (identifier "puVar25")) (; ";")) (if_statement "if (iVar9 == 0) {\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }" ({ "{") (labeled_statement "LAB_00015708:\n          puVar29 = *(uint **)(unaff_s6 + 2);" (statement_identifier "LAB_00015708") (: ":") (expression_statement "puVar29 = *(uint **)(unaff_s6 + 2);" (assignment_expression "puVar29 = *(uint **)(unaff_s6 + 2)" (identifier "puVar29") (= "=") (pointer_expression "*(uint **)(unaff_s6 + 2)" (* "*") (cast_expression "(uint **)(unaff_s6 + 2)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_s6 + 2)" (( "(") (binary_expression "unaff_s6 + 2" (identifier "unaff_s6") (+ "+") (number_literal "2")) () ")"))))) (; ";"))) (expression_statement "apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);" (assignment_expression "apuStack_5e8[1] = *(uint **)(unaff_s6 + 4)" (subscript_expression "apuStack_5e8[1]" (identifier "apuStack_5e8") ([ "[") (number_literal "1") (] "]")) (= "=") (pointer_expression "*(uint **)(unaff_s6 + 4)" (* "*") (cast_expression "(uint **)(unaff_s6 + 4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_s6 + 4)" (( "(") (binary_expression "unaff_s6 + 4" (identifier "unaff_s6") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);" (assignment_expression "apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f)" (subscript_expression "apuStack_5e8[0]" (identifier "apuStack_5e8") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)*(uint **)(unaff_s6 + 4) >> 0x1f)" (( "(") (binary_expression "(int)*(uint **)(unaff_s6 + 4) >> 0x1f" (cast_expression "(int)*(uint **)(unaff_s6 + 4)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(uint **)(unaff_s6 + 4)" (* "*") (cast_expression "(uint **)(unaff_s6 + 4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_s6 + 4)" (( "(") (binary_expression "unaff_s6 + 4" (identifier "unaff_s6") (+ "+") (number_literal "4")) () ")"))))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (goto_statement "goto LAB_00014f5c;" (goto "goto") (statement_identifier "LAB_00014f5c") (; ";")) (} "}"))) (expression_statement "unaff_s6 = unaff_s6 + 6;" (assignment_expression "unaff_s6 = unaff_s6 + 6" (identifier "unaff_s6") (= "=") (binary_expression "unaff_s6 + 6" (identifier "unaff_s6") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "ppuVar21 = *(uint ***)unaff_s6;" (assignment_expression "ppuVar21 = *(uint ***)unaff_s6" (identifier "ppuVar21") (= "=") (pointer_expression "*(uint ***)unaff_s6" (* "*") (cast_expression "(uint ***)unaff_s6" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "unaff_s6")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(ppuVar21 != (uint **)0x0)" (( "(") (binary_expression "ppuVar21 != (uint **)0x0" (identifier "ppuVar21") (!= "!=") (cast_expression "(uint **)0x0" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16);" (assignment_expression "puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16)" (identifier "puStack_674") (= "=") (cast_expression "(uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar33 + 0x23438))(ppuVar16)" (parenthesized_expression "(**(code **)(puVar33 + 0x23438))" (( "(") (pointer_expression "**(code **)(puVar33 + 0x23438)" (* "*") (pointer_expression "*(code **)(puVar33 + 0x23438)" (* "*") (cast_expression "(code **)(puVar33 + 0x23438)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar33 + 0x23438)" (( "(") (binary_expression "puVar33 + 0x23438" (identifier "puVar33") (+ "+") (number_literal "0x23438")) () ")"))))) () ")")) (argument_list "(ppuVar16)" (( "(") (identifier "ppuVar16") () ")"))))) (; ";")) (if_statement "if (puStack_674 == (uint *)0x3) {\n        bVar2 = true;\n      }\n      else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }" (if "if") (parenthesized_expression "(puStack_674 == (uint *)0x3)" (( "(") (binary_expression "puStack_674 == (uint *)0x3" (identifier "puStack_674") (== "==") (cast_expression "(uint *)0x3" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3"))) () ")")) (compound_statement "{\n        bVar2 = true;\n      }" ({ "{") (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (} "}")) (else_clause "else if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }" (else "else") (if_statement "if (puStack_674 == (uint *)0x4) {\n        bVar2 = abStack_f1[4] == '.';\n      }\n      else {\n        bVar2 = false;\n      }" (if "if") (parenthesized_expression "(puStack_674 == (uint *)0x4)" (( "(") (binary_expression "puStack_674 == (uint *)0x4" (identifier "puStack_674") (== "==") (cast_expression "(uint *)0x4" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4"))) () ")")) (compound_statement "{\n        bVar2 = abStack_f1[4] == '.';\n      }" ({ "{") (expression_statement "bVar2 = abStack_f1[4] == '.';" (assignment_expression "bVar2 = abStack_f1[4] == '.'" (identifier "bVar2") (= "=") (binary_expression "abStack_f1[4] == '.'" (subscript_expression "abStack_f1[4]" (identifier "abStack_f1") ([ "[") (number_literal "4") (] "]")) (== "==") (char_literal "'.'" (' "'") (character ".") (' "'")))) (; ";")) (} "}")) (else_clause "else {\n        bVar2 = false;\n      }" (else "else") (compound_statement "{\n        bVar2 = false;\n      }" ({ "{") (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (} "}")))))) (expression_statement "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);" (assignment_expression "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c)" (identifier "unaff_s6") (= "=") (cast_expression "(short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar33 + 0x23268) + 0x7e6c)" (( "(") (binary_expression "*(int *)(puVar33 + 0x23268) + 0x7e6c" (pointer_expression "*(int *)(puVar33 + 0x23268)" (* "*") (cast_expression "(int *)(puVar33 + 0x23268)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar33 + 0x23268)" (( "(") (binary_expression "puVar33 + 0x23268" (identifier "puVar33") (+ "+") (number_literal "0x23268")) () ")")))) (+ "+") (number_literal "0x7e6c")) () ")")))) (; ";")) (expression_statement "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);" (assignment_expression "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4)" (identifier "ppuVar21") (= "=") (cast_expression "(uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar33 + 0x23270) + 0x51d4)" (( "(") (binary_expression "*(int *)(puVar33 + 0x23270) + 0x51d4" (pointer_expression "*(int *)(puVar33 + 0x23270)" (* "*") (cast_expression "(int *)(puVar33 + 0x23270)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar33 + 0x23270)" (( "(") (binary_expression "puVar33 + 0x23270" (identifier "puVar33") (+ "+") (number_literal "0x23270")) () ")")))) (+ "+") (number_literal "0x51d4")) () ")")))) (; ";")) (do_statement "do {\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      } while (ppuVar21 != (uint **)0x0);" (do "do") (compound_statement "{\n        if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }\n        puStack_66c = puVar25;\n        if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n      }" ({ "{") (if_statement "if (bVar2) {\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }\n        else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }" (if "if") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (compound_statement "{\n          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);\n        }" ({ "{") (expression_statement "iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);" (assignment_expression "iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3)" (parenthesized_expression "(**(code **)(puVar33 + 0x233c8))" (( "(") (pointer_expression "**(code **)(puVar33 + 0x233c8)" (* "*") (pointer_expression "*(code **)(puVar33 + 0x233c8)" (* "*") (cast_expression "(code **)(puVar33 + 0x233c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar33 + 0x233c8)" (( "(") (binary_expression "puVar33 + 0x233c8" (identifier "puVar33") (+ "+") (number_literal "0x233c8")) () ")"))))) () ")")) (argument_list "(ppuVar16,ppuVar21,3)" (( "(") (identifier "ppuVar16") (, ",") (identifier "ppuVar21") (, ",") (number_literal "3") () ")")))) (; ";")) (} "}")) (else_clause "else {\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }" (else "else") (compound_statement "{\n          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        }" ({ "{") (expression_statement "iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);" (assignment_expression "iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(puVar33 + 0x234c8))(ppuVar16)" (parenthesized_expression "(**(code **)(puVar33 + 0x234c8))" (( "(") (pointer_expression "**(code **)(puVar33 + 0x234c8)" (* "*") (pointer_expression "*(code **)(puVar33 + 0x234c8)" (* "*") (cast_expression "(code **)(puVar33 + 0x234c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar33 + 0x234c8)" (( "(") (binary_expression "puVar33 + 0x234c8" (identifier "puVar33") (+ "+") (number_literal "0x234c8")) () ")"))))) () ")")) (argument_list "(ppuVar16)" (( "(") (identifier "ppuVar16") () ")")))) (; ";")) (} "}")))) (expression_statement "puStack_66c = puVar25;" (assignment_expression "puStack_66c = puVar25" (identifier "puStack_66c") (= "=") (identifier "puVar25")) (; ";")) (if_statement "if (iVar9 == 0) {\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          puVar29 = *(uint **)(unaff_s6 + 2);\n          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }" ({ "{") (expression_statement "puVar29 = *(uint **)(unaff_s6 + 2);" (assignment_expression "puVar29 = *(uint **)(unaff_s6 + 2)" (identifier "puVar29") (= "=") (pointer_expression "*(uint **)(unaff_s6 + 2)" (* "*") (cast_expression "(uint **)(unaff_s6 + 2)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_s6 + 2)" (( "(") (binary_expression "unaff_s6 + 2" (identifier "unaff_s6") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);" (assignment_expression "apuStack_5e8[1] = *(uint **)(unaff_s6 + 4)" (subscript_expression "apuStack_5e8[1]" (identifier "apuStack_5e8") ([ "[") (number_literal "1") (] "]")) (= "=") (pointer_expression "*(uint **)(unaff_s6 + 4)" (* "*") (cast_expression "(uint **)(unaff_s6 + 4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_s6 + 4)" (( "(") (binary_expression "unaff_s6 + 4" (identifier "unaff_s6") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);" (assignment_expression "apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f)" (subscript_expression "apuStack_5e8[0]" (identifier "apuStack_5e8") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)*(uint **)(unaff_s6 + 4) >> 0x1f)" (( "(") (binary_expression "(int)*(uint **)(unaff_s6 + 4) >> 0x1f" (cast_expression "(int)*(uint **)(unaff_s6 + 4)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(uint **)(unaff_s6 + 4)" (* "*") (cast_expression "(uint **)(unaff_s6 + 4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_s6 + 4)" (( "(") (binary_expression "unaff_s6 + 4" (identifier "unaff_s6") (+ "+") (number_literal "4")) () ")"))))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (goto_statement "goto LAB_00014f5c;" (goto "goto") (statement_identifier "LAB_00014f5c") (; ";")) (} "}"))) (expression_statement "unaff_s6 = unaff_s6 + 6;" (assignment_expression "unaff_s6 = unaff_s6 + 6" (identifier "unaff_s6") (= "=") (binary_expression "unaff_s6 + 6" (identifier "unaff_s6") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "ppuVar21 = *(uint ***)unaff_s6;" (assignment_expression "ppuVar21 = *(uint ***)unaff_s6" (identifier "ppuVar21") (= "=") (pointer_expression "*(uint ***)unaff_s6" (* "*") (cast_expression "(uint ***)unaff_s6" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "unaff_s6")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(ppuVar21 != (uint **)0x0)" (( "(") (binary_expression "ppuVar21 != (uint **)0x0" (identifier "ppuVar21") (!= "!=") (cast_expression "(uint **)0x0" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "iVar9 = *(int *)(puVar33 + 0x2326c);" (assignment_expression "iVar9 = *(int *)(puVar33 + 0x2326c)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(puVar33 + 0x2326c)" (* "*") (cast_expression "(int *)(puVar33 + 0x2326c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar33 + 0x2326c)" (( "(") (binary_expression "puVar33 + 0x2326c" (identifier "puVar33") (+ "+") (number_literal "0x2326c")) () ")"))))) (; ";")) (expression_statement "ppuVar21 = ppuVar16;" (assignment_expression "ppuVar21 = ppuVar16" (identifier "ppuVar21") (= "=") (identifier "ppuVar16")) (; ";")) (expression_statement "iVar10 = FUN_00014388(puVar14);" (assignment_expression "iVar10 = FUN_00014388(puVar14)" (identifier "iVar10") (= "=") (call_expression "FUN_00014388(puVar14)" (identifier "FUN_00014388") (argument_list "(puVar14)" (( "(") (identifier "puVar14") () ")")))) (; ";")) (expression_statement "unaff_s6 = asStack_578;" (assignment_expression "unaff_s6 = asStack_578" (identifier "unaff_s6") (= "=") (identifier "asStack_578")) (; ";")) (if_statement "if (iVar10 != 0) {\n        puVar29 = *(uint **)(iVar10 + 4);\n        apuStack_5e8[1] = *(uint **)(iVar10 + 8);\n        apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        puVar29 = *(uint **)(iVar10 + 4);\n        apuStack_5e8[1] = *(uint **)(iVar10 + 8);\n        apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);\n        puStack_66c = (uint *)0x0;\n        goto LAB_00014f5c;\n      }" ({ "{") (expression_statement "puVar29 = *(uint **)(iVar10 + 4);" (assignment_expression "puVar29 = *(uint **)(iVar10 + 4)" (identifier "puVar29") (= "=") (pointer_expression "*(uint **)(iVar10 + 4)" (* "*") (cast_expression "(uint **)(iVar10 + 4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 4)" (( "(") (binary_expression "iVar10 + 4" (identifier "iVar10") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "apuStack_5e8[1] = *(uint **)(iVar10 + 8);" (assignment_expression "apuStack_5e8[1] = *(uint **)(iVar10 + 8)" (subscript_expression "apuStack_5e8[1]" (identifier "apuStack_5e8") ([ "[") (number_literal "1") (] "]")) (= "=") (pointer_expression "*(uint **)(iVar10 + 8)" (* "*") (cast_expression "(uint **)(iVar10 + 8)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);" (assignment_expression "apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f)" (subscript_expression "apuStack_5e8[0]" (identifier "apuStack_5e8") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)*(uint **)(iVar10 + 8) >> 0x1f)" (( "(") (binary_expression "(int)*(uint **)(iVar10 + 8) >> 0x1f" (cast_expression "(int)*(uint **)(iVar10 + 8)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(uint **)(iVar10 + 8)" (* "*") (cast_expression "(uint **)(iVar10 + 8)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")"))))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "puStack_66c = (uint *)0x0;" (assignment_expression "puStack_66c = (uint *)0x0" (identifier "puStack_66c") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_00014f5c;" (goto "goto") (statement_identifier "LAB_00014f5c") (; ";")) (} "}"))) (expression_statement "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);" (assignment_expression "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0)" (identifier "ppuVar21") (= "=") (cast_expression "(uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar33 + 0x23270) + 0x51f0)" (( "(") (binary_expression "*(int *)(puVar33 + 0x23270) + 0x51f0" (pointer_expression "*(int *)(puVar33 + 0x23270)" (* "*") (cast_expression "(int *)(puVar33 + 0x23270)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar33 + 0x23270)" (( "(") (binary_expression "puVar33 + 0x23270" (identifier "puVar33") (+ "+") (number_literal "0x23270")) () ")")))) (+ "+") (number_literal "0x51f0")) () ")")))) (; ";")) (expression_statement "iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);" (assignment_expression "iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16)" (identifier "iVar10") (= "=") (call_expression "(**(code **)(puVar33 + 0x234c8))(ppuVar16)" (parenthesized_expression "(**(code **)(puVar33 + 0x234c8))" (( "(") (pointer_expression "**(code **)(puVar33 + 0x234c8)" (* "*") (pointer_expression "*(code **)(puVar33 + 0x234c8)" (* "*") (cast_expression "(code **)(puVar33 + 0x234c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar33 + 0x234c8)" (( "(") (binary_expression "puVar33 + 0x234c8" (identifier "puVar33") (+ "+") (number_literal "0x234c8")) () ")"))))) () ")")) (argument_list "(ppuVar16)" (( "(") (identifier "ppuVar16") () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        ppuVar16 = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        puVar29 = (uint *)0x103;\n        apuStack_5e8[1] = (uint *)0x0;\n        apuStack_5e8[0] = (uint *)0x0;\nLAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);\n        ppuVar16 = ppuVar21;\n        puStack_66c = puVar31;\n        goto LAB_0001558c;\n      }" ({ "{") (expression_statement "puVar29 = (uint *)0x103;" (assignment_expression "puVar29 = (uint *)0x103" (identifier "puVar29") (= "=") (cast_expression "(uint *)0x103" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x103"))) (; ";")) (expression_statement "apuStack_5e8[1] = (uint *)0x0;" (assignment_expression "apuStack_5e8[1] = (uint *)0x0" (subscript_expression "apuStack_5e8[1]" (identifier "apuStack_5e8") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "apuStack_5e8[0] = (uint *)0x0;" (assignment_expression "apuStack_5e8[0] = (uint *)0x0" (subscript_expression "apuStack_5e8[0]" (identifier "apuStack_5e8") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_00015588:\n        iVar9 = *(int *)(puVar33 + 0x23270);" (statement_identifier "LAB_00015588") (: ":") (expression_statement "iVar9 = *(int *)(puVar33 + 0x23270);" (assignment_expression "iVar9 = *(int *)(puVar33 + 0x23270)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(puVar33 + 0x23270)" (* "*") (cast_expression "(int *)(puVar33 + 0x23270)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar33 + 0x23270)" (( "(") (binary_expression "puVar33 + 0x23270" (identifier "puVar33") (+ "+") (number_literal "0x23270")) () ")"))))) (; ";"))) (expression_statement "ppuVar16 = ppuVar21;" (assignment_expression "ppuVar16 = ppuVar21" (identifier "ppuVar16") (= "=") (identifier "ppuVar21")) (; ";")) (expression_statement "puStack_66c = puVar31;" (assignment_expression "puStack_66c = puVar31" (identifier "puStack_66c") (= "=") (identifier "puVar31")) (; ";")) (goto_statement "goto LAB_0001558c;" (goto "goto") (statement_identifier "LAB_0001558c") (; ";")) (} "}"))) (expression_statement "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);" (assignment_expression "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8)" (identifier "unaff_s6") (= "=") (cast_expression "(short *)(*(int *)(puVar33 + 0x23268) + 0x7de8)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar33 + 0x23268) + 0x7de8)" (( "(") (binary_expression "*(int *)(puVar33 + 0x23268) + 0x7de8" (pointer_expression "*(int *)(puVar33 + 0x23268)" (* "*") (cast_expression "(int *)(puVar33 + 0x23268)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar33 + 0x23268)" (( "(") (binary_expression "puVar33 + 0x23268" (identifier "puVar33") (+ "+") (number_literal "0x23268")) () ")")))) (+ "+") (number_literal "0x7de8")) () ")")))) (; ";")) (expression_statement "ppuVar11 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);" (assignment_expression "ppuVar11 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc)" (identifier "ppuVar11") (= "=") (cast_expression "(uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar33 + 0x23270) + 0x51dc)" (( "(") (binary_expression "*(int *)(puVar33 + 0x23270) + 0x51dc" (pointer_expression "*(int *)(puVar33 + 0x23270)" (* "*") (cast_expression "(int *)(puVar33 + 0x23270)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar33 + 0x23270)" (( "(") (binary_expression "puVar33 + 0x23270" (identifier "puVar33") (+ "+") (number_literal "0x23270")) () ")")))) (+ "+") (number_literal "0x51dc")) () ")")))) (; ";")) (expression_statement "ppuVar21 = ppuVar11;" (assignment_expression "ppuVar21 = ppuVar11" (identifier "ppuVar21") (= "=") (identifier "ppuVar11")) (; ";")) (expression_statement "psVar27 = unaff_s6;" (assignment_expression "psVar27 = unaff_s6" (identifier "psVar27") (= "=") (identifier "unaff_s6")) (; ";")) (do_statement "do {\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      } while (ppuVar21 != (uint **)0x0);" (do "do") (compound_statement "{\n        iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);\n        if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n        psVar27 = psVar27 + 6;\n        ppuVar21 = *(uint ***)psVar27;\n      }" ({ "{") (expression_statement "iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);" (assignment_expression "iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16)" (identifier "iVar10") (= "=") (call_expression "(**(code **)(puVar33 + 0x234c8))(ppuVar16)" (parenthesized_expression "(**(code **)(puVar33 + 0x234c8))" (( "(") (pointer_expression "**(code **)(puVar33 + 0x234c8)" (* "*") (pointer_expression "*(code **)(puVar33 + 0x234c8)" (* "*") (cast_expression "(code **)(puVar33 + 0x234c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar33 + 0x234c8)" (( "(") (binary_expression "puVar33 + 0x234c8" (identifier "puVar33") (+ "+") (number_literal "0x234c8")) () ")"))))) () ")")) (argument_list "(ppuVar16)" (( "(") (identifier "ppuVar16") () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          puVar29 = *(uint **)(psVar27 + 2);\n          apuStack_5e8[1] = *(uint **)(psVar27 + 4);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);\n          goto LAB_00014f5c;\n        }" ({ "{") (expression_statement "puVar29 = *(uint **)(psVar27 + 2);" (assignment_expression "puVar29 = *(uint **)(psVar27 + 2)" (identifier "puVar29") (= "=") (pointer_expression "*(uint **)(psVar27 + 2)" (* "*") (cast_expression "(uint **)(psVar27 + 2)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(psVar27 + 2)" (( "(") (binary_expression "psVar27 + 2" (identifier "psVar27") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "apuStack_5e8[1] = *(uint **)(psVar27 + 4);" (assignment_expression "apuStack_5e8[1] = *(uint **)(psVar27 + 4)" (subscript_expression "apuStack_5e8[1]" (identifier "apuStack_5e8") ([ "[") (number_literal "1") (] "]")) (= "=") (pointer_expression "*(uint **)(psVar27 + 4)" (* "*") (cast_expression "(uint **)(psVar27 + 4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(psVar27 + 4)" (( "(") (binary_expression "psVar27 + 4" (identifier "psVar27") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);" (assignment_expression "apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f)" (subscript_expression "apuStack_5e8[0]" (identifier "apuStack_5e8") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)*(uint **)(psVar27 + 4) >> 0x1f)" (( "(") (binary_expression "(int)*(uint **)(psVar27 + 4) >> 0x1f" (cast_expression "(int)*(uint **)(psVar27 + 4)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(uint **)(psVar27 + 4)" (* "*") (cast_expression "(uint **)(psVar27 + 4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(psVar27 + 4)" (( "(") (binary_expression "psVar27 + 4" (identifier "psVar27") (+ "+") (number_literal "4")) () ")"))))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (goto_statement "goto LAB_00014f5c;" (goto "goto") (statement_identifier "LAB_00014f5c") (; ";")) (} "}"))) (expression_statement "psVar27 = psVar27 + 6;" (assignment_expression "psVar27 = psVar27 + 6" (identifier "psVar27") (= "=") (binary_expression "psVar27 + 6" (identifier "psVar27") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "ppuVar21 = *(uint ***)psVar27;" (assignment_expression "ppuVar21 = *(uint ***)psVar27" (identifier "ppuVar21") (= "=") (pointer_expression "*(uint ***)psVar27" (* "*") (cast_expression "(uint ***)psVar27" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "psVar27")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(ppuVar21 != (uint **)0x0)" (( "(") (binary_expression "ppuVar21 != (uint **)0x0" (identifier "ppuVar21") (!= "!=") (cast_expression "(uint **)0x0" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "pbVar26 = (byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1));" (assignment_expression "pbVar26 = (byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1))" (identifier "pbVar26") (= "=") (cast_expression "(byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar16 + (int)((int)puStack_674 + -1))" (( "(") (binary_expression "(int)ppuVar16 + (int)((int)puStack_674 + -1)" (cast_expression "(int)ppuVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar16")) (+ "+") (cast_expression "(int)((int)puStack_674 + -1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)puStack_674 + -1)" (( "(") (binary_expression "(int)puStack_674 + -1" (cast_expression "(int)puStack_674" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_674")) (+ "+") (number_literal "-1")) () ")")))) () ")")))) (; ";")) (if_statement "if (*pbVar26 == 0x53) {\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar11 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }" (if "if") (parenthesized_expression "(*pbVar26 == 0x53)" (( "(") (binary_expression "*pbVar26 == 0x53" (pointer_expression "*pbVar26" (* "*") (identifier "pbVar26")) (== "==") (number_literal "0x53")) () ")")) (compound_statement "{\n        *pbVar26 = 0;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n        do {\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar11 != (uint **)0x0);\n        *pbVar26 = 0x53;\n      }" ({ "{") (expression_statement "*pbVar26 = 0;" (assignment_expression "*pbVar26 = 0" (pointer_expression "*pbVar26" (* "*") (identifier "pbVar26")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar34 = *(code **)(puVar33 + 0x234c8);" (assignment_expression "pcVar34 = *(code **)(puVar33 + 0x234c8)" (identifier "pcVar34") (= "=") (pointer_expression "*(code **)(puVar33 + 0x234c8)" (* "*") (cast_expression "(code **)(puVar33 + 0x234c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar33 + 0x234c8)" (( "(") (binary_expression "puVar33 + 0x234c8" (identifier "puVar33") (+ "+") (number_literal "0x234c8")) () ")"))))) (; ";")) (do_statement "do {\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        } while (ppuVar11 != (uint **)0x0);" (do "do") (compound_statement "{\n          iVar10 = (*pcVar34)(ppuVar16);\n          ppuVar21 = ppuVar11;\n          puStack_66c = puVar31;\n          if (iVar10 == 0) goto LAB_00015708;\n          unaff_s6 = unaff_s6 + 6;\n          ppuVar11 = *(uint ***)unaff_s6;\n          pcVar34 = *(code **)(puVar33 + 0x234c8);\n        }" ({ "{") (expression_statement "iVar10 = (*pcVar34)(ppuVar16);" (assignment_expression "iVar10 = (*pcVar34)(ppuVar16)" (identifier "iVar10") (= "=") (call_expression "(*pcVar34)(ppuVar16)" (parenthesized_expression "(*pcVar34)" (( "(") (pointer_expression "*pcVar34" (* "*") (identifier "pcVar34")) () ")")) (argument_list "(ppuVar16)" (( "(") (identifier "ppuVar16") () ")")))) (; ";")) (expression_statement "ppuVar21 = ppuVar11;" (assignment_expression "ppuVar21 = ppuVar11" (identifier "ppuVar21") (= "=") (identifier "ppuVar11")) (; ";")) (expression_statement "puStack_66c = puVar31;" (assignment_expression "puStack_66c = puVar31" (identifier "puStack_66c") (= "=") (identifier "puVar31")) (; ";")) (if_statement "if (iVar10 == 0) goto LAB_00015708;" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015708;" (goto "goto") (statement_identifier "LAB_00015708") (; ";"))) (expression_statement "unaff_s6 = unaff_s6 + 6;" (assignment_expression "unaff_s6 = unaff_s6 + 6" (identifier "unaff_s6") (= "=") (binary_expression "unaff_s6 + 6" (identifier "unaff_s6") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "ppuVar11 = *(uint ***)unaff_s6;" (assignment_expression "ppuVar11 = *(uint ***)unaff_s6" (identifier "ppuVar11") (= "=") (pointer_expression "*(uint ***)unaff_s6" (* "*") (cast_expression "(uint ***)unaff_s6" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "unaff_s6")))) (; ";")) (expression_statement "pcVar34 = *(code **)(puVar33 + 0x234c8);" (assignment_expression "pcVar34 = *(code **)(puVar33 + 0x234c8)" (identifier "pcVar34") (= "=") (pointer_expression "*(code **)(puVar33 + 0x234c8)" (* "*") (cast_expression "(code **)(puVar33 + 0x234c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar33 + 0x234c8)" (( "(") (binary_expression "puVar33 + 0x234c8" (identifier "puVar33") (+ "+") (number_literal "0x234c8")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(ppuVar11 != (uint **)0x0)" (( "(") (binary_expression "ppuVar11 != (uint **)0x0" (identifier "ppuVar11") (!= "!=") (cast_expression "(uint **)0x0" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "*pbVar26 = 0x53;" (assignment_expression "*pbVar26 = 0x53" (pointer_expression "*pbVar26" (* "*") (identifier "pbVar26")) (= "=") (number_literal "0x53")) (; ";")) (} "}"))) (expression_statement "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);" (assignment_expression "unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec)" (identifier "unaff_s6") (= "=") (cast_expression "(short *)(*(int *)(puVar33 + 0x23268) + 0x7cec)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar33 + 0x23268) + 0x7cec)" (( "(") (binary_expression "*(int *)(puVar33 + 0x23268) + 0x7cec" (pointer_expression "*(int *)(puVar33 + 0x23268)" (* "*") (cast_expression "(int *)(puVar33 + 0x23268)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar33 + 0x23268)" (( "(") (binary_expression "puVar33 + 0x23268" (identifier "puVar33") (+ "+") (number_literal "0x23268")) () ")")))) (+ "+") (number_literal "0x7cec")) () ")")))) (; ";")) (expression_statement "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);" (assignment_expression "ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4)" (identifier "ppuVar21") (= "=") (cast_expression "(uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar33 + 0x23270) + 0x51e4)" (( "(") (binary_expression "*(int *)(puVar33 + 0x23270) + 0x51e4" (pointer_expression "*(int *)(puVar33 + 0x23270)" (* "*") (cast_expression "(int *)(puVar33 + 0x23270)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar33 + 0x23270)" (( "(") (binary_expression "puVar33 + 0x23270" (identifier "puVar33") (+ "+") (number_literal "0x23270")) () ")")))) (+ "+") (number_literal "0x51e4")) () ")")))) (; ";")) (expression_statement "pcVar34 = *(code **)(puVar33 + 0x234c8);" (assignment_expression "pcVar34 = *(code **)(puVar33 + 0x234c8)" (identifier "pcVar34") (= "=") (pointer_expression "*(code **)(puVar33 + 0x234c8)" (* "*") (cast_expression "(code **)(puVar33 + 0x234c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar33 + 0x234c8)" (( "(") (binary_expression "puVar33 + 0x234c8" (identifier "puVar33") (+ "+") (number_literal "0x234c8")) () ")"))))) (; ";")) (do_statement "do {\n        iVar10 = (*pcVar34)(ppuVar16);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      } while (ppuVar21 != (uint **)0x0);" (do "do") (compound_statement "{\n        iVar10 = (*pcVar34)(ppuVar16);\n        puStack_66c = puVar31;\n        if (iVar10 == 0) goto LAB_00015708;\n        unaff_s6 = unaff_s6 + 6;\n        ppuVar21 = *(uint ***)unaff_s6;\n        pcVar34 = *(code **)(puVar33 + 0x234c8);\n      }" ({ "{") (expression_statement "iVar10 = (*pcVar34)(ppuVar16);" (assignment_expression "iVar10 = (*pcVar34)(ppuVar16)" (identifier "iVar10") (= "=") (call_expression "(*pcVar34)(ppuVar16)" (parenthesized_expression "(*pcVar34)" (( "(") (pointer_expression "*pcVar34" (* "*") (identifier "pcVar34")) () ")")) (argument_list "(ppuVar16)" (( "(") (identifier "ppuVar16") () ")")))) (; ";")) (expression_statement "puStack_66c = puVar31;" (assignment_expression "puStack_66c = puVar31" (identifier "puStack_66c") (= "=") (identifier "puVar31")) (; ";")) (if_statement "if (iVar10 == 0) goto LAB_00015708;" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015708;" (goto "goto") (statement_identifier "LAB_00015708") (; ";"))) (expression_statement "unaff_s6 = unaff_s6 + 6;" (assignment_expression "unaff_s6 = unaff_s6 + 6" (identifier "unaff_s6") (= "=") (binary_expression "unaff_s6 + 6" (identifier "unaff_s6") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "ppuVar21 = *(uint ***)unaff_s6;" (assignment_expression "ppuVar21 = *(uint ***)unaff_s6" (identifier "ppuVar21") (= "=") (pointer_expression "*(uint ***)unaff_s6" (* "*") (cast_expression "(uint ***)unaff_s6" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "unaff_s6")))) (; ";")) (expression_statement "pcVar34 = *(code **)(puVar33 + 0x234c8);" (assignment_expression "pcVar34 = *(code **)(puVar33 + 0x234c8)" (identifier "pcVar34") (= "=") (pointer_expression "*(code **)(puVar33 + 0x234c8)" (* "*") (cast_expression "(code **)(puVar33 + 0x234c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar33 + 0x234c8)" (( "(") (binary_expression "puVar33 + 0x234c8" (identifier "puVar33") (+ "+") (number_literal "0x234c8")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(ppuVar21 != (uint **)0x0)" (( "(") (binary_expression "ppuVar21 != (uint **)0x0" (identifier "ppuVar21") (!= "!=") (cast_expression "(uint **)0x0" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (if_statement "if (puStack_674 == (uint *)0x1) {\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar11 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(puStack_674 == (uint *)0x1)" (( "(") (binary_expression "puStack_674 == (uint *)0x1" (identifier "puStack_674") (== "==") (cast_expression "(uint *)0x1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n        ppuVar21 = *(uint ***)(puVar33 + 0x23268);\n        if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }\n        ppuVar11 = ppuVar21 + 0x1e51;\n        while( true ) {\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }\n      }" ({ "{") (expression_statement "ppuVar21 = *(uint ***)(puVar33 + 0x23268);" (assignment_expression "ppuVar21 = *(uint ***)(puVar33 + 0x23268)" (identifier "ppuVar21") (= "=") (pointer_expression "*(uint ***)(puVar33 + 0x23268)" (* "*") (cast_expression "(uint ***)(puVar33 + 0x23268)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar33 + 0x23268)" (( "(") (binary_expression "puVar33 + 0x23268" (identifier "puVar33") (+ "+") (number_literal "0x23268")) () ")"))))) (; ";")) (if_statement "if (abStack_f1[1] == 0x41) {\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }" (if "if") (parenthesized_expression "(abStack_f1[1] == 0x41)" (( "(") (binary_expression "abStack_f1[1] == 0x41" (subscript_expression "abStack_f1[1]" (identifier "abStack_f1") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x41")) () ")")) (compound_statement "{\n          puVar29 = (uint *)0x111;\n          apuStack_5e8[1] = (uint *)0xfffff1f0;\n          apuStack_5e8[0] = (uint *)0xffffffff;\n          goto LAB_00015588;\n        }" ({ "{") (expression_statement "puVar29 = (uint *)0x111;" (assignment_expression "puVar29 = (uint *)0x111" (identifier "puVar29") (= "=") (cast_expression "(uint *)0x111" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x111"))) (; ";")) (expression_statement "apuStack_5e8[1] = (uint *)0xfffff1f0;" (assignment_expression "apuStack_5e8[1] = (uint *)0xfffff1f0" (subscript_expression "apuStack_5e8[1]" (identifier "apuStack_5e8") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(uint *)0xfffff1f0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xfffff1f0"))) (; ";")) (expression_statement "apuStack_5e8[0] = (uint *)0xffffffff;" (assignment_expression "apuStack_5e8[0] = (uint *)0xffffffff" (subscript_expression "apuStack_5e8[0]" (identifier "apuStack_5e8") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(uint *)0xffffffff" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (goto_statement "goto LAB_00015588;" (goto "goto") (statement_identifier "LAB_00015588") (; ";")) (} "}"))) (expression_statement "ppuVar11 = ppuVar21 + 0x1e51;" (assignment_expression "ppuVar11 = ppuVar21 + 0x1e51" (identifier "ppuVar11") (= "=") (binary_expression "ppuVar21 + 0x1e51" (identifier "ppuVar21") (+ "+") (number_literal "0x1e51"))) (; ";")) (while_statement "while( true ) {\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          ppuVar21 = ppuVar11;\n          if (ppuVar21[3] == (uint *)0x0) break;\n          ppuVar11 = ppuVar21 + 3;\n          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }\n        }" ({ "{") (expression_statement "ppuVar21 = ppuVar11;" (assignment_expression "ppuVar21 = ppuVar11" (identifier "ppuVar21") (= "=") (identifier "ppuVar11")) (; ";")) (if_statement "if (ppuVar21[3] == (uint *)0x0) break;" (if "if") (parenthesized_expression "(ppuVar21[3] == (uint *)0x0)" (( "(") (binary_expression "ppuVar21[3] == (uint *)0x0" (subscript_expression "ppuVar21[3]" (identifier "ppuVar21") ([ "[") (number_literal "3") (] "]")) (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "ppuVar11 = ppuVar21 + 3;" (assignment_expression "ppuVar11 = ppuVar21 + 3" (identifier "ppuVar11") (= "=") (binary_expression "ppuVar21 + 3" (identifier "ppuVar21") (+ "+") (number_literal "3"))) (; ";")) (if_statement "if (*(byte *)ppuVar21[3] == abStack_f1[1]) {\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }" (if "if") (parenthesized_expression "(*(byte *)ppuVar21[3] == abStack_f1[1])" (( "(") (binary_expression "*(byte *)ppuVar21[3] == abStack_f1[1]" (pointer_expression "*(byte *)ppuVar21[3]" (* "*") (cast_expression "(byte *)ppuVar21[3]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppuVar21[3]" (identifier "ppuVar21") ([ "[") (number_literal "3") (] "]")))) (== "==") (subscript_expression "abStack_f1[1]" (identifier "abStack_f1") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\n            puVar29 = ppuVar21[4];\n            apuStack_5e8[1] = ppuVar21[5];\n            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);\n            goto LAB_00014f5c;\n          }" ({ "{") (expression_statement "puVar29 = ppuVar21[4];" (assignment_expression "puVar29 = ppuVar21[4]" (identifier "puVar29") (= "=") (subscript_expression "ppuVar21[4]" (identifier "ppuVar21") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "apuStack_5e8[1] = ppuVar21[5];" (assignment_expression "apuStack_5e8[1] = ppuVar21[5]" (subscript_expression "apuStack_5e8[1]" (identifier "apuStack_5e8") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "ppuVar21[5]" (identifier "ppuVar21") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);" (assignment_expression "apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f)" (subscript_expression "apuStack_5e8[0]" (identifier "apuStack_5e8") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(uint *)((int)ppuVar21[5] >> 0x1f)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar21[5] >> 0x1f)" (( "(") (binary_expression "(int)ppuVar21[5] >> 0x1f" (cast_expression "(int)ppuVar21[5]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppuVar21[5]" (identifier "ppuVar21") ([ "[") (number_literal "5") (] "]"))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (goto_statement "goto LAB_00014f5c;" (goto "goto") (statement_identifier "LAB_00014f5c") (; ";")) (} "}"))) (} "}"))) (} "}"))) (if_statement "if (abStack_f1[1] != 0) {\n        bVar2 = false;\n        ppuVar21 = ppuVar16;\n        ppuVar11 = ppuVar16;\n        bVar12 = abStack_f1[1];\n        do {\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        } while (bVar12 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }" (if "if") (parenthesized_expression "(abStack_f1[1] != 0)" (( "(") (binary_expression "abStack_f1[1] != 0" (subscript_expression "abStack_f1[1]" (identifier "abStack_f1") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        bVar2 = false;\n        ppuVar21 = ppuVar16;\n        ppuVar11 = ppuVar16;\n        bVar12 = abStack_f1[1];\n        do {\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        } while (bVar12 != 0);\n        puStack_674 = puVar31;\n        if ((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }\n      }" ({ "{") (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (expression_statement "ppuVar21 = ppuVar16;" (assignment_expression "ppuVar21 = ppuVar16" (identifier "ppuVar21") (= "=") (identifier "ppuVar16")) (; ";")) (expression_statement "ppuVar11 = ppuVar16;" (assignment_expression "ppuVar11 = ppuVar16" (identifier "ppuVar11") (= "=") (identifier "ppuVar16")) (; ";")) (expression_statement "bVar12 = abStack_f1[1];" (assignment_expression "bVar12 = abStack_f1[1]" (identifier "bVar12") (= "=") (subscript_expression "abStack_f1[1]" (identifier "abStack_f1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (do_statement "do {\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        } while (bVar12 != 0);" (do "do") (compound_statement "{\n          if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }\n          ppuVar11 = (uint **)((int)ppuVar11 + 1);\n          bVar12 = *(byte *)ppuVar11;\n          *(byte *)ppuVar21 = bVar12;\n        }" ({ "{") (if_statement "if (bVar12 == 0x2e) {\n            bVar2 = true;\n          }\n          else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }" (if "if") (parenthesized_expression "(bVar12 == 0x2e)" (( "(") (binary_expression "bVar12 == 0x2e" (identifier "bVar12") (== "==") (number_literal "0x2e")) () ")")) (compound_statement "{\n            bVar2 = true;\n          }" ({ "{") (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (} "}")) (else_clause "else {\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }" (else "else") (compound_statement "{\n            ppuVar21 = (uint **)((int)ppuVar21 + 1);\n          }" ({ "{") (expression_statement "ppuVar21 = (uint **)((int)ppuVar21 + 1);" (assignment_expression "ppuVar21 = (uint **)((int)ppuVar21 + 1)" (identifier "ppuVar21") (= "=") (cast_expression "(uint **)((int)ppuVar21 + 1)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar21 + 1)" (( "(") (binary_expression "(int)ppuVar21 + 1" (cast_expression "(int)ppuVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar21")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")))) (expression_statement "ppuVar11 = (uint **)((int)ppuVar11 + 1);" (assignment_expression "ppuVar11 = (uint **)((int)ppuVar11 + 1)" (identifier "ppuVar11") (= "=") (cast_expression "(uint **)((int)ppuVar11 + 1)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar11 + 1)" (( "(") (binary_expression "(int)ppuVar11 + 1" (cast_expression "(int)ppuVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar11")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "bVar12 = *(byte *)ppuVar11;" (assignment_expression "bVar12 = *(byte *)ppuVar11" (identifier "bVar12") (= "=") (pointer_expression "*(byte *)ppuVar11" (* "*") (cast_expression "(byte *)ppuVar11" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar11")))) (; ";")) (expression_statement "*(byte *)ppuVar21 = bVar12;" (assignment_expression "*(byte *)ppuVar21 = bVar12" (pointer_expression "*(byte *)ppuVar21" (* "*") (cast_expression "(byte *)ppuVar21" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar21"))) (= "=") (identifier "bVar12")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar12 != 0)" (( "(") (binary_expression "bVar12 != 0" (identifier "bVar12") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "puStack_674 = puVar31;" (assignment_expression "puStack_674 = puVar31" (identifier "puStack_674") (= "=") (identifier "puVar31")) (; ";")) (if_statement "if ((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }" (if "if") (parenthesized_expression "((bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0))" (( "(") (binary_expression "(bVar2) &&\n           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)" (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (&& "&&") (parenthesized_expression "(ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)" (( "(") (comma_expression "ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0" (assignment_expression "ppuVar21 = ppuVar16" (identifier "ppuVar21") (= "=") (identifier "ppuVar16")) (, ",") (comma_expression "iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0" (assignment_expression "iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14)" (identifier "iVar9") (= "=") (call_expression "(*(code *)(iVar9 + 0x4388))(puVar14)" (parenthesized_expression "(*(code *)(iVar9 + 0x4388))" (( "(") (pointer_expression "*(code *)(iVar9 + 0x4388)" (* "*") (cast_expression "(code *)(iVar9 + 0x4388)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x4388)" (( "(") (binary_expression "iVar9 + 0x4388" (identifier "iVar9") (+ "+") (number_literal "0x4388")) () ")")))) () ")")) (argument_list "(puVar14)" (( "(") (identifier "puVar14") () ")")))) (, ",") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")))) () ")"))) () ")")) (compound_statement "{\n          puVar29 = *(uint **)(iVar9 + 4);\n          apuStack_5e8[1] = *(uint **)(iVar9 + 8);\n          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);\n          goto LAB_00014f5c;\n        }" ({ "{") (expression_statement "puVar29 = *(uint **)(iVar9 + 4);" (assignment_expression "puVar29 = *(uint **)(iVar9 + 4)" (identifier "puVar29") (= "=") (pointer_expression "*(uint **)(iVar9 + 4)" (* "*") (cast_expression "(uint **)(iVar9 + 4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 4)" (( "(") (binary_expression "iVar9 + 4" (identifier "iVar9") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "apuStack_5e8[1] = *(uint **)(iVar9 + 8);" (assignment_expression "apuStack_5e8[1] = *(uint **)(iVar9 + 8)" (subscript_expression "apuStack_5e8[1]" (identifier "apuStack_5e8") ([ "[") (number_literal "1") (] "]")) (= "=") (pointer_expression "*(uint **)(iVar9 + 8)" (* "*") (cast_expression "(uint **)(iVar9 + 8)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 8)" (( "(") (binary_expression "iVar9 + 8" (identifier "iVar9") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);" (assignment_expression "apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f)" (subscript_expression "apuStack_5e8[0]" (identifier "apuStack_5e8") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)*(uint **)(iVar9 + 8) >> 0x1f)" (( "(") (binary_expression "(int)*(uint **)(iVar9 + 8) >> 0x1f" (cast_expression "(int)*(uint **)(iVar9 + 8)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(uint **)(iVar9 + 8)" (* "*") (cast_expression "(uint **)(iVar9 + 8)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 8)" (( "(") (binary_expression "iVar9 + 8" (identifier "iVar9") (+ "+") (number_literal "8")) () ")"))))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (goto_statement "goto LAB_00014f5c;" (goto "goto") (statement_identifier "LAB_00014f5c") (; ";")) (} "}"))) (} "}"))) (expression_statement "ppuVar21 = *(uint ***)(puVar33 + 0x23270);" (assignment_expression "ppuVar21 = *(uint ***)(puVar33 + 0x23270)" (identifier "ppuVar21") (= "=") (pointer_expression "*(uint ***)(puVar33 + 0x23270)" (* "*") (cast_expression "(uint ***)(puVar33 + 0x23270)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar33 + 0x23270)" (( "(") (binary_expression "puVar33 + 0x23270" (identifier "puVar33") (+ "+") (number_literal "0x23270")) () ")"))))) (; ";")) (if_statement "if (*(char *)((int)puVar14 + 0xb5) == '\0') goto LAB_00017ae0;" (if "if") (parenthesized_expression "(*(char *)((int)puVar14 + 0xb5) == '\0')" (( "(") (binary_expression "*(char *)((int)puVar14 + 0xb5) == '\0'" (pointer_expression "*(char *)((int)puVar14 + 0xb5)" (* "*") (cast_expression "(char *)((int)puVar14 + 0xb5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar14 + 0xb5)" (( "(") (binary_expression "(int)puVar14 + 0xb5" (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14")) (+ "+") (number_literal "0xb5")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00017ae0;" (goto "goto") (statement_identifier "LAB_00017ae0") (; ";"))) (expression_statement "uVar5 = (**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5);" (assignment_expression "uVar5 = (**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5)" (identifier "uVar5") (= "=") (call_expression "(**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5)" (parenthesized_expression "(**(code **)(puVar33 + 0x2348c))" (( "(") (pointer_expression "**(code **)(puVar33 + 0x2348c)" (* "*") (pointer_expression "*(code **)(puVar33 + 0x2348c)" (* "*") (cast_expression "(code **)(puVar33 + 0x2348c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar33 + 0x2348c)" (( "(") (binary_expression "puVar33 + 0x2348c" (identifier "puVar33") (+ "+") (number_literal "0x2348c")) () ")"))))) () ")")) (argument_list "(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(uint ***)(puVar33 + 0x23270) + 0x147d" (pointer_expression "*(uint ***)(puVar33 + 0x23270)" (* "*") (cast_expression "(uint ***)(puVar33 + 0x23270)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar33 + 0x23270)" (( "(") (binary_expression "puVar33 + 0x23270" (identifier "puVar33") (+ "+") (number_literal "0x23270")) () ")")))) (+ "+") (number_literal "0x147d")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "puVar29 = (uint *)0x3f;" (assignment_expression "puVar29 = (uint *)0x3f" (identifier "puVar29") (= "=") (cast_expression "(uint *)0x3f" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3f"))) (; ";")) (expression_statement "FUN_00014188(uVar5);" (call_expression "FUN_00014188(uVar5)" (identifier "FUN_00014188") (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "uVar15 = 2;" (assignment_expression "uVar15 = 2" (identifier "uVar15") (= "=") (number_literal "2")) (; ";")) (expression_statement "puVar19 = (uint *)((int)puVar31 + 2);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + 2)" (identifier "puVar19") (= "=") (cast_expression "(uint *)((int)puVar31 + 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar31 + 2)" (( "(") (binary_expression "(int)puVar31 + 2" (cast_expression "(int)puVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar31")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (goto_statement "goto LAB_00014f74;" (goto "goto") (statement_identifier "LAB_00014f74") (; ";")) (} "}"))) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar15 == 0x28) {\n      ppuVar21 = (uint **)*puVar14;\n      goto LAB_000157a8;\n    }" (if "if") (parenthesized_expression "(uVar15 == 0x28)" (( "(") (binary_expression "uVar15 == 0x28" (identifier "uVar15") (== "==") (number_literal "0x28")) () ")")) (compound_statement "{\n      ppuVar21 = (uint **)*puVar14;\n      goto LAB_000157a8;\n    }" ({ "{") (expression_statement "ppuVar21 = (uint **)*puVar14;" (assignment_expression "ppuVar21 = (uint **)*puVar14" (identifier "ppuVar21") (= "=") (cast_expression "(uint **)*puVar14" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*puVar14" (* "*") (identifier "puVar14")))) (; ";")) (goto_statement "goto LAB_000157a8;" (goto "goto") (statement_identifier "LAB_000157a8") (; ";")) (} "}"))) (expression_statement "*puVar14 = (byte *)((int)ppuVar21 + 1);" (assignment_expression "*puVar14 = (byte *)((int)ppuVar21 + 1)" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (cast_expression "(byte *)((int)ppuVar21 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar21 + 1)" (( "(") (binary_expression "(int)ppuVar21 + 1" (cast_expression "(int)ppuVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar21")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "puVar29 = (uint *)(uint)*(byte *)ppuVar21;" (assignment_expression "puVar29 = (uint *)(uint)*(byte *)ppuVar21" (identifier "puVar29") (= "=") (binary_expression "(uint *)(uint)*(byte *)ppuVar21" (cast_expression "(uint *)(uint)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(byte *)ppuVar21" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar21")))) (; ";")) (expression_statement "iVar9 = *(int *)(puVar33 + 0x23270);" (assignment_expression "iVar9 = *(int *)(puVar33 + 0x23270)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(puVar33 + 0x23270)" (* "*") (cast_expression "(int *)(puVar33 + 0x23270)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar33 + 0x23270)" (( "(") (binary_expression "puVar33 + 0x23270" (identifier "puVar33") (+ "+") (number_literal "0x23270")) () ")"))))) (; ";")) (if_statement "if (puVar29 != (uint *)0x0) goto LAB_0001558c;" (if "if") (parenthesized_expression "(puVar29 != (uint *)0x0)" (( "(") (binary_expression "puVar29 != (uint *)0x0" (identifier "puVar29") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001558c;" (goto "goto") (statement_identifier "LAB_0001558c") (; ";"))) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" (identifier "uVar15") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00014f74;" (goto "goto") (statement_identifier "LAB_00014f74") (; ";")) (} "}"))) (labeled_statement "LAB_00014f5c:\n  ppuVar16 = ppuVar21;" (statement_identifier "LAB_00014f5c") (: ":") (expression_statement "ppuVar16 = ppuVar21;" (assignment_expression "ppuVar16 = ppuVar21" (identifier "ppuVar16") (= "=") (identifier "ppuVar21")) (; ";"))) (if_statement "if ((int)puVar29 < 1) {\nLAB_000152b8:\n    uVar15 = 0;\n    puVar29 = (uint *)0x0;\n  }\n  else {\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if ((int)puVar29 < 0x116) {\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }\n    else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }\n  }" (if "if") (parenthesized_expression "((int)puVar29 < 1)" (( "(") (binary_expression "(int)puVar29 < 1" (cast_expression "(int)puVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar29")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\nLAB_000152b8:\n    uVar15 = 0;\n    puVar29 = (uint *)0x0;\n  }" ({ "{") (labeled_statement "LAB_000152b8:\n    uVar15 = 0;" (statement_identifier "LAB_000152b8") (: ":") (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" (identifier "uVar15") (= "=") (number_literal "0")) (; ";"))) (expression_statement "puVar29 = (uint *)0x0;" (assignment_expression "puVar29 = (uint *)0x0" (identifier "puVar29") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if ((int)puVar29 < 0x116) {\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }\n    else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }\n  }" (else "else") (compound_statement "{\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    if ((int)puVar29 < 0x116) {\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }\n    else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }\n  }" ({ "{") (expression_statement "iVar9 = *(int *)(puVar33 + 0x23270);" (assignment_expression "iVar9 = *(int *)(puVar33 + 0x23270)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(puVar33 + 0x23270)" (* "*") (cast_expression "(int *)(puVar33 + 0x23270)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar33 + 0x23270)" (( "(") (binary_expression "puVar33 + 0x23270" (identifier "puVar33") (+ "+") (number_literal "0x23270")) () ")"))))) (; ";")) (if_statement "if ((int)puVar29 < 0x116) {\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }\n    else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }" (if "if") (parenthesized_expression "((int)puVar29 < 0x116)" (( "(") (binary_expression "(int)puVar29 < 0x116" (cast_expression "(int)puVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar29")) (< "<") (number_literal "0x116")) () ")")) (compound_statement "{\nLAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);\n      puVar19 = (uint *)((int)puVar31 + uVar15);\n    }" ({ "{") (labeled_statement "LAB_0001558c:\n      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);" (statement_identifier "LAB_0001558c") (: ":") (expression_statement "uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);" (assignment_expression "uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458)" (identifier "uVar15") (= "=") (binary_expression "(uint)*(byte *)((int)puVar29 + iVar9 + 0x6458)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)((int)puVar29 + iVar9 + 0x6458)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar29 + iVar9 + 0x6458)" (( "(") (binary_expression "(int)puVar29 + iVar9 + 0x6458" (binary_expression "(int)puVar29 + iVar9" (cast_expression "(int)puVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar29")) (+ "+") (identifier "iVar9")) (+ "+") (number_literal "0x6458")) () ")"))))) (; ";"))) (expression_statement "puVar19 = (uint *)((int)puVar31 + uVar15);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + uVar15)" (identifier "puVar19") (= "=") (cast_expression "(uint *)((int)puVar31 + uVar15)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar31 + uVar15)" (( "(") (binary_expression "(int)puVar31 + uVar15" (cast_expression "(int)puVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar31")) (+ "+") (identifier "uVar15")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }" (else "else") (compound_statement "{\n      uVar15 = 2;\n      puVar19 = (uint *)((int)puVar31 + 2);\n    }" ({ "{") (expression_statement "uVar15 = 2;" (assignment_expression "uVar15 = 2" (identifier "uVar15") (= "=") (number_literal "2")) (; ";")) (expression_statement "puVar19 = (uint *)((int)puVar31 + 2);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + 2)" (identifier "puVar19") (= "=") (cast_expression "(uint *)((int)puVar31 + 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar31 + 2)" (( "(") (binary_expression "(int)puVar31 + 2" (cast_expression "(int)puVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar31")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (} "}")))) (} "}")))) (goto_statement "goto LAB_00014f74;" (goto "goto") (statement_identifier "LAB_00014f74") (; ";")) (labeled_statement "LAB_00015354:\n  do {\n    in_t3 = 1;\nLAB_00015358:\n    while( true ) {\n      ppuVar21 = (uint **)*puVar14;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n      if (ppuVar16 != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }\n    in_t3 = 0;\n  } while (uVar15 == 0x2b);" (statement_identifier "LAB_00015354") (: ":") (do_statement "do {\n    in_t3 = 1;\nLAB_00015358:\n    while( true ) {\n      ppuVar21 = (uint **)*puVar14;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n      if (ppuVar16 != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }\n    in_t3 = 0;\n  } while (uVar15 == 0x2b);" (do "do") (compound_statement "{\n    in_t3 = 1;\nLAB_00015358:\n    while( true ) {\n      ppuVar21 = (uint **)*puVar14;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n      if (ppuVar16 != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }\n    in_t3 = 0;\n  }" ({ "{") (expression_statement "in_t3 = 1;" (assignment_expression "in_t3 = 1" (identifier "in_t3") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_00015358:\n    while( true ) {\n      ppuVar21 = (uint **)*puVar14;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n      if (ppuVar16 != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }" (statement_identifier "LAB_00015358") (: ":") (while_statement "while( true ) {\n      ppuVar21 = (uint **)*puVar14;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n      if (ppuVar16 != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      ppuVar21 = (uint **)*puVar14;\n      do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);\n      uVar22 = uVar15 - 9;\n      ppuVar16 = (uint **)(uint)(uVar22 < 0x18);\n      if (ppuVar16 != (uint **)0x0) goto LAB_00015308;\nLAB_000153a8:\n      uVar22 = uVar15 - 0x30;\n      if (9 < uVar22) goto LAB_00015344;\n      if (uVar15 != 0x2d) break;\n      in_t3 = 0xffffffff;\n    }" ({ "{") (expression_statement "ppuVar21 = (uint **)*puVar14;" (assignment_expression "ppuVar21 = (uint **)*puVar14" (identifier "ppuVar21") (= "=") (cast_expression "(uint **)*puVar14" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*puVar14" (* "*") (identifier "puVar14")))) (; ";")) (do_statement "do {\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);" (do "do") (compound_statement "{\n        ppuVar21 = (uint **)((int)ppuVar21 + 1);\n        *puVar14 = ppuVar21;\n        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;\n        uVar15 = (uint)*(byte *)ppuVar21;\n        in_t8 = (uint)(uVar15 - 9 < 0x18);\n        if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }\n      }" ({ "{") (expression_statement "ppuVar21 = (uint **)((int)ppuVar21 + 1);" (assignment_expression "ppuVar21 = (uint **)((int)ppuVar21 + 1)" (identifier "ppuVar21") (= "=") (cast_expression "(uint **)((int)ppuVar21 + 1)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar21 + 1)" (( "(") (binary_expression "(int)ppuVar21 + 1" (cast_expression "(int)ppuVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar21")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*puVar14 = ppuVar21;" (assignment_expression "*puVar14 = ppuVar21" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (identifier "ppuVar21")) (; ";")) (expression_statement "in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;" (assignment_expression "in_t0 = (uint **)(int)(char)*(byte *)ppuVar21" (identifier "in_t0") (= "=") (cast_expression "(uint **)(int)(char)*(byte *)ppuVar21" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (cast_expression "(int)(char)*(byte *)ppuVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*(byte *)ppuVar21" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)ppuVar21" (* "*") (cast_expression "(byte *)ppuVar21" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar21"))))))) (; ";")) (expression_statement "uVar15 = (uint)*(byte *)ppuVar21;" (assignment_expression "uVar15 = (uint)*(byte *)ppuVar21" (identifier "uVar15") (= "=") (binary_expression "(uint)*(byte *)ppuVar21" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)ppuVar21" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar21")))) (; ";")) (expression_statement "in_t8 = (uint)(uVar15 - 9 < 0x18);" (assignment_expression "in_t8 = (uint)(uVar15 - 9 < 0x18)" (identifier "in_t8") (= "=") (call_expression "(uint)(uVar15 - 9 < 0x18)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar15 - 9 < 0x18)" (( "(") (binary_expression "uVar15 - 9 < 0x18" (binary_expression "uVar15 - 9" (identifier "uVar15") (- "-") (number_literal "9")) (< "<") (number_literal "0x18")) () ")")))) (; ";")) (if_statement "if (in_t8 == 0) {\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }" (if "if") (parenthesized_expression "(in_t8 == 0)" (( "(") (binary_expression "in_t8 == 0" (identifier "in_t8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar22 = uVar15 - 0x30;\n          if (9 < uVar22) goto LAB_000152f4;\n          goto LAB_000153dc;\n        }" ({ "{") (expression_statement "uVar22 = uVar15 - 0x30;" (assignment_expression "uVar22 = uVar15 - 0x30" (identifier "uVar22") (= "=") (binary_expression "uVar15 - 0x30" (identifier "uVar15") (- "-") (number_literal "0x30"))) (; ";")) (if_statement "if (9 < uVar22) goto LAB_000152f4;" (if "if") (parenthesized_expression "(9 < uVar22)" (( "(") (binary_expression "9 < uVar22" (number_literal "9") (< "<") (identifier "uVar22")) () ")")) (goto_statement "goto LAB_000152f4;" (goto "goto") (statement_identifier "LAB_000152f4") (; ";"))) (goto_statement "goto LAB_000153dc;" (goto "goto") (statement_identifier "LAB_000153dc") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0)" (( "(") (binary_expression "(1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0" (parenthesized_expression "(1 << (uVar15 - 9 & 0x1f) & 0x80001fU)" (( "(") (binary_expression "1 << (uVar15 - 9 & 0x1f) & 0x80001fU" (binary_expression "1 << (uVar15 - 9 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(uVar15 - 9 & 0x1f)" (( "(") (binary_expression "uVar15 - 9 & 0x1f" (binary_expression "uVar15 - 9" (identifier "uVar15") (- "-") (number_literal "9")) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "0x80001fU")) () ")")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "uVar22 = uVar15 - 9;" (assignment_expression "uVar22 = uVar15 - 9" (identifier "uVar22") (= "=") (binary_expression "uVar15 - 9" (identifier "uVar15") (- "-") (number_literal "9"))) (; ";")) (expression_statement "ppuVar16 = (uint **)(uint)(uVar22 < 0x18);" (assignment_expression "ppuVar16 = (uint **)(uint)(uVar22 < 0x18)" (identifier "ppuVar16") (= "=") (cast_expression "(uint **)(uint)(uVar22 < 0x18)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "(uint)(uVar22 < 0x18)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar22 < 0x18)" (( "(") (binary_expression "uVar22 < 0x18" (identifier "uVar22") (< "<") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (ppuVar16 != (uint **)0x0) goto LAB_00015308;" (if "if") (parenthesized_expression "(ppuVar16 != (uint **)0x0)" (( "(") (binary_expression "ppuVar16 != (uint **)0x0" (identifier "ppuVar16") (!= "!=") (cast_expression "(uint **)0x0" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00015308;" (goto "goto") (statement_identifier "LAB_00015308") (; ";"))) (labeled_statement "LAB_000153a8:\n      uVar22 = uVar15 - 0x30;" (statement_identifier "LAB_000153a8") (: ":") (expression_statement "uVar22 = uVar15 - 0x30;" (assignment_expression "uVar22 = uVar15 - 0x30" (identifier "uVar22") (= "=") (binary_expression "uVar15 - 0x30" (identifier "uVar15") (- "-") (number_literal "0x30"))) (; ";"))) (if_statement "if (9 < uVar22) goto LAB_00015344;" (if "if") (parenthesized_expression "(9 < uVar22)" (( "(") (binary_expression "9 < uVar22" (number_literal "9") (< "<") (identifier "uVar22")) () ")")) (goto_statement "goto LAB_00015344;" (goto "goto") (statement_identifier "LAB_00015344") (; ";"))) (if_statement "if (uVar15 != 0x2d) break;" (if "if") (parenthesized_expression "(uVar15 != 0x2d)" (( "(") (binary_expression "uVar15 != 0x2d" (identifier "uVar15") (!= "!=") (number_literal "0x2d")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "in_t3 = 0xffffffff;" (assignment_expression "in_t3 = 0xffffffff" (identifier "in_t3") (= "=") (number_literal "0xffffffff")) (; ";")) (} "}")))) (expression_statement "in_t3 = 0;" (assignment_expression "in_t3 = 0" (identifier "in_t3") (= "=") (number_literal "0")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar15 == 0x2b)" (( "(") (binary_expression "uVar15 == 0x2b" (identifier "uVar15") (== "==") (number_literal "0x2b")) () ")")) (; ";"))) (expression_statement "ppuVar21 = (uint **)*puVar14;" (assignment_expression "ppuVar21 = (uint **)*puVar14" (identifier "ppuVar21") (= "=") (cast_expression "(uint **)*puVar14" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*puVar14" (* "*") (identifier "puVar14")))) (; ";")) (labeled_statement "LAB_000153dc:\n  ppuVar16 = (uint **)0x0;" (statement_identifier "LAB_000153dc") (: ":") (expression_statement "ppuVar16 = (uint **)0x0;" (assignment_expression "ppuVar16 = (uint **)0x0" (identifier "ppuVar16") (= "=") (cast_expression "(uint **)0x0" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "puVar29 = (uint *)0x0;" (assignment_expression "puVar29 = (uint *)0x0" (identifier "puVar29") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "in_t5 = 0xffffffff;" (assignment_expression "in_t5 = 0xffffffff" (identifier "in_t5") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uVar18 = 0x30;" (assignment_expression "uVar18 = 0x30" (identifier "uVar18") (= "=") (number_literal "0x30")) (; ";")) (expression_statement "in_t8 = 10;" (assignment_expression "in_t8 = 10" (identifier "in_t8") (= "=") (number_literal "10")) (; ";")) (expression_statement "ppuVar28 = ppuVar21;" (assignment_expression "ppuVar28 = ppuVar21" (identifier "ppuVar28") (= "=") (identifier "ppuVar21")) (; ";")) (labeled_statement "LAB_000153f8:\n  if (in_t3 == 0xffffffff) {\n    uVar22 = 0x30 - uVar15;\n  }" (statement_identifier "LAB_000153f8") (: ":") (if_statement "if (in_t3 == 0xffffffff) {\n    uVar22 = 0x30 - uVar15;\n  }" (if "if") (parenthesized_expression "(in_t3 == 0xffffffff)" (( "(") (binary_expression "in_t3 == 0xffffffff" (identifier "in_t3") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n    uVar22 = 0x30 - uVar15;\n  }" ({ "{") (expression_statement "uVar22 = 0x30 - uVar15;" (assignment_expression "uVar22 = 0x30 - uVar15" (identifier "uVar22") (= "=") (binary_expression "0x30 - uVar15" (number_literal "0x30") (- "-") (identifier "uVar15"))) (; ";")) (} "}")))) (expression_statement "uVar15 = (int)uVar22 >> 0x1f;" (assignment_expression "uVar15 = (int)uVar22 >> 0x1f" (identifier "uVar15") (= "=") (binary_expression "(int)uVar22 >> 0x1f" (cast_expression "(int)uVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar22")) (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "puVar17 = (uint *)((int)puVar29 + uVar22);" (assignment_expression "puVar17 = (uint *)((int)puVar29 + uVar22)" (identifier "puVar17") (= "=") (cast_expression "(uint *)((int)puVar29 + uVar22)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar29 + uVar22)" (( "(") (binary_expression "(int)puVar29 + uVar22" (cast_expression "(int)puVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar29")) (+ "+") (identifier "uVar22")) () ")")))) (; ";")) (expression_statement "in_t2 = (uint *)((int)ppuVar16 + (puVar17 < puVar29) + uVar15);" (assignment_expression "in_t2 = (uint *)((int)ppuVar16 + (puVar17 < puVar29) + uVar15)" (identifier "in_t2") (= "=") (cast_expression "(uint *)((int)ppuVar16 + (puVar17 < puVar29) + uVar15)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar16 + (puVar17 < puVar29) + uVar15)" (( "(") (binary_expression "(int)ppuVar16 + (puVar17 < puVar29) + uVar15" (binary_expression "(int)ppuVar16 + (puVar17 < puVar29)" (cast_expression "(int)ppuVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar16")) (+ "+") (parenthesized_expression "(puVar17 < puVar29)" (( "(") (binary_expression "puVar17 < puVar29" (identifier "puVar17") (< "<") (identifier "puVar29")) () ")"))) (+ "+") (identifier "uVar15")) () ")")))) (; ";")) (expression_statement "in_t4 = (uint **)((uint)in_t2 ^ uVar15);" (assignment_expression "in_t4 = (uint **)((uint)in_t2 ^ uVar15)" (identifier "in_t4") (= "=") (cast_expression "(uint **)((uint)in_t2 ^ uVar15)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((uint)in_t2 ^ uVar15)" (( "(") (binary_expression "(uint)in_t2 ^ uVar15" (cast_expression "(uint)in_t2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "in_t2")) (^ "^") (identifier "uVar15")) () ")")))) (; ";")) (expression_statement "ppuVar16 = (uint **)((uint)in_t4 & ~((uint)ppuVar16 ^ uVar15));" (assignment_expression "ppuVar16 = (uint **)((uint)in_t4 & ~((uint)ppuVar16 ^ uVar15))" (identifier "ppuVar16") (= "=") (cast_expression "(uint **)((uint)in_t4 & ~((uint)ppuVar16 ^ uVar15))" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((uint)in_t4 & ~((uint)ppuVar16 ^ uVar15))" (( "(") (binary_expression "(uint)in_t4 & ~((uint)ppuVar16 ^ uVar15)" (cast_expression "(uint)in_t4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "in_t4")) (& "&") (unary_expression "~((uint)ppuVar16 ^ uVar15)" (~ "~") (parenthesized_expression "((uint)ppuVar16 ^ uVar15)" (( "(") (binary_expression "(uint)ppuVar16 ^ uVar15" (cast_expression "(uint)ppuVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppuVar16")) (^ "^") (identifier "uVar15")) () ")")))) () ")")))) (; ";")) (if_statement "if ((int)ppuVar16 < 0) goto LAB_00017ad0;" (if "if") (parenthesized_expression "((int)ppuVar16 < 0)" (( "(") (binary_expression "(int)ppuVar16 < 0" (cast_expression "(int)ppuVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar16")) (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_00017ad0;" (goto "goto") (statement_identifier "LAB_00017ad0") (; ";"))) (expression_statement "uVar15 = (uint)*(byte *)((int)ppuVar28 + 1);" (assignment_expression "uVar15 = (uint)*(byte *)((int)ppuVar28 + 1)" (identifier "uVar15") (= "=") (binary_expression "(uint)*(byte *)((int)ppuVar28 + 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)((int)ppuVar28 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar28 + 1)" (( "(") (binary_expression "(int)ppuVar28 + 1" (cast_expression "(int)ppuVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar28")) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "uVar22 = uVar15 - 0x30;" (assignment_expression "uVar22 = uVar15 - 0x30" (identifier "uVar22") (= "=") (binary_expression "uVar15 - 0x30" (identifier "uVar15") (- "-") (number_literal "0x30"))) (; ";")) (expression_statement "in_t4 = (uint **)((int)ppuVar28 + 1);" (assignment_expression "in_t4 = (uint **)((int)ppuVar28 + 1)" (identifier "in_t4") (= "=") (cast_expression "(uint **)((int)ppuVar28 + 1)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar28 + 1)" (( "(") (binary_expression "(int)ppuVar28 + 1" (cast_expression "(int)ppuVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar28")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (uVar22 < 10) goto LAB_00015528;" (if "if") (parenthesized_expression "(uVar22 < 10)" (( "(") (binary_expression "uVar22 < 10" (identifier "uVar22") (< "<") (number_literal "10")) () ")")) (goto_statement "goto LAB_00015528;" (goto "goto") (statement_identifier "LAB_00015528") (; ";"))) (expression_statement "ppuVar16 = (uint **)0xfffffffd;" (assignment_expression "ppuVar16 = (uint **)0xfffffffd" (identifier "ppuVar16") (= "=") (cast_expression "(uint **)0xfffffffd" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0xfffffffd"))) (; ";")) (if_statement "if (((*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c) ||\n     (puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29)) {\n    *puVar14 = in_t4;\n    uVar15 = 0x13;\n    apuStack_5e8[0] = (uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_);\n    puVar29 = (uint *)0x112;\n    if (in_t3 == 0) {\n      uVar15 = 0x14;\n    }\n    iStack_660 = (int)in_t4 - (int)ppuVar21;\n    if (in_t3 == 0) {\n      puVar29 = (uint *)0x113;\n    }\n    puVar19 = (uint *)((int)puVar31 + uVar15);\n    puStack_65c = in_t2;\n    puStack_630 = puVar17;\n    goto LAB_00014f74;\n  }" (if "if") (parenthesized_expression "(((*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c) ||\n     (puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29))" (( "(") (binary_expression "((*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c) ||\n     (puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29)" (parenthesized_expression "((*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c)" (( "(") (binary_expression "(*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c" (parenthesized_expression "(*(byte *)((int)ppuVar28 + 1) & 0xfd)" (( "(") (binary_expression "*(byte *)((int)ppuVar28 + 1) & 0xfd" (pointer_expression "*(byte *)((int)ppuVar28 + 1)" (* "*") (cast_expression "(byte *)((int)ppuVar28 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar28 + 1)" (( "(") (binary_expression "(int)ppuVar28 + 1" (cast_expression "(int)ppuVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar28")) (+ "+") (number_literal "1")) () ")")))) (& "&") (number_literal "0xfd")) () ")")) (!= "!=") (number_literal "0x2c")) () ")")) (|| "||") (parenthesized_expression "(puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29)" (( "(") (comma_expression "puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29" (assignment_expression "puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30)" (identifier "puVar29") (= "=") (cast_expression "(uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((char)*(byte *)((int)ppuVar28 + 2) + -0x30)" (( "(") (binary_expression "(char)*(byte *)((int)ppuVar28 + 2) + -0x30" (cast_expression "(char)*(byte *)((int)ppuVar28 + 2)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)((int)ppuVar28 + 2)" (* "*") (cast_expression "(byte *)((int)ppuVar28 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar28 + 2)" (( "(") (binary_expression "(int)ppuVar28 + 2" (cast_expression "(int)ppuVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar28")) (+ "+") (number_literal "2")) () ")"))))) (+ "+") (number_literal "-0x30")) () ")")))) (, ",") (binary_expression "&DAT_00000009 < puVar29" (pointer_expression "&DAT_00000009" (& "&") (identifier "DAT_00000009")) (< "<") (identifier "puVar29"))) () ")"))) () ")")) (compound_statement "{\n    *puVar14 = in_t4;\n    uVar15 = 0x13;\n    apuStack_5e8[0] = (uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_);\n    puVar29 = (uint *)0x112;\n    if (in_t3 == 0) {\n      uVar15 = 0x14;\n    }\n    iStack_660 = (int)in_t4 - (int)ppuVar21;\n    if (in_t3 == 0) {\n      puVar29 = (uint *)0x113;\n    }\n    puVar19 = (uint *)((int)puVar31 + uVar15);\n    puStack_65c = in_t2;\n    puStack_630 = puVar17;\n    goto LAB_00014f74;\n  }" ({ "{") (expression_statement "*puVar14 = in_t4;" (assignment_expression "*puVar14 = in_t4" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (identifier "in_t4")) (; ";")) (expression_statement "uVar15 = 0x13;" (assignment_expression "uVar15 = 0x13" (identifier "uVar15") (= "=") (number_literal "0x13")) (; ";")) (expression_statement "apuStack_5e8[0] = (uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_);" (assignment_expression "apuStack_5e8[0] = (uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_)" (subscript_expression "apuStack_5e8[0]" (identifier "apuStack_5e8") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_)" (identifier "CONCAT13") (argument_list "((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_)" (( "(") (call_expression "(byte)(in_t3 >> 0x1f)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(in_t3 >> 0x1f)" (( "(") (binary_expression "in_t3 >> 0x1f" (identifier "in_t3") (>> ">>") (number_literal "0x1f")) () ")"))) (, ",") (field_expression "apuStack_5e8[0]._1_3_" (subscript_expression "apuStack_5e8[0]" (identifier "apuStack_5e8") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_1_3_")) () ")"))))) (; ";")) (expression_statement "puVar29 = (uint *)0x112;" (assignment_expression "puVar29 = (uint *)0x112" (identifier "puVar29") (= "=") (cast_expression "(uint *)0x112" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x112"))) (; ";")) (if_statement "if (in_t3 == 0) {\n      uVar15 = 0x14;\n    }" (if "if") (parenthesized_expression "(in_t3 == 0)" (( "(") (binary_expression "in_t3 == 0" (identifier "in_t3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar15 = 0x14;\n    }" ({ "{") (expression_statement "uVar15 = 0x14;" (assignment_expression "uVar15 = 0x14" (identifier "uVar15") (= "=") (number_literal "0x14")) (; ";")) (} "}"))) (expression_statement "iStack_660 = (int)in_t4 - (int)ppuVar21;" (assignment_expression "iStack_660 = (int)in_t4 - (int)ppuVar21" (identifier "iStack_660") (= "=") (binary_expression "(int)in_t4 - (int)ppuVar21" (cast_expression "(int)in_t4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "in_t4")) (- "-") (cast_expression "(int)ppuVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar21")))) (; ";")) (if_statement "if (in_t3 == 0) {\n      puVar29 = (uint *)0x113;\n    }" (if "if") (parenthesized_expression "(in_t3 == 0)" (( "(") (binary_expression "in_t3 == 0" (identifier "in_t3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      puVar29 = (uint *)0x113;\n    }" ({ "{") (expression_statement "puVar29 = (uint *)0x113;" (assignment_expression "puVar29 = (uint *)0x113" (identifier "puVar29") (= "=") (cast_expression "(uint *)0x113" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x113"))) (; ";")) (} "}"))) (expression_statement "puVar19 = (uint *)((int)puVar31 + uVar15);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + uVar15)" (identifier "puVar19") (= "=") (cast_expression "(uint *)((int)puVar31 + uVar15)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar31 + uVar15)" (( "(") (binary_expression "(int)puVar31 + uVar15" (cast_expression "(int)puVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar31")) (+ "+") (identifier "uVar15")) () ")")))) (; ";")) (expression_statement "puStack_65c = in_t2;" (assignment_expression "puStack_65c = in_t2" (identifier "puStack_65c") (= "=") (identifier "in_t2")) (; ";")) (expression_statement "puStack_630 = puVar17;" (assignment_expression "puStack_630 = puVar17" (identifier "puStack_630") (= "=") (identifier "puVar17")) (; ";")) (goto_statement "goto LAB_00014f74;" (goto "goto") (statement_identifier "LAB_00014f74") (; ";")) (} "}"))) (expression_statement "in_t2 = (uint *)((int)in_t2 + (uint)(puVar17 + -0x20000000 < puVar17));" (assignment_expression "in_t2 = (uint *)((int)in_t2 + (uint)(puVar17 + -0x20000000 < puVar17))" (identifier "in_t2") (= "=") (cast_expression "(uint *)((int)in_t2 + (uint)(puVar17 + -0x20000000 < puVar17))" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)in_t2 + (uint)(puVar17 + -0x20000000 < puVar17))" (( "(") (binary_expression "(int)in_t2 + (uint)(puVar17 + -0x20000000 < puVar17)" (cast_expression "(int)in_t2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "in_t2")) (+ "+") (call_expression "(uint)(puVar17 + -0x20000000 < puVar17)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar17 + -0x20000000 < puVar17)" (( "(") (binary_expression "puVar17 + -0x20000000 < puVar17" (binary_expression "puVar17 + -0x20000000" (identifier "puVar17") (+ "+") (number_literal "-0x20000000")) (< "<") (identifier "puVar17")) () ")")))) () ")")))) (; ";")) (expression_statement "iVar9 = 8;" (assignment_expression "iVar9 = 8" (identifier "iVar9") (= "=") (number_literal "8")) (; ";")) (expression_statement "ppuVar21 = ppuVar16;" (assignment_expression "ppuVar21 = ppuVar16" (identifier "ppuVar21") (= "=") (identifier "ppuVar16")) (; ";")) (if_statement "if (in_t2 != (uint *)0x0) goto LAB_00017ae0;" (if "if") (parenthesized_expression "(in_t2 != (uint *)0x0)" (( "(") (binary_expression "in_t2 != (uint *)0x0" (identifier "in_t2") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00017ae0;" (goto "goto") (statement_identifier "LAB_00017ae0") (; ";"))) (expression_statement "in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 3);" (assignment_expression "in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 3)" (identifier "in_t0") (= "=") (cast_expression "(uint **)(int)(char)*(byte *)((int)ppuVar28 + 3)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (cast_expression "(int)(char)*(byte *)((int)ppuVar28 + 3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*(byte *)((int)ppuVar28 + 3)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)((int)ppuVar28 + 3)" (* "*") (cast_expression "(byte *)((int)ppuVar28 + 3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar28 + 3)" (( "(") (binary_expression "(int)ppuVar28 + 3" (cast_expression "(int)ppuVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar28")) (+ "+") (number_literal "3")) () ")")))))))) (; ";")) (expression_statement "ppuVar28 = (uint **)((int)ppuVar28 + 3);" (assignment_expression "ppuVar28 = (uint **)((int)ppuVar28 + 3)" (identifier "ppuVar28") (= "=") (cast_expression "(uint **)((int)ppuVar28 + 3)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar28 + 3)" (( "(") (binary_expression "(int)ppuVar28 + 3" (cast_expression "(int)ppuVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar28")) (+ "+") (number_literal "3")) () ")")))) (; ";")) (expression_statement "ppuVar21 = in_t0 + -0xc;" (assignment_expression "ppuVar21 = in_t0 + -0xc" (identifier "ppuVar21") (= "=") (binary_expression "in_t0 + -0xc" (identifier "in_t0") (+ "+") (number_literal "-0xc"))) (; ";")) (expression_statement "ppuVar16 = (uint **)((int)puVar29 * 4);" (assignment_expression "ppuVar16 = (uint **)((int)puVar29 * 4)" (identifier "ppuVar16") (= "=") (cast_expression "(uint **)((int)puVar29 * 4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)puVar29 * 4)" (( "(") (binary_expression "(int)puVar29 * 4" (cast_expression "(int)puVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar29")) (* "*") (number_literal "4")) () ")")))) (; ";")) (do_statement "do {\n    puVar29 = (uint *)((int)((int)ppuVar16 + (int)puVar29) * 2);\n    if (ppuVar21 < &DAT_0000000a) {\n      in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);\n      puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n      ppuVar21 = in_t0 + -0xc;\n    }\n    iVar9 = iVar9 + -1;\n    ppuVar16 = (uint **)((int)puVar29 << 2);\n  } while (iVar9 != 0);" (do "do") (compound_statement "{\n    puVar29 = (uint *)((int)((int)ppuVar16 + (int)puVar29) * 2);\n    if (ppuVar21 < &DAT_0000000a) {\n      in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);\n      puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n      ppuVar21 = in_t0 + -0xc;\n    }\n    iVar9 = iVar9 + -1;\n    ppuVar16 = (uint **)((int)puVar29 << 2);\n  }" ({ "{") (expression_statement "puVar29 = (uint *)((int)((int)ppuVar16 + (int)puVar29) * 2);" (assignment_expression "puVar29 = (uint *)((int)((int)ppuVar16 + (int)puVar29) * 2)" (identifier "puVar29") (= "=") (cast_expression "(uint *)((int)((int)ppuVar16 + (int)puVar29) * 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)((int)ppuVar16 + (int)puVar29) * 2)" (( "(") (binary_expression "(int)((int)ppuVar16 + (int)puVar29) * 2" (cast_expression "(int)((int)ppuVar16 + (int)puVar29)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)ppuVar16 + (int)puVar29)" (( "(") (binary_expression "(int)ppuVar16 + (int)puVar29" (cast_expression "(int)ppuVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar16")) (+ "+") (cast_expression "(int)puVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar29"))) () ")"))) (* "*") (number_literal "2")) () ")")))) (; ";")) (if_statement "if (ppuVar21 < &DAT_0000000a) {\n      in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);\n      puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n      ppuVar21 = in_t0 + -0xc;\n    }" (if "if") (parenthesized_expression "(ppuVar21 < &DAT_0000000a)" (( "(") (binary_expression "ppuVar21 < &DAT_0000000a" (identifier "ppuVar21") (< "<") (pointer_expression "&DAT_0000000a" (& "&") (identifier "DAT_0000000a"))) () ")")) (compound_statement "{\n      in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);\n      puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n      ppuVar21 = in_t0 + -0xc;\n    }" ({ "{") (expression_statement "in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);" (assignment_expression "in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1)" (identifier "in_t0") (= "=") (cast_expression "(uint **)(int)(char)*(byte *)((int)ppuVar28 + 1)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (cast_expression "(int)(char)*(byte *)((int)ppuVar28 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*(byte *)((int)ppuVar28 + 1)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)((int)ppuVar28 + 1)" (* "*") (cast_expression "(byte *)((int)ppuVar28 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar28 + 1)" (( "(") (binary_expression "(int)ppuVar28 + 1" (cast_expression "(int)ppuVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar28")) (+ "+") (number_literal "1")) () ")")))))))) (; ";")) (expression_statement "puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);" (assignment_expression "puVar29 = (uint *)((int)puVar29 + (int)ppuVar21)" (identifier "puVar29") (= "=") (cast_expression "(uint *)((int)puVar29 + (int)ppuVar21)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar29 + (int)ppuVar21)" (( "(") (binary_expression "(int)puVar29 + (int)ppuVar21" (cast_expression "(int)puVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar29")) (+ "+") (cast_expression "(int)ppuVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar21"))) () ")")))) (; ";")) (expression_statement "ppuVar28 = (uint **)((int)ppuVar28 + 1);" (assignment_expression "ppuVar28 = (uint **)((int)ppuVar28 + 1)" (identifier "ppuVar28") (= "=") (cast_expression "(uint **)((int)ppuVar28 + 1)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar28 + 1)" (( "(") (binary_expression "(int)ppuVar28 + 1" (cast_expression "(int)ppuVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar28")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "ppuVar21 = in_t0 + -0xc;" (assignment_expression "ppuVar21 = in_t0 + -0xc" (identifier "ppuVar21") (= "=") (binary_expression "in_t0 + -0xc" (identifier "in_t0") (+ "+") (number_literal "-0xc"))) (; ";")) (} "}"))) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "ppuVar16 = (uint **)((int)puVar29 << 2);" (assignment_expression "ppuVar16 = (uint **)((int)puVar29 << 2)" (identifier "ppuVar16") (= "=") (cast_expression "(uint **)((int)puVar29 << 2)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)puVar29 << 2)" (( "(") (binary_expression "(int)puVar29 << 2" (cast_expression "(int)puVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar29")) (<< "<<") (number_literal "2")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "in_t2 = puVar17;" (assignment_expression "in_t2 = puVar17" (identifier "in_t2") (= "=") (identifier "puVar17")) (; ";")) (if_statement "if (in_t3 == 0xffffffff) {\n    ppuVar11 = in_t0;\n    if (ppuVar21 < &DAT_0000000a) {\n      do {\n        if (ppuVar11 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar11 = ppuVar16;\n      } while (ppuVar16 + -0xc <= &DAT_00000009);\n    }\nLAB_00015c20:\n    if (puVar29 != (uint *)0x0) {\n      in_t2 = (uint *)((int)puVar17 + -1);\n      ppuVar21 = ppuVar16;\n      if (puVar17 == (uint *)0x80000000) {\nLAB_00017ae0:\n        ppuVar16 = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }\n    uVar15 = 0x15;\n    apuStack_5e8[1] = puVar29;\n    apuStack_5e8[0] = in_t2;\n    puVar29 = (uint *)0x114;\n    *puVar14 = ppuVar28;\n    puVar19 = (uint *)((int)puVar31 + 0x15);\n    goto LAB_00014f74;\n  }" (if "if") (parenthesized_expression "(in_t3 == 0xffffffff)" (( "(") (binary_expression "in_t3 == 0xffffffff" (identifier "in_t3") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n    ppuVar11 = in_t0;\n    if (ppuVar21 < &DAT_0000000a) {\n      do {\n        if (ppuVar11 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar11 = ppuVar16;\n      } while (ppuVar16 + -0xc <= &DAT_00000009);\n    }\nLAB_00015c20:\n    if (puVar29 != (uint *)0x0) {\n      in_t2 = (uint *)((int)puVar17 + -1);\n      ppuVar21 = ppuVar16;\n      if (puVar17 == (uint *)0x80000000) {\nLAB_00017ae0:\n        ppuVar16 = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }\n    uVar15 = 0x15;\n    apuStack_5e8[1] = puVar29;\n    apuStack_5e8[0] = in_t2;\n    puVar29 = (uint *)0x114;\n    *puVar14 = ppuVar28;\n    puVar19 = (uint *)((int)puVar31 + 0x15);\n    goto LAB_00014f74;\n  }" ({ "{") (expression_statement "ppuVar11 = in_t0;" (assignment_expression "ppuVar11 = in_t0" (identifier "ppuVar11") (= "=") (identifier "in_t0")) (; ";")) (if_statement "if (ppuVar21 < &DAT_0000000a) {\n      do {\n        if (ppuVar11 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar11 = ppuVar16;\n      } while (ppuVar16 + -0xc <= &DAT_00000009);\n    }" (if "if") (parenthesized_expression "(ppuVar21 < &DAT_0000000a)" (( "(") (binary_expression "ppuVar21 < &DAT_0000000a" (identifier "ppuVar21") (< "<") (pointer_expression "&DAT_0000000a" (& "&") (identifier "DAT_0000000a"))) () ")")) (compound_statement "{\n      do {\n        if (ppuVar11 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar11 = ppuVar16;\n      } while (ppuVar16 + -0xc <= &DAT_00000009);\n    }" ({ "{") (do_statement "do {\n        if (ppuVar11 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar11 = ppuVar16;\n      } while (ppuVar16 + -0xc <= &DAT_00000009);" (do "do") (compound_statement "{\n        if (ppuVar11 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }\n        ppuVar28 = (uint **)((int)ppuVar28 + 1);\n        ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;\n        ppuVar11 = ppuVar16;\n      }" ({ "{") (if_statement "if (ppuVar11 != (uint **)0x30) {\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }" (if "if") (parenthesized_expression "(ppuVar11 != (uint **)0x30)" (( "(") (binary_expression "ppuVar11 != (uint **)0x30" (identifier "ppuVar11") (!= "!=") (cast_expression "(uint **)0x30" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x30"))) () ")")) (compound_statement "{\n          puVar29 = (uint *)((int)puVar29 + 1);\n          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;\n          break;\n        }" ({ "{") (expression_statement "puVar29 = (uint *)((int)puVar29 + 1);" (assignment_expression "puVar29 = (uint *)((int)puVar29 + 1)" (identifier "puVar29") (= "=") (cast_expression "(uint *)((int)puVar29 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar29 + 1)" (( "(") (binary_expression "(int)puVar29 + 1" (cast_expression "(int)puVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar29")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;" (if "if") (parenthesized_expression "((int)(char)*(byte *)ppuVar28 - 0x30U < 10)" (( "(") (binary_expression "(int)(char)*(byte *)ppuVar28 - 0x30U < 10" (binary_expression "(int)(char)*(byte *)ppuVar28 - 0x30U" (cast_expression "(int)(char)*(byte *)ppuVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*(byte *)ppuVar28" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)ppuVar28" (* "*") (cast_expression "(byte *)ppuVar28" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar28"))))) (- "-") (number_literal "0x30U")) (< "<") (number_literal "10")) () ")")) (goto_statement "goto LAB_000154dc;" (goto "goto") (statement_identifier "LAB_000154dc") (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "ppuVar28 = (uint **)((int)ppuVar28 + 1);" (assignment_expression "ppuVar28 = (uint **)((int)ppuVar28 + 1)" (identifier "ppuVar28") (= "=") (cast_expression "(uint **)((int)ppuVar28 + 1)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar28 + 1)" (( "(") (binary_expression "(int)ppuVar28 + 1" (cast_expression "(int)ppuVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar28")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;" (assignment_expression "ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28" (identifier "ppuVar16") (= "=") (cast_expression "(uint **)(int)(char)*(byte *)ppuVar28" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (cast_expression "(int)(char)*(byte *)ppuVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*(byte *)ppuVar28" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)ppuVar28" (* "*") (cast_expression "(byte *)ppuVar28" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar28"))))))) (; ";")) (expression_statement "ppuVar11 = ppuVar16;" (assignment_expression "ppuVar11 = ppuVar16" (identifier "ppuVar11") (= "=") (identifier "ppuVar16")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(ppuVar16 + -0xc <= &DAT_00000009)" (( "(") (binary_expression "ppuVar16 + -0xc <= &DAT_00000009" (binary_expression "ppuVar16 + -0xc" (identifier "ppuVar16") (+ "+") (number_literal "-0xc")) (<= "<=") (pointer_expression "&DAT_00000009" (& "&") (identifier "DAT_00000009"))) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00015c20:\n    if (puVar29 != (uint *)0x0) {\n      in_t2 = (uint *)((int)puVar17 + -1);\n      ppuVar21 = ppuVar16;\n      if (puVar17 == (uint *)0x80000000) {\nLAB_00017ae0:\n        ppuVar16 = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }" (statement_identifier "LAB_00015c20") (: ":") (if_statement "if (puVar29 != (uint *)0x0) {\n      in_t2 = (uint *)((int)puVar17 + -1);\n      ppuVar21 = ppuVar16;\n      if (puVar17 == (uint *)0x80000000) {\nLAB_00017ae0:\n        ppuVar16 = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }" (if "if") (parenthesized_expression "(puVar29 != (uint *)0x0)" (( "(") (binary_expression "puVar29 != (uint *)0x0" (identifier "puVar29") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      in_t2 = (uint *)((int)puVar17 + -1);\n      ppuVar21 = ppuVar16;\n      if (puVar17 == (uint *)0x80000000) {\nLAB_00017ae0:\n        ppuVar16 = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }\n      puVar29 = (uint *)(1000000000 - (int)puVar29);\n    }" ({ "{") (expression_statement "in_t2 = (uint *)((int)puVar17 + -1);" (assignment_expression "in_t2 = (uint *)((int)puVar17 + -1)" (identifier "in_t2") (= "=") (cast_expression "(uint *)((int)puVar17 + -1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar17 + -1)" (( "(") (binary_expression "(int)puVar17 + -1" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "ppuVar21 = ppuVar16;" (assignment_expression "ppuVar21 = ppuVar16" (identifier "ppuVar21") (= "=") (identifier "ppuVar16")) (; ";")) (if_statement "if (puVar17 == (uint *)0x80000000) {\nLAB_00017ae0:\n        ppuVar16 = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }" (if "if") (parenthesized_expression "(puVar17 == (uint *)0x80000000)" (( "(") (binary_expression "puVar17 == (uint *)0x80000000" (identifier "puVar17") (== "==") (cast_expression "(uint *)0x80000000" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x80000000"))) () ")")) (compound_statement "{\nLAB_00017ae0:\n        ppuVar16 = ppuVar21;\n        uVar15 = 2;\n        puVar29 = (uint *)0x3f;\n        puVar19 = (uint *)((int)puVar31 + 2);\n        goto LAB_00014f74;\n      }" ({ "{") (labeled_statement "LAB_00017ae0:\n        ppuVar16 = ppuVar21;" (statement_identifier "LAB_00017ae0") (: ":") (expression_statement "ppuVar16 = ppuVar21;" (assignment_expression "ppuVar16 = ppuVar21" (identifier "ppuVar16") (= "=") (identifier "ppuVar21")) (; ";"))) (expression_statement "uVar15 = 2;" (assignment_expression "uVar15 = 2" (identifier "uVar15") (= "=") (number_literal "2")) (; ";")) (expression_statement "puVar29 = (uint *)0x3f;" (assignment_expression "puVar29 = (uint *)0x3f" (identifier "puVar29") (= "=") (cast_expression "(uint *)0x3f" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3f"))) (; ";")) (expression_statement "puVar19 = (uint *)((int)puVar31 + 2);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + 2)" (identifier "puVar19") (= "=") (cast_expression "(uint *)((int)puVar31 + 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar31 + 2)" (( "(") (binary_expression "(int)puVar31 + 2" (cast_expression "(int)puVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar31")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (goto_statement "goto LAB_00014f74;" (goto "goto") (statement_identifier "LAB_00014f74") (; ";")) (} "}"))) (expression_statement "puVar29 = (uint *)(1000000000 - (int)puVar29);" (assignment_expression "puVar29 = (uint *)(1000000000 - (int)puVar29)" (identifier "puVar29") (= "=") (cast_expression "(uint *)(1000000000 - (int)puVar29)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(1000000000 - (int)puVar29)" (( "(") (binary_expression "1000000000 - (int)puVar29" (number_literal "1000000000") (- "-") (cast_expression "(int)puVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar29"))) () ")")))) (; ";")) (} "}")))) (expression_statement "uVar15 = 0x15;" (assignment_expression "uVar15 = 0x15" (identifier "uVar15") (= "=") (number_literal "0x15")) (; ";")) (expression_statement "apuStack_5e8[1] = puVar29;" (assignment_expression "apuStack_5e8[1] = puVar29" (subscript_expression "apuStack_5e8[1]" (identifier "apuStack_5e8") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "puVar29")) (; ";")) (expression_statement "apuStack_5e8[0] = in_t2;" (assignment_expression "apuStack_5e8[0] = in_t2" (subscript_expression "apuStack_5e8[0]" (identifier "apuStack_5e8") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "in_t2")) (; ";")) (expression_statement "puVar29 = (uint *)0x114;" (assignment_expression "puVar29 = (uint *)0x114" (identifier "puVar29") (= "=") (cast_expression "(uint *)0x114" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x114"))) (; ";")) (expression_statement "*puVar14 = ppuVar28;" (assignment_expression "*puVar14 = ppuVar28" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (identifier "ppuVar28")) (; ";")) (expression_statement "puVar19 = (uint *)((int)puVar31 + 0x15);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + 0x15)" (identifier "puVar19") (= "=") (cast_expression "(uint *)((int)puVar31 + 0x15)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar31 + 0x15)" (( "(") (binary_expression "(int)puVar31 + 0x15" (cast_expression "(int)puVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar31")) (+ "+") (number_literal "0x15")) () ")")))) (; ";")) (goto_statement "goto LAB_00014f74;" (goto "goto") (statement_identifier "LAB_00014f74") (; ";")) (} "}"))) (if_statement "if (ppuVar21 < &DAT_0000000a) {\nLAB_000154dc:\n    do {\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    } while ((int)(char)*(byte *)ppuVar28 - 0x30U < 10);\n    if (in_t3 == 0xffffffff) goto LAB_00015c20;\n  }" (if "if") (parenthesized_expression "(ppuVar21 < &DAT_0000000a)" (( "(") (binary_expression "ppuVar21 < &DAT_0000000a" (identifier "ppuVar21") (< "<") (pointer_expression "&DAT_0000000a" (& "&") (identifier "DAT_0000000a"))) () ")")) (compound_statement "{\nLAB_000154dc:\n    do {\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    } while ((int)(char)*(byte *)ppuVar28 - 0x30U < 10);\n    if (in_t3 == 0xffffffff) goto LAB_00015c20;\n  }" ({ "{") (labeled_statement "LAB_000154dc:\n    do {\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    } while ((int)(char)*(byte *)ppuVar28 - 0x30U < 10);" (statement_identifier "LAB_000154dc") (: ":") (do_statement "do {\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    } while ((int)(char)*(byte *)ppuVar28 - 0x30U < 10);" (do "do") (compound_statement "{\n      ppuVar28 = (uint **)((int)ppuVar28 + 1);\n    }" ({ "{") (expression_statement "ppuVar28 = (uint **)((int)ppuVar28 + 1);" (assignment_expression "ppuVar28 = (uint **)((int)ppuVar28 + 1)" (identifier "ppuVar28") (= "=") (cast_expression "(uint **)((int)ppuVar28 + 1)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar28 + 1)" (( "(") (binary_expression "(int)ppuVar28 + 1" (cast_expression "(int)ppuVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar28")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)(char)*(byte *)ppuVar28 - 0x30U < 10)" (( "(") (binary_expression "(int)(char)*(byte *)ppuVar28 - 0x30U < 10" (binary_expression "(int)(char)*(byte *)ppuVar28 - 0x30U" (cast_expression "(int)(char)*(byte *)ppuVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*(byte *)ppuVar28" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)ppuVar28" (* "*") (cast_expression "(byte *)ppuVar28" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar28"))))) (- "-") (number_literal "0x30U")) (< "<") (number_literal "10")) () ")")) (; ";"))) (if_statement "if (in_t3 == 0xffffffff) goto LAB_00015c20;" (if "if") (parenthesized_expression "(in_t3 == 0xffffffff)" (( "(") (binary_expression "in_t3 == 0xffffffff" (identifier "in_t3") (== "==") (number_literal "0xffffffff")) () ")")) (goto_statement "goto LAB_00015c20;" (goto "goto") (statement_identifier "LAB_00015c20") (; ";"))) (} "}"))) (expression_statement "apuStack_5e8[0] = puVar17;" (assignment_expression "apuStack_5e8[0] = puVar17" (subscript_expression "apuStack_5e8[0]" (identifier "apuStack_5e8") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "puVar17")) (; ";")) (expression_statement "uVar15 = 0x16;" (assignment_expression "uVar15 = 0x16" (identifier "uVar15") (= "=") (number_literal "0x16")) (; ";")) (expression_statement "apuStack_5e8[1] = puVar29;" (assignment_expression "apuStack_5e8[1] = puVar29" (subscript_expression "apuStack_5e8[1]" (identifier "apuStack_5e8") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "puVar29")) (; ";")) (expression_statement "puVar29 = (uint *)0x115;" (assignment_expression "puVar29 = (uint *)0x115" (identifier "puVar29") (= "=") (cast_expression "(uint *)0x115" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x115"))) (; ";")) (expression_statement "*puVar14 = ppuVar28;" (assignment_expression "*puVar14 = ppuVar28" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (identifier "ppuVar28")) (; ";")) (if_statement "if (in_t3 != 0) {\n    uVar15 = 0x15;\n    puVar29 = (uint *)0x114;\n  }" (if "if") (parenthesized_expression "(in_t3 != 0)" (( "(") (binary_expression "in_t3 != 0" (identifier "in_t3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar15 = 0x15;\n    puVar29 = (uint *)0x114;\n  }" ({ "{") (expression_statement "uVar15 = 0x15;" (assignment_expression "uVar15 = 0x15" (identifier "uVar15") (= "=") (number_literal "0x15")) (; ";")) (expression_statement "puVar29 = (uint *)0x114;" (assignment_expression "puVar29 = (uint *)0x114" (identifier "puVar29") (= "=") (cast_expression "(uint *)0x114" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x114"))) (; ";")) (} "}"))) (expression_statement "puVar19 = (uint *)((int)puVar31 + uVar15);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + uVar15)" (identifier "puVar19") (= "=") (cast_expression "(uint *)((int)puVar31 + uVar15)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar31 + uVar15)" (( "(") (binary_expression "(int)puVar31 + uVar15" (cast_expression "(int)puVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar31")) (+ "+") (identifier "uVar15")) () ")")))) (; ";")) (labeled_statement "LAB_00014f74:\n  psVar27 = psVar32;" (statement_identifier "LAB_00014f74") (: ":") (expression_statement "psVar27 = psVar32;" (assignment_expression "psVar27 = psVar32" (identifier "psVar27") (= "=") (identifier "psVar32")) (; ";"))) (if_statement "if ((uint *)0x70 < puVar19) goto LAB_0001504c;" (if "if") (parenthesized_expression "((uint *)0x70 < puVar19)" (( "(") (binary_expression "(uint *)0x70 < puVar19" (cast_expression "(uint *)0x70" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x70")) (< "<") (identifier "puVar19")) () ")")) (goto_statement "goto LAB_0001504c;" (goto "goto") (statement_identifier "LAB_0001504c") (; ";"))) (expression_statement "iVar9 = *(int *)(puVar33 + 0x23270);" (assignment_expression "iVar9 = *(int *)(puVar33 + 0x23270)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(puVar33 + 0x23270)" (* "*") (cast_expression "(int *)(puVar33 + 0x23270)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar33 + 0x23270)" (( "(") (binary_expression "puVar33 + 0x23270" (identifier "puVar33") (+ "+") (number_literal "0x23270")) () ")"))))) (; ";")) (if_statement "if ((int)(char)*(byte *)((int)puVar19 + iVar30) != uVar15) goto LAB_00015050;" (if "if") (parenthesized_expression "((int)(char)*(byte *)((int)puVar19 + iVar30) != uVar15)" (( "(") (binary_expression "(int)(char)*(byte *)((int)puVar19 + iVar30) != uVar15" (cast_expression "(int)(char)*(byte *)((int)puVar19 + iVar30)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*(byte *)((int)puVar19 + iVar30)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)((int)puVar19 + iVar30)" (* "*") (cast_expression "(byte *)((int)puVar19 + iVar30)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar19 + iVar30)" (( "(") (binary_expression "(int)puVar19 + iVar30" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (+ "+") (identifier "iVar30")) () ")")))))) (!= "!=") (identifier "uVar15")) () ")")) (goto_statement "goto LAB_00015050;" (goto "goto") (statement_identifier "LAB_00015050") (; ";"))) (expression_statement "puVar25 = (uint *)(uint)*(byte *)((int)puVar19 + iVar8);" (assignment_expression "puVar25 = (uint *)(uint)*(byte *)((int)puVar19 + iVar8)" (identifier "puVar25") (= "=") (binary_expression "(uint *)(uint)*(byte *)((int)puVar19 + iVar8)" (cast_expression "(uint *)(uint)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(byte *)((int)puVar19 + iVar8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar19 + iVar8)" (( "(") (binary_expression "(int)puVar19 + iVar8" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (+ "+") (identifier "iVar8")) () ")"))))) (; ";")) (if_statement "if (puVar25 == (uint *)0x0) {\n    puStack_66c = auStack_5b0;\n    puVar25 = puVar13 + 0xe;\n    puVar31 = puStack_66c;\n    do {\n      puVar17 = puVar31;\n      puVar19 = puVar25;\n      puVar25 = puVar19 + 4;\n      uVar22 = puVar19[1];\n      uVar15 = puVar19[2];\n      uVar18 = puVar19[3];\n      *puVar17 = *puVar19;\n      puVar17[1] = uVar22;\n      puVar17[2] = uVar15;\n      puVar17[3] = uVar18;\n      puVar31 = puVar17 + 4;\n    } while (puVar25 != puVar13 + 0x1a);\n    uVar18 = puVar19[5];\n    iVar10 = -0x1c;\n    puVar17[4] = *puVar25;\n    puVar17[5] = uVar18;\n    puStack_674 = (uint *)puVar13[0x13];\n    in_t3 = puVar13[0x11];\n    in_t2 = (uint *)puVar13[0x10];\n    unaff_s6 = (short *)puVar13[0x12];\n    ppuVar28 = (uint **)puVar13[0x15];\n    in_t0 = (uint **)puVar13[0x14];\n    in_t5 = puVar13[0x17];\n    in_t4 = (uint **)puVar13[0x16];\n    uVar18 = puVar13[0x18];\n    in_t6 = puVar13[0x19];\n    in_t8 = puVar13[0x1a];\n    iVar9 = 0;\n    goto LAB_00015adc;\n  }" (if "if") (parenthesized_expression "(puVar25 == (uint *)0x0)" (( "(") (binary_expression "puVar25 == (uint *)0x0" (identifier "puVar25") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puStack_66c = auStack_5b0;\n    puVar25 = puVar13 + 0xe;\n    puVar31 = puStack_66c;\n    do {\n      puVar17 = puVar31;\n      puVar19 = puVar25;\n      puVar25 = puVar19 + 4;\n      uVar22 = puVar19[1];\n      uVar15 = puVar19[2];\n      uVar18 = puVar19[3];\n      *puVar17 = *puVar19;\n      puVar17[1] = uVar22;\n      puVar17[2] = uVar15;\n      puVar17[3] = uVar18;\n      puVar31 = puVar17 + 4;\n    } while (puVar25 != puVar13 + 0x1a);\n    uVar18 = puVar19[5];\n    iVar10 = -0x1c;\n    puVar17[4] = *puVar25;\n    puVar17[5] = uVar18;\n    puStack_674 = (uint *)puVar13[0x13];\n    in_t3 = puVar13[0x11];\n    in_t2 = (uint *)puVar13[0x10];\n    unaff_s6 = (short *)puVar13[0x12];\n    ppuVar28 = (uint **)puVar13[0x15];\n    in_t0 = (uint **)puVar13[0x14];\n    in_t5 = puVar13[0x17];\n    in_t4 = (uint **)puVar13[0x16];\n    uVar18 = puVar13[0x18];\n    in_t6 = puVar13[0x19];\n    in_t8 = puVar13[0x1a];\n    iVar9 = 0;\n    goto LAB_00015adc;\n  }" ({ "{") (expression_statement "puStack_66c = auStack_5b0;" (assignment_expression "puStack_66c = auStack_5b0" (identifier "puStack_66c") (= "=") (identifier "auStack_5b0")) (; ";")) (expression_statement "puVar25 = puVar13 + 0xe;" (assignment_expression "puVar25 = puVar13 + 0xe" (identifier "puVar25") (= "=") (binary_expression "puVar13 + 0xe" (identifier "puVar13") (+ "+") (number_literal "0xe"))) (; ";")) (expression_statement "puVar31 = puStack_66c;" (assignment_expression "puVar31 = puStack_66c" (identifier "puVar31") (= "=") (identifier "puStack_66c")) (; ";")) (do_statement "do {\n      puVar17 = puVar31;\n      puVar19 = puVar25;\n      puVar25 = puVar19 + 4;\n      uVar22 = puVar19[1];\n      uVar15 = puVar19[2];\n      uVar18 = puVar19[3];\n      *puVar17 = *puVar19;\n      puVar17[1] = uVar22;\n      puVar17[2] = uVar15;\n      puVar17[3] = uVar18;\n      puVar31 = puVar17 + 4;\n    } while (puVar25 != puVar13 + 0x1a);" (do "do") (compound_statement "{\n      puVar17 = puVar31;\n      puVar19 = puVar25;\n      puVar25 = puVar19 + 4;\n      uVar22 = puVar19[1];\n      uVar15 = puVar19[2];\n      uVar18 = puVar19[3];\n      *puVar17 = *puVar19;\n      puVar17[1] = uVar22;\n      puVar17[2] = uVar15;\n      puVar17[3] = uVar18;\n      puVar31 = puVar17 + 4;\n    }" ({ "{") (expression_statement "puVar17 = puVar31;" (assignment_expression "puVar17 = puVar31" (identifier "puVar17") (= "=") (identifier "puVar31")) (; ";")) (expression_statement "puVar19 = puVar25;" (assignment_expression "puVar19 = puVar25" (identifier "puVar19") (= "=") (identifier "puVar25")) (; ";")) (expression_statement "puVar25 = puVar19 + 4;" (assignment_expression "puVar25 = puVar19 + 4" (identifier "puVar25") (= "=") (binary_expression "puVar19 + 4" (identifier "puVar19") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar22 = puVar19[1];" (assignment_expression "uVar22 = puVar19[1]" (identifier "uVar22") (= "=") (subscript_expression "puVar19[1]" (identifier "puVar19") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar15 = puVar19[2];" (assignment_expression "uVar15 = puVar19[2]" (identifier "uVar15") (= "=") (subscript_expression "puVar19[2]" (identifier "puVar19") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar18 = puVar19[3];" (assignment_expression "uVar18 = puVar19[3]" (identifier "uVar18") (= "=") (subscript_expression "puVar19[3]" (identifier "puVar19") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar17 = *puVar19;" (assignment_expression "*puVar17 = *puVar19" (pointer_expression "*puVar17" (* "*") (identifier "puVar17")) (= "=") (pointer_expression "*puVar19" (* "*") (identifier "puVar19"))) (; ";")) (expression_statement "puVar17[1] = uVar22;" (assignment_expression "puVar17[1] = uVar22" (subscript_expression "puVar17[1]" (identifier "puVar17") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar22")) (; ";")) (expression_statement "puVar17[2] = uVar15;" (assignment_expression "puVar17[2] = uVar15" (subscript_expression "puVar17[2]" (identifier "puVar17") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "puVar17[3] = uVar18;" (assignment_expression "puVar17[3] = uVar18" (subscript_expression "puVar17[3]" (identifier "puVar17") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "puVar31 = puVar17 + 4;" (assignment_expression "puVar31 = puVar17 + 4" (identifier "puVar31") (= "=") (binary_expression "puVar17 + 4" (identifier "puVar17") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar25 != puVar13 + 0x1a)" (( "(") (binary_expression "puVar25 != puVar13 + 0x1a" (identifier "puVar25") (!= "!=") (binary_expression "puVar13 + 0x1a" (identifier "puVar13") (+ "+") (number_literal "0x1a"))) () ")")) (; ";")) (expression_statement "uVar18 = puVar19[5];" (assignment_expression "uVar18 = puVar19[5]" (identifier "uVar18") (= "=") (subscript_expression "puVar19[5]" (identifier "puVar19") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "iVar10 = -0x1c;" (assignment_expression "iVar10 = -0x1c" (identifier "iVar10") (= "=") (number_literal "-0x1c")) (; ";")) (expression_statement "puVar17[4] = *puVar25;" (assignment_expression "puVar17[4] = *puVar25" (subscript_expression "puVar17[4]" (identifier "puVar17") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*puVar25" (* "*") (identifier "puVar25"))) (; ";")) (expression_statement "puVar17[5] = uVar18;" (assignment_expression "puVar17[5] = uVar18" (subscript_expression "puVar17[5]" (identifier "puVar17") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "puStack_674 = (uint *)puVar13[0x13];" (assignment_expression "puStack_674 = (uint *)puVar13[0x13]" (identifier "puStack_674") (= "=") (cast_expression "(uint *)puVar13[0x13]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[0x13]" (identifier "puVar13") ([ "[") (number_literal "0x13") (] "]")))) (; ";")) (expression_statement "in_t3 = puVar13[0x11];" (assignment_expression "in_t3 = puVar13[0x11]" (identifier "in_t3") (= "=") (subscript_expression "puVar13[0x11]" (identifier "puVar13") ([ "[") (number_literal "0x11") (] "]"))) (; ";")) (expression_statement "in_t2 = (uint *)puVar13[0x10];" (assignment_expression "in_t2 = (uint *)puVar13[0x10]" (identifier "in_t2") (= "=") (cast_expression "(uint *)puVar13[0x10]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[0x10]" (identifier "puVar13") ([ "[") (number_literal "0x10") (] "]")))) (; ";")) (expression_statement "unaff_s6 = (short *)puVar13[0x12];" (assignment_expression "unaff_s6 = (short *)puVar13[0x12]" (identifier "unaff_s6") (= "=") (cast_expression "(short *)puVar13[0x12]" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[0x12]" (identifier "puVar13") ([ "[") (number_literal "0x12") (] "]")))) (; ";")) (expression_statement "ppuVar28 = (uint **)puVar13[0x15];" (assignment_expression "ppuVar28 = (uint **)puVar13[0x15]" (identifier "ppuVar28") (= "=") (cast_expression "(uint **)puVar13[0x15]" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "puVar13[0x15]" (identifier "puVar13") ([ "[") (number_literal "0x15") (] "]")))) (; ";")) (expression_statement "in_t0 = (uint **)puVar13[0x14];" (assignment_expression "in_t0 = (uint **)puVar13[0x14]" (identifier "in_t0") (= "=") (cast_expression "(uint **)puVar13[0x14]" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "puVar13[0x14]" (identifier "puVar13") ([ "[") (number_literal "0x14") (] "]")))) (; ";")) (expression_statement "in_t5 = puVar13[0x17];" (assignment_expression "in_t5 = puVar13[0x17]" (identifier "in_t5") (= "=") (subscript_expression "puVar13[0x17]" (identifier "puVar13") ([ "[") (number_literal "0x17") (] "]"))) (; ";")) (expression_statement "in_t4 = (uint **)puVar13[0x16];" (assignment_expression "in_t4 = (uint **)puVar13[0x16]" (identifier "in_t4") (= "=") (cast_expression "(uint **)puVar13[0x16]" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "puVar13[0x16]" (identifier "puVar13") ([ "[") (number_literal "0x16") (] "]")))) (; ";")) (expression_statement "uVar18 = puVar13[0x18];" (assignment_expression "uVar18 = puVar13[0x18]" (identifier "uVar18") (= "=") (subscript_expression "puVar13[0x18]" (identifier "puVar13") ([ "[") (number_literal "0x18") (] "]"))) (; ";")) (expression_statement "in_t6 = puVar13[0x19];" (assignment_expression "in_t6 = puVar13[0x19]" (identifier "in_t6") (= "=") (subscript_expression "puVar13[0x19]" (identifier "puVar13") ([ "[") (number_literal "0x19") (] "]"))) (; ";")) (expression_statement "in_t8 = puVar13[0x1a];" (assignment_expression "in_t8 = puVar13[0x1a]" (identifier "in_t8") (= "=") (subscript_expression "puVar13[0x1a]" (identifier "puVar13") ([ "[") (number_literal "0x1a") (] "]"))) (; ";")) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00015adc;" (goto "goto") (statement_identifier "LAB_00015adc") (; ";")) (} "}"))) (if_statement "if (iStack_670 != 0) {\n    iStack_670 = iStack_670 + -1;\n  }" (if "if") (parenthesized_expression "(iStack_670 != 0)" (( "(") (binary_expression "iStack_670 != 0" (identifier "iStack_670") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iStack_670 = iStack_670 + -1;\n  }" ({ "{") (expression_statement "iStack_670 = iStack_670 + -1;" (assignment_expression "iStack_670 = iStack_670 + -1" (identifier "iStack_670") (= "=") (binary_expression "iStack_670 + -1" (identifier "iStack_670") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "puVar13 = puVar13 + 0xe;" (assignment_expression "puVar13 = puVar13 + 0xe" (identifier "puVar13") (= "=") (binary_expression "puVar13 + 0xe" (identifier "puVar13") (+ "+") (number_literal "0xe"))) (; ";")) (expression_statement "in_t0 = apuStack_5b8;" (assignment_expression "in_t0 = apuStack_5b8" (identifier "in_t0") (= "=") (identifier "apuStack_5b8")) (; ";")) (expression_statement "apuStack_5e8[3] = puStack_630;" (assignment_expression "apuStack_5e8[3] = puStack_630" (subscript_expression "apuStack_5e8[3]" (identifier "apuStack_5e8") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "puStack_630")) (; ";")) (expression_statement "apuStack_5e8[2] = puStack_65c;" (assignment_expression "apuStack_5e8[2] = puStack_65c" (subscript_expression "apuStack_5e8[2]" (identifier "apuStack_5e8") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "puStack_65c")) (; ";")) (expression_statement "iStack_5d8 = iStack_660;" (assignment_expression "iStack_5d8 = iStack_660" (identifier "iStack_5d8") (= "=") (identifier "iStack_660")) (; ";")) (expression_statement "ppuVar21 = apuStack_5e8;" (assignment_expression "ppuVar21 = apuStack_5e8" (identifier "ppuVar21") (= "=") (identifier "apuStack_5e8")) (; ";")) (expression_statement "puVar29 = puVar13;" (assignment_expression "puVar29 = puVar13" (identifier "puVar29") (= "=") (identifier "puVar13")) (; ";")) (do_statement "do {\n    puVar31 = puVar29;\n    ppuVar11 = ppuVar21;\n    ppuVar21 = ppuVar11 + 4;\n    puVar19 = ppuVar11[1];\n    ppuVar16 = (uint **)ppuVar11[2];\n    puVar29 = ppuVar11[3];\n    *puVar31 = (uint)*ppuVar11;\n    puVar31[1] = (uint)puVar19;\n    puVar31[2] = (uint)ppuVar16;\n    puVar31[3] = (uint)puVar29;\n    puVar29 = puVar31 + 4;\n  } while (ppuVar21 != in_t0);" (do "do") (compound_statement "{\n    puVar31 = puVar29;\n    ppuVar11 = ppuVar21;\n    ppuVar21 = ppuVar11 + 4;\n    puVar19 = ppuVar11[1];\n    ppuVar16 = (uint **)ppuVar11[2];\n    puVar29 = ppuVar11[3];\n    *puVar31 = (uint)*ppuVar11;\n    puVar31[1] = (uint)puVar19;\n    puVar31[2] = (uint)ppuVar16;\n    puVar31[3] = (uint)puVar29;\n    puVar29 = puVar31 + 4;\n  }" ({ "{") (expression_statement "puVar31 = puVar29;" (assignment_expression "puVar31 = puVar29" (identifier "puVar31") (= "=") (identifier "puVar29")) (; ";")) (expression_statement "ppuVar11 = ppuVar21;" (assignment_expression "ppuVar11 = ppuVar21" (identifier "ppuVar11") (= "=") (identifier "ppuVar21")) (; ";")) (expression_statement "ppuVar21 = ppuVar11 + 4;" (assignment_expression "ppuVar21 = ppuVar11 + 4" (identifier "ppuVar21") (= "=") (binary_expression "ppuVar11 + 4" (identifier "ppuVar11") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar19 = ppuVar11[1];" (assignment_expression "puVar19 = ppuVar11[1]" (identifier "puVar19") (= "=") (subscript_expression "ppuVar11[1]" (identifier "ppuVar11") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "ppuVar16 = (uint **)ppuVar11[2];" (assignment_expression "ppuVar16 = (uint **)ppuVar11[2]" (identifier "ppuVar16") (= "=") (cast_expression "(uint **)ppuVar11[2]" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "ppuVar11[2]" (identifier "ppuVar11") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "puVar29 = ppuVar11[3];" (assignment_expression "puVar29 = ppuVar11[3]" (identifier "puVar29") (= "=") (subscript_expression "ppuVar11[3]" (identifier "ppuVar11") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar31 = (uint)*ppuVar11;" (assignment_expression "*puVar31 = (uint)*ppuVar11" (pointer_expression "*puVar31" (* "*") (identifier "puVar31")) (= "=") (binary_expression "(uint)*ppuVar11" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "ppuVar11"))) (; ";")) (expression_statement "puVar31[1] = (uint)puVar19;" (assignment_expression "puVar31[1] = (uint)puVar19" (subscript_expression "puVar31[1]" (identifier "puVar31") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(uint)puVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar19"))) (; ";")) (expression_statement "puVar31[2] = (uint)ppuVar16;" (assignment_expression "puVar31[2] = (uint)ppuVar16" (subscript_expression "puVar31[2]" (identifier "puVar31") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(uint)ppuVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppuVar16"))) (; ";")) (expression_statement "puVar31[3] = (uint)puVar29;" (assignment_expression "puVar31[3] = (uint)puVar29" (subscript_expression "puVar31[3]" (identifier "puVar31") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(uint)puVar29" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar29"))) (; ";")) (expression_statement "puVar29 = puVar31 + 4;" (assignment_expression "puVar29 = puVar31 + 4" (identifier "puVar29") (= "=") (binary_expression "puVar31 + 4" (identifier "puVar31") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(ppuVar21 != in_t0)" (( "(") (binary_expression "ppuVar21 != in_t0" (identifier "ppuVar21") (!= "!=") (identifier "in_t0")) () ")")) (; ";")) (expression_statement "puVar29 = (uint *)0xfffffffe;" (assignment_expression "puVar29 = (uint *)0xfffffffe" (identifier "puVar29") (= "=") (cast_expression "(uint *)0xfffffffe" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xfffffffe"))) (; ";")) (expression_statement "puVar19 = ppuVar11[5];" (assignment_expression "puVar19 = ppuVar11[5]" (identifier "puVar19") (= "=") (subscript_expression "ppuVar11[5]" (identifier "ppuVar11") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar31[4] = (uint)*ppuVar21;" (assignment_expression "puVar31[4] = (uint)*ppuVar21" (subscript_expression "puVar31[4]" (identifier "puVar31") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "(uint)*ppuVar21" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "ppuVar21"))) (; ";")) (expression_statement "puVar31[5] = (uint)puVar19;" (assignment_expression "puVar31[5] = (uint)puVar19" (subscript_expression "puVar31[5]" (identifier "puVar31") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(uint)puVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar19"))) (; ";")) (labeled_statement "LAB_00015014:\n  psVar27 = psVar32 + 1;" (statement_identifier "LAB_00015014") (: ":") (expression_statement "psVar27 = psVar32 + 1;" (assignment_expression "psVar27 = psVar32 + 1" (identifier "psVar27") (= "=") (binary_expression "psVar32 + 1" (identifier "psVar32") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "psVar32[1] = (short)puVar25;" (assignment_expression "psVar32[1] = (short)puVar25" (subscript_expression "psVar32[1]" (identifier "psVar32") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(short)puVar25" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "puVar25"))) (; ";")) (if_statement "if (&sStack_552 <= psVar27) {\n    iVar9 = 2;\nLAB_00015278:\n    do {\n      if (iStack_dc == *piVar7) {\n        return iVar9;\n      }\n      iVar9 = iStack_dc;\n      uVar5 = (**(code **)(puVar33 + 0x23488))();\n      bVar2 = ppuVar16 == (uint **)0x0;\n      puVar14[0x10] = uVar5;\n      puVar14[0x11] = iVar9;\n      if (!bVar2) {\n        ppuVar16 = (uint **)puVar13[3];\n        if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }\n        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];\n        puVar14[0xb] = -(int)ppuVar16;\n        if (!bVar2) goto code_r0x00016f40;\n      }\n      iVar9 = 1;\n    } while( true );\n  }" (if "if") (parenthesized_expression "(&sStack_552 <= psVar27)" (( "(") (binary_expression "&sStack_552 <= psVar27" (pointer_expression "&sStack_552" (& "&") (identifier "sStack_552")) (<= "<=") (identifier "psVar27")) () ")")) (compound_statement "{\n    iVar9 = 2;\nLAB_00015278:\n    do {\n      if (iStack_dc == *piVar7) {\n        return iVar9;\n      }\n      iVar9 = iStack_dc;\n      uVar5 = (**(code **)(puVar33 + 0x23488))();\n      bVar2 = ppuVar16 == (uint **)0x0;\n      puVar14[0x10] = uVar5;\n      puVar14[0x11] = iVar9;\n      if (!bVar2) {\n        ppuVar16 = (uint **)puVar13[3];\n        if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }\n        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];\n        puVar14[0xb] = -(int)ppuVar16;\n        if (!bVar2) goto code_r0x00016f40;\n      }\n      iVar9 = 1;\n    } while( true );\n  }" ({ "{") (expression_statement "iVar9 = 2;" (assignment_expression "iVar9 = 2" (identifier "iVar9") (= "=") (number_literal "2")) (; ";")) (labeled_statement "LAB_00015278:\n    do {\n      if (iStack_dc == *piVar7) {\n        return iVar9;\n      }\n      iVar9 = iStack_dc;\n      uVar5 = (**(code **)(puVar33 + 0x23488))();\n      bVar2 = ppuVar16 == (uint **)0x0;\n      puVar14[0x10] = uVar5;\n      puVar14[0x11] = iVar9;\n      if (!bVar2) {\n        ppuVar16 = (uint **)puVar13[3];\n        if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }\n        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];\n        puVar14[0xb] = -(int)ppuVar16;\n        if (!bVar2) goto code_r0x00016f40;\n      }\n      iVar9 = 1;\n    } while( true );" (statement_identifier "LAB_00015278") (: ":") (do_statement "do {\n      if (iStack_dc == *piVar7) {\n        return iVar9;\n      }\n      iVar9 = iStack_dc;\n      uVar5 = (**(code **)(puVar33 + 0x23488))();\n      bVar2 = ppuVar16 == (uint **)0x0;\n      puVar14[0x10] = uVar5;\n      puVar14[0x11] = iVar9;\n      if (!bVar2) {\n        ppuVar16 = (uint **)puVar13[3];\n        if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }\n        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];\n        puVar14[0xb] = -(int)ppuVar16;\n        if (!bVar2) goto code_r0x00016f40;\n      }\n      iVar9 = 1;\n    } while( true );" (do "do") (compound_statement "{\n      if (iStack_dc == *piVar7) {\n        return iVar9;\n      }\n      iVar9 = iStack_dc;\n      uVar5 = (**(code **)(puVar33 + 0x23488))();\n      bVar2 = ppuVar16 == (uint **)0x0;\n      puVar14[0x10] = uVar5;\n      puVar14[0x11] = iVar9;\n      if (!bVar2) {\n        ppuVar16 = (uint **)puVar13[3];\n        if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }\n        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];\n        puVar14[0xb] = -(int)ppuVar16;\n        if (!bVar2) goto code_r0x00016f40;\n      }\n      iVar9 = 1;\n    }" ({ "{") (if_statement "if (iStack_dc == *piVar7) {\n        return iVar9;\n      }" (if "if") (parenthesized_expression "(iStack_dc == *piVar7)" (( "(") (binary_expression "iStack_dc == *piVar7" (identifier "iStack_dc") (== "==") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) () ")")) (compound_statement "{\n        return iVar9;\n      }" ({ "{") (return_statement "return iVar9;" (return "return") (identifier "iVar9") (; ";")) (} "}"))) (expression_statement "iVar9 = iStack_dc;" (assignment_expression "iVar9 = iStack_dc" (identifier "iVar9") (= "=") (identifier "iStack_dc")) (; ";")) (expression_statement "uVar5 = (**(code **)(puVar33 + 0x23488))();" (assignment_expression "uVar5 = (**(code **)(puVar33 + 0x23488))()" (identifier "uVar5") (= "=") (call_expression "(**(code **)(puVar33 + 0x23488))()" (parenthesized_expression "(**(code **)(puVar33 + 0x23488))" (( "(") (pointer_expression "**(code **)(puVar33 + 0x23488)" (* "*") (pointer_expression "*(code **)(puVar33 + 0x23488)" (* "*") (cast_expression "(code **)(puVar33 + 0x23488)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar33 + 0x23488)" (( "(") (binary_expression "puVar33 + 0x23488" (identifier "puVar33") (+ "+") (number_literal "0x23488")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "bVar2 = ppuVar16 == (uint **)0x0;" (assignment_expression "bVar2 = ppuVar16 == (uint **)0x0" (identifier "bVar2") (= "=") (binary_expression "ppuVar16 == (uint **)0x0" (identifier "ppuVar16") (== "==") (cast_expression "(uint **)0x0" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "puVar14[0x10] = uVar5;" (assignment_expression "puVar14[0x10] = uVar5" (subscript_expression "puVar14[0x10]" (identifier "puVar14") ([ "[") (number_literal "0x10") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "puVar14[0x11] = iVar9;" (assignment_expression "puVar14[0x11] = iVar9" (subscript_expression "puVar14[0x11]" (identifier "puVar14") ([ "[") (number_literal "0x11") (] "]")) (= "=") (identifier "iVar9")) (; ";")) (if_statement "if (!bVar2) {\n        ppuVar16 = (uint **)puVar13[3];\n        if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }\n        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];\n        puVar14[0xb] = -(int)ppuVar16;\n        if (!bVar2) goto code_r0x00016f40;\n      }" (if "if") (parenthesized_expression "(!bVar2)" (( "(") (unary_expression "!bVar2" (! "!") (identifier "bVar2")) () ")")) (compound_statement "{\n        ppuVar16 = (uint **)puVar13[3];\n        if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }\n        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];\n        puVar14[0xb] = -(int)ppuVar16;\n        if (!bVar2) goto code_r0x00016f40;\n      }" ({ "{") (expression_statement "ppuVar16 = (uint **)puVar13[3];" (assignment_expression "ppuVar16 = (uint **)puVar13[3]" (identifier "ppuVar16") (= "=") (cast_expression "(uint **)puVar13[3]" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]")))) (; ";")) (if_statement "if (puVar13[2] == 0x80000000) {\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }" (if "if") (parenthesized_expression "(puVar13[2] == 0x80000000)" (( "(") (binary_expression "puVar13[2] == 0x80000000" (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0x80000000")) () ")")) (compound_statement "{\n          bVar2 = ppuVar16 == (uint **)0x0;\n        }" ({ "{") (expression_statement "bVar2 = ppuVar16 == (uint **)0x0;" (assignment_expression "bVar2 = ppuVar16 == (uint **)0x0" (identifier "bVar2") (= "=") (binary_expression "ppuVar16 == (uint **)0x0" (identifier "ppuVar16") (== "==") (cast_expression "(uint **)0x0" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0")))) (; ";")) (} "}"))) (expression_statement "puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];" (assignment_expression "puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2]" (subscript_expression "puVar14[10]" (identifier "puVar14") ([ "[") (number_literal "10") (] "]")) (= "=") (binary_expression "-(uint)(-(int)ppuVar16 != 0) - puVar13[2]" (unary_expression "-(uint)(-(int)ppuVar16 != 0)" (- "-") (call_expression "(uint)(-(int)ppuVar16 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(-(int)ppuVar16 != 0)" (( "(") (binary_expression "-(int)ppuVar16 != 0" (unary_expression "-(int)ppuVar16" (- "-") (cast_expression "(int)ppuVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar16"))) (!= "!=") (number_literal "0")) () ")")))) (- "-") (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "puVar14[0xb] = -(int)ppuVar16;" (assignment_expression "puVar14[0xb] = -(int)ppuVar16" (subscript_expression "puVar14[0xb]" (identifier "puVar14") ([ "[") (number_literal "0xb") (] "]")) (= "=") (unary_expression "-(int)ppuVar16" (- "-") (cast_expression "(int)ppuVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar16")))) (; ";")) (if_statement "if (!bVar2) goto code_r0x00016f40;" (if "if") (parenthesized_expression "(!bVar2)" (( "(") (unary_expression "!bVar2" (! "!") (identifier "bVar2")) () ")")) (goto_statement "goto code_r0x00016f40;" (goto "goto") (statement_identifier "code_r0x00016f40") (; ";"))) (} "}"))) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" (identifier "iVar9") (= "=") (number_literal "1")) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (} "}"))) (if_statement "if (puVar25 == (uint *)0xc) {\n    iVar9 = 0;\n    goto LAB_00015278;\n  }" (if "if") (parenthesized_expression "(puVar25 == (uint *)0xc)" (( "(") (binary_expression "puVar25 == (uint *)0xc" (identifier "puVar25") (== "==") (cast_expression "(uint *)0xc" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xc"))) () ")")) (compound_statement "{\n    iVar9 = 0;\n    goto LAB_00015278;\n  }" ({ "{") (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00015278;" (goto "goto") (statement_identifier "LAB_00015278") (; ";")) (} "}"))) (expression_statement "puVar31 = (uint *)(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4);" (assignment_expression "puVar31 = (uint *)(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" (identifier "puVar31") (= "=") (cast_expression "(uint *)(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" (* "*") (cast_expression "(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" (( "(") (binary_expression "(int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4" (binary_expression "(int)puVar25 + *(int *)(puVar33 + 0x23270)" (cast_expression "(int)puVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar25")) (+ "+") (pointer_expression "*(int *)(puVar33 + 0x23270)" (* "*") (cast_expression "(int *)(puVar33 + 0x23270)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar33 + 0x23270)" (( "(") (binary_expression "puVar33 + 0x23270" (identifier "puVar33") (+ "+") (number_literal "0x23270")) () ")"))))) (+ "+") (number_literal "0x63e4")) () ")")))))))) (; ";")) (expression_statement "ppuVar21 = ppuVar16;" (assignment_expression "ppuVar21 = ppuVar16" (identifier "ppuVar21") (= "=") (identifier "ppuVar16")) (; ";")) (expression_statement "psVar32 = psVar27;" (assignment_expression "psVar32 = psVar27" (identifier "psVar32") (= "=") (identifier "psVar27")) (; ";")) (if_statement "if (puVar31 == (uint *)0xffffffa3) {\nLAB_0001504c:\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    psVar32 = psVar27;\nLAB_00015050:\n    uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370);\n    if (uVar15 != 0) {\n      uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);\n      puVar19 = puVar13 + (1 - uVar22) * 0xe;\n      puVar25 = puVar19;\n      puVar31 = auStack_5b0;\n      do {\n        puVar20 = puVar31;\n        puVar17 = puVar25;\n        puVar25 = puVar17 + 4;\n        uVar24 = puVar17[1];\n        uVar23 = puVar17[2];\n        uVar18 = puVar17[3];\n        *puVar20 = *puVar17;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar18;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);\n      uVar18 = puVar17[5];\n      uVar23 = uVar15 - 4 & 0xff;\n      puVar20[4] = *puVar25;\n      puVar20[5] = uVar18;\n      puStack_674 = (uint *)puVar19[5];\n      in_t3 = puVar19[3];\n      in_t2 = (uint *)puVar19[2];\n      unaff_s6 = (short *)puVar19[4];\n      ppuVar28 = (uint **)puVar19[7];\n      in_t0 = (uint **)puVar19[6];\n      in_t5 = puVar19[9];\n      in_t4 = (uint **)puVar19[8];\n      uVar18 = puVar19[10];\n      in_t6 = puVar19[0xb];\n      in_t8 = puVar19[0xc];\n      if (uVar23 < 0x58) {\n                    \n                    \n        iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();\n        return iVar6;\n      }\n      psVar32 = psVar32 + -uVar22;\n      puVar13 = puVar13 + uVar22 * -0xe;\n      iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;\n      iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);\n      puStack_66c = auStack_5b0;\n      goto LAB_00015adc;\n    }\n    if (iStack_670 == 3) {\n      if ((int)puVar29 < 1) {\n        iVar9 = 1;\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }\n    }\n    ppuVar16 = (uint **)0xffffffa3;\n    while ((((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0))) {\n      iVar9 = 1;\n      psVar27 = psVar32;\n      if (psVar32 == asStack_578) goto LAB_00015278;\n      psVar32 = psVar32 + -1;\n      puVar25 = (uint *)(int)*psVar32;\n      puVar13 = puVar13 + -0xe;\n    }\n    puVar13 = puVar13 + 0xe;\n    in_t0 = apuStack_5b8;\n    apuStack_5e8[3] = puStack_630;\n    apuStack_5e8[2] = puStack_65c;\n    iStack_5d8 = iStack_660;\n    ppuVar21 = apuStack_5e8;\n    puVar31 = puVar13;\n    do {\n      puVar19 = puVar31;\n      ppuVar11 = ppuVar21;\n      ppuVar21 = ppuVar11 + 4;\n      puVar20 = ppuVar11[1];\n      puVar17 = ppuVar11[2];\n      puVar31 = ppuVar11[3];\n      *puVar19 = (uint)*ppuVar11;\n      puVar19[1] = (uint)puVar20;\n      puVar19[2] = (uint)puVar17;\n      puVar19[3] = (uint)puVar31;\n      puVar31 = puVar19 + 4;\n    } while (ppuVar21 != in_t0);\n    ppuVar16 = (uint **)0x3;\n    puVar31 = ppuVar11[5];\n    iStack_670 = 3;\n    puVar19[4] = (uint)*ppuVar21;\n    puVar19[5] = (uint)puVar31;\n    goto LAB_00015014;\n  }" (if "if") (parenthesized_expression "(puVar31 == (uint *)0xffffffa3)" (( "(") (binary_expression "puVar31 == (uint *)0xffffffa3" (identifier "puVar31") (== "==") (cast_expression "(uint *)0xffffffa3" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffa3"))) () ")")) (compound_statement "{\nLAB_0001504c:\n    iVar9 = *(int *)(puVar33 + 0x23270);\n    psVar32 = psVar27;\nLAB_00015050:\n    uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370);\n    if (uVar15 != 0) {\n      uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);\n      puVar19 = puVar13 + (1 - uVar22) * 0xe;\n      puVar25 = puVar19;\n      puVar31 = auStack_5b0;\n      do {\n        puVar20 = puVar31;\n        puVar17 = puVar25;\n        puVar25 = puVar17 + 4;\n        uVar24 = puVar17[1];\n        uVar23 = puVar17[2];\n        uVar18 = puVar17[3];\n        *puVar20 = *puVar17;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar18;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);\n      uVar18 = puVar17[5];\n      uVar23 = uVar15 - 4 & 0xff;\n      puVar20[4] = *puVar25;\n      puVar20[5] = uVar18;\n      puStack_674 = (uint *)puVar19[5];\n      in_t3 = puVar19[3];\n      in_t2 = (uint *)puVar19[2];\n      unaff_s6 = (short *)puVar19[4];\n      ppuVar28 = (uint **)puVar19[7];\n      in_t0 = (uint **)puVar19[6];\n      in_t5 = puVar19[9];\n      in_t4 = (uint **)puVar19[8];\n      uVar18 = puVar19[10];\n      in_t6 = puVar19[0xb];\n      in_t8 = puVar19[0xc];\n      if (uVar23 < 0x58) {\n                    \n                    \n        iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();\n        return iVar6;\n      }\n      psVar32 = psVar32 + -uVar22;\n      puVar13 = puVar13 + uVar22 * -0xe;\n      iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;\n      iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);\n      puStack_66c = auStack_5b0;\n      goto LAB_00015adc;\n    }\n    if (iStack_670 == 3) {\n      if ((int)puVar29 < 1) {\n        iVar9 = 1;\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }\n    }\n    ppuVar16 = (uint **)0xffffffa3;\n    while ((((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0))) {\n      iVar9 = 1;\n      psVar27 = psVar32;\n      if (psVar32 == asStack_578) goto LAB_00015278;\n      psVar32 = psVar32 + -1;\n      puVar25 = (uint *)(int)*psVar32;\n      puVar13 = puVar13 + -0xe;\n    }\n    puVar13 = puVar13 + 0xe;\n    in_t0 = apuStack_5b8;\n    apuStack_5e8[3] = puStack_630;\n    apuStack_5e8[2] = puStack_65c;\n    iStack_5d8 = iStack_660;\n    ppuVar21 = apuStack_5e8;\n    puVar31 = puVar13;\n    do {\n      puVar19 = puVar31;\n      ppuVar11 = ppuVar21;\n      ppuVar21 = ppuVar11 + 4;\n      puVar20 = ppuVar11[1];\n      puVar17 = ppuVar11[2];\n      puVar31 = ppuVar11[3];\n      *puVar19 = (uint)*ppuVar11;\n      puVar19[1] = (uint)puVar20;\n      puVar19[2] = (uint)puVar17;\n      puVar19[3] = (uint)puVar31;\n      puVar31 = puVar19 + 4;\n    } while (ppuVar21 != in_t0);\n    ppuVar16 = (uint **)0x3;\n    puVar31 = ppuVar11[5];\n    iStack_670 = 3;\n    puVar19[4] = (uint)*ppuVar21;\n    puVar19[5] = (uint)puVar31;\n    goto LAB_00015014;\n  }" ({ "{") (labeled_statement "LAB_0001504c:\n    iVar9 = *(int *)(puVar33 + 0x23270);" (statement_identifier "LAB_0001504c") (: ":") (expression_statement "iVar9 = *(int *)(puVar33 + 0x23270);" (assignment_expression "iVar9 = *(int *)(puVar33 + 0x23270)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(puVar33 + 0x23270)" (* "*") (cast_expression "(int *)(puVar33 + 0x23270)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar33 + 0x23270)" (( "(") (binary_expression "puVar33 + 0x23270" (identifier "puVar33") (+ "+") (number_literal "0x23270")) () ")"))))) (; ";"))) (expression_statement "psVar32 = psVar27;" (assignment_expression "psVar32 = psVar27" (identifier "psVar32") (= "=") (identifier "psVar27")) (; ";")) (labeled_statement "LAB_00015050:\n    uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370);" (statement_identifier "LAB_00015050") (: ":") (expression_statement "uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370);" (assignment_expression "uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370)" (identifier "uVar15") (= "=") (binary_expression "(uint)*(byte *)((int)puVar25 + iVar9 + 0x6370)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)((int)puVar25 + iVar9 + 0x6370)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar25 + iVar9 + 0x6370)" (( "(") (binary_expression "(int)puVar25 + iVar9 + 0x6370" (binary_expression "(int)puVar25 + iVar9" (cast_expression "(int)puVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar25")) (+ "+") (identifier "iVar9")) (+ "+") (number_literal "0x6370")) () ")"))))) (; ";"))) (if_statement "if (uVar15 != 0) {\n      uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);\n      puVar19 = puVar13 + (1 - uVar22) * 0xe;\n      puVar25 = puVar19;\n      puVar31 = auStack_5b0;\n      do {\n        puVar20 = puVar31;\n        puVar17 = puVar25;\n        puVar25 = puVar17 + 4;\n        uVar24 = puVar17[1];\n        uVar23 = puVar17[2];\n        uVar18 = puVar17[3];\n        *puVar20 = *puVar17;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar18;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);\n      uVar18 = puVar17[5];\n      uVar23 = uVar15 - 4 & 0xff;\n      puVar20[4] = *puVar25;\n      puVar20[5] = uVar18;\n      puStack_674 = (uint *)puVar19[5];\n      in_t3 = puVar19[3];\n      in_t2 = (uint *)puVar19[2];\n      unaff_s6 = (short *)puVar19[4];\n      ppuVar28 = (uint **)puVar19[7];\n      in_t0 = (uint **)puVar19[6];\n      in_t5 = puVar19[9];\n      in_t4 = (uint **)puVar19[8];\n      uVar18 = puVar19[10];\n      in_t6 = puVar19[0xb];\n      in_t8 = puVar19[0xc];\n      if (uVar23 < 0x58) {\n                    \n                    \n        iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();\n        return iVar6;\n      }\n      psVar32 = psVar32 + -uVar22;\n      puVar13 = puVar13 + uVar22 * -0xe;\n      iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;\n      iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);\n      puStack_66c = auStack_5b0;\n      goto LAB_00015adc;\n    }" (if "if") (parenthesized_expression "(uVar15 != 0)" (( "(") (binary_expression "uVar15 != 0" (identifier "uVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);\n      puVar19 = puVar13 + (1 - uVar22) * 0xe;\n      puVar25 = puVar19;\n      puVar31 = auStack_5b0;\n      do {\n        puVar20 = puVar31;\n        puVar17 = puVar25;\n        puVar25 = puVar17 + 4;\n        uVar24 = puVar17[1];\n        uVar23 = puVar17[2];\n        uVar18 = puVar17[3];\n        *puVar20 = *puVar17;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar18;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);\n      uVar18 = puVar17[5];\n      uVar23 = uVar15 - 4 & 0xff;\n      puVar20[4] = *puVar25;\n      puVar20[5] = uVar18;\n      puStack_674 = (uint *)puVar19[5];\n      in_t3 = puVar19[3];\n      in_t2 = (uint *)puVar19[2];\n      unaff_s6 = (short *)puVar19[4];\n      ppuVar28 = (uint **)puVar19[7];\n      in_t0 = (uint **)puVar19[6];\n      in_t5 = puVar19[9];\n      in_t4 = (uint **)puVar19[8];\n      uVar18 = puVar19[10];\n      in_t6 = puVar19[0xb];\n      in_t8 = puVar19[0xc];\n      if (uVar23 < 0x58) {\n                    \n                    \n        iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();\n        return iVar6;\n      }\n      psVar32 = psVar32 + -uVar22;\n      puVar13 = puVar13 + uVar22 * -0xe;\n      iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;\n      iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);\n      puStack_66c = auStack_5b0;\n      goto LAB_00015adc;\n    }" ({ "{") (expression_statement "uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);" (assignment_expression "uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198)" (identifier "uVar22") (= "=") (binary_expression "(uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198)" (( "(") (binary_expression "uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198" (binary_expression "uVar15 + *(int *)(puVar33 + 0x23270)" (identifier "uVar15") (+ "+") (pointer_expression "*(int *)(puVar33 + 0x23270)" (* "*") (cast_expression "(int *)(puVar33 + 0x23270)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar33 + 0x23270)" (( "(") (binary_expression "puVar33 + 0x23270" (identifier "puVar33") (+ "+") (number_literal "0x23270")) () ")"))))) (+ "+") (number_literal "0x6198")) () ")"))))) (; ";")) (expression_statement "puVar19 = puVar13 + (1 - uVar22) * 0xe;" (assignment_expression "puVar19 = puVar13 + (1 - uVar22) * 0xe" (identifier "puVar19") (= "=") (binary_expression "puVar13 + (1 - uVar22) * 0xe" (identifier "puVar13") (+ "+") (binary_expression "(1 - uVar22) * 0xe" (parenthesized_expression "(1 - uVar22)" (( "(") (binary_expression "1 - uVar22" (number_literal "1") (- "-") (identifier "uVar22")) () ")")) (* "*") (number_literal "0xe")))) (; ";")) (expression_statement "puVar25 = puVar19;" (assignment_expression "puVar25 = puVar19" (identifier "puVar25") (= "=") (identifier "puVar19")) (; ";")) (expression_statement "puVar31 = auStack_5b0;" (assignment_expression "puVar31 = auStack_5b0" (identifier "puVar31") (= "=") (identifier "auStack_5b0")) (; ";")) (do_statement "do {\n        puVar20 = puVar31;\n        puVar17 = puVar25;\n        puVar25 = puVar17 + 4;\n        uVar24 = puVar17[1];\n        uVar23 = puVar17[2];\n        uVar18 = puVar17[3];\n        *puVar20 = *puVar17;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar18;\n        puVar31 = puVar20 + 4;\n      } while (puVar25 != puVar19 + 0xc);" (do "do") (compound_statement "{\n        puVar20 = puVar31;\n        puVar17 = puVar25;\n        puVar25 = puVar17 + 4;\n        uVar24 = puVar17[1];\n        uVar23 = puVar17[2];\n        uVar18 = puVar17[3];\n        *puVar20 = *puVar17;\n        puVar20[1] = uVar24;\n        puVar20[2] = uVar23;\n        puVar20[3] = uVar18;\n        puVar31 = puVar20 + 4;\n      }" ({ "{") (expression_statement "puVar20 = puVar31;" (assignment_expression "puVar20 = puVar31" (identifier "puVar20") (= "=") (identifier "puVar31")) (; ";")) (expression_statement "puVar17 = puVar25;" (assignment_expression "puVar17 = puVar25" (identifier "puVar17") (= "=") (identifier "puVar25")) (; ";")) (expression_statement "puVar25 = puVar17 + 4;" (assignment_expression "puVar25 = puVar17 + 4" (identifier "puVar25") (= "=") (binary_expression "puVar17 + 4" (identifier "puVar17") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar24 = puVar17[1];" (assignment_expression "uVar24 = puVar17[1]" (identifier "uVar24") (= "=") (subscript_expression "puVar17[1]" (identifier "puVar17") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar23 = puVar17[2];" (assignment_expression "uVar23 = puVar17[2]" (identifier "uVar23") (= "=") (subscript_expression "puVar17[2]" (identifier "puVar17") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar18 = puVar17[3];" (assignment_expression "uVar18 = puVar17[3]" (identifier "uVar18") (= "=") (subscript_expression "puVar17[3]" (identifier "puVar17") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar20 = *puVar17;" (assignment_expression "*puVar20 = *puVar17" (pointer_expression "*puVar20" (* "*") (identifier "puVar20")) (= "=") (pointer_expression "*puVar17" (* "*") (identifier "puVar17"))) (; ";")) (expression_statement "puVar20[1] = uVar24;" (assignment_expression "puVar20[1] = uVar24" (subscript_expression "puVar20[1]" (identifier "puVar20") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar24")) (; ";")) (expression_statement "puVar20[2] = uVar23;" (assignment_expression "puVar20[2] = uVar23" (subscript_expression "puVar20[2]" (identifier "puVar20") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar23")) (; ";")) (expression_statement "puVar20[3] = uVar18;" (assignment_expression "puVar20[3] = uVar18" (subscript_expression "puVar20[3]" (identifier "puVar20") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "puVar31 = puVar20 + 4;" (assignment_expression "puVar31 = puVar20 + 4" (identifier "puVar31") (= "=") (binary_expression "puVar20 + 4" (identifier "puVar20") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar25 != puVar19 + 0xc)" (( "(") (binary_expression "puVar25 != puVar19 + 0xc" (identifier "puVar25") (!= "!=") (binary_expression "puVar19 + 0xc" (identifier "puVar19") (+ "+") (number_literal "0xc"))) () ")")) (; ";")) (expression_statement "uVar18 = puVar17[5];" (assignment_expression "uVar18 = puVar17[5]" (identifier "uVar18") (= "=") (subscript_expression "puVar17[5]" (identifier "puVar17") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "uVar23 = uVar15 - 4 & 0xff;" (assignment_expression "uVar23 = uVar15 - 4 & 0xff" (identifier "uVar23") (= "=") (binary_expression "uVar15 - 4 & 0xff" (binary_expression "uVar15 - 4" (identifier "uVar15") (- "-") (number_literal "4")) (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "puVar20[4] = *puVar25;" (assignment_expression "puVar20[4] = *puVar25" (subscript_expression "puVar20[4]" (identifier "puVar20") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*puVar25" (* "*") (identifier "puVar25"))) (; ";")) (expression_statement "puVar20[5] = uVar18;" (assignment_expression "puVar20[5] = uVar18" (subscript_expression "puVar20[5]" (identifier "puVar20") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "puStack_674 = (uint *)puVar19[5];" (assignment_expression "puStack_674 = (uint *)puVar19[5]" (identifier "puStack_674") (= "=") (cast_expression "(uint *)puVar19[5]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar19[5]" (identifier "puVar19") ([ "[") (number_literal "5") (] "]")))) (; ";")) (expression_statement "in_t3 = puVar19[3];" (assignment_expression "in_t3 = puVar19[3]" (identifier "in_t3") (= "=") (subscript_expression "puVar19[3]" (identifier "puVar19") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "in_t2 = (uint *)puVar19[2];" (assignment_expression "in_t2 = (uint *)puVar19[2]" (identifier "in_t2") (= "=") (cast_expression "(uint *)puVar19[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar19[2]" (identifier "puVar19") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "unaff_s6 = (short *)puVar19[4];" (assignment_expression "unaff_s6 = (short *)puVar19[4]" (identifier "unaff_s6") (= "=") (cast_expression "(short *)puVar19[4]" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar19[4]" (identifier "puVar19") ([ "[") (number_literal "4") (] "]")))) (; ";")) (expression_statement "ppuVar28 = (uint **)puVar19[7];" (assignment_expression "ppuVar28 = (uint **)puVar19[7]" (identifier "ppuVar28") (= "=") (cast_expression "(uint **)puVar19[7]" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "puVar19[7]" (identifier "puVar19") ([ "[") (number_literal "7") (] "]")))) (; ";")) (expression_statement "in_t0 = (uint **)puVar19[6];" (assignment_expression "in_t0 = (uint **)puVar19[6]" (identifier "in_t0") (= "=") (cast_expression "(uint **)puVar19[6]" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "puVar19[6]" (identifier "puVar19") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "in_t5 = puVar19[9];" (assignment_expression "in_t5 = puVar19[9]" (identifier "in_t5") (= "=") (subscript_expression "puVar19[9]" (identifier "puVar19") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "in_t4 = (uint **)puVar19[8];" (assignment_expression "in_t4 = (uint **)puVar19[8]" (identifier "in_t4") (= "=") (cast_expression "(uint **)puVar19[8]" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "puVar19[8]" (identifier "puVar19") ([ "[") (number_literal "8") (] "]")))) (; ";")) (expression_statement "uVar18 = puVar19[10];" (assignment_expression "uVar18 = puVar19[10]" (identifier "uVar18") (= "=") (subscript_expression "puVar19[10]" (identifier "puVar19") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "in_t6 = puVar19[0xb];" (assignment_expression "in_t6 = puVar19[0xb]" (identifier "in_t6") (= "=") (subscript_expression "puVar19[0xb]" (identifier "puVar19") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "in_t8 = puVar19[0xc];" (assignment_expression "in_t8 = puVar19[0xc]" (identifier "in_t8") (= "=") (subscript_expression "puVar19[0xc]" (identifier "puVar19") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (if_statement "if (uVar23 < 0x58) {\n                    \n                    \n        iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();\n        return iVar6;\n      }" (if "if") (parenthesized_expression "(uVar23 < 0x58)" (( "(") (binary_expression "uVar23 < 0x58" (identifier "uVar23") (< "<") (number_literal "0x58")) () ")")) (compound_statement "{\n                    \n                    \n        iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();\n        return iVar6;\n      }" ({ "{") (expression_statement "iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();" (assignment_expression "iVar6 = (*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))()" (identifier "iVar6") (= "=") (call_expression "(*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))()" (parenthesized_expression "(*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))" (( "(") (pointer_expression "*(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234)" (* "*") (cast_expression "(code *)(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234)" (( "(") (binary_expression "puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234" (binary_expression "puVar33 +\n                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4)" (identifier "puVar33") (+ "+") (pointer_expression "*(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4)" (* "*") (cast_expression "(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4)" (( "(") (binary_expression "*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4" (binary_expression "*(int *)(puVar33 + 0x23270) + 0x5f80" (pointer_expression "*(int *)(puVar33 + 0x23270)" (* "*") (cast_expression "(int *)(puVar33 + 0x23270)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar33 + 0x23270)" (( "(") (binary_expression "puVar33 + 0x23270" (identifier "puVar33") (+ "+") (number_literal "0x23270")) () ")")))) (+ "+") (number_literal "0x5f80")) (+ "+") (binary_expression "uVar23 * 4" (identifier "uVar23") (* "*") (number_literal "4"))) () ")"))))) (+ "+") (number_literal "0x2b234")) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return iVar6;" (return "return") (identifier "iVar6") (; ";")) (} "}"))) (expression_statement "psVar32 = psVar32 + -uVar22;" (assignment_expression "psVar32 = psVar32 + -uVar22" (identifier "psVar32") (= "=") (binary_expression "psVar32 + -uVar22" (identifier "psVar32") (+ "+") (unary_expression "-uVar22" (- "-") (identifier "uVar22")))) (; ";")) (expression_statement "puVar13 = puVar13 + uVar22 * -0xe;" (assignment_expression "puVar13 = puVar13 + uVar22 * -0xe" (identifier "puVar13") (= "=") (binary_expression "puVar13 + uVar22 * -0xe" (identifier "puVar13") (+ "+") (binary_expression "uVar22 * -0xe" (identifier "uVar22") (* "*") (number_literal "-0xe")))) (; ";")) (expression_statement "iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;" (assignment_expression "iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c" (identifier "iVar10") (= "=") (binary_expression "*(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c" (pointer_expression "*(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15)" (* "*") (cast_expression "(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15)" (( "(") (binary_expression "*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15" (binary_expression "*(int *)(puVar33 + 0x23270) + 0x61f4" (pointer_expression "*(int *)(puVar33 + 0x23270)" (* "*") (cast_expression "(int *)(puVar33 + 0x23270)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar33 + 0x23270)" (( "(") (binary_expression "puVar33 + 0x23270" (identifier "puVar33") (+ "+") (number_literal "0x23270")) () ")")))) (+ "+") (number_literal "0x61f4")) (+ "+") (identifier "uVar15")) () ")")))) (- "-") (number_literal "0x1c"))) (; ";")) (expression_statement "iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);" (assignment_expression "iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354)" (identifier "iVar9") (= "=") (cast_expression "(int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354)" (* "*") (cast_expression "(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354)" (( "(") (binary_expression "iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354" (binary_expression "iVar10 + *(int *)(puVar33 + 0x23270)" (identifier "iVar10") (+ "+") (pointer_expression "*(int *)(puVar33 + 0x23270)" (* "*") (cast_expression "(int *)(puVar33 + 0x23270)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar33 + 0x23270)" (( "(") (binary_expression "puVar33 + 0x23270" (identifier "puVar33") (+ "+") (number_literal "0x23270")) () ")"))))) (+ "+") (number_literal "0x6354")) () ")")))))) (; ";")) (expression_statement "puStack_66c = auStack_5b0;" (assignment_expression "puStack_66c = auStack_5b0" (identifier "puStack_66c") (= "=") (identifier "auStack_5b0")) (; ";")) (goto_statement "goto LAB_00015adc;" (goto "goto") (statement_identifier "LAB_00015adc") (; ";")) (} "}"))) (if_statement "if (iStack_670 == 3) {\n      if ((int)puVar29 < 1) {\n        iVar9 = 1;\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }\n    }" (if "if") (parenthesized_expression "(iStack_670 == 3)" (( "(") (binary_expression "iStack_670 == 3" (identifier "iStack_670") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n      if ((int)puVar29 < 1) {\n        iVar9 = 1;\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }\n    }" ({ "{") (if_statement "if ((int)puVar29 < 1) {\n        iVar9 = 1;\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }\n      else {\n        puVar29 = (uint *)0xfffffffe;\n      }" (if "if") (parenthesized_expression "((int)puVar29 < 1)" (( "(") (binary_expression "(int)puVar29 < 1" (cast_expression "(int)puVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar29")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        iVar9 = 1;\n        psVar27 = psVar32;\n        if (puVar29 == (uint *)0x0) goto LAB_00015278;\n      }" ({ "{") (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" (identifier "iVar9") (= "=") (number_literal "1")) (; ";")) (expression_statement "psVar27 = psVar32;" (assignment_expression "psVar27 = psVar32" (identifier "psVar27") (= "=") (identifier "psVar32")) (; ";")) (if_statement "if (puVar29 == (uint *)0x0) goto LAB_00015278;" (if "if") (parenthesized_expression "(puVar29 == (uint *)0x0)" (( "(") (binary_expression "puVar29 == (uint *)0x0" (identifier "puVar29") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00015278;" (goto "goto") (statement_identifier "LAB_00015278") (; ";"))) (} "}")) (else_clause "else {\n        puVar29 = (uint *)0xfffffffe;\n      }" (else "else") (compound_statement "{\n        puVar29 = (uint *)0xfffffffe;\n      }" ({ "{") (expression_statement "puVar29 = (uint *)0xfffffffe;" (assignment_expression "puVar29 = (uint *)0xfffffffe" (identifier "puVar29") (= "=") (cast_expression "(uint *)0xfffffffe" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xfffffffe"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "ppuVar16 = (uint **)0xffffffa3;" (assignment_expression "ppuVar16 = (uint **)0xffffffa3" (identifier "ppuVar16") (= "=") (cast_expression "(uint **)0xffffffa3" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0xffffffa3"))) (; ";")) (while_statement "while ((((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0))) {\n      iVar9 = 1;\n      psVar27 = psVar32;\n      if (psVar32 == asStack_578) goto LAB_00015278;\n      psVar32 = psVar32 + -1;\n      puVar25 = (uint *)(int)*psVar32;\n      puVar13 = puVar13 + -0xe;\n    }" (while "while") (parenthesized_expression "((((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0)))" (( "(") (parenthesized_expression "(((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0))" (( "(") (binary_expression "((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')) ||\n           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0)" (parenthesized_expression "((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01'))" (( "(") (binary_expression "(iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||\n            (*(char *)(uVar15 + iVar30) != '\x01')" (parenthesized_expression "(iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15))" (( "(") (comma_expression "iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),\n             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)" (assignment_expression "iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" (identifier "iVar9") (= "=") (cast_expression "(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" (* "*") (cast_expression "(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4)" (( "(") (binary_expression "(int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4" (binary_expression "(int)puVar25 + *(int *)(puVar33 + 0x23270)" (cast_expression "(int)puVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar25")) (+ "+") (pointer_expression "*(int *)(puVar33 + 0x23270)" (* "*") (cast_expression "(int *)(puVar33 + 0x23270)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar33 + 0x23270)" (( "(") (binary_expression "puVar33 + 0x23270" (identifier "puVar33") (+ "+") (number_literal "0x23270")) () ")"))))) (+ "+") (number_literal "0x63e4")) () ")"))))))) (, ",") (comma_expression "uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)" (assignment_expression "uVar15 = iVar9 + 1" (identifier "uVar15") (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (, ",") (binary_expression "iVar9 == -0x5d || (0x70 < uVar15)" (binary_expression "iVar9 == -0x5d" (identifier "iVar9") (== "==") (number_literal "-0x5d")) (|| "||") (parenthesized_expression "(0x70 < uVar15)" (( "(") (binary_expression "0x70 < uVar15" (number_literal "0x70") (< "<") (identifier "uVar15")) () ")"))))) () ")")) (|| "||") (parenthesized_expression "(*(char *)(uVar15 + iVar30) != '\x01')" (( "(") (binary_expression "*(char *)(uVar15 + iVar30) != '\x01'" (pointer_expression "*(char *)(uVar15 + iVar30)" (* "*") (cast_expression "(char *)(uVar15 + iVar30)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar15 + iVar30)" (( "(") (binary_expression "uVar15 + iVar30" (identifier "uVar15") (+ "+") (identifier "iVar30")) () ")")))) (!= "!=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0)" (( "(") (comma_expression "puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0" (assignment_expression "puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8)" (identifier "puVar25") (= "=") (binary_expression "(uint *)(uint)*(byte *)(uVar15 + iVar8)" (cast_expression "(uint *)(uint)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(byte *)(uVar15 + iVar8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar15 + iVar8)" (( "(") (binary_expression "uVar15 + iVar8" (identifier "uVar15") (+ "+") (identifier "iVar8")) () ")"))))) (, ",") (binary_expression "puVar25 == (uint *)0x0" (identifier "puVar25") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) () ")")) (compound_statement "{\n      iVar9 = 1;\n      psVar27 = psVar32;\n      if (psVar32 == asStack_578) goto LAB_00015278;\n      psVar32 = psVar32 + -1;\n      puVar25 = (uint *)(int)*psVar32;\n      puVar13 = puVar13 + -0xe;\n    }" ({ "{") (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" (identifier "iVar9") (= "=") (number_literal "1")) (; ";")) (expression_statement "psVar27 = psVar32;" (assignment_expression "psVar27 = psVar32" (identifier "psVar27") (= "=") (identifier "psVar32")) (; ";")) (if_statement "if (psVar32 == asStack_578) goto LAB_00015278;" (if "if") (parenthesized_expression "(psVar32 == asStack_578)" (( "(") (binary_expression "psVar32 == asStack_578" (identifier "psVar32") (== "==") (identifier "asStack_578")) () ")")) (goto_statement "goto LAB_00015278;" (goto "goto") (statement_identifier "LAB_00015278") (; ";"))) (expression_statement "psVar32 = psVar32 + -1;" (assignment_expression "psVar32 = psVar32 + -1" (identifier "psVar32") (= "=") (binary_expression "psVar32 + -1" (identifier "psVar32") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "puVar25 = (uint *)(int)*psVar32;" (assignment_expression "puVar25 = (uint *)(int)*psVar32" (identifier "puVar25") (= "=") (cast_expression "(uint *)(int)*psVar32" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)*psVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*psVar32" (* "*") (identifier "psVar32"))))) (; ";")) (expression_statement "puVar13 = puVar13 + -0xe;" (assignment_expression "puVar13 = puVar13 + -0xe" (identifier "puVar13") (= "=") (binary_expression "puVar13 + -0xe" (identifier "puVar13") (+ "+") (number_literal "-0xe"))) (; ";")) (} "}"))) (expression_statement "puVar13 = puVar13 + 0xe;" (assignment_expression "puVar13 = puVar13 + 0xe" (identifier "puVar13") (= "=") (binary_expression "puVar13 + 0xe" (identifier "puVar13") (+ "+") (number_literal "0xe"))) (; ";")) (expression_statement "in_t0 = apuStack_5b8;" (assignment_expression "in_t0 = apuStack_5b8" (identifier "in_t0") (= "=") (identifier "apuStack_5b8")) (; ";")) (expression_statement "apuStack_5e8[3] = puStack_630;" (assignment_expression "apuStack_5e8[3] = puStack_630" (subscript_expression "apuStack_5e8[3]" (identifier "apuStack_5e8") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "puStack_630")) (; ";")) (expression_statement "apuStack_5e8[2] = puStack_65c;" (assignment_expression "apuStack_5e8[2] = puStack_65c" (subscript_expression "apuStack_5e8[2]" (identifier "apuStack_5e8") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "puStack_65c")) (; ";")) (expression_statement "iStack_5d8 = iStack_660;" (assignment_expression "iStack_5d8 = iStack_660" (identifier "iStack_5d8") (= "=") (identifier "iStack_660")) (; ";")) (expression_statement "ppuVar21 = apuStack_5e8;" (assignment_expression "ppuVar21 = apuStack_5e8" (identifier "ppuVar21") (= "=") (identifier "apuStack_5e8")) (; ";")) (expression_statement "puVar31 = puVar13;" (assignment_expression "puVar31 = puVar13" (identifier "puVar31") (= "=") (identifier "puVar13")) (; ";")) (do_statement "do {\n      puVar19 = puVar31;\n      ppuVar11 = ppuVar21;\n      ppuVar21 = ppuVar11 + 4;\n      puVar20 = ppuVar11[1];\n      puVar17 = ppuVar11[2];\n      puVar31 = ppuVar11[3];\n      *puVar19 = (uint)*ppuVar11;\n      puVar19[1] = (uint)puVar20;\n      puVar19[2] = (uint)puVar17;\n      puVar19[3] = (uint)puVar31;\n      puVar31 = puVar19 + 4;\n    } while (ppuVar21 != in_t0);" (do "do") (compound_statement "{\n      puVar19 = puVar31;\n      ppuVar11 = ppuVar21;\n      ppuVar21 = ppuVar11 + 4;\n      puVar20 = ppuVar11[1];\n      puVar17 = ppuVar11[2];\n      puVar31 = ppuVar11[3];\n      *puVar19 = (uint)*ppuVar11;\n      puVar19[1] = (uint)puVar20;\n      puVar19[2] = (uint)puVar17;\n      puVar19[3] = (uint)puVar31;\n      puVar31 = puVar19 + 4;\n    }" ({ "{") (expression_statement "puVar19 = puVar31;" (assignment_expression "puVar19 = puVar31" (identifier "puVar19") (= "=") (identifier "puVar31")) (; ";")) (expression_statement "ppuVar11 = ppuVar21;" (assignment_expression "ppuVar11 = ppuVar21" (identifier "ppuVar11") (= "=") (identifier "ppuVar21")) (; ";")) (expression_statement "ppuVar21 = ppuVar11 + 4;" (assignment_expression "ppuVar21 = ppuVar11 + 4" (identifier "ppuVar21") (= "=") (binary_expression "ppuVar11 + 4" (identifier "ppuVar11") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar20 = ppuVar11[1];" (assignment_expression "puVar20 = ppuVar11[1]" (identifier "puVar20") (= "=") (subscript_expression "ppuVar11[1]" (identifier "ppuVar11") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar17 = ppuVar11[2];" (assignment_expression "puVar17 = ppuVar11[2]" (identifier "puVar17") (= "=") (subscript_expression "ppuVar11[2]" (identifier "ppuVar11") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar31 = ppuVar11[3];" (assignment_expression "puVar31 = ppuVar11[3]" (identifier "puVar31") (= "=") (subscript_expression "ppuVar11[3]" (identifier "ppuVar11") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar19 = (uint)*ppuVar11;" (assignment_expression "*puVar19 = (uint)*ppuVar11" (pointer_expression "*puVar19" (* "*") (identifier "puVar19")) (= "=") (binary_expression "(uint)*ppuVar11" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "ppuVar11"))) (; ";")) (expression_statement "puVar19[1] = (uint)puVar20;" (assignment_expression "puVar19[1] = (uint)puVar20" (subscript_expression "puVar19[1]" (identifier "puVar19") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(uint)puVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar20"))) (; ";")) (expression_statement "puVar19[2] = (uint)puVar17;" (assignment_expression "puVar19[2] = (uint)puVar17" (subscript_expression "puVar19[2]" (identifier "puVar19") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(uint)puVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar17"))) (; ";")) (expression_statement "puVar19[3] = (uint)puVar31;" (assignment_expression "puVar19[3] = (uint)puVar31" (subscript_expression "puVar19[3]" (identifier "puVar19") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(uint)puVar31" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar31"))) (; ";")) (expression_statement "puVar31 = puVar19 + 4;" (assignment_expression "puVar31 = puVar19 + 4" (identifier "puVar31") (= "=") (binary_expression "puVar19 + 4" (identifier "puVar19") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(ppuVar21 != in_t0)" (( "(") (binary_expression "ppuVar21 != in_t0" (identifier "ppuVar21") (!= "!=") (identifier "in_t0")) () ")")) (; ";")) (expression_statement "ppuVar16 = (uint **)0x3;" (assignment_expression "ppuVar16 = (uint **)0x3" (identifier "ppuVar16") (= "=") (cast_expression "(uint **)0x3" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x3"))) (; ";")) (expression_statement "puVar31 = ppuVar11[5];" (assignment_expression "puVar31 = ppuVar11[5]" (identifier "puVar31") (= "=") (subscript_expression "ppuVar11[5]" (identifier "ppuVar11") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "iStack_670 = 3;" (assignment_expression "iStack_670 = 3" (identifier "iStack_670") (= "=") (number_literal "3")) (; ";")) (expression_statement "puVar19[4] = (uint)*ppuVar21;" (assignment_expression "puVar19[4] = (uint)*ppuVar21" (subscript_expression "puVar19[4]" (identifier "puVar19") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "(uint)*ppuVar21" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "ppuVar21"))) (; ";")) (expression_statement "puVar19[5] = (uint)puVar31;" (assignment_expression "puVar19[5] = (uint)puVar31" (subscript_expression "puVar19[5]" (identifier "puVar19") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(uint)puVar31" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar31"))) (; ";")) (goto_statement "goto LAB_00015014;" (goto "goto") (statement_identifier "LAB_00015014") (; ";")) (} "}"))) (goto_statement "goto LAB_00014f50;" (goto "goto") (statement_identifier "LAB_00014f50") (; ";")) (labeled_statement "LAB_00015528:\n  puVar29 = (uint *)((int)puVar17 >> 0x1f);" (statement_identifier "LAB_00015528") (: ":") (expression_statement "puVar29 = (uint *)((int)puVar17 >> 0x1f);" (assignment_expression "puVar29 = (uint *)((int)puVar17 >> 0x1f)" (identifier "puVar29") (= "=") (cast_expression "(uint *)((int)puVar17 >> 0x1f)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar17 >> 0x1f)" (( "(") (binary_expression "(int)puVar17 >> 0x1f" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";"))) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (if_statement "if (puVar29 == in_t2) {\n    in_t2 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2);\n    ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n  }\n  else {\n    ppuVar28 = (uint **)(ZEXT48(in_t2) * 10);\n    unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20);\n    in_t6 = (int)puVar17 * 4;\n    puStack_674 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)puVar17 * 10);\n    psVar27 = unaff_s6;\n    if ((int)in_t2 < 0) {\n      psVar27 = unaff_s6 + -5;\n    }\n    ppuVar16 = (uint **)((int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2));\n    if ((int)ppuVar16 >> 0x1f != (uint)(ppuVar16 < ppuVar28) + (int)psVar27) {\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n    }\n  }" (if "if") (parenthesized_expression "(puVar29 == in_t2)" (( "(") (binary_expression "puVar29 == in_t2" (identifier "puVar29") (== "==") (identifier "in_t2")) () ")")) (compound_statement "{\n    in_t2 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2);\n    ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n  }" ({ "{") (expression_statement "in_t2 = (uint *)((uint)puVar17 >> 0x1e);" (assignment_expression "in_t2 = (uint *)((uint)puVar17 >> 0x1e)" (identifier "in_t2") (= "=") (cast_expression "(uint *)((uint)puVar17 >> 0x1e)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)puVar17 >> 0x1e)" (( "(") (binary_expression "(uint)puVar17 >> 0x1e" (cast_expression "(uint)puVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar17")) (>> ">>") (number_literal "0x1e")) () ")")))) (; ";")) (expression_statement "in_t0 = (uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2);" (assignment_expression "in_t0 = (uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2)" (identifier "in_t0") (= "=") (cast_expression "(uint **)((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2)" (( "(") (binary_expression "(int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)) * 2" (cast_expression "(int)((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2))" (( "(") (binary_expression "(int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +\n                           ((uint)in_t2 | (int)puVar29 << 2)" (binary_expression "(int)puVar29 +\n                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4))" (cast_expression "(int)puVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar29")) (+ "+") (call_expression "(uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4))" (( "(") (binary_expression "(uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)" (call_expression "(uint)((int)puVar17 * 5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)puVar17 * 5)" (( "(") (binary_expression "(int)puVar17 * 5" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (* "*") (number_literal "5")) () ")"))) (< "<") (call_expression "(uint)((int)puVar17 * 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)puVar17 * 4)" (( "(") (binary_expression "(int)puVar17 * 4" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (* "*") (number_literal "4")) () ")")))) () ")")))) (+ "+") (parenthesized_expression "((uint)in_t2 | (int)puVar29 << 2)" (( "(") (binary_expression "(uint)in_t2 | (int)puVar29 << 2" (cast_expression "(uint)in_t2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "in_t2")) (| "|") (binary_expression "(int)puVar29 << 2" (cast_expression "(int)puVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar29")) (<< "<<") (number_literal "2"))) () ")"))) () ")"))) (* "*") (number_literal "2")) () ")")))) (; ";")) (expression_statement "ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);" (assignment_expression "ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0)" (identifier "ppuVar16") (= "=") (cast_expression "(uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0)" (( "(") (binary_expression "(uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0" (binary_expression "(uint)((int)puVar17 * 5) >> 0x1f" (call_expression "(uint)((int)puVar17 * 5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)puVar17 * 5)" (( "(") (binary_expression "(int)puVar17 * 5" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (* "*") (number_literal "5")) () ")"))) (>> ">>") (number_literal "0x1f")) (| "|") (cast_expression "(uint)in_t0" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "in_t0"))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n    ppuVar28 = (uint **)(ZEXT48(in_t2) * 10);\n    unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20);\n    in_t6 = (int)puVar17 * 4;\n    puStack_674 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)puVar17 * 10);\n    psVar27 = unaff_s6;\n    if ((int)in_t2 < 0) {\n      psVar27 = unaff_s6 + -5;\n    }\n    ppuVar16 = (uint **)((int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2));\n    if ((int)ppuVar16 >> 0x1f != (uint)(ppuVar16 < ppuVar28) + (int)psVar27) {\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n    }\n  }" (else "else") (compound_statement "{\n    ppuVar28 = (uint **)(ZEXT48(in_t2) * 10);\n    unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20);\n    in_t6 = (int)puVar17 * 4;\n    puStack_674 = (uint *)((uint)puVar17 >> 0x1e);\n    in_t0 = (uint **)((int)puVar17 * 10);\n    psVar27 = unaff_s6;\n    if ((int)in_t2 < 0) {\n      psVar27 = unaff_s6 + -5;\n    }\n    ppuVar16 = (uint **)((int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2));\n    if ((int)ppuVar16 >> 0x1f != (uint)(ppuVar16 < ppuVar28) + (int)psVar27) {\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n    }\n  }" ({ "{") (expression_statement "ppuVar28 = (uint **)(ZEXT48(in_t2) * 10);" (assignment_expression "ppuVar28 = (uint **)(ZEXT48(in_t2) * 10)" (identifier "ppuVar28") (= "=") (cast_expression "(uint **)(ZEXT48(in_t2) * 10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(ZEXT48(in_t2) * 10)" (( "(") (binary_expression "ZEXT48(in_t2) * 10" (call_expression "ZEXT48(in_t2)" (identifier "ZEXT48") (argument_list "(in_t2)" (( "(") (identifier "in_t2") () ")"))) (* "*") (number_literal "10")) () ")")))) (; ";")) (expression_statement "unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20);" (assignment_expression "unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20)" (identifier "unaff_s6") (= "=") (cast_expression "(short *)(ZEXT48(in_t2) * 10 >> 0x20)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ZEXT48(in_t2) * 10 >> 0x20)" (( "(") (binary_expression "ZEXT48(in_t2) * 10 >> 0x20" (binary_expression "ZEXT48(in_t2) * 10" (call_expression "ZEXT48(in_t2)" (identifier "ZEXT48") (argument_list "(in_t2)" (( "(") (identifier "in_t2") () ")"))) (* "*") (number_literal "10")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "in_t6 = (int)puVar17 * 4;" (assignment_expression "in_t6 = (int)puVar17 * 4" (identifier "in_t6") (= "=") (binary_expression "(int)puVar17 * 4" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (* "*") (number_literal "4"))) (; ";")) (expression_statement "puStack_674 = (uint *)((uint)puVar17 >> 0x1e);" (assignment_expression "puStack_674 = (uint *)((uint)puVar17 >> 0x1e)" (identifier "puStack_674") (= "=") (cast_expression "(uint *)((uint)puVar17 >> 0x1e)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)puVar17 >> 0x1e)" (( "(") (binary_expression "(uint)puVar17 >> 0x1e" (cast_expression "(uint)puVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar17")) (>> ">>") (number_literal "0x1e")) () ")")))) (; ";")) (expression_statement "in_t0 = (uint **)((int)puVar17 * 10);" (assignment_expression "in_t0 = (uint **)((int)puVar17 * 10)" (identifier "in_t0") (= "=") (cast_expression "(uint **)((int)puVar17 * 10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)puVar17 * 10)" (( "(") (binary_expression "(int)puVar17 * 10" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (* "*") (number_literal "10")) () ")")))) (; ";")) (expression_statement "psVar27 = unaff_s6;" (assignment_expression "psVar27 = unaff_s6" (identifier "psVar27") (= "=") (identifier "unaff_s6")) (; ";")) (if_statement "if ((int)in_t2 < 0) {\n      psVar27 = unaff_s6 + -5;\n    }" (if "if") (parenthesized_expression "((int)in_t2 < 0)" (( "(") (binary_expression "(int)in_t2 < 0" (cast_expression "(int)in_t2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "in_t2")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      psVar27 = unaff_s6 + -5;\n    }" ({ "{") (expression_statement "psVar27 = unaff_s6 + -5;" (assignment_expression "psVar27 = unaff_s6 + -5" (identifier "psVar27") (= "=") (binary_expression "unaff_s6 + -5" (identifier "unaff_s6") (+ "+") (number_literal "-5"))) (; ";")) (} "}"))) (expression_statement "ppuVar16 = (uint **)((int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2));" (assignment_expression "ppuVar16 = (uint **)((int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2))" (identifier "ppuVar16") (= "=") (cast_expression "(uint **)((int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2))" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2))" (( "(") (binary_expression "(int)ppuVar28 +\n                        ((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2)" (cast_expression "(int)ppuVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar28")) (+ "+") (parenthesized_expression "((uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2)" (( "(") (binary_expression "(uint)((int)puVar17 * 5) >> 0x1f |\n                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2" (binary_expression "(uint)((int)puVar17 * 5) >> 0x1f" (call_expression "(uint)((int)puVar17 * 5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)puVar17 * 5)" (( "(") (binary_expression "(int)puVar17 * 5" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (* "*") (number_literal "5")) () ")"))) (>> ">>") (number_literal "0x1f")) (| "|") (binary_expression "(int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2" (cast_expression "(int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6))" (( "(") (binary_expression "(int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)" (cast_expression "(int)puStack_674" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_674")) (+ "+") (call_expression "(uint)((uint)((int)puVar17 * 5) < in_t6)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)((int)puVar17 * 5) < in_t6)" (( "(") (binary_expression "(uint)((int)puVar17 * 5) < in_t6" (call_expression "(uint)((int)puVar17 * 5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)puVar17 * 5)" (( "(") (binary_expression "(int)puVar17 * 5" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (* "*") (number_literal "5")) () ")"))) (< "<") (identifier "in_t6")) () ")")))) () ")"))) (* "*") (number_literal "2"))) () ")"))) () ")")))) (; ";")) (if_statement "if ((int)ppuVar16 >> 0x1f != (uint)(ppuVar16 < ppuVar28) + (int)psVar27) {\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n    }" (if "if") (parenthesized_expression "((int)ppuVar16 >> 0x1f != (uint)(ppuVar16 < ppuVar28) + (int)psVar27)" (( "(") (binary_expression "(int)ppuVar16 >> 0x1f != (uint)(ppuVar16 < ppuVar28) + (int)psVar27" (binary_expression "(int)ppuVar16 >> 0x1f" (cast_expression "(int)ppuVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar16")) (>> ">>") (number_literal "0x1f")) (!= "!=") (binary_expression "(uint)(ppuVar16 < ppuVar28) + (int)psVar27" (call_expression "(uint)(ppuVar16 < ppuVar28)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(ppuVar16 < ppuVar28)" (( "(") (binary_expression "ppuVar16 < ppuVar28" (identifier "ppuVar16") (< "<") (identifier "ppuVar28")) () ")"))) (+ "+") (cast_expression "(int)psVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "psVar27")))) () ")")) (compound_statement "{\n      bVar2 = true;\n      in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);\n      ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);\n    }" ({ "{") (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (expression_statement "in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);" (assignment_expression "in_t0 = (uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2)" (identifier "in_t0") (= "=") (cast_expression "(uint **)((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2)" (( "(") (binary_expression "(int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2" (cast_expression "(int)((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4))" (( "(") (binary_expression "(int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6) +\n                             ((uint)puStack_674 | (int)in_t2 * 4)" (binary_expression "(int)in_t2 +\n                             (uint)((uint)((int)puVar17 * 5) < in_t6)" (cast_expression "(int)in_t2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "in_t2")) (+ "+") (call_expression "(uint)((uint)((int)puVar17 * 5) < in_t6)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)((int)puVar17 * 5) < in_t6)" (( "(") (binary_expression "(uint)((int)puVar17 * 5) < in_t6" (call_expression "(uint)((int)puVar17 * 5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)puVar17 * 5)" (( "(") (binary_expression "(int)puVar17 * 5" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (* "*") (number_literal "5")) () ")"))) (< "<") (identifier "in_t6")) () ")")))) (+ "+") (parenthesized_expression "((uint)puStack_674 | (int)in_t2 * 4)" (( "(") (binary_expression "(uint)puStack_674 | (int)in_t2 * 4" (cast_expression "(uint)puStack_674" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puStack_674")) (| "|") (binary_expression "(int)in_t2 * 4" (cast_expression "(int)in_t2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "in_t2")) (* "*") (number_literal "4"))) () ")"))) () ")"))) (* "*") (number_literal "2")) () ")")))) (; ";")) (expression_statement "ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);" (assignment_expression "ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0)" (identifier "ppuVar16") (= "=") (cast_expression "(uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0)" (( "(") (binary_expression "(uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0" (binary_expression "(uint)((int)puVar17 * 5) >> 0x1f" (call_expression "(uint)((int)puVar17 * 5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)puVar17 * 5)" (( "(") (binary_expression "(int)puVar17 * 5" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (* "*") (number_literal "5")) () ")"))) (>> ">>") (number_literal "0x1f")) (| "|") (cast_expression "(uint)in_t0" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "in_t0"))) () ")")))) (; ";")) (} "}"))) (} "}")))) (expression_statement "puVar29 = (uint *)((int)puVar17 * 10);" (assignment_expression "puVar29 = (uint *)((int)puVar17 * 10)" (identifier "puVar29") (= "=") (cast_expression "(uint *)((int)puVar17 * 10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar17 * 10)" (( "(") (binary_expression "(int)puVar17 * 10" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (* "*") (number_literal "10")) () ")")))) (; ";")) (expression_statement "ppuVar28 = in_t4;" (assignment_expression "ppuVar28 = in_t4" (identifier "ppuVar28") (= "=") (identifier "in_t4")) (; ";")) (if_statement "if (bVar2) goto LAB_00017ad0;" (if "if") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (goto_statement "goto LAB_00017ad0;" (goto "goto") (statement_identifier "LAB_00017ad0") (; ";"))) (goto_statement "goto LAB_000153f8;" (goto "goto") (statement_identifier "LAB_000153f8") (; ";")) (labeled_statement "LAB_00017ad0:\n  uVar15 = 2;" (statement_identifier "LAB_00017ad0") (: ":") (expression_statement "uVar15 = 2;" (assignment_expression "uVar15 = 2" (identifier "uVar15") (= "=") (number_literal "2")) (; ";"))) (expression_statement "puVar29 = (uint *)0x3f;" (assignment_expression "puVar29 = (uint *)0x3f" (identifier "puVar29") (= "=") (cast_expression "(uint *)0x3f" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3f"))) (; ";")) (expression_statement "puVar19 = (uint *)((int)puVar31 + 2);" (assignment_expression "puVar19 = (uint *)((int)puVar31 + 2)" (identifier "puVar19") (= "=") (cast_expression "(uint *)((int)puVar31 + 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar31 + 2)" (( "(") (binary_expression "(int)puVar31 + 2" (cast_expression "(int)puVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar31")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (goto_statement "goto LAB_00014f74;" (goto "goto") (statement_identifier "LAB_00014f74") (; ";")) (while_statement "while( true ) {\n    if (bVar12 == 0x28) {\n      iVar9 = iVar9 + 1;\n    }\n    else if (bVar12 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }\n    if (iVar9 == 0) break;\nLAB_000157a8:\n    ppuVar16 = ppuVar21;\n    ppuVar21 = (uint **)((int)ppuVar16 + 1);\n    *puVar14 = ppuVar21;\n    bVar12 = *(byte *)ppuVar16;\n    if (bVar12 == 0) goto LAB_000152b8;\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    if (bVar12 == 0x28) {\n      iVar9 = iVar9 + 1;\n    }\n    else if (bVar12 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }\n    if (iVar9 == 0) break;\nLAB_000157a8:\n    ppuVar16 = ppuVar21;\n    ppuVar21 = (uint **)((int)ppuVar16 + 1);\n    *puVar14 = ppuVar21;\n    bVar12 = *(byte *)ppuVar16;\n    if (bVar12 == 0) goto LAB_000152b8;\n  }" ({ "{") (if_statement "if (bVar12 == 0x28) {\n      iVar9 = iVar9 + 1;\n    }\n    else if (bVar12 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }" (if "if") (parenthesized_expression "(bVar12 == 0x28)" (( "(") (binary_expression "bVar12 == 0x28" (identifier "bVar12") (== "==") (number_literal "0x28")) () ")")) (compound_statement "{\n      iVar9 = iVar9 + 1;\n    }" ({ "{") (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else if (bVar12 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }" (else "else") (if_statement "if (bVar12 == 0x29) {\n      iVar9 = iVar9 + -1;\n    }" (if "if") (parenthesized_expression "(bVar12 == 0x29)" (( "(") (binary_expression "bVar12 == 0x29" (identifier "bVar12") (== "==") (number_literal "0x29")) () ")")) (compound_statement "{\n      iVar9 = iVar9 + -1;\n    }" ({ "{") (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))))) (if_statement "if (iVar9 == 0) break;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_000157a8:\n    ppuVar16 = ppuVar21;" (statement_identifier "LAB_000157a8") (: ":") (expression_statement "ppuVar16 = ppuVar21;" (assignment_expression "ppuVar16 = ppuVar21" (identifier "ppuVar16") (= "=") (identifier "ppuVar21")) (; ";"))) (expression_statement "ppuVar21 = (uint **)((int)ppuVar16 + 1);" (assignment_expression "ppuVar21 = (uint **)((int)ppuVar16 + 1)" (identifier "ppuVar21") (= "=") (cast_expression "(uint **)((int)ppuVar16 + 1)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar16 + 1)" (( "(") (binary_expression "(int)ppuVar16 + 1" (cast_expression "(int)ppuVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar16")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*puVar14 = ppuVar21;" (assignment_expression "*puVar14 = ppuVar21" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (identifier "ppuVar21")) (; ";")) (expression_statement "bVar12 = *(byte *)ppuVar16;" (assignment_expression "bVar12 = *(byte *)ppuVar16" (identifier "bVar12") (= "=") (pointer_expression "*(byte *)ppuVar16" (* "*") (cast_expression "(byte *)ppuVar16" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar16")))) (; ";")) (if_statement "if (bVar12 == 0) goto LAB_000152b8;" (if "if") (parenthesized_expression "(bVar12 == 0)" (( "(") (binary_expression "bVar12 == 0" (identifier "bVar12") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000152b8;" (goto "goto") (statement_identifier "LAB_000152b8") (; ";"))) (} "}"))) (expression_statement "bVar12 = *(byte *)((int)ppuVar16 + 1);" (assignment_expression "bVar12 = *(byte *)((int)ppuVar16 + 1)" (identifier "bVar12") (= "=") (pointer_expression "*(byte *)((int)ppuVar16 + 1)" (* "*") (cast_expression "(byte *)((int)ppuVar16 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar16 + 1)" (( "(") (binary_expression "(int)ppuVar16 + 1" (cast_expression "(int)ppuVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar16")) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (goto_statement "goto LAB_000152f0;" (goto "goto") (statement_identifier "LAB_000152f0") (; ";")) (labeled_statement "code_r0x00016f40:\n  puVar25 = puVar13 + 4;" (statement_identifier "code_r0x00016f40") (: ":") (expression_statement "puVar25 = puVar13 + 4;" (assignment_expression "puVar25 = puVar13 + 4" (identifier "puVar25") (= "=") (binary_expression "puVar13 + 4" (identifier "puVar13") (+ "+") (number_literal "4"))) (; ";"))) (expression_statement "puVar13 = puVar13 + -0x2a;" (assignment_expression "puVar13 = puVar13 + -0x2a" (identifier "puVar13") (= "=") (binary_expression "puVar13 + -0x2a" (identifier "puVar13") (+ "+") (number_literal "-0x2a"))) (; ";")) (expression_statement "psVar32 = psVar27 + -3;" (assignment_expression "psVar32 = psVar27 + -3" (identifier "psVar32") (= "=") (binary_expression "psVar27 + -3" (identifier "psVar27") (+ "+") (number_literal "-3"))) (; ";")) (expression_statement "iVar10 = 0xe;" (assignment_expression "iVar10 = 0xe" (identifier "iVar10") (= "=") (number_literal "0xe")) (; ";")) (expression_statement "puVar14[0xc] = *puVar25;" (assignment_expression "puVar14[0xc] = *puVar25" (subscript_expression "puVar14[0xc]" (identifier "puVar14") ([ "[") (number_literal "0xc") (] "]")) (= "=") (pointer_expression "*puVar25" (* "*") (identifier "puVar25"))) (; ";")) (expression_statement "iVar9 = -0x5d;" (assignment_expression "iVar9 = -0x5d" (identifier "iVar9") (= "=") (number_literal "-0x5d")) (; ";")) (labeled_statement "LAB_00015adc:\n  puVar13 = puVar13 + 0xe;" (statement_identifier "LAB_00015adc") (: ":") (expression_statement "puVar13 = puVar13 + 0xe;" (assignment_expression "puVar13 = puVar13 + 0xe" (identifier "puVar13") (= "=") (binary_expression "puVar13 + 0xe" (identifier "puVar13") (+ "+") (number_literal "0xe"))) (; ";"))) (expression_statement "puStack_5a8 = in_t2;" (assignment_expression "puStack_5a8 = in_t2" (identifier "puStack_5a8") (= "=") (identifier "in_t2")) (; ";")) (expression_statement "in_t2 = auStack_580;" (assignment_expression "in_t2 = auStack_580" (identifier "in_t2") (= "=") (identifier "auStack_580")) (; ";")) (expression_statement "uStack_5a4 = in_t3;" (assignment_expression "uStack_5a4 = in_t3" (identifier "uStack_5a4") (= "=") (identifier "in_t3")) (; ";")) (expression_statement "apsStack_5a0[1] = (short *)puStack_674;" (assignment_expression "apsStack_5a0[1] = (short *)puStack_674" (subscript_expression "apsStack_5a0[1]" (identifier "apsStack_5a0") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(short *)puStack_674" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puStack_674"))) (; ";")) (expression_statement "apsStack_5a0[0] = unaff_s6;" (assignment_expression "apsStack_5a0[0] = unaff_s6" (subscript_expression "apsStack_5a0[0]" (identifier "apsStack_5a0") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "ppuStack_594 = ppuVar28;" (assignment_expression "ppuStack_594 = ppuVar28" (identifier "ppuStack_594") (= "=") (identifier "ppuVar28")) (; ";")) (expression_statement "ppuStack_598 = in_t0;" (assignment_expression "ppuStack_598 = in_t0" (identifier "ppuStack_598") (= "=") (identifier "in_t0")) (; ";")) (expression_statement "uStack_58c = in_t5;" (assignment_expression "uStack_58c = in_t5" (identifier "uStack_58c") (= "=") (identifier "in_t5")) (; ";")) (expression_statement "ppuStack_590 = in_t4;" (assignment_expression "ppuStack_590 = in_t4" (identifier "ppuStack_590") (= "=") (identifier "in_t4")) (; ";")) (expression_statement "uStack_588 = uVar18;" (assignment_expression "uStack_588 = uVar18" (identifier "uStack_588") (= "=") (identifier "uVar18")) (; ";")) (expression_statement "uStack_584 = in_t6;" (assignment_expression "uStack_584 = in_t6" (identifier "uStack_584") (= "=") (identifier "in_t6")) (; ";")) (expression_statement "auStack_580[0] = in_t8;" (assignment_expression "auStack_580[0] = in_t8" (subscript_expression "auStack_580[0]" (identifier "auStack_580") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "in_t8")) (; ";")) (expression_statement "puVar25 = puStack_66c;" (assignment_expression "puVar25 = puStack_66c" (identifier "puVar25") (= "=") (identifier "puStack_66c")) (; ";")) (expression_statement "puVar31 = puVar13;" (assignment_expression "puVar31 = puVar13" (identifier "puVar31") (= "=") (identifier "puVar13")) (; ";")) (do_statement "do {\n    puVar17 = puVar31;\n    puVar19 = puVar25;\n    in_t0 = (uint **)*puVar19;\n    puVar25 = puVar19 + 4;\n    uVar23 = puVar19[1];\n    uVar22 = puVar19[2];\n    uVar15 = puVar19[3];\n    *puVar17 = (uint)in_t0;\n    puVar17[1] = uVar23;\n    puVar17[2] = uVar22;\n    puVar17[3] = uVar15;\n    puVar31 = puVar17 + 4;\n  } while (puVar25 != in_t2);" (do "do") (compound_statement "{\n    puVar17 = puVar31;\n    puVar19 = puVar25;\n    in_t0 = (uint **)*puVar19;\n    puVar25 = puVar19 + 4;\n    uVar23 = puVar19[1];\n    uVar22 = puVar19[2];\n    uVar15 = puVar19[3];\n    *puVar17 = (uint)in_t0;\n    puVar17[1] = uVar23;\n    puVar17[2] = uVar22;\n    puVar17[3] = uVar15;\n    puVar31 = puVar17 + 4;\n  }" ({ "{") (expression_statement "puVar17 = puVar31;" (assignment_expression "puVar17 = puVar31" (identifier "puVar17") (= "=") (identifier "puVar31")) (; ";")) (expression_statement "puVar19 = puVar25;" (assignment_expression "puVar19 = puVar25" (identifier "puVar19") (= "=") (identifier "puVar25")) (; ";")) (expression_statement "in_t0 = (uint **)*puVar19;" (assignment_expression "in_t0 = (uint **)*puVar19" (identifier "in_t0") (= "=") (cast_expression "(uint **)*puVar19" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*puVar19" (* "*") (identifier "puVar19")))) (; ";")) (expression_statement "puVar25 = puVar19 + 4;" (assignment_expression "puVar25 = puVar19 + 4" (identifier "puVar25") (= "=") (binary_expression "puVar19 + 4" (identifier "puVar19") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar23 = puVar19[1];" (assignment_expression "uVar23 = puVar19[1]" (identifier "uVar23") (= "=") (subscript_expression "puVar19[1]" (identifier "puVar19") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar22 = puVar19[2];" (assignment_expression "uVar22 = puVar19[2]" (identifier "uVar22") (= "=") (subscript_expression "puVar19[2]" (identifier "puVar19") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar15 = puVar19[3];" (assignment_expression "uVar15 = puVar19[3]" (identifier "uVar15") (= "=") (subscript_expression "puVar19[3]" (identifier "puVar19") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar17 = (uint)in_t0;" (assignment_expression "*puVar17 = (uint)in_t0" (pointer_expression "*puVar17" (* "*") (identifier "puVar17")) (= "=") (cast_expression "(uint)in_t0" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "in_t0"))) (; ";")) (expression_statement "puVar17[1] = uVar23;" (assignment_expression "puVar17[1] = uVar23" (subscript_expression "puVar17[1]" (identifier "puVar17") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar23")) (; ";")) (expression_statement "puVar17[2] = uVar22;" (assignment_expression "puVar17[2] = uVar22" (subscript_expression "puVar17[2]" (identifier "puVar17") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar22")) (; ";")) (expression_statement "puVar17[3] = uVar15;" (assignment_expression "puVar17[3] = uVar15" (subscript_expression "puVar17[3]" (identifier "puVar17") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "puVar31 = puVar17 + 4;" (assignment_expression "puVar31 = puVar17 + 4" (identifier "puVar31") (= "=") (binary_expression "puVar17 + 4" (identifier "puVar17") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar25 != in_t2)" (( "(") (binary_expression "puVar25 != in_t2" (identifier "puVar25") (!= "!=") (identifier "in_t2")) () ")")) (; ";")) (expression_statement "ppuVar16 = (uint **)(int)*psVar32;" (assignment_expression "ppuVar16 = (uint **)(int)*psVar32" (identifier "ppuVar16") (= "=") (cast_expression "(uint **)(int)*psVar32" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (cast_expression "(int)*psVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*psVar32" (* "*") (identifier "psVar32"))))) (; ";")) (expression_statement "uVar15 = puVar19[5];" (assignment_expression "uVar15 = puVar19[5]" (identifier "uVar15") (= "=") (subscript_expression "puVar19[5]" (identifier "puVar19") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "pbVar26 = (byte *)((int)ppuVar16 + iVar9);" (assignment_expression "pbVar26 = (byte *)((int)ppuVar16 + iVar9)" (identifier "pbVar26") (= "=") (cast_expression "(byte *)((int)ppuVar16 + iVar9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar16 + iVar9)" (( "(") (binary_expression "(int)ppuVar16 + iVar9" (cast_expression "(int)ppuVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar16")) (+ "+") (identifier "iVar9")) () ")")))) (; ";")) (expression_statement "puVar17[4] = *puVar25;" (assignment_expression "puVar17[4] = *puVar25" (subscript_expression "puVar17[4]" (identifier "puVar17") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*puVar25" (* "*") (identifier "puVar25"))) (; ";")) (expression_statement "puVar17[5] = uVar15;" (assignment_expression "puVar17[5] = uVar15" (subscript_expression "puVar17[5]" (identifier "puVar17") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar15")) (; ";")) (if_statement "if ((pbVar26 < (byte *)0x71) && ((uint **)(int)(char)pbVar26[iVar30] == ppuVar16)) {\n    puVar25 = (uint *)(uint)pbVar26[iVar8];\n  }\n  else {\n    puVar25 = (uint *)(int)*(char *)(iVar10 + iVar6 + 0x6338);\n  }" (if "if") (parenthesized_expression "((pbVar26 < (byte *)0x71) && ((uint **)(int)(char)pbVar26[iVar30] == ppuVar16))" (( "(") (binary_expression "(pbVar26 < (byte *)0x71) && ((uint **)(int)(char)pbVar26[iVar30] == ppuVar16)" (parenthesized_expression "(pbVar26 < (byte *)0x71)" (( "(") (binary_expression "pbVar26 < (byte *)0x71" (identifier "pbVar26") (< "<") (cast_expression "(byte *)0x71" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x71"))) () ")")) (&& "&&") (parenthesized_expression "((uint **)(int)(char)pbVar26[iVar30] == ppuVar16)" (( "(") (binary_expression "(uint **)(int)(char)pbVar26[iVar30] == ppuVar16" (cast_expression "(uint **)(int)(char)pbVar26[iVar30]" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (cast_expression "(int)(char)pbVar26[iVar30]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)pbVar26[iVar30]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar26[iVar30]" (identifier "pbVar26") ([ "[") (identifier "iVar30") (] "]"))))) (== "==") (identifier "ppuVar16")) () ")"))) () ")")) (compound_statement "{\n    puVar25 = (uint *)(uint)pbVar26[iVar8];\n  }" ({ "{") (expression_statement "puVar25 = (uint *)(uint)pbVar26[iVar8];" (assignment_expression "puVar25 = (uint *)(uint)pbVar26[iVar8]" (identifier "puVar25") (= "=") (cast_expression "(uint *)(uint)pbVar26[iVar8]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(uint)pbVar26[iVar8]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar26[iVar8]" (identifier "pbVar26") ([ "[") (identifier "iVar8") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n    puVar25 = (uint *)(int)*(char *)(iVar10 + iVar6 + 0x6338);\n  }" (else "else") (compound_statement "{\n    puVar25 = (uint *)(int)*(char *)(iVar10 + iVar6 + 0x6338);\n  }" ({ "{") (expression_statement "puVar25 = (uint *)(int)*(char *)(iVar10 + iVar6 + 0x6338);" (assignment_expression "puVar25 = (uint *)(int)*(char *)(iVar10 + iVar6 + 0x6338)" (identifier "puVar25") (= "=") (cast_expression "(uint *)(int)*(char *)(iVar10 + iVar6 + 0x6338)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)*(char *)(iVar10 + iVar6 + 0x6338)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(iVar10 + iVar6 + 0x6338)" (* "*") (cast_expression "(char *)(iVar10 + iVar6 + 0x6338)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + iVar6 + 0x6338)" (( "(") (binary_expression "iVar10 + iVar6 + 0x6338" (binary_expression "iVar10 + iVar6" (identifier "iVar10") (+ "+") (identifier "iVar6")) (+ "+") (number_literal "0x6338")) () ")"))))))) (; ";")) (} "}")))) (goto_statement "goto LAB_00015014;" (goto "goto") (statement_identifier "LAB_00015014") (; ";")) (} "}")))

/* WARNING: Type propagation algorithm not settling */

void function_1(char *item,type_1 *pc)

{
  char var_6;
  bool bVar2;
  type_2 *puVar3;
  type_2 *puVar4;
  int var_7;
  char *pcVar6;
  type_3 uVar7;
  int *piVar8;
  int var_18;
  type_4 var_19;
  int var_24;
  type_5 *var_23;
  type_6 **var_13;
  type_6 *var_35;
  type_1 *pc_00;
  type_6 var_10;
  type_6 **var_12;
  type_6 *var_28;
  type_6 var_3;
  int var_33;
  type_6 *var_31;
  type_6 *var_40;
  type_6 **var_16;
  type_6 var_11;
  type_6 var_41;
  type_6 **var_17;
  type_6 uVar24;
  type_6 *var_30;
  type_6 var_27;
  type_6 **in_t4;
  type_6 in_t5;
  type_6 var_44;
  type_6 *var_34;
  type_4 *var_15;
  short *var_25;
  type_6 **var_45;
  type_6 *var_9;
  int var_32;
  type_2 *unaff_s4;
  type_6 *var_37;
  short *var_38;
  short *var_20;
  type_6 var_26;
  type_2 *var_8;
  type_7 *pcVar34;
  type_6 *var_21;
  int var_36;
  type_6 *puStack_66c;
  int iStack_660;
  type_6 *puStack_65c;
  type_6 *puStack_630;
  type_6 *apuStack_5e8 [4];
  int iStack_5d8;
  type_6 *apuStack_5b8 [2];
  type_6 auStack_5b0 [2];
  type_6 *puStack_5a8;
  type_6 uStack_5a4;
  short *apsStack_5a0 [2];
  type_6 **ppuStack_598;
  type_6 **ppuStack_594;
  type_6 **ppuStack_590;
  type_6 uStack_58c;
  type_6 uStack_588;
  type_6 uStack_584;
  type_6 auStack_580 [2];
  short var_42 [19];
  short sStack_552;
  type_6 auStack_550 [279];
  type_4 var_14 [21];
  int var_39;
  type_1 *ppStack_d8;
  type_6 **ppuStack_d4;
  type_2 *puStack_d0;
  type_2 *puStack_cc;
  type_2 *puStack_c8;
  char tmp [100];
  
  puVar3 = PTR___stack_chk_guard_00038350;
  var_7 = *(int *)PTR___stack_chk_guard_00038350;
  pcVar6 = (char *)(*(type_7 *)PTR_dcgettext_00038338)(0,var_1 + 0x50a0,5);
  var_2(pcVar6,item);
  puVar4 = PTR_stderr_00038360;
  if (pc->dates_seen == 0) {
    var_45 = *(type_6 ***)PTR_stderr_00038360;
    if (pc->year_seen != pc->debug_year_seen) goto LAB_00014a30;
LAB_00014c7c:
    var_3 = 0;
  }
  else {
    var_45 = *(type_6 ***)PTR_stderr_00038360;
    if (pc->debug_dates_seen == false) {
      var_27 = (type_6)pc->month;
      var_30 = *(type_6 **)&pc->month;
      var_17 = *(type_6 ***)&(pc->year).value;
      (*(type_7 *)PTR___fprintf_chk_00038280)(var_45,1,var_1 + 0x5138);
      pc->debug_dates_seen = true;
      if (pc->year_seen == pc->debug_year_seen) {
        var_45 = *(type_6 ***)puVar4;
        var_3 = 1;
        goto LAB_00014a80;
      }
      (*(type_7 *)PTR_fputc_00038298)(0x20,*(type_3 *)puVar4);
      var_45 = *(type_6 ***)puVar4;
    }
    else if (pc->year_seen == pc->debug_year_seen) goto LAB_00014c7c;
LAB_00014a30:
    uVar7 = (*(type_7 *)PTR_dcgettext_00038338)(0,var_1 + 0x5158,5);
    var_17 = *(type_6 ***)&(pc->year).value;
    (*(type_7 *)PTR___fprintf_chk_00038280)(var_45,1,uVar7);
    var_3 = 1;
    var_45 = *(type_6 ***)puVar4;
    pc->debug_year_seen = pc->year_seen;
  }
LAB_00014a80:
  if ((pc->times_seen == 0) || (pc->debug_times_seen != false)) {
    if ((pc->days_seen != 0) && (pc->debug_days_seen == false)) {
      if (var_3 != 0) goto LAB_00014d08;
LAB_00014ab8:
      var_33 = 5;
      unaff_s4 = (type_2 *)(*(type_7 *)PTR_dcgettext_00038338)(0,var_1 + 0x518c);
      pcVar6 = var_4(pc,tmp,var_33);
      var_17 = *(type_6 ***)&pc->day_ordinal;
      (*(type_7 *)PTR___fprintf_chk_00038280)(var_45,1,unaff_s4,pcVar6);
      var_45 = *(type_6 ***)puVar4;
      var_3 = 1;
      pc->debug_days_seen = true;
    }
  }
  else {
    var_27 = (type_6)pc->minutes;
    var_30 = *(type_6 **)&pc->minutes;
    var_17 = *(type_6 ***)&pc->hour;
    (*(type_7 *)PTR___fprintf_chk_00038280)(var_45,1,var_1 + (var_3 ^ 1) + 0x5168);
    if ((pc->seconds).tv_nsec != 0) {
      (*(type_7 *)PTR___fprintf_chk_00038280)(*(type_3 *)puVar4,1,var_1 + 0x5180);
    }
    var_45 = *(type_6 ***)puVar4;
    if (pc->meridian == 1) {
      (*(type_7 *)PTR_fwrite_00038324)(var_1 + 0x5188,1,2,var_45);
      var_45 = *(type_6 ***)puVar4;
    }
    pc->debug_times_seen = true;
    if (pc->days_seen == 0) {
      var_3 = 1;
    }
    else {
      var_3 = (type_6)pc->debug_days_seen;
      if (var_3 == 0) {
LAB_00014d08:
        (*(type_7 *)PTR_fputc_00038298)(0x20,var_45);
        var_45 = *(type_6 ***)puVar4;
        goto LAB_00014ab8;
      }
    }
  }
  if ((pc->local_zones_seen == 0) || (pc->debug_local_zones_seen != false)) {
    if ((pc->zones_seen == 0) || (unaff_s4 = var_1, pc->debug_zones_seen != false)) {
      if (pc->timespec_seen == false) goto LAB_00014bb0;
      pc = (type_1 *)(pc->seconds).tv_sec;
      unaff_s4 = (type_2 *)((int)pc >> 0x1f);
      if (var_3 != 0) goto LAB_00014d8c;
      goto LAB_00014c1c;
    }
    unaff_s4 = var_1 + (var_3 ^ 1) + 0x5130;
LAB_00014d38:
    pcVar6 = var_5(pc->time_zone,tmp);
    (*(type_7 *)PTR___fprintf_chk_00038280)(var_45,1,unaff_s4,pcVar6);
    pc->debug_zones_seen = true;
    if (pc->timespec_seen != false) {
      pc = (type_1 *)(pc->seconds).tv_sec;
      var_45 = *(type_6 ***)puVar4;
      goto LAB_00014d88;
    }
  }
  else {
    (*(type_7 *)PTR___fprintf_chk_00038280)
              (var_45,1,var_1 + (var_3 ^ 1) + 0x51ac,pc->local_isdst);
    pc->debug_local_zones_seen = true;
    if (pc->zones_seen == 0) {
      var_6 = pc->timespec_seen;
      var_45 = *(type_6 ***)puVar4;
    }
    else {
      var_45 = *(type_6 ***)puVar4;
      if (pc->debug_zones_seen == false) {
        unaff_s4 = var_1 + 0x5130;
        goto LAB_00014d38;
      }
      var_6 = pc->timespec_seen;
    }
    if (var_6 == '\0') goto LAB_00014bb0;
    pc = (type_1 *)(pc->seconds).tv_sec;
LAB_00014d88:
    unaff_s4 = (type_2 *)((int)pc >> 0x1f);
LAB_00014d8c:
    (*(type_7 *)PTR_fputc_00038298)(0x20,var_45);
    var_45 = *(type_6 ***)puVar4;
LAB_00014c1c:
    uVar7 = (*(type_7 *)PTR_dcgettext_00038338)(0,var_1 + 0x51b8,5);
    (*(type_7 *)PTR___fprintf_chk_00038280)(var_45,1,uVar7);
  }
  var_45 = *(type_6 ***)puVar4;
LAB_00014bb0:
  pc_00 = (type_1 *)&DAT_0000000a;
  var_16 = var_45;
  (*(type_7 *)PTR_fputc_00038298)();
  if (var_7 == *(int *)puVar3) {
    return;
  }
  var_8 = PTR___stack_chk_fail_00038334;
  (*(type_7 *)PTR___stack_chk_fail_00038334)();
  piVar8 = *(int **)(var_8 + 0x234a4);
  var_3 = 0xfffffffe;
  puStack_cc = puVar3;
  var_37 = (type_6 *)&DAT_00000026;
  var_39 = *piVar8;
  var_7 = *(int *)(var_8 + 0x23270);
  puStack_c8 = unaff_s4;
  puStack_d0 = puVar4;
  var_35 = auStack_550;
  ppuStack_d4 = var_45;
  var_9 = (type_6 *)0xfffffffe;
  var_32 = *(int *)(var_8 + 0x23270) + 0x6250;
  ppStack_d8 = pc;
  var_34 = (type_6 *)0x0;
  var_33 = *(int *)(var_8 + 0x23270) + 0x62c4;
  var_42[0] = 0;
  var_36 = 0;
  var_38 = var_42;
LAB_00014f50:
  var_45 = (type_6 **)0x800000;
  var_31 = var_37;
  if (var_9 == (type_6 *)0xfffffffe) {
    var_16 = (type_6 **)pc_00->input;
    var_30 = (type_6 *)0x1;
    var_45 = (type_6 **)0x80001f;
    in_t4 = (type_6 **)0x2d;
    var_19 = *(type_4 *)var_16;
    in_t5 = 0x2b;
    var_44 = 0x28;
    var_3 = 0x29;
LAB_000152f0:
    var_17 = (type_6 **)(int)(char)var_19;
    var_10 = (type_6)var_19;
LAB_000152f4:
    var_11 = var_10 - 9;
    var_12 = (type_6 **)(type_6)(var_11 < 0x18);
    if (var_12 == (type_6 **)0x0) goto LAB_000153a8;
LAB_00015308:
    var_13 = (type_6 **)(1 << (var_11 & 0x1f) & 0x80001f);
    while (var_13 != (type_6 **)0x0) {
      var_16 = (type_6 **)((int)var_16 + 1);
      pc_00->input = (char *)var_16;
      var_17 = (type_6 **)(int)(char)*(type_4 *)var_16;
      var_10 = (type_6)*(type_4 *)var_16;
      var_12 = (type_6 **)(var_10 - 9);
      if ((type_6 **)0x17 < var_12) goto LAB_000153a8;
      var_12 = (type_6 **)(1 << ((type_6)var_12 & 0x1f) & 0x80001f);
      var_13 = var_12;
    }
LAB_00015344:
    var_27 = 0xffffffff;
    if (var_10 == 0x2d) goto LAB_00015358;
    if (var_10 == 0x2b) goto LAB_00015354;
    if ((0x40 < (int)var_17) && (((int)var_17 < 0x5b || (((type_6)((int)var_17 + -0x61) & 0xff) < 0x1a)))
       ) {
      var_15 = (type_4 *)pc_00->input;
      var_12 = (type_6 **)(var_14 + 1);
      var_17 = (type_6 **)(var_14 + 0x14);
      var_45 = (type_6 **)&DAT_0000002e;
      var_16 = var_12;
      do {
        var_15 = var_15 + 1;
        if (var_16 < var_17) {
          *(type_4 *)var_16 = (type_4)var_10;
          var_16 = (type_6 **)((int)var_16 + 1);
        }
        pc_00->input = (char *)var_15;
        var_18 = (int)(char)*var_15;
        var_10 = (type_6)*var_15;
      } while (((0x40 < var_18) && ((var_18 < 0x5b || ((var_18 - 0x61U & 0xff) < 0x1a)))) ||
              (var_10 == 0x2e));
      *(type_4 *)var_16 = 0;
      var_16 = var_12;
      var_19 = var_14[1];
      while (var_19 != 0) {
        if (var_19 - 0x61 < 0x1a) {
          var_19 = var_19 - 0x20;
        }
        *(type_4 *)var_16 = var_19;
        var_16 = (type_6 **)((int)var_16 + 1);
        var_19 = *(type_4 *)var_16;
      }
      var_20 = (short *)(*(int *)(var_8 + 0x23268) + 0x7f98);
      var_16 = (type_6 **)(*(int *)(var_8 + 0x23270) + 0x51d0);
      do {
        var_18 = (**(type_7 **)(var_8 + 0x234c8))(var_12);
        var_21 = var_34;
        if (var_18 == 0) {
LAB_00015708:
          var_9 = *(type_6 **)(var_20 + 2);
          apuStack_5e8[1] = *(type_6 **)(var_20 + 4);
          apuStack_5e8[0] = (type_6 *)((int)*(type_6 **)(var_20 + 4) >> 0x1f);
          goto LAB_00014f5c;
        }
        var_20 = var_20 + 6;
        var_16 = *(type_6 ***)var_20;
      } while (var_16 != (type_6 **)0x0);
      var_21 = (type_6 *)(**(type_7 **)(var_8 + 0x23438))(var_12);
      if (var_21 == (type_6 *)0x3) {
        bVar2 = true;
      }
      else if (var_21 == (type_6 *)0x4) {
        bVar2 = var_14[4] == '.';
      }
      else {
        bVar2 = false;
      }
      var_20 = (short *)(*(int *)(var_8 + 0x23268) + 0x7e6c);
      var_16 = (type_6 **)(*(int *)(var_8 + 0x23270) + 0x51d4);
      do {
        if (bVar2) {
          var_18 = (**(type_7 **)(var_8 + 0x233c8))(var_12,var_16,3);
        }
        else {
          var_18 = (**(type_7 **)(var_8 + 0x234c8))(var_12);
        }
        puStack_66c = var_34;
        if (var_18 == 0) {
          var_9 = *(type_6 **)(var_20 + 2);
          apuStack_5e8[1] = *(type_6 **)(var_20 + 4);
          apuStack_5e8[0] = (type_6 *)((int)*(type_6 **)(var_20 + 4) >> 0x1f);
          goto LAB_00014f5c;
        }
        var_20 = var_20 + 6;
        var_16 = *(type_6 ***)var_20;
      } while (var_16 != (type_6 **)0x0);
      var_18 = *(int *)(var_8 + 0x2326c);
      var_16 = var_12;
      var_23 = var_22(pc_00,(char *)var_12);
      var_20 = var_42;
      if (var_23 != (type_5 *)0x0) {
        var_9 = (type_6 *)var_23->type;
        apuStack_5e8[1] = (type_6 *)var_23->value;
        apuStack_5e8[0] = (type_6 *)(var_23->value >> 0x1f);
        puStack_66c = (type_6 *)0x0;
        goto LAB_00014f5c;
      }
      var_16 = (type_6 **)(*(int *)(var_8 + 0x23270) + 0x51f0);
      var_24 = (**(type_7 **)(var_8 + 0x234c8))(var_12);
      if (var_24 == 0) {
        var_9 = (type_6 *)0x103;
        apuStack_5e8[1] = (type_6 *)0x0;
        apuStack_5e8[0] = (type_6 *)0x0;
LAB_00015588:
        var_18 = *(int *)(var_8 + 0x23270);
        var_12 = var_16;
        puStack_66c = var_37;
        goto LAB_0001558c;
      }
      var_20 = (short *)(*(int *)(var_8 + 0x23268) + 0x7de8);
      var_13 = (type_6 **)(*(int *)(var_8 + 0x23270) + 0x51dc);
      var_16 = var_13;
      var_25 = var_20;
      do {
        var_24 = (**(type_7 **)(var_8 + 0x234c8))(var_12);
        if (var_24 == 0) {
          var_9 = *(type_6 **)(var_25 + 2);
          apuStack_5e8[1] = *(type_6 **)(var_25 + 4);
          apuStack_5e8[0] = (type_6 *)((int)*(type_6 **)(var_25 + 4) >> 0x1f);
          goto LAB_00014f5c;
        }
        var_25 = var_25 + 6;
        var_16 = *(type_6 ***)var_25;
      } while (var_16 != (type_6 **)0x0);
      var_15 = (type_4 *)((int)var_12 + (int)((int)var_21 + -1));
      if (*var_15 == 0x53) {
        *var_15 = 0;
        pcVar34 = *(type_7 **)(var_8 + 0x234c8);
        do {
          var_24 = (*pcVar34)(var_12);
          var_16 = var_13;
          puStack_66c = var_37;
          if (var_24 == 0) goto LAB_00015708;
          var_20 = var_20 + 6;
          var_13 = *(type_6 ***)var_20;
          pcVar34 = *(type_7 **)(var_8 + 0x234c8);
        } while (var_13 != (type_6 **)0x0);
        *var_15 = 0x53;
      }
      var_20 = (short *)(*(int *)(var_8 + 0x23268) + 0x7cec);
      var_16 = (type_6 **)(*(int *)(var_8 + 0x23270) + 0x51e4);
      pcVar34 = *(type_7 **)(var_8 + 0x234c8);
      do {
        var_24 = (*pcVar34)(var_12);
        puStack_66c = var_37;
        if (var_24 == 0) goto LAB_00015708;
        var_20 = var_20 + 6;
        var_16 = *(type_6 ***)var_20;
        pcVar34 = *(type_7 **)(var_8 + 0x234c8);
      } while (var_16 != (type_6 **)0x0);
      if (var_21 == (type_6 *)0x1) {
        var_16 = *(type_6 ***)(var_8 + 0x23268);
        if (var_14[1] == 0x41) {
          var_9 = (type_6 *)0x111;
          apuStack_5e8[1] = (type_6 *)0xfffff1f0;
          apuStack_5e8[0] = (type_6 *)0xffffffff;
          goto LAB_00015588;
        }
        var_13 = var_16 + 0x1e51;
        while( true ) {
          var_16 = var_13;
          if (var_16[3] == (type_6 *)0x0) break;
          var_13 = var_16 + 3;
          if (*(type_4 *)var_16[3] == var_14[1]) {
            var_9 = var_16[4];
            apuStack_5e8[1] = var_16[5];
            apuStack_5e8[0] = (type_6 *)((int)var_16[5] >> 0x1f);
            goto LAB_00014f5c;
          }
        }
      }
      if (var_14[1] != 0) {
        bVar2 = false;
        var_16 = var_12;
        var_13 = var_12;
        var_19 = var_14[1];
        do {
          if (var_19 == 0x2e) {
            bVar2 = true;
          }
          else {
            var_16 = (type_6 **)((int)var_16 + 1);
          }
          var_13 = (type_6 **)((int)var_13 + 1);
          var_19 = *(type_4 *)var_13;
          *(type_4 *)var_16 = var_19;
        } while (var_19 != 0);
        var_21 = var_37;
        if ((bVar2) &&
           (var_16 = var_12, var_18 = (*(type_7 *)(&DAT_00004388 + var_18))(pc_00), var_18 != 0)) {
          var_9 = *(type_6 **)(var_18 + 4);
          apuStack_5e8[1] = *(type_6 **)(var_18 + 8);
          apuStack_5e8[0] = (type_6 *)((int)*(type_6 **)(var_18 + 8) >> 0x1f);
          goto LAB_00014f5c;
        }
      }
      var_16 = *(type_6 ***)(var_8 + 0x23270);
      if (pc_00->parse_datetime_debug == false) goto LAB_00017ae0;
      pcVar6 = (char *)(**(type_7 **)(var_8 + 0x2348c))(0,*(type_6 ***)(var_8 + 0x23270) + 0x147d,5)
      ;
      var_9 = (type_6 *)0x3f;
      var_2(pcVar6);
      var_10 = 2;
      var_31 = (type_6 *)((int)var_37 + 2);
      goto LAB_00014f74;
    }
    var_18 = 0;
    if (var_10 == 0x28) {
      var_16 = (type_6 **)pc_00->input;
      goto LAB_000157a8;
    }
    pc_00->input = (char *)((int)var_16 + 1);
    var_9 = (type_6 *)(type_6)*(type_4 *)var_16;
    var_18 = *(int *)(var_8 + 0x23270);
    if (var_9 != (type_6 *)0x0) goto LAB_0001558c;
    var_10 = 0;
    goto LAB_00014f74;
  }
LAB_00014f5c:
  var_12 = var_16;
  if ((int)var_9 < 1) {
LAB_000152b8:
    var_10 = 0;
    var_9 = (type_6 *)0x0;
  }
  else {
    var_18 = *(int *)(var_8 + 0x23270);
    if ((int)var_9 < 0x116) {
LAB_0001558c:
      var_10 = (type_6)*(type_4 *)((int)var_9 + var_18 + 0x6458);
      var_31 = (type_6 *)((int)var_37 + var_10);
    }
    else {
      var_10 = 2;
      var_31 = (type_6 *)((int)var_37 + 2);
    }
  }
  goto LAB_00014f74;
LAB_00015354:
  do {
    var_27 = 1;
LAB_00015358:
    while( true ) {
      var_16 = (type_6 **)pc_00->input;
      do {
        var_16 = (type_6 **)((int)var_16 + 1);
        pc_00->input = (char *)var_16;
        var_17 = (type_6 **)(int)(char)*(type_4 *)var_16;
        var_10 = (type_6)*(type_4 *)var_16;
        var_26 = (type_6)(var_10 - 9 < 0x18);
        if (var_26 == 0) {
          var_11 = var_10 - 0x30;
          if (9 < var_11) goto LAB_000152f4;
          goto LAB_000153dc;
        }
      } while ((1 << (var_10 - 9 & 0x1f) & 0x80001fU) != 0);
      var_11 = var_10 - 9;
      var_12 = (type_6 **)(type_6)(var_11 < 0x18);
      if (var_12 != (type_6 **)0x0) goto LAB_00015308;
LAB_000153a8:
      var_11 = var_10 - 0x30;
      if (9 < var_11) goto LAB_00015344;
      if (var_10 != 0x2d) break;
      var_27 = 0xffffffff;
    }
    var_27 = 0;
  } while (var_10 == 0x2b);
  var_16 = (type_6 **)pc_00->input;
LAB_000153dc:
  var_12 = (type_6 **)0x0;
  var_9 = (type_6 *)0x0;
  in_t5 = 0xffffffff;
  var_3 = 0x30;
  var_26 = 10;
  var_45 = var_16;
LAB_000153f8:
  if (var_27 == 0xffffffff) {
    var_11 = 0x30 - var_10;
  }
  var_10 = (int)var_11 >> 0x1f;
  var_28 = (type_6 *)((int)var_9 + var_11);
  var_30 = (type_6 *)((int)var_12 + (var_28 < var_9) + var_10);
  in_t4 = (type_6 **)((type_6)var_30 ^ var_10);
  var_12 = (type_6 **)((type_6)in_t4 & ~((type_6)var_12 ^ var_10));
  if ((int)var_12 < 0) goto LAB_00017ad0;
  var_10 = (type_6)*(type_4 *)((int)var_45 + 1);
  var_11 = var_10 - 0x30;
  in_t4 = (type_6 **)((int)var_45 + 1);
  if (var_11 < 10) goto LAB_00015528;
  var_12 = (type_6 **)0xfffffffd;
  if (((*(type_4 *)((int)var_45 + 1) & 0xfd) != 0x2c) ||
     (var_9 = (type_6 *)((char)*(type_4 *)((int)var_45 + 2) + -0x30), &DAT_00000009 < var_9)) {
    pc_00->input = (char *)in_t4;
    var_10 = 0x13;
    apuStack_5e8[0] = (type_6 *)var_29((type_4)(var_27 >> 0x1f),apuStack_5e8[0]._1_3_);
    var_9 = (type_6 *)0x112;
    if (var_27 == 0) {
      var_10 = 0x14;
    }
    iStack_660 = (int)in_t4 - (int)var_16;
    if (var_27 == 0) {
      var_9 = (type_6 *)0x113;
    }
    var_31 = (type_6 *)((int)var_37 + var_10);
    puStack_65c = var_30;
    puStack_630 = var_28;
    goto LAB_00014f74;
  }
  var_30 = (type_6 *)((int)var_30 + (type_6)(var_28 + -0x20000000 < var_28));
  var_18 = 8;
  var_16 = var_12;
  if (var_30 != (type_6 *)0x0) goto LAB_00017ae0;
  var_17 = (type_6 **)(int)(char)*(type_4 *)((int)var_45 + 3);
  var_45 = (type_6 **)((int)var_45 + 3);
  var_16 = var_17 + -0xc;
  var_12 = (type_6 **)((int)var_9 * 4);
  do {
    var_9 = (type_6 *)((int)((int)var_12 + (int)var_9) * 2);
    if (var_16 < &DAT_0000000a) {
      var_17 = (type_6 **)(int)(char)*(type_4 *)((int)var_45 + 1);
      var_9 = (type_6 *)((int)var_9 + (int)var_16);
      var_45 = (type_6 **)((int)var_45 + 1);
      var_16 = var_17 + -0xc;
    }
    var_18 = var_18 + -1;
    var_12 = (type_6 **)((int)var_9 << 2);
  } while (var_18 != 0);
  var_30 = var_28;
  if (var_27 == 0xffffffff) {
    var_13 = var_17;
    if (var_16 < &DAT_0000000a) {
      do {
        if (var_13 != (type_6 **)0x30) {
          var_9 = (type_6 *)((int)var_9 + 1);
          if ((int)(char)*(type_4 *)var_45 - 0x30U < 10) goto LAB_000154dc;
          break;
        }
        var_45 = (type_6 **)((int)var_45 + 1);
        var_12 = (type_6 **)(int)(char)*(type_4 *)var_45;
        var_13 = var_12;
      } while (var_12 + -0xc <= &DAT_00000009);
    }
LAB_00015c20:
    if (var_9 != (type_6 *)0x0) {
      var_30 = (type_6 *)((int)var_28 + -1);
      var_16 = var_12;
      if (var_28 == (type_6 *)0x80000000) {
LAB_00017ae0:
        var_12 = var_16;
        var_10 = 2;
        var_9 = (type_6 *)0x3f;
        var_31 = (type_6 *)((int)var_37 + 2);
        goto LAB_00014f74;
      }
      var_9 = (type_6 *)(1000000000 - (int)var_9);
    }
    var_10 = 0x15;
    apuStack_5e8[1] = var_9;
    apuStack_5e8[0] = var_30;
    var_9 = (type_6 *)0x114;
    pc_00->input = (char *)var_45;
    var_31 = (type_6 *)((int)var_37 + 0x15);
    goto LAB_00014f74;
  }
  if (var_16 < &DAT_0000000a) {
LAB_000154dc:
    do {
      var_45 = (type_6 **)((int)var_45 + 1);
    } while ((int)(char)*(type_4 *)var_45 - 0x30U < 10);
    if (var_27 == 0xffffffff) goto LAB_00015c20;
  }
  apuStack_5e8[0] = var_28;
  var_10 = 0x16;
  apuStack_5e8[1] = var_9;
  var_9 = (type_6 *)0x115;
  pc_00->input = (char *)var_45;
  if (var_27 != 0) {
    var_10 = 0x15;
    var_9 = (type_6 *)0x114;
  }
  var_31 = (type_6 *)((int)var_37 + var_10);
LAB_00014f74:
  var_25 = var_38;
  if ((type_6 *)0x70 < var_31) goto LAB_0001504c;
  var_18 = *(int *)(var_8 + 0x23270);
  if ((int)(char)*(type_4 *)((int)var_31 + var_32) != var_10) goto LAB_00015050;
  var_34 = (type_6 *)(type_6)*(type_4 *)((int)var_31 + var_33);
  if (var_34 == (type_6 *)0x0) {
    puStack_66c = auStack_5b0;
    var_34 = var_35 + 0xe;
    var_37 = puStack_66c;
    do {
      var_28 = var_37;
      var_31 = var_34;
      var_34 = var_31 + 4;
      var_11 = var_31[1];
      var_10 = var_31[2];
      var_3 = var_31[3];
      *var_28 = *var_31;
      var_28[1] = var_11;
      var_28[2] = var_10;
      var_28[3] = var_3;
      var_37 = var_28 + 4;
    } while (var_34 != var_35 + 0x1a);
    var_3 = var_31[5];
    var_24 = -0x1c;
    var_28[4] = *var_34;
    var_28[5] = var_3;
    var_21 = (type_6 *)var_35[0x13];
    var_27 = var_35[0x11];
    var_30 = (type_6 *)var_35[0x10];
    var_20 = (short *)var_35[0x12];
    var_45 = (type_6 **)var_35[0x15];
    var_17 = (type_6 **)var_35[0x14];
    in_t5 = var_35[0x17];
    in_t4 = (type_6 **)var_35[0x16];
    var_3 = var_35[0x18];
    var_44 = var_35[0x19];
    var_26 = var_35[0x1a];
    var_18 = 0;
    goto LAB_00015adc;
  }
  if (var_36 != 0) {
    var_36 = var_36 + -1;
  }
  var_35 = var_35 + 0xe;
  var_17 = apuStack_5b8;
  apuStack_5e8[3] = puStack_630;
  apuStack_5e8[2] = puStack_65c;
  iStack_5d8 = iStack_660;
  var_16 = apuStack_5e8;
  var_9 = var_35;
  do {
    var_37 = var_9;
    var_13 = var_16;
    var_16 = var_13 + 4;
    var_31 = var_13[1];
    var_12 = (type_6 **)var_13[2];
    var_9 = var_13[3];
    *var_37 = (type_6)*var_13;
    var_37[1] = (type_6)var_31;
    var_37[2] = (type_6)var_12;
    var_37[3] = (type_6)var_9;
    var_9 = var_37 + 4;
  } while (var_16 != var_17);
  var_9 = (type_6 *)0xfffffffe;
  var_31 = var_13[5];
  var_37[4] = (type_6)*var_16;
  var_37[5] = (type_6)var_31;
  do {
    while( true ) {
      var_25 = var_38 + 1;
      var_38[1] = (short)var_34;
      if ((var_25 < &sStack_552) && (var_34 != (type_6 *)0xc)) break;
LAB_00015278:
      do {
        do {
          if (var_39 == *piVar8) {
            return;
          }
          var_18 = var_39;
          uVar7 = (**(type_7 **)(var_8 + 0x23488))();
          bVar2 = var_12 == (type_6 **)0x0;
          *(type_3 *)&pc_00->day = uVar7;
          *(int *)((int)&pc_00->day + 4) = var_18;
        } while (bVar2);
        var_12 = (type_6 **)var_35[3];
        if (var_35[2] == 0x80000000) {
          bVar2 = var_12 == (type_6 **)0x0;
        }
        *(type_6 *)&(pc_00->year).value = -(type_6)(-(int)var_12 != 0) - var_35[2];
        *(int *)((int)&(pc_00->year).value + 4) = -(int)var_12;
      } while (bVar2);
      var_34 = var_35 + 4;
      var_35 = var_35 + -0x2a;
      var_38 = var_25 + -3;
      var_24 = 0xe;
      (pc_00->year).digits = *var_34;
      var_18 = -0x5d;
LAB_00015adc:
      var_35 = var_35 + 0xe;
      puStack_5a8 = var_30;
      var_30 = auStack_580;
      uStack_5a4 = var_27;
      apsStack_5a0[1] = (short *)var_21;
      apsStack_5a0[0] = var_20;
      ppuStack_594 = var_45;
      ppuStack_598 = var_17;
      uStack_58c = in_t5;
      ppuStack_590 = in_t4;
      uStack_588 = var_3;
      uStack_584 = var_44;
      auStack_580[0] = var_26;
      var_34 = puStack_66c;
      var_37 = var_35;
      do {
        var_28 = var_37;
        var_31 = var_34;
        var_17 = (type_6 **)*var_31;
        var_34 = var_31 + 4;
        var_41 = var_31[1];
        var_11 = var_31[2];
        var_10 = var_31[3];
        *var_28 = (type_6)var_17;
        var_28[1] = var_41;
        var_28[2] = var_11;
        var_28[3] = var_10;
        var_37 = var_28 + 4;
      } while (var_34 != var_30);
      var_12 = (type_6 **)(int)*var_38;
      var_10 = var_31[5];
      var_15 = (type_4 *)((int)var_12 + var_18);
      var_28[4] = *var_34;
      var_28[5] = var_10;
      if ((var_15 < (type_4 *)0x71) && ((type_6 **)(int)(char)var_15[var_32] == var_12)) {
        var_34 = (type_6 *)(type_6)var_15[var_33];
      }
      else {
        var_34 = (type_6 *)(int)*(char *)(var_24 + var_7 + 0x6338);
      }
    }
    var_37 = (type_6 *)(int)(char)*(type_4 *)((int)var_34 + *(int *)(var_8 + 0x23270) + 0x63e4);
    var_16 = var_12;
    var_38 = var_25;
    if (var_37 != (type_6 *)0xffffffa3) goto LAB_00014f50;
LAB_0001504c:
    var_18 = *(int *)(var_8 + 0x23270);
    var_38 = var_25;
LAB_00015050:
    var_10 = (type_6)*(type_4 *)((int)var_34 + var_18 + 0x6370);
    if (var_10 != 0) {
      var_11 = (type_6)*(type_4 *)(var_10 + *(int *)(var_8 + 0x23270) + 0x6198);
      var_31 = var_35 + (1 - var_11) * 0xe;
      var_34 = var_31;
      var_37 = auStack_5b0;
      do {
        var_40 = var_37;
        var_28 = var_34;
        var_34 = var_28 + 4;
        uVar24 = var_28[1];
        var_41 = var_28[2];
        var_3 = var_28[3];
        *var_40 = *var_28;
        var_40[1] = uVar24;
        var_40[2] = var_41;
        var_40[3] = var_3;
        var_37 = var_40 + 4;
      } while (var_34 != var_31 + 0xc);
      var_3 = var_28[5];
      var_41 = var_10 - 4 & 0xff;
      var_40[4] = *var_34;
      var_40[5] = var_3;
      var_21 = (type_6 *)var_31[5];
      var_27 = var_31[3];
      var_30 = (type_6 *)var_31[2];
      var_20 = (short *)var_31[4];
      var_45 = (type_6 **)var_31[7];
      var_17 = (type_6 **)var_31[6];
      in_t5 = var_31[9];
      in_t4 = (type_6 **)var_31[8];
      var_3 = var_31[10];
      var_44 = var_31[0xb];
      var_26 = var_31[0xc];
      if (var_41 < 0x58) {
                    /* WARNING: Could not recover jumptable at 0x00015220. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        (*(type_7 *)(var_8 + *(int *)(*(int *)(var_8 + 0x23270) + 0x5f80 + var_41 * 4) + 0x2b234))
                  ();
        return;
      }
      var_38 = var_38 + -var_11;
      var_35 = var_35 + var_11 * -0xe;
      var_24 = *(type_4 *)(*(int *)(var_8 + 0x23270) + 0x61f4 + var_10) - 0x1c;
      var_18 = (int)*(char *)(var_24 + *(int *)(var_8 + 0x23270) + 0x6354);
      puStack_66c = auStack_5b0;
      goto LAB_00015adc;
    }
    if (var_36 == 3) {
      if ((int)var_9 < 1) {
        var_25 = var_38;
        if (var_9 == (type_6 *)0x0) goto LAB_00015278;
      }
      else {
        var_9 = (type_6 *)0xfffffffe;
      }
    }
    var_12 = (type_6 **)0xffffffa3;
    while ((((var_18 = (int)(char)*(type_4 *)((int)var_34 + *(int *)(var_8 + 0x23270) + 0x63e4),
             var_10 = var_18 + 1, var_18 == -0x5d || (0x70 < var_10)) ||
            (*(char *)(var_10 + var_32) != '\x01')) ||
           (var_34 = (type_6 *)(type_6)*(type_4 *)(var_10 + var_33), var_34 == (type_6 *)0x0))) {
      var_25 = var_38;
      if (var_38 == var_42) goto LAB_00015278;
      var_38 = var_38 + -1;
      var_34 = (type_6 *)(int)*var_38;
      var_35 = var_35 + -0xe;
    }
    var_35 = var_35 + 0xe;
    var_17 = apuStack_5b8;
    apuStack_5e8[3] = puStack_630;
    apuStack_5e8[2] = puStack_65c;
    iStack_5d8 = iStack_660;
    var_16 = apuStack_5e8;
    var_37 = var_35;
    do {
      var_31 = var_37;
      var_13 = var_16;
      var_16 = var_13 + 4;
      var_40 = var_13[1];
      var_28 = var_13[2];
      var_37 = var_13[3];
      *var_31 = (type_6)*var_13;
      var_31[1] = (type_6)var_40;
      var_31[2] = (type_6)var_28;
      var_31[3] = (type_6)var_37;
      var_37 = var_31 + 4;
    } while (var_16 != var_17);
    var_12 = (type_6 **)0x3;
    var_37 = var_13[5];
    var_36 = 3;
    var_31[4] = (type_6)*var_16;
    var_31[5] = (type_6)var_37;
  } while( true );
LAB_00015528:
  var_9 = (type_6 *)((int)var_28 >> 0x1f);
  bVar2 = false;
  if (var_9 == var_30) {
    var_30 = (type_6 *)((type_6)var_28 >> 0x1e);
    var_17 = (type_6 **)((int)((int)var_9 +
                           (type_6)((type_6)((int)var_28 * 5) < (type_6)((int)var_28 * 4)) +
                           ((type_6)var_30 | (int)var_9 << 2)) * 2);
    var_12 = (type_6 **)((type_6)((int)var_28 * 5) >> 0x1f | (type_6)var_17);
  }
  else {
    var_45 = (type_6 **)(var_43(var_30) * 10);
    var_20 = (short *)(var_43(var_30) * 10 >> 0x20);
    var_44 = (int)var_28 * 4;
    var_21 = (type_6 *)((type_6)var_28 >> 0x1e);
    var_17 = (type_6 **)((int)var_28 * 10);
    var_25 = var_20;
    if ((int)var_30 < 0) {
      var_25 = var_20 + -5;
    }
    var_12 = (type_6 **)((int)var_45 +
                    ((type_6)((int)var_28 * 5) >> 0x1f |
                    (int)((int)var_21 + (type_6)((type_6)((int)var_28 * 5) < var_44)) * 2));
    if ((int)var_12 >> 0x1f != (type_6)(var_12 < var_45) + (int)var_25) {
      bVar2 = true;
      var_17 = (type_6 **)((int)((int)var_30 +
                             (type_6)((type_6)((int)var_28 * 5) < var_44) +
                             ((type_6)var_21 | (int)var_30 * 4)) * 2);
      var_12 = (type_6 **)((type_6)((int)var_28 * 5) >> 0x1f | (type_6)var_17);
    }
  }
  var_9 = (type_6 *)((int)var_28 * 10);
  var_45 = in_t4;
  if (bVar2) goto LAB_00017ad0;
  goto LAB_000153f8;
LAB_00017ad0:
  var_10 = 2;
  var_9 = (type_6 *)0x3f;
  var_31 = (type_6 *)((int)var_37 + 2);
  goto LAB_00014f74;
  while( true ) {
    if (var_19 == 0x28) {
      var_18 = var_18 + 1;
    }
    else if (var_19 == 0x29) {
      var_18 = var_18 + -1;
    }
    if (var_18 == 0) break;
LAB_000157a8:
    var_12 = var_16;
    var_16 = (type_6 **)((int)var_12 + 1);
    pc_00->input = (char *)var_16;
    var_19 = *(type_4 *)var_12;
    if (var_19 == 0) goto LAB_000152b8;
  }
  var_19 = *(type_4 *)((int)var_12 + 1);
  goto LAB_000152f0;
}


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

/* WARNING: Type propagation algorithm not settling */

int MASKED(undefined4 param_1,int param_2)

{
  char cVar1;
  bool bVar2;
  undefined *puVar3;
  undefined *puVar4;
  undefined4 uVar5;
  int iVar6;
  int *piVar7;
  int iVar8;
  int iVar9;
  byte bVar12;
  int iVar10;
  uint **ppuVar11;
  uint *puVar13;
  undefined4 *puVar14;
  uint uVar15;
  uint **ppuVar16;
  uint *puVar17;
  uint uVar18;
  uint *puVar19;
  uint *puVar20;
  uint **ppuVar21;
  uint uVar22;
  uint uVar23;
  uint **in_t0;
  uint uVar24;
  uint *in_t2;
  uint in_t3;
  uint **in_t4;
  uint in_t5;
  uint in_t6;
  uint *puVar25;
  byte *pbVar26;
  short *psVar27;
  uint **ppuVar28;
  uint *puVar29;
  int iVar30;
  undefined *unaff_s4;
  uint *puVar31;
  short *psVar32;
  short *unaff_s6;
  uint in_t8;
  undefined *puVar33;
  code *pcVar34;
  uint *puStack_674;
  int iStack_670;
  uint *puStack_66c;
  int iStack_660;
  uint *puStack_65c;
  uint *puStack_630;
  uint *apuStack_5e8 [4];
  int iStack_5d8;
  uint *apuStack_5b8 [2];
  uint auStack_5b0 [2];
  uint *puStack_5a8;
  uint uStack_5a4;
  short *apsStack_5a0 [2];
  uint **ppuStack_598;
  uint **ppuStack_594;
  uint **ppuStack_590;
  uint uStack_58c;
  uint uStack_588;
  uint uStack_584;
  uint auStack_580 [2];
  short asStack_578 [19];
  short sStack_552;
  uint auStack_550 [279];
  byte abStack_f1 [21];
  int iStack_dc;
  int iStack_d8;
  uint **ppuStack_d4;
  undefined *puStack_d0;
  undefined *puStack_cc;
  undefined *puStack_c8;
  undefined1 auStack_80 [100];
  int local_1c;
  
  puVar3 = PTR___stack_chk_guard_00038350;
  local_1c = *(int *)PTR___stack_chk_guard_00038350;
  uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x50a0,5);
  FUN_00014188(uVar5,param_1);
  puVar4 = PTR_stderr_00038360;
  if (*(int *)(param_2 + 0x9c) == 0) {
    ppuVar28 = *(uint ***)PTR_stderr_00038360;
    if (*(char *)(param_2 + 0xb4) != *(char *)(param_2 + 0xbb)) goto LAB_00014a30;
LAB_00014c7c:
    uVar18 = 0;
  }
  else {
    ppuVar28 = *(uint ***)PTR_stderr_00038360;
    if (*(char *)(param_2 + 0xb6) == '\0') {
      in_t3 = *(uint *)(param_2 + 0x3c);
      in_t2 = *(uint **)(param_2 + 0x38);
      in_t0 = *(uint ***)(param_2 + 0x28);
      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + 0x5138);
      *(undefined1 *)(param_2 + 0xb6) = 1;
      if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) {
        ppuVar28 = *(uint ***)puVar4;
        uVar18 = 1;
        goto LAB_00014a80;
      }
      (*(code *)PTR_fputc_00038298)(0x20,*(undefined4 *)puVar4);
      ppuVar28 = *(uint ***)puVar4;
    }
    else if (*(char *)(param_2 + 0xb4) == *(char *)(param_2 + 0xbb)) goto LAB_00014c7c;
LAB_00014a30:
    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x5158,5);
    in_t0 = *(uint ***)(param_2 + 0x28);
    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);
    uVar18 = 1;
    ppuVar28 = *(uint ***)puVar4;
    *(undefined1 *)(param_2 + 0xbb) = *(undefined1 *)(param_2 + 0xb4);
  }
LAB_00014a80:
  if ((*(int *)(param_2 + 0xac) == 0) || (*(char *)(param_2 + 0xb9) != '\0')) {
    if ((*(int *)(param_2 + 0xa0) != 0) && (*(char *)(param_2 + 0xb7) == '\0')) {
      if (uVar18 != 0) goto LAB_00014d08;
LAB_00014ab8:
      unaff_s4 = (undefined *)(*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x518c,5);
      uVar5 = FUN_00014838(param_2,auStack_80);
      in_t0 = *(uint ***)(param_2 + 8);
      (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);
      ppuVar28 = *(uint ***)puVar4;
      uVar18 = 1;
      *(undefined1 *)(param_2 + 0xb7) = 1;
    }
  }
  else {
    in_t3 = *(uint *)(param_2 + 0x54);
    in_t2 = *(uint **)(param_2 + 0x50);
    in_t0 = *(uint ***)(param_2 + 0x48);
    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5168);
    if (*(int *)(param_2 + 0x5c) != 0) {
      (*(code *)PTR___fprintf_chk_00038280)(*(undefined4 *)puVar4,1,PTR_LAB_0003811c + 0x5180);
    }
    ppuVar28 = *(uint ***)puVar4;
    if (*(int *)(param_2 + 0x1c) == 1) {
      (*(code *)PTR_fwrite_00038324)(PTR_LAB_0003811c + 0x5188,1,2,ppuVar28);
      ppuVar28 = *(uint ***)puVar4;
    }
    *(undefined1 *)(param_2 + 0xb9) = 1;
    if (*(int *)(param_2 + 0xa0) == 0) {
      uVar18 = 1;
    }
    else {
      uVar18 = (uint)*(byte *)(param_2 + 0xb7);
      if (uVar18 == 0) {
LAB_00014d08:
        (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);
        ppuVar28 = *(uint ***)puVar4;
        goto LAB_00014ab8;
      }
    }
  }
  if ((*(int *)(param_2 + 0xa4) == 0) || (*(char *)(param_2 + 0xb8) != '\0')) {
    if ((*(int *)(param_2 + 0xb0) == 0) ||
       (unaff_s4 = PTR_LAB_0003811c, *(char *)(param_2 + 0xba) != '\0')) {
      if (*(char *)(param_2 + 0x98) == '\0') goto LAB_00014bb0;
      param_2 = *(int *)(param_2 + 0x58);
      unaff_s4 = (undefined *)(param_2 >> 0x1f);
      if (uVar18 != 0) goto LAB_00014d8c;
      goto LAB_00014c1c;
    }
    unaff_s4 = PTR_LAB_0003811c + (uVar18 ^ 1) + 0x5130;
LAB_00014d38:
    uVar5 = FUN_00013f30(*(undefined4 *)(param_2 + 0x18),auStack_80);
    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,unaff_s4,uVar5);
    *(undefined1 *)(param_2 + 0xba) = 1;
    if (*(char *)(param_2 + 0x98) != '\0') {
      param_2 = *(int *)(param_2 + 0x58);
      ppuVar28 = *(uint ***)puVar4;
      goto LAB_00014d88;
    }
  }
  else {
    (*(code *)PTR___fprintf_chk_00038280)
              (ppuVar28,1,PTR_LAB_0003811c + (uVar18 ^ 1) + 0x51ac,*(undefined4 *)(param_2 + 0x14));
    *(undefined1 *)(param_2 + 0xb8) = 1;
    if (*(int *)(param_2 + 0xb0) == 0) {
      cVar1 = *(char *)(param_2 + 0x98);
      ppuVar28 = *(uint ***)puVar4;
    }
    else {
      ppuVar28 = *(uint ***)puVar4;
      if (*(char *)(param_2 + 0xba) == '\0') {
        unaff_s4 = PTR_LAB_0003811c + 0x5130;
        goto LAB_00014d38;
      }
      cVar1 = *(char *)(param_2 + 0x98);
    }
    if (cVar1 == '\0') goto LAB_00014bb0;
    param_2 = *(int *)(param_2 + 0x58);
LAB_00014d88:
    unaff_s4 = (undefined *)(param_2 >> 0x1f);
LAB_00014d8c:
    (*(code *)PTR_fputc_00038298)(0x20,ppuVar28);
    ppuVar28 = *(uint ***)puVar4;
LAB_00014c1c:
    uVar5 = (*(code *)PTR_dcgettext_00038338)(0,PTR_LAB_0003811c + 0x51b8,5);
    (*(code *)PTR___fprintf_chk_00038280)(ppuVar28,1,uVar5);
  }
  ppuVar28 = *(uint ***)puVar4;
LAB_00014bb0:
  puVar14 = (undefined4 *)&DAT_0000000a;
  ppuVar21 = ppuVar28;
  (*(code *)PTR_fputc_00038298)();
  iVar6 = *(int *)puVar3;
  if (local_1c == iVar6) {
    return iVar6;
  }
  puVar33 = PTR___stack_chk_fail_00038334;
  (*(code *)PTR___stack_chk_fail_00038334)();
  piVar7 = *(int **)(puVar33 + 0x234a4);
  uVar18 = 0xfffffffe;
  puStack_cc = puVar3;
  puVar31 = (uint *)&DAT_00000026;
  iStack_dc = *piVar7;
  iVar6 = *(int *)(puVar33 + 0x23270);
  puStack_c8 = unaff_s4;
  puStack_d0 = puVar4;
  puVar13 = auStack_550;
  ppuStack_d4 = ppuVar28;
  puVar29 = (uint *)0xfffffffe;
  iVar30 = *(int *)(puVar33 + 0x23270) + 0x6250;
  iStack_d8 = param_2;
  puVar25 = (uint *)0x0;
  iVar8 = *(int *)(puVar33 + 0x23270) + 0x62c4;
  asStack_578[0] = 0;
  iStack_670 = 0;
  psVar32 = asStack_578;
LAB_00014f50:
  ppuVar28 = (uint **)0x800000;
  puVar19 = puVar31;
  if (puVar29 == (uint *)0xfffffffe) {
    ppuVar21 = (uint **)*puVar14;
    in_t2 = (uint *)0x1;
    ppuVar28 = (uint **)0x80001f;
    in_t4 = (uint **)0x2d;
    bVar12 = *(byte *)ppuVar21;
    in_t5 = 0x2b;
    in_t6 = 0x28;
    uVar18 = 0x29;
LAB_000152f0:
    in_t0 = (uint **)(int)(char)bVar12;
    uVar15 = (uint)bVar12;
LAB_000152f4:
    uVar22 = uVar15 - 9;
    ppuVar16 = (uint **)(uint)(uVar22 < 0x18);
    if (ppuVar16 == (uint **)0x0) goto LAB_000153a8;
LAB_00015308:
    ppuVar11 = (uint **)(1 << (uVar22 & 0x1f) & 0x80001f);
    while (ppuVar11 != (uint **)0x0) {
      ppuVar21 = (uint **)((int)ppuVar21 + 1);
      *puVar14 = ppuVar21;
      in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;
      uVar15 = (uint)*(byte *)ppuVar21;
      ppuVar16 = (uint **)(uVar15 - 9);
      if ((uint **)0x17 < ppuVar16) goto LAB_000153a8;
      ppuVar16 = (uint **)(1 << ((uint)ppuVar16 & 0x1f) & 0x80001f);
      ppuVar11 = ppuVar16;
    }
LAB_00015344:
    in_t3 = 0xffffffff;
    if (uVar15 == 0x2d) goto LAB_00015358;
    if (uVar15 == 0x2b) goto LAB_00015354;
    if ((0x40 < (int)in_t0) && (((int)in_t0 < 0x5b || (((uint)((int)in_t0 + -0x61) & 0xff) < 0x1a)))
       ) {
      pbVar26 = (byte *)*puVar14;
      ppuVar16 = (uint **)(abStack_f1 + 1);
      in_t0 = (uint **)(abStack_f1 + 0x14);
      ppuVar28 = (uint **)&DAT_0000002e;
      ppuVar21 = ppuVar16;
      do {
        pbVar26 = pbVar26 + 1;
        if (ppuVar21 < in_t0) {
          *(byte *)ppuVar21 = (byte)uVar15;
          ppuVar21 = (uint **)((int)ppuVar21 + 1);
        }
        *puVar14 = pbVar26;
        iVar9 = (int)(char)*pbVar26;
        uVar15 = (uint)*pbVar26;
      } while (((0x40 < iVar9) && ((iVar9 < 0x5b || ((iVar9 - 0x61U & 0xff) < 0x1a)))) ||
              (uVar15 == 0x2e));
      *(byte *)ppuVar21 = 0;
      ppuVar21 = ppuVar16;
      bVar12 = abStack_f1[1];
      while (bVar12 != 0) {
        if (bVar12 - 0x61 < 0x1a) {
          bVar12 = bVar12 - 0x20;
        }
        *(byte *)ppuVar21 = bVar12;
        ppuVar21 = (uint **)((int)ppuVar21 + 1);
        bVar12 = *(byte *)ppuVar21;
      }
      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7f98);
      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d0);
      do {
        iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);
        puStack_674 = puVar25;
        if (iVar9 == 0) {
LAB_00015708:
          puVar29 = *(uint **)(unaff_s6 + 2);
          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);
          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);
          goto LAB_00014f5c;
        }
        unaff_s6 = unaff_s6 + 6;
        ppuVar21 = *(uint ***)unaff_s6;
      } while (ppuVar21 != (uint **)0x0);
      puStack_674 = (uint *)(**(code **)(puVar33 + 0x23438))(ppuVar16);
      if (puStack_674 == (uint *)0x3) {
        bVar2 = true;
      }
      else if (puStack_674 == (uint *)0x4) {
        bVar2 = abStack_f1[4] == '.';
      }
      else {
        bVar2 = false;
      }
      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7e6c);
      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51d4);
      do {
        if (bVar2) {
          iVar9 = (**(code **)(puVar33 + 0x233c8))(ppuVar16,ppuVar21,3);
        }
        else {
          iVar9 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);
        }
        puStack_66c = puVar25;
        if (iVar9 == 0) {
          puVar29 = *(uint **)(unaff_s6 + 2);
          apuStack_5e8[1] = *(uint **)(unaff_s6 + 4);
          apuStack_5e8[0] = (uint *)((int)*(uint **)(unaff_s6 + 4) >> 0x1f);
          goto LAB_00014f5c;
        }
        unaff_s6 = unaff_s6 + 6;
        ppuVar21 = *(uint ***)unaff_s6;
      } while (ppuVar21 != (uint **)0x0);
      iVar9 = *(int *)(puVar33 + 0x2326c);
      ppuVar21 = ppuVar16;
      iVar10 = FUN_00014388(puVar14);
      unaff_s6 = asStack_578;
      if (iVar10 != 0) {
        puVar29 = *(uint **)(iVar10 + 4);
        apuStack_5e8[1] = *(uint **)(iVar10 + 8);
        apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar10 + 8) >> 0x1f);
        puStack_66c = (uint *)0x0;
        goto LAB_00014f5c;
      }
      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51f0);
      iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);
      if (iVar10 == 0) {
        puVar29 = (uint *)0x103;
        apuStack_5e8[1] = (uint *)0x0;
        apuStack_5e8[0] = (uint *)0x0;
LAB_00015588:
        iVar9 = *(int *)(puVar33 + 0x23270);
        ppuVar16 = ppuVar21;
        puStack_66c = puVar31;
        goto LAB_0001558c;
      }
      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7de8);
      ppuVar11 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51dc);
      ppuVar21 = ppuVar11;
      psVar27 = unaff_s6;
      do {
        iVar10 = (**(code **)(puVar33 + 0x234c8))(ppuVar16);
        if (iVar10 == 0) {
          puVar29 = *(uint **)(psVar27 + 2);
          apuStack_5e8[1] = *(uint **)(psVar27 + 4);
          apuStack_5e8[0] = (uint *)((int)*(uint **)(psVar27 + 4) >> 0x1f);
          goto LAB_00014f5c;
        }
        psVar27 = psVar27 + 6;
        ppuVar21 = *(uint ***)psVar27;
      } while (ppuVar21 != (uint **)0x0);
      pbVar26 = (byte *)((int)ppuVar16 + (int)((int)puStack_674 + -1));
      if (*pbVar26 == 0x53) {
        *pbVar26 = 0;
        pcVar34 = *(code **)(puVar33 + 0x234c8);
        do {
          iVar10 = (*pcVar34)(ppuVar16);
          ppuVar21 = ppuVar11;
          puStack_66c = puVar31;
          if (iVar10 == 0) goto LAB_00015708;
          unaff_s6 = unaff_s6 + 6;
          ppuVar11 = *(uint ***)unaff_s6;
          pcVar34 = *(code **)(puVar33 + 0x234c8);
        } while (ppuVar11 != (uint **)0x0);
        *pbVar26 = 0x53;
      }
      unaff_s6 = (short *)(*(int *)(puVar33 + 0x23268) + 0x7cec);
      ppuVar21 = (uint **)(*(int *)(puVar33 + 0x23270) + 0x51e4);
      pcVar34 = *(code **)(puVar33 + 0x234c8);
      do {
        iVar10 = (*pcVar34)(ppuVar16);
        puStack_66c = puVar31;
        if (iVar10 == 0) goto LAB_00015708;
        unaff_s6 = unaff_s6 + 6;
        ppuVar21 = *(uint ***)unaff_s6;
        pcVar34 = *(code **)(puVar33 + 0x234c8);
      } while (ppuVar21 != (uint **)0x0);
      if (puStack_674 == (uint *)0x1) {
        ppuVar21 = *(uint ***)(puVar33 + 0x23268);
        if (abStack_f1[1] == 0x41) {
          puVar29 = (uint *)0x111;
          apuStack_5e8[1] = (uint *)0xfffff1f0;
          apuStack_5e8[0] = (uint *)0xffffffff;
          goto LAB_00015588;
        }
        ppuVar11 = ppuVar21 + 0x1e51;
        while( true ) {
          ppuVar21 = ppuVar11;
          if (ppuVar21[3] == (uint *)0x0) break;
          ppuVar11 = ppuVar21 + 3;
          if (*(byte *)ppuVar21[3] == abStack_f1[1]) {
            puVar29 = ppuVar21[4];
            apuStack_5e8[1] = ppuVar21[5];
            apuStack_5e8[0] = (uint *)((int)ppuVar21[5] >> 0x1f);
            goto LAB_00014f5c;
          }
        }
      }
      if (abStack_f1[1] != 0) {
        bVar2 = false;
        ppuVar21 = ppuVar16;
        ppuVar11 = ppuVar16;
        bVar12 = abStack_f1[1];
        do {
          if (bVar12 == 0x2e) {
            bVar2 = true;
          }
          else {
            ppuVar21 = (uint **)((int)ppuVar21 + 1);
          }
          ppuVar11 = (uint **)((int)ppuVar11 + 1);
          bVar12 = *(byte *)ppuVar11;
          *(byte *)ppuVar21 = bVar12;
        } while (bVar12 != 0);
        puStack_674 = puVar31;
        if ((bVar2) &&
           (ppuVar21 = ppuVar16, iVar9 = (*(code *)(iVar9 + 0x4388))(puVar14), iVar9 != 0)) {
          puVar29 = *(uint **)(iVar9 + 4);
          apuStack_5e8[1] = *(uint **)(iVar9 + 8);
          apuStack_5e8[0] = (uint *)((int)*(uint **)(iVar9 + 8) >> 0x1f);
          goto LAB_00014f5c;
        }
      }
      ppuVar21 = *(uint ***)(puVar33 + 0x23270);
      if (*(char *)((int)puVar14 + 0xb5) == '\0') goto LAB_00017ae0;
      uVar5 = (**(code **)(puVar33 + 0x2348c))(0,*(uint ***)(puVar33 + 0x23270) + 0x147d,5);
      puVar29 = (uint *)0x3f;
      FUN_00014188(uVar5);
      uVar15 = 2;
      puVar19 = (uint *)((int)puVar31 + 2);
      goto LAB_00014f74;
    }
    iVar9 = 0;
    if (uVar15 == 0x28) {
      ppuVar21 = (uint **)*puVar14;
      goto LAB_000157a8;
    }
    *puVar14 = (byte *)((int)ppuVar21 + 1);
    puVar29 = (uint *)(uint)*(byte *)ppuVar21;
    iVar9 = *(int *)(puVar33 + 0x23270);
    if (puVar29 != (uint *)0x0) goto LAB_0001558c;
    uVar15 = 0;
    goto LAB_00014f74;
  }
LAB_00014f5c:
  ppuVar16 = ppuVar21;
  if ((int)puVar29 < 1) {
LAB_000152b8:
    uVar15 = 0;
    puVar29 = (uint *)0x0;
  }
  else {
    iVar9 = *(int *)(puVar33 + 0x23270);
    if ((int)puVar29 < 0x116) {
LAB_0001558c:
      uVar15 = (uint)*(byte *)((int)puVar29 + iVar9 + 0x6458);
      puVar19 = (uint *)((int)puVar31 + uVar15);
    }
    else {
      uVar15 = 2;
      puVar19 = (uint *)((int)puVar31 + 2);
    }
  }
  goto LAB_00014f74;
LAB_00015354:
  do {
    in_t3 = 1;
LAB_00015358:
    while( true ) {
      ppuVar21 = (uint **)*puVar14;
      do {
        ppuVar21 = (uint **)((int)ppuVar21 + 1);
        *puVar14 = ppuVar21;
        in_t0 = (uint **)(int)(char)*(byte *)ppuVar21;
        uVar15 = (uint)*(byte *)ppuVar21;
        in_t8 = (uint)(uVar15 - 9 < 0x18);
        if (in_t8 == 0) {
          uVar22 = uVar15 - 0x30;
          if (9 < uVar22) goto LAB_000152f4;
          goto LAB_000153dc;
        }
      } while ((1 << (uVar15 - 9 & 0x1f) & 0x80001fU) != 0);
      uVar22 = uVar15 - 9;
      ppuVar16 = (uint **)(uint)(uVar22 < 0x18);
      if (ppuVar16 != (uint **)0x0) goto LAB_00015308;
LAB_000153a8:
      uVar22 = uVar15 - 0x30;
      if (9 < uVar22) goto LAB_00015344;
      if (uVar15 != 0x2d) break;
      in_t3 = 0xffffffff;
    }
    in_t3 = 0;
  } while (uVar15 == 0x2b);
  ppuVar21 = (uint **)*puVar14;
LAB_000153dc:
  ppuVar16 = (uint **)0x0;
  puVar29 = (uint *)0x0;
  in_t5 = 0xffffffff;
  uVar18 = 0x30;
  in_t8 = 10;
  ppuVar28 = ppuVar21;
LAB_000153f8:
  if (in_t3 == 0xffffffff) {
    uVar22 = 0x30 - uVar15;
  }
  uVar15 = (int)uVar22 >> 0x1f;
  puVar17 = (uint *)((int)puVar29 + uVar22);
  in_t2 = (uint *)((int)ppuVar16 + (puVar17 < puVar29) + uVar15);
  in_t4 = (uint **)((uint)in_t2 ^ uVar15);
  ppuVar16 = (uint **)((uint)in_t4 & ~((uint)ppuVar16 ^ uVar15));
  if ((int)ppuVar16 < 0) goto LAB_00017ad0;
  uVar15 = (uint)*(byte *)((int)ppuVar28 + 1);
  uVar22 = uVar15 - 0x30;
  in_t4 = (uint **)((int)ppuVar28 + 1);
  if (uVar22 < 10) goto LAB_00015528;
  ppuVar16 = (uint **)0xfffffffd;
  if (((*(byte *)((int)ppuVar28 + 1) & 0xfd) != 0x2c) ||
     (puVar29 = (uint *)((char)*(byte *)((int)ppuVar28 + 2) + -0x30), &DAT_00000009 < puVar29)) {
    *puVar14 = in_t4;
    uVar15 = 0x13;
    apuStack_5e8[0] = (uint *)CONCAT13((byte)(in_t3 >> 0x1f),apuStack_5e8[0]._1_3_);
    puVar29 = (uint *)0x112;
    if (in_t3 == 0) {
      uVar15 = 0x14;
    }
    iStack_660 = (int)in_t4 - (int)ppuVar21;
    if (in_t3 == 0) {
      puVar29 = (uint *)0x113;
    }
    puVar19 = (uint *)((int)puVar31 + uVar15);
    puStack_65c = in_t2;
    puStack_630 = puVar17;
    goto LAB_00014f74;
  }
  in_t2 = (uint *)((int)in_t2 + (uint)(puVar17 + -0x20000000 < puVar17));
  iVar9 = 8;
  ppuVar21 = ppuVar16;
  if (in_t2 != (uint *)0x0) goto LAB_00017ae0;
  in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 3);
  ppuVar28 = (uint **)((int)ppuVar28 + 3);
  ppuVar21 = in_t0 + -0xc;
  ppuVar16 = (uint **)((int)puVar29 * 4);
  do {
    puVar29 = (uint *)((int)((int)ppuVar16 + (int)puVar29) * 2);
    if (ppuVar21 < &DAT_0000000a) {
      in_t0 = (uint **)(int)(char)*(byte *)((int)ppuVar28 + 1);
      puVar29 = (uint *)((int)puVar29 + (int)ppuVar21);
      ppuVar28 = (uint **)((int)ppuVar28 + 1);
      ppuVar21 = in_t0 + -0xc;
    }
    iVar9 = iVar9 + -1;
    ppuVar16 = (uint **)((int)puVar29 << 2);
  } while (iVar9 != 0);
  in_t2 = puVar17;
  if (in_t3 == 0xffffffff) {
    ppuVar11 = in_t0;
    if (ppuVar21 < &DAT_0000000a) {
      do {
        if (ppuVar11 != (uint **)0x30) {
          puVar29 = (uint *)((int)puVar29 + 1);
          if ((int)(char)*(byte *)ppuVar28 - 0x30U < 10) goto LAB_000154dc;
          break;
        }
        ppuVar28 = (uint **)((int)ppuVar28 + 1);
        ppuVar16 = (uint **)(int)(char)*(byte *)ppuVar28;
        ppuVar11 = ppuVar16;
      } while (ppuVar16 + -0xc <= &DAT_00000009);
    }
LAB_00015c20:
    if (puVar29 != (uint *)0x0) {
      in_t2 = (uint *)((int)puVar17 + -1);
      ppuVar21 = ppuVar16;
      if (puVar17 == (uint *)0x80000000) {
LAB_00017ae0:
        ppuVar16 = ppuVar21;
        uVar15 = 2;
        puVar29 = (uint *)0x3f;
        puVar19 = (uint *)((int)puVar31 + 2);
        goto LAB_00014f74;
      }
      puVar29 = (uint *)(1000000000 - (int)puVar29);
    }
    uVar15 = 0x15;
    apuStack_5e8[1] = puVar29;
    apuStack_5e8[0] = in_t2;
    puVar29 = (uint *)0x114;
    *puVar14 = ppuVar28;
    puVar19 = (uint *)((int)puVar31 + 0x15);
    goto LAB_00014f74;
  }
  if (ppuVar21 < &DAT_0000000a) {
LAB_000154dc:
    do {
      ppuVar28 = (uint **)((int)ppuVar28 + 1);
    } while ((int)(char)*(byte *)ppuVar28 - 0x30U < 10);
    if (in_t3 == 0xffffffff) goto LAB_00015c20;
  }
  apuStack_5e8[0] = puVar17;
  uVar15 = 0x16;
  apuStack_5e8[1] = puVar29;
  puVar29 = (uint *)0x115;
  *puVar14 = ppuVar28;
  if (in_t3 != 0) {
    uVar15 = 0x15;
    puVar29 = (uint *)0x114;
  }
  puVar19 = (uint *)((int)puVar31 + uVar15);
LAB_00014f74:
  psVar27 = psVar32;
  if ((uint *)0x70 < puVar19) goto LAB_0001504c;
  iVar9 = *(int *)(puVar33 + 0x23270);
  if ((int)(char)*(byte *)((int)puVar19 + iVar30) != uVar15) goto LAB_00015050;
  puVar25 = (uint *)(uint)*(byte *)((int)puVar19 + iVar8);
  if (puVar25 == (uint *)0x0) {
    puStack_66c = auStack_5b0;
    puVar25 = puVar13 + 0xe;
    puVar31 = puStack_66c;
    do {
      puVar17 = puVar31;
      puVar19 = puVar25;
      puVar25 = puVar19 + 4;
      uVar22 = puVar19[1];
      uVar15 = puVar19[2];
      uVar18 = puVar19[3];
      *puVar17 = *puVar19;
      puVar17[1] = uVar22;
      puVar17[2] = uVar15;
      puVar17[3] = uVar18;
      puVar31 = puVar17 + 4;
    } while (puVar25 != puVar13 + 0x1a);
    uVar18 = puVar19[5];
    iVar10 = -0x1c;
    puVar17[4] = *puVar25;
    puVar17[5] = uVar18;
    puStack_674 = (uint *)puVar13[0x13];
    in_t3 = puVar13[0x11];
    in_t2 = (uint *)puVar13[0x10];
    unaff_s6 = (short *)puVar13[0x12];
    ppuVar28 = (uint **)puVar13[0x15];
    in_t0 = (uint **)puVar13[0x14];
    in_t5 = puVar13[0x17];
    in_t4 = (uint **)puVar13[0x16];
    uVar18 = puVar13[0x18];
    in_t6 = puVar13[0x19];
    in_t8 = puVar13[0x1a];
    iVar9 = 0;
    goto LAB_00015adc;
  }
  if (iStack_670 != 0) {
    iStack_670 = iStack_670 + -1;
  }
  puVar13 = puVar13 + 0xe;
  in_t0 = apuStack_5b8;
  apuStack_5e8[3] = puStack_630;
  apuStack_5e8[2] = puStack_65c;
  iStack_5d8 = iStack_660;
  ppuVar21 = apuStack_5e8;
  puVar29 = puVar13;
  do {
    puVar31 = puVar29;
    ppuVar11 = ppuVar21;
    ppuVar21 = ppuVar11 + 4;
    puVar19 = ppuVar11[1];
    ppuVar16 = (uint **)ppuVar11[2];
    puVar29 = ppuVar11[3];
    *puVar31 = (uint)*ppuVar11;
    puVar31[1] = (uint)puVar19;
    puVar31[2] = (uint)ppuVar16;
    puVar31[3] = (uint)puVar29;
    puVar29 = puVar31 + 4;
  } while (ppuVar21 != in_t0);
  puVar29 = (uint *)0xfffffffe;
  puVar19 = ppuVar11[5];
  puVar31[4] = (uint)*ppuVar21;
  puVar31[5] = (uint)puVar19;
LAB_00015014:
  psVar27 = psVar32 + 1;
  psVar32[1] = (short)puVar25;
  if (&sStack_552 <= psVar27) {
    iVar9 = 2;
LAB_00015278:
    do {
      if (iStack_dc == *piVar7) {
        return iVar9;
      }
      iVar9 = iStack_dc;
      uVar5 = (**(code **)(puVar33 + 0x23488))();
      bVar2 = ppuVar16 == (uint **)0x0;
      puVar14[0x10] = uVar5;
      puVar14[0x11] = iVar9;
      if (!bVar2) {
        ppuVar16 = (uint **)puVar13[3];
        if (puVar13[2] == 0x80000000) {
          bVar2 = ppuVar16 == (uint **)0x0;
        }
        puVar14[10] = -(uint)(-(int)ppuVar16 != 0) - puVar13[2];
        puVar14[0xb] = -(int)ppuVar16;
        if (!bVar2) goto code_r0x00016f40;
      }
      iVar9 = 1;
    } while( true );
  }
  if (puVar25 == (uint *)0xc) {
    iVar9 = 0;
    goto LAB_00015278;
  }
  puVar31 = (uint *)(int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4);
  ppuVar21 = ppuVar16;
  psVar32 = psVar27;
  if (puVar31 == (uint *)0xffffffa3) {
LAB_0001504c:
    iVar9 = *(int *)(puVar33 + 0x23270);
    psVar32 = psVar27;
LAB_00015050:
    uVar15 = (uint)*(byte *)((int)puVar25 + iVar9 + 0x6370);
    if (uVar15 != 0) {
      uVar22 = (uint)*(byte *)(uVar15 + *(int *)(puVar33 + 0x23270) + 0x6198);
      puVar19 = puVar13 + (1 - uVar22) * 0xe;
      puVar25 = puVar19;
      puVar31 = auStack_5b0;
      do {
        puVar20 = puVar31;
        puVar17 = puVar25;
        puVar25 = puVar17 + 4;
        uVar24 = puVar17[1];
        uVar23 = puVar17[2];
        uVar18 = puVar17[3];
        *puVar20 = *puVar17;
        puVar20[1] = uVar24;
        puVar20[2] = uVar23;
        puVar20[3] = uVar18;
        puVar31 = puVar20 + 4;
      } while (puVar25 != puVar19 + 0xc);
      uVar18 = puVar17[5];
      uVar23 = uVar15 - 4 & 0xff;
      puVar20[4] = *puVar25;
      puVar20[5] = uVar18;
      puStack_674 = (uint *)puVar19[5];
      in_t3 = puVar19[3];
      in_t2 = (uint *)puVar19[2];
      unaff_s6 = (short *)puVar19[4];
      ppuVar28 = (uint **)puVar19[7];
      in_t0 = (uint **)puVar19[6];
      in_t5 = puVar19[9];
      in_t4 = (uint **)puVar19[8];
      uVar18 = puVar19[10];
      in_t6 = puVar19[0xb];
      in_t8 = puVar19[0xc];
      if (uVar23 < 0x58) {
                    /* WARNING: Could not recover jumptable at 0x00015220. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        iVar6 = (*(code *)(puVar33 +
                          *(int *)(*(int *)(puVar33 + 0x23270) + 0x5f80 + uVar23 * 4) + 0x2b234))();
        return iVar6;
      }
      psVar32 = psVar32 + -uVar22;
      puVar13 = puVar13 + uVar22 * -0xe;
      iVar10 = *(byte *)(*(int *)(puVar33 + 0x23270) + 0x61f4 + uVar15) - 0x1c;
      iVar9 = (int)*(char *)(iVar10 + *(int *)(puVar33 + 0x23270) + 0x6354);
      puStack_66c = auStack_5b0;
      goto LAB_00015adc;
    }
    if (iStack_670 == 3) {
      if ((int)puVar29 < 1) {
        iVar9 = 1;
        psVar27 = psVar32;
        if (puVar29 == (uint *)0x0) goto LAB_00015278;
      }
      else {
        puVar29 = (uint *)0xfffffffe;
      }
    }
    ppuVar16 = (uint **)0xffffffa3;
    while ((((iVar9 = (int)(char)*(byte *)((int)puVar25 + *(int *)(puVar33 + 0x23270) + 0x63e4),
             uVar15 = iVar9 + 1, iVar9 == -0x5d || (0x70 < uVar15)) ||
            (*(char *)(uVar15 + iVar30) != '\x01')) ||
           (puVar25 = (uint *)(uint)*(byte *)(uVar15 + iVar8), puVar25 == (uint *)0x0))) {
      iVar9 = 1;
      psVar27 = psVar32;
      if (psVar32 == asStack_578) goto LAB_00015278;
      psVar32 = psVar32 + -1;
      puVar25 = (uint *)(int)*psVar32;
      puVar13 = puVar13 + -0xe;
    }
    puVar13 = puVar13 + 0xe;
    in_t0 = apuStack_5b8;
    apuStack_5e8[3] = puStack_630;
    apuStack_5e8[2] = puStack_65c;
    iStack_5d8 = iStack_660;
    ppuVar21 = apuStack_5e8;
    puVar31 = puVar13;
    do {
      puVar19 = puVar31;
      ppuVar11 = ppuVar21;
      ppuVar21 = ppuVar11 + 4;
      puVar20 = ppuVar11[1];
      puVar17 = ppuVar11[2];
      puVar31 = ppuVar11[3];
      *puVar19 = (uint)*ppuVar11;
      puVar19[1] = (uint)puVar20;
      puVar19[2] = (uint)puVar17;
      puVar19[3] = (uint)puVar31;
      puVar31 = puVar19 + 4;
    } while (ppuVar21 != in_t0);
    ppuVar16 = (uint **)0x3;
    puVar31 = ppuVar11[5];
    iStack_670 = 3;
    puVar19[4] = (uint)*ppuVar21;
    puVar19[5] = (uint)puVar31;
    goto LAB_00015014;
  }
  goto LAB_00014f50;
LAB_00015528:
  puVar29 = (uint *)((int)puVar17 >> 0x1f);
  bVar2 = false;
  if (puVar29 == in_t2) {
    in_t2 = (uint *)((uint)puVar17 >> 0x1e);
    in_t0 = (uint **)((int)((int)puVar29 +
                           (uint)((uint)((int)puVar17 * 5) < (uint)((int)puVar17 * 4)) +
                           ((uint)in_t2 | (int)puVar29 << 2)) * 2);
    ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);
  }
  else {
    ppuVar28 = (uint **)(ZEXT48(in_t2) * 10);
    unaff_s6 = (short *)(ZEXT48(in_t2) * 10 >> 0x20);
    in_t6 = (int)puVar17 * 4;
    puStack_674 = (uint *)((uint)puVar17 >> 0x1e);
    in_t0 = (uint **)((int)puVar17 * 10);
    psVar27 = unaff_s6;
    if ((int)in_t2 < 0) {
      psVar27 = unaff_s6 + -5;
    }
    ppuVar16 = (uint **)((int)ppuVar28 +
                        ((uint)((int)puVar17 * 5) >> 0x1f |
                        (int)((int)puStack_674 + (uint)((uint)((int)puVar17 * 5) < in_t6)) * 2));
    if ((int)ppuVar16 >> 0x1f != (uint)(ppuVar16 < ppuVar28) + (int)psVar27) {
      bVar2 = true;
      in_t0 = (uint **)((int)((int)in_t2 +
                             (uint)((uint)((int)puVar17 * 5) < in_t6) +
                             ((uint)puStack_674 | (int)in_t2 * 4)) * 2);
      ppuVar16 = (uint **)((uint)((int)puVar17 * 5) >> 0x1f | (uint)in_t0);
    }
  }
  puVar29 = (uint *)((int)puVar17 * 10);
  ppuVar28 = in_t4;
  if (bVar2) goto LAB_00017ad0;
  goto LAB_000153f8;
LAB_00017ad0:
  uVar15 = 2;
  puVar29 = (uint *)0x3f;
  puVar19 = (uint *)((int)puVar31 + 2);
  goto LAB_00014f74;
  while( true ) {
    if (bVar12 == 0x28) {
      iVar9 = iVar9 + 1;
    }
    else if (bVar12 == 0x29) {
      iVar9 = iVar9 + -1;
    }
    if (iVar9 == 0) break;
LAB_000157a8:
    ppuVar16 = ppuVar21;
    ppuVar21 = (uint **)((int)ppuVar16 + 1);
    *puVar14 = ppuVar21;
    bVar12 = *(byte *)ppuVar16;
    if (bVar12 == 0) goto LAB_000152b8;
  }
  bVar12 = *(byte *)((int)ppuVar16 + 1);
  goto LAB_000152f0;
code_r0x00016f40:
  puVar25 = puVar13 + 4;
  puVar13 = puVar13 + -0x2a;
  psVar32 = psVar27 + -3;
  iVar10 = 0xe;
  puVar14[0xc] = *puVar25;
  iVar9 = -0x5d;
LAB_00015adc:
  puVar13 = puVar13 + 0xe;
  puStack_5a8 = in_t2;
  in_t2 = auStack_580;
  uStack_5a4 = in_t3;
  apsStack_5a0[1] = (short *)puStack_674;
  apsStack_5a0[0] = unaff_s6;
  ppuStack_594 = ppuVar28;
  ppuStack_598 = in_t0;
  uStack_58c = in_t5;
  ppuStack_590 = in_t4;
  uStack_588 = uVar18;
  uStack_584 = in_t6;
  auStack_580[0] = in_t8;
  puVar25 = puStack_66c;
  puVar31 = puVar13;
  do {
    puVar17 = puVar31;
    puVar19 = puVar25;
    in_t0 = (uint **)*puVar19;
    puVar25 = puVar19 + 4;
    uVar23 = puVar19[1];
    uVar22 = puVar19[2];
    uVar15 = puVar19[3];
    *puVar17 = (uint)in_t0;
    puVar17[1] = uVar23;
    puVar17[2] = uVar22;
    puVar17[3] = uVar15;
    puVar31 = puVar17 + 4;
  } while (puVar25 != in_t2);
  ppuVar16 = (uint **)(int)*psVar32;
  uVar15 = puVar19[5];
  pbVar26 = (byte *)((int)ppuVar16 + iVar9);
  puVar17[4] = *puVar25;
  puVar17[5] = uVar15;
  if ((pbVar26 < (byte *)0x71) && ((uint **)(int)(char)pbVar26[iVar30] == ppuVar16)) {
    puVar25 = (uint *)(uint)pbVar26[iVar8];
  }
  else {
    puVar25 = (uint *)(int)*(char *)(iVar10 + iVar6 + 0x6338);
  }
  goto LAB_00015014;
}

